Packets¶
-
class
secsgem.hsms.packets.
HsmsPacket
(header=None, data='')[source]¶ Class for hsms packet.
Contains all required data and functions.
Parameters: - header (
secsgem.hsms.packets.HsmsHeader
and derived) – header used for this packet - data (string) – data part used for streams and functions (SType 0)
Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsPacket(secsgem.hsms.packets.HsmsLinktestReqHeader(2)) HsmsPacket({'header': HsmsLinktestReqHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x05, system:0x00000002, requireResponse:False}), 'data': ''})
-
encode
()[source]¶ Encode packet data to hsms packet
Returns: encoded packet Return type: string Example:
>>> import secsgem >>> >>> packet = secsgem.hsms.packets.HsmsPacket(secsgem.hsms.packets.HsmsLinktestReqHeader(2)) >>> secsgem.common.format_hex(packet.encode()) '00:00:00:0a:ff:ff:00:00:00:05:00:00:00:02'
-
static
decode
(text)[source]¶ Decode byte array hsms packet to HsmsPacket object
Returns: received packet object Return type: secsgem.hsms.packets.HsmsPacket
Example:
>>> import secsgem >>> >>> packetData = b"\x00\x00\x00\x0b\xff\xff\x00\x00\x00\x05\x00\x00\x00\x02" >>> >>> secsgem.format_hex(packetData) '00:00:00:0b:ff:ff:00:00:00:05:00:00:00:02' >>> >>> secsgem.hsms.packets.HsmsPacket.decode(packetData) HsmsPacket({'header': HsmsHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x05, system:0x00000002, requireResponse:False}), 'data': ''})
- header (
-
class
secsgem.hsms.packets.
HsmsHeader
(system, session_id)[source]¶ Generic HSMS header
Base for different specific headers
Parameters: - system (integer) – message ID
- session_id (integer) – device / session ID
Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsHeader(3, 100) HsmsHeader({sessionID:0x0064, stream:00, function:00, pType:0x00, sType:0x01, system:0x00000003, requireResponse:False})
-
class
secsgem.hsms.packets.
HsmsStreamFunctionHeader
(system, stream, function, require_response, session_id)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for SECS message
Header for message with SType 0.
Parameters: - system (integer) – message ID
- stream (integer) – messages stream
- function (integer) – messages function
- require_response (boolean) – is response expected from remote
- session_id (integer) – device / session ID
Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsStreamFunctionHeader(22, 1, 1, True, 100) HsmsStreamFunctionHeader({sessionID:0x0064, stream:01, function:01, pType:0x00, sType:0x00, system:0x00000016, requireResponse:True})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
class
secsgem.hsms.packets.
HsmsSelectReqHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Select Request
Header for message with SType 1.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsSelectReqHeader(14) HsmsSelectReqHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x01, system:0x0000000e, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
-
class
secsgem.hsms.packets.
HsmsSelectRspHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Select Response
Header for message with SType 2.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsSelectRspHeader(24) HsmsSelectRspHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x02, system:0x00000018, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
-
class
secsgem.hsms.packets.
HsmsDeselectReqHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Deselect Request
Header for message with SType 3.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsDeselectReqHeader(1) HsmsDeselectReqHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x03, system:0x00000001, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
-
class
secsgem.hsms.packets.
HsmsDeselectRspHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Deselect Response
Header for message with SType 4.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsDeselectRspHeader(1) HsmsDeselectRspHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x04, system:0x00000001, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
-
class
secsgem.hsms.packets.
HsmsLinktestReqHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Linktest Request
Header for message with SType 5.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsLinktestReqHeader(2) HsmsLinktestReqHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x05, system:0x00000002, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
-
class
secsgem.hsms.packets.
HsmsLinktestRspHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Linktest Response
Header for message with SType 6.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsLinktestRspHeader(10) HsmsLinktestRspHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x06, system:0x0000000a, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
-
class
secsgem.hsms.packets.
HsmsRejectReqHeader
(system, s_type, reason)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Reject Request
Header for message with SType 7.
Parameters: - system (integer) – message ID
- s_type (integer) – sType of rejected message
- reason (integer) – reason for rejection
Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsRejectReqHeader(17, 3, 4) HsmsRejectReqHeader({sessionID:0xffff, stream:03, function:04, pType:0x00, sType:0x07, system:0x00000011, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-
class
secsgem.hsms.packets.
HsmsSeparateReqHeader
(system)[source]¶ Bases:
secsgem.hsms.packets.HsmsHeader
Header for Separate Request
Header for message with SType 9.
Parameters: system (integer) – message ID Example:
>>> import secsgem >>> >>> secsgem.hsms.packets.HsmsSeparateReqHeader(17) HsmsSeparateReqHeader({sessionID:0xffff, stream:00, function:00, pType:0x00, sType:0x09, system:0x00000011, requireResponse:False})
-
encode
()¶ Encode header to hsms packet
Returns: encoded header Return type: string Example:
>>> import secsgem >>> >>> header = secsgem.hsms.packets.HsmsLinktestReqHeader(2) >>> secsgem.common.format_hex(header.encode()) 'ff:ff:00:00:00:05:00:00:00:02'
-