You are here: CSP API Reference > 1 EXS & SwitchKit API Messages > 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 |
---|---|
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 |