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': ''})
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})