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': ''})
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})
encode()[source]

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.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'