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)) secsgem.hsms.packets.HsmsPacket({'header': secsgem.hsms.packets.HsmsLinktestReqHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 2, 'sessionID': 65535, 'requireResponse': False, 'sType': 5}), '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 = "\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) secsgem.hsms.packets.HsmsPacket({'header': secsgem.hsms.packets.HsmsHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 2, 'sessionID': 65535, 'requireResponse': False, 'sType': 5}), '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) secsgem.hsms.packets.HsmsHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 3, 'sessionID': 100, 'requireResponse': False, 'sType': 1})
-
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) secsgem.hsms.packets.HsmsStreamFunctionHeader({'function': 1, 'stream': 1, 'pType': 0, 'system': 22, 'sessionID': 100, 'requireResponse': True, 'sType': 0})
-
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) secsgem.hsms.packets.HsmsSelectReqHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 14, 'sessionID': 65535, 'requireResponse': False, 'sType': 1})
-
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) secsgem.hsms.packets.HsmsSelectRspHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 24, 'sessionID': 65535, 'requireResponse': False, 'sType': 2})
-
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) secsgem.hsms.packets.HsmsDeselectReqHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 1, 'sessionID': 65535, 'requireResponse': False, 'sType': 3})
-
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) secsgem.hsms.packets.HsmsDeselectRspHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 1, 'sessionID': 65535, 'requireResponse': False, 'sType': 4})
-
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) secsgem.hsms.packets.HsmsLinktestReqHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 2, 'sessionID': 65535, 'requireResponse': False, 'sType': 5})
-
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) secsgem.hsms.packets.HsmsLinktestRspHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 10, 'sessionID': 65535, 'requireResponse': False, 'sType': 6})
-
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) secsgem.hsms.packets.HsmsRejectReqHeader({'function': 4, 'stream': 3, 'pType': 0, 'system': 17, 'sessionID': 65535, 'requireResponse': False, 'sType': 7})
-
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) secsgem.hsms.packets.HsmsSeparateReqHeader({'function': 0, 'stream': 0, 'pType': 0, 'system': 17, 'sessionID': 65535, 'requireResponse': False, 'sType': 9})