ServerStatusChange

Type

SwitchKit API message

Description

The LLC sends the ServerStatusChange message containing all the information needed by an application to determine the current status of a node. The message is sent when the LLC discovers a change in Excel platform status.

C Structure

typedef struct {

unsigned short Status;

UBYTE SystemType;

UBYTE MatrixSide;

UBYTE MatrixState;

UBYTE AdjMatrixState;

UBYTE StatusBits;

UBYTE Reserved1;

UBYTE Reserved2;

unsigned short ExcelPort;

int PhysicalNode;

UBYTE LogicalNode;

UBYTE HostNode;

UBYTE NodeStatus;

UBYTE MessageTrigger;

UBYTE FromPrimary;

UBYTE SocketStatus;

unsigned short UpdatedFieldBits;

UBYTE reserved40[1];

} SK_ServerStatusChange;

C++ Class

class SKC_ServerStatusChange : public SKC_DummyMessage {

public:

unsigned short getStatus() const;

void setStatus(unsigned short x);

UBYTE getSystemType() const;

void setSystemType(UBYTE x);

UBYTE getMatrixSide() const;

void setMatrixSide(UBYTE x);

UBYTE getMatrixState() const;

void setMatrixState(UBYTE x);

UBYTE getAdjMatrixState() const;

void setAdjMatrixState(UBYTE x);

UBYTE getStatusBits() const;

void setStatusBits(UBYTE x);

UBYTE getReserved1() const;

void setReserved1(UBYTE x);

UBYTE getReserved2() const;

void setReserved2(UBYTE x);

unsigned short getExcelPort() const;

void setExcelPort(unsigned short x);

int getPhysicalNode() const;

void setPhysicalNode(int x);

UBYTE getLogicalNode() const;

void setLogicalNode(UBYTE x);

UBYTE getHostNode() const;

void setHostNode(UBYTE x);

UBYTE getNodeStatus() const;

void setNodeStatus(UBYTE x);

UBYTE getMessageTrigger() const;

void setMessageTrigger(UBYTE x);

UBYTE getFromPrimary() const;

void setFromPrimary(UBYTE x);

UBYTE getSocketStatus() const;

void setSocketStatus(UBYTE x;

unsigned short getUpdatedFieldBits();

void setUpdatedFieldBits(unsigned short x);

};

Conditions for Sending the ServerStatusChange Message

The following list shows the conditions that will cause the LLC to send a ServerStatusChange message:

SK_PM_CHANGE - sent when the first poll is received by the LLC for a Matrix Controller. Also sent any time a value changes in the Poll. The UpdatedFieldBits field indicates which fields have changed since the last poll.

SK_SSC_UPDATE - sent under the following conditions:

1. When an application registers for the ServerStatusChange notification via sk_msgRegister(), an SSC_UPDATE is sent for each node the LLC is currently connected to which has a Matrix Controller in the active state.

2. When an application issues an AddLLCNode, an SSC_UPDATE may be generated if the LLC already knew about the node and the LLC is currently connected to the active Matrix Controller for that node. In other words, if the Link is considered to be up.

SK_LINK_UP - sent under the following conditions:

1. This message is sent to indicate that there is a connection to the active Matrix Controller for this node and the Matrix Controller is ready to be configured. This will be sent if this is a new condition (i.e. we were not previously connected to the active Matrix Controller).

2. Sent if an application has performed an AddLLCNode, the LLC is currently connected to the specified node, and the LLC is connected to the active Matrix Controller of that node.

3. When an application registers for the ServerStatusChange notification via sk_msgRegister(), and the LLC is connected to the active Matrix Controller of a node.

SK_LINK_DOWN - sent under the following conditions:

1. This message is sent to indicate that there is NO connection to the active Matrix Controller for a node. This will be sent if this is a new condition (that is, we were previously connected to the active Matrix Controller).

2. Sent if an application has performed an AddLLCNode, and the LLC is not currently connected to the specified node’s active Matrix Controller.

3. When an application registers for the ServerStatusChange notification via sk_msgRegister(), and the LLC is supposed to be connected to a node but is not connected to the node's active Matrix Controller.

More on SK_LINK_UP and SK_LINK_DOWN

Registering for ServerStatusChange will result in an SK_LINK_UP or SK_LINK_DOWN for each node controlled by the LLC. If an SK_LINK_UP is sent, it will be followed by an SK_SSC_UPDATE with the last poll from the active Matrix Controller.

Performing an AddLLCNode will result in an SK_LINK_UP or SK_LINK_DOWN for the specified node if the LLC is already controlling the node. If an SK_LINK_UP is sent, it will be followed by an SK_SSC_UPDATE with the last poll from the active Matrix Controller, if the LLC is currently connected to the Matrix Controller in the active state.

SK_PM_CHANGE, SK_SOCKET_CHANGE, SK_LINK_UP and SK_LINK_DOWN are generated to indicate a change in state.

SK_NSQ_CHANGE or SK_NSR_CHANGE are generated upon arrival of NodeStatusQueryAck or NodeStatusReport from the Excel platform.

Arguments

The following table indicates what arguments are valid for a specific message trigger:

MessageTrigger

Argument

Description

SK_PM_CHANGE or SK_SSC_UPDATE

PhysicalNode

Represents the requested Node ID

LogicalNode

Represents the current Node ID as reported by the Excel platform in PollMessage

SocketStatus

1 always. Socket must be connected for this indication to occur.

Status

Status from PollMessage

SystemType

System Type(Poll Source) from PollMessage

MatrixSide

Matrix Controller ID from PollMessage

MatrixState

Matrix State(Card State) from PollMessage

AdjMatrixState

Adjacent Card State from PollMessage

StatusBits

Card Status from PollMessage

ExcelPort

Double Byte after Multi Host Connection Status Byte 2 in PollMessage

UpdatedFieldBits

Bit mask indicating which fields in the poll were updated. See table below for details of the meaning of the bits. Only set for SK_PM_CHANGE

SK_LINK_UP or SK_LINK_DOWN

PhysicalNode

Requested Node ID

LogicalNode

Requested Node ID

Constants

The following table contains information for the field UpdatedFieldBits. You can combine any number of settings in this bit mask:

Constants

Changed Argument in Server
StatusChange
message

SK_STATUS_CHANGE

Status

SK_SYSTEMTYPE_CHANGE

SystemType

SK_MATRIXSIDE_CHANGE

MatrixSide

SK_MATRIXSTATE_CHANGE

MatrixState

SK_ADJMATRIXSTATE_CHANGE

AdjMatrixState

SK_STATUSBITS_CHANGE

StatusBits

SK_LOGICALNODE_CHANGE

LogicalNode