conpot.protocols.IEC104 package

Submodules

conpot.protocols.IEC104.DeviceDataController module

class conpot.protocols.IEC104.DeviceDataController.DeviceDataController(template)

Bases: object

check_registers()
get_object_from_reg(obj_addr)
get_registers()
set_object_val(obj_addr, val)
conpot.protocols.IEC104.DeviceDataController.addr_in_hex(address)
conpot.protocols.IEC104.DeviceDataController.hex_in_addr(hex_addr)
conpot.protocols.IEC104.DeviceDataController.inro_response(sorted_reg, asdu_type)

conpot.protocols.IEC104.IEC104 module

class conpot.protocols.IEC104.IEC104.IEC104(device_data_controller, sock, address, session_id)

Bases: object

disconnect()
static get_infoobj_list(frame)
handle_double_command46(container)
handle_i_frame(frame)
handle_inro_command100(container)
handle_s_frame(frame)
handle_setpointfloatpoint_command50(container)
handle_setpointscaled_command49(container)
handle_single_command45(container)
handle_u_frame(frame)
increment_sendseq()
recvseq_increment()
restart_t1()
send_104frame(frame)
send_frame_imm(frame)
show_send_list()
class conpot.protocols.IEC104.IEC104.frame_object_with_timer(frame)

Bases: object

build()
cancel_t1()
getfieldval(fieldval)
restart_t1()

conpot.protocols.IEC104.IEC104_server module

conpot.protocols.IEC104.IEC104_server.IEC104Server

alias of Wrapper

conpot.protocols.IEC104.errors module

exception conpot.protocols.IEC104.errors.FrameError(*args)

Bases: Exception

This error is raised if the IEC104 frame is wrong or ain’t a IEC104 packet at all

exception conpot.protocols.IEC104.errors.InvalidFieldValueException(*args)

Bases: ValueError

This error is raised if a field value is not allowed

exception conpot.protocols.IEC104.errors.Timeout_t1

Bases: BaseException

Base class for exceptions in this module.

exception conpot.protocols.IEC104.errors.Timeout_t1_2nd

Bases: BaseException

Base class for exceptions in this module.

exception conpot.protocols.IEC104.errors.Timeout_t3

Bases: BaseException

Base class for exceptions in this module.

conpot.protocols.IEC104.frames module

class conpot.protocols.IEC104.frames.BCR(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.BCR'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LESignedIntField (BCR).Value>, <XBitField (BCR).IV>, <XBitField (BCR).CA>, <XBitField (BCR).CY>, <XBitField (BCR).SeqNr>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.BSI(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.BSI'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEIntField (BSI,asdu_infobj_7,asdu_infobj_8,asdu_infobj_51,asdu_infobj_64).BSI>]
class conpot.protocols.IEC104.frames.CP16Time(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.CP16Time'>, <class 'scapy.packet.Packet'>]
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:

s (str) – the current layer

Returns:

a couple of strings (actual layer, padding)

fields_desc: Sequence[AnyField] = [<ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>]
class conpot.protocols.IEC104.frames.CP24Time(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.CP24Time'>, <class 'scapy.packet.Packet'>]
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:

s (str) – the current layer

Returns:

a couple of strings (actual layer, padding)

fields_desc: Sequence[AnyField] = [<ShortField (CP24Time).Ms>, <ByteField (CP24Time).Min>]
class conpot.protocols.IEC104.frames.CP56Time(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.CP56Time'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<ShortField (CP56Time).Ms>, <ByteField (CP56Time).Min>, <ByteField (CP56Time).Hour>, <ByteField (CP56Time).Day>, <ByteField (CP56Time).Month>, <ByteField (CP56Time).Year>]
class conpot.protocols.IEC104.frames.DIQ(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.DIQ'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XBitField (DIQ).IV>, <XBitField (DIQ).NT>, <XBitField (DIQ).SB>, <XBitField (DIQ).BL>, <XBitField (DIQ).Padding>, <XBitField (DIQ).DPI>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.FloatField(name, default)

Bases: Field

class conpot.protocols.IEC104.frames.IOA(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.IOA'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>]
class conpot.protocols.IEC104.frames.LESignedShortField(name, default)

Bases: Field

class conpot.protocols.IEC104.frames.NVA(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.NVA'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>]
class conpot.protocols.IEC104.frames.NormValueField(name, default)

Bases: LESignedShortField

i2repr(pkt, x)

Convert internal value to a nice representation

class conpot.protocols.IEC104.frames.OCI(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.OCI'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XBitField (OCI).Padding>, <XBitField (OCI).CL3>, <XBitField (OCI).CL2>, <XBitField (OCI).CL1>, <XBitField (OCI).GC>]
class conpot.protocols.IEC104.frames.QDP(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.QDP'>, <class 'scapy.packet.Packet'>]
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:

s (str) – the current layer

Returns:

a couple of strings (actual layer, padding)

fields_desc: Sequence[AnyField] = [<XBitField (QDP).IV>, <XBitField (QDP).NT>, <XBitField (QDP).SB>, <XBitField (QDP).BL>, <XBitField (QDP).EI>, <XBitField (QDP).Padding>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.QDS(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.QDS'>, <class 'scapy.packet.Packet'>]
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:

s (str) – the current layer

Returns:

a couple of strings (actual layer, padding)

fields_desc: Sequence[AnyField] = [<XBitField (QDS).IV>, <XBitField (QDS).NT>, <XBitField (QDS).SB>, <XBitField (QDS).BL>, <XBitField (QDS).Padding>, <XBitField (QDS).OV>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.QOS(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.QOS'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XBitField (QOS).seq>, <XBitField (QOS).QL>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.SCD(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.SCD'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEShortField (SCD).Status>, <LEShortField (SCD).StatChaDet>]
class conpot.protocols.IEC104.frames.SEP(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.SEP'>, <class 'scapy.packet.Packet'>]
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:

s (str) – the current layer

Returns:

a couple of strings (actual layer, padding)

fields_desc: Sequence[AnyField] = [<XBitField (SEP).IV>, <XBitField (SEP).NT>, <XBitField (SEP).SB>, <XBitField (SEP).BL>, <XBitField (SEP).EI>, <XBitField (SEP).Padding>, <XBitField (SEP).ES>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.SIQ(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.SIQ'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XBitField (SIQ).IV>, <XBitField (SIQ).NT>, <XBitField (SIQ).SB>, <XBitField (SIQ).BL>, <XBitField (SIQ).Padding>, <XBitField (SIQ).SPI>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.SPE(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.SPE'>, <class 'scapy.packet.Packet'>]
extract_padding(p)

DEV: to be overloaded to extract current layer’s padding.

Parameters:

s (str) – the current layer

Returns:

a couple of strings (actual layer, padding)

fields_desc: Sequence[AnyField] = [<XBitField (SPE).Padding>, <XBitField (SPE).SRD>, <XBitField (SPE).SIE>, <XBitField (SPE).SL3>, <XBitField (SPE).SL2>, <XBitField (SPE).GS>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.SVA(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.SVA'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LESignedShortField (SVA,asdu_infobj_11,asdu_infobj_12,asdu_infobj_35,asdu_infobj_49,asdu_infobj_62).SVA>]
class conpot.protocols.IEC104.frames.VTI(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.VTI'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XBitField (VTI).T>, <XBitField (VTI).Value>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'scapy.packet.Padding'>)]
class conpot.protocols.IEC104.frames.asdu_head(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_head'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<ByteField (asdu_head).TypeID>, <BitField (asdu_head).SQ>, <BitField (asdu_head).NoO>, <BitField (asdu_head).T>, <BitField (asdu_head).PN>, <BitField (asdu_head).COT>, <XByteField (asdu_head).OrigAddr>, <LEShortField (asdu_head).COA>]
guess_payload_class(payload)

DEV: Guesses the next payload class from layer bonds. Can be overloaded to use a different mechanism.

Parameters:

payload (str) – the layer’s payload

Returns:

the payload class

payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'TypeID': 1}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_1'>), ({'TypeID': 2}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_2'>), ({'TypeID': 3}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_3'>), ({'TypeID': 4}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_4'>), ({'TypeID': 5}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_5'>), ({'TypeID': 6}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_6'>), ({'TypeID': 7}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_7'>), ({'TypeID': 8}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_8'>), ({'TypeID': 9}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_9'>), ({'TypeID': 10}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_10'>), ({'TypeID': 11}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_11'>), ({'TypeID': 12}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_12'>), ({'TypeID': 13}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_13'>), ({'TypeID': 14}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_14'>), ({'TypeID': 15}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_15'>), ({'TypeID': 16}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_16'>), ({'TypeID': 17}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_17'>), ({'TypeID': 18}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_18'>), ({'TypeID': 19}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_19'>), ({'TypeID': 20}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_20'>), ({'TypeID': 21}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_21'>), ({'TypeID': 30}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_30'>), ({'TypeID': 31}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_31'>), ({'TypeID': 32}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_32'>), ({'TypeID': 33}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_33'>), ({'TypeID': 34}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_34'>), ({'TypeID': 35}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_35'>), ({'TypeID': 36}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_36'>), ({'TypeID': 37}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_37'>), ({'TypeID': 38}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_38'>), ({'TypeID': 39}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_39'>), ({'TypeID': 40}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_40'>), ({'TypeID': 45}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_45'>), ({'TypeID': 46}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_46'>), ({'TypeID': 47}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_47'>), ({'TypeID': 48}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_48'>), ({'TypeID': 49}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_49'>), ({'TypeID': 50}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_50'>), ({'TypeID': 51}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_51'>), ({'TypeID': 58}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_58'>), ({'TypeID': 59}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_59'>), ({'TypeID': 60}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_60'>), ({'TypeID': 61}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_61'>), ({'TypeID': 62}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_62'>), ({'TypeID': 63}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_63'>), ({'TypeID': 64}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_64'>), ({'TypeID': 100}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_100'>), ({'TypeID': 101}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_101'>), ({'TypeID': 102}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_102'>), ({'TypeID': 103}, <class 'conpot.protocols.IEC104.frames.asdu_infobj_103'>)]
class conpot.protocols.IEC104.frames.asdu_infobj_1(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_1'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_1).SIQ>]
class conpot.protocols.IEC104.frames.asdu_infobj_10(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_10'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>, <PacketField (asdu_infobj_10).QDS>, <PacketField (asdu_infobj_10).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_100(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_100'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (asdu_infobj_100).IOA>, <ByteField (asdu_infobj_100).QOI>]
class conpot.protocols.IEC104.frames.asdu_infobj_101(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_101'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (asdu_infobj_101).IOA>, <ByteField (asdu_infobj_101).QCC>]
class conpot.protocols.IEC104.frames.asdu_infobj_102(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_102'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (asdu_infobj_102).IOA>]
class conpot.protocols.IEC104.frames.asdu_infobj_103(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_103'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (asdu_infobj_103).IOA>, <PacketField (asdu_infobj_103).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_11(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_11'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LESignedShortField (SVA,asdu_infobj_11,asdu_infobj_12,asdu_infobj_35,asdu_infobj_49,asdu_infobj_62).SVA>, <PacketField (asdu_infobj_11).QDS>]
class conpot.protocols.IEC104.frames.asdu_infobj_12(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_12'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LESignedShortField (SVA,asdu_infobj_11,asdu_infobj_12,asdu_infobj_35,asdu_infobj_49,asdu_infobj_62).SVA>, <PacketField (asdu_infobj_12).QDS>, <PacketField (asdu_infobj_12).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_13(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_13'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <FloatField (asdu_infobj_13).FPNumber>, <PacketField (asdu_infobj_13).QDS>]
class conpot.protocols.IEC104.frames.asdu_infobj_14(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_14'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <FloatField (asdu_infobj_14).FPNumber>, <PacketField (asdu_infobj_14).QDS>, <PacketField (asdu_infobj_14).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_15(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_15'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_15).BCR>]
class conpot.protocols.IEC104.frames.asdu_infobj_16(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_16'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_16).BCR>, <PacketField (asdu_infobj_16).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_17(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_17'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_17).SEP>, <ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>, <PacketField (asdu_infobj_17).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_18(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_18'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_18).SPE>, <PacketField (asdu_infobj_18).QDP>, <ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>, <PacketField (asdu_infobj_18).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_19(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_19'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_19).OCI>, <PacketField (asdu_infobj_19).QDP>, <ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>, <PacketField (asdu_infobj_19).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_2(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_2'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_2).SIQ>, <PacketField (asdu_infobj_2).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_20(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_20'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_20).SCD>, <PacketField (asdu_infobj_20).QDS>]
class conpot.protocols.IEC104.frames.asdu_infobj_21(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_21'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>]
class conpot.protocols.IEC104.frames.asdu_infobj_3(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_3'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_3).DIQ>]
class conpot.protocols.IEC104.frames.asdu_infobj_30(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_30'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_30).SIQ>, <PacketField (asdu_infobj_30).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_31(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_31'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_31).DIQ>, <PacketField (asdu_infobj_31).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_32(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_32'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_32).VTI>, <PacketField (asdu_infobj_32).QDS>, <PacketField (asdu_infobj_32).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_33(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_33'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_33).BSI>, <PacketField (asdu_infobj_33).QDS>, <PacketField (asdu_infobj_33).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_34(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_34'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>, <PacketField (asdu_infobj_34).QDS>, <PacketField (asdu_infobj_34).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_35(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_35'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LESignedShortField (SVA,asdu_infobj_11,asdu_infobj_12,asdu_infobj_35,asdu_infobj_49,asdu_infobj_62).SVA>, <PacketField (asdu_infobj_35).QDS>, <PacketField (asdu_infobj_35).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_36(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_36'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <FloatField (asdu_infobj_36).FPNumber>, <PacketField (asdu_infobj_36).QDS>, <PacketField (asdu_infobj_36).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_37(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_37'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_37).BCR>, <PacketField (asdu_infobj_37).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_38(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_38'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_38).SEP>, <ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>, <PacketField (asdu_infobj_38).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_39(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_39'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_39).SPE>, <PacketField (asdu_infobj_39).QDP>, <ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>, <PacketField (asdu_infobj_39).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_4(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_4'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_4).DIQ>, <PacketField (asdu_infobj_4).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_40(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_40'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_40).OCI>, <PacketField (asdu_infobj_40).QDP>, <ShortField (CP16Time,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40).Ms>, <PacketField (asdu_infobj_40).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_45(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_45'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <XBitField (asdu_infobj_45).QOC>, <XBitField (asdu_infobj_45).Padding>, <BitField (asdu_infobj_45).SCS>]
class conpot.protocols.IEC104.frames.asdu_infobj_46(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_46'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <XBitField (asdu_infobj_46).QOC>, <XBitField (asdu_infobj_46).DCS>]
class conpot.protocols.IEC104.frames.asdu_infobj_47(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_47'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <XBitField (asdu_infobj_47).QOC>, <XBitField (asdu_infobj_47).RCS>]
class conpot.protocols.IEC104.frames.asdu_infobj_48(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_48'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>, <PacketField (asdu_infobj_48).QOS>]
class conpot.protocols.IEC104.frames.asdu_infobj_49(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_49'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LESignedShortField (SVA,asdu_infobj_11,asdu_infobj_12,asdu_infobj_35,asdu_infobj_49,asdu_infobj_62).SVA>, <PacketField (asdu_infobj_49).QOS>]
class conpot.protocols.IEC104.frames.asdu_infobj_5(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_5'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_5).VTI>, <PacketField (asdu_infobj_5).QDS>]
class conpot.protocols.IEC104.frames.asdu_infobj_50(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_50'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <FloatField (asdu_infobj_50).FPNumber>, <PacketField (asdu_infobj_50).QOS>]
class conpot.protocols.IEC104.frames.asdu_infobj_51(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_51'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LEIntField (BSI,asdu_infobj_7,asdu_infobj_8,asdu_infobj_51,asdu_infobj_64).BSI>]
class conpot.protocols.IEC104.frames.asdu_infobj_58(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_58'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <XBitField (asdu_infobj_58).QOC>, <XBitField (asdu_infobj_58).Padding>, <BitField (asdu_infobj_58).SCS>, <PacketField (asdu_infobj_58).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_59(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_59'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <XBitField (asdu_infobj_59).QOC>, <XBitField (asdu_infobj_59).DCS>, <PacketField (asdu_infobj_59).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_6(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_6'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <PacketField (asdu_infobj_6).VTI>, <PacketField (asdu_infobj_6).QDS>, <PacketField (asdu_infobj_6).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_60(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_60'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <XBitField (asdu_infobj_60).QOC>, <XBitField (asdu_infobj_60).RCS>, <PacketField (asdu_infobj_60).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_61(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_61'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>, <PacketField (asdu_infobj_61).QOS>, <PacketField (asdu_infobj_61).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_62(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_62'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LESignedShortField (SVA,asdu_infobj_11,asdu_infobj_12,asdu_infobj_35,asdu_infobj_49,asdu_infobj_62).SVA>, <PacketField (asdu_infobj_62).QOS>, <PacketField (asdu_infobj_62).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_63(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_63'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <FloatField (asdu_infobj_63).FPNumber>, <PacketField (asdu_infobj_63).QOS>, <PacketField (asdu_infobj_63).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_64(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_64'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LEIntField (BSI,asdu_infobj_7,asdu_infobj_8,asdu_infobj_51,asdu_infobj_64).BSI>, <PacketField (asdu_infobj_64).QOS>, <PacketField (asdu_infobj_64).CP56Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_7(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_7'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LEIntField (BSI,asdu_infobj_7,asdu_infobj_8,asdu_infobj_51,asdu_infobj_64).BSI>, <PacketField (asdu_infobj_7).QDS>]
class conpot.protocols.IEC104.frames.asdu_infobj_8(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_8'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <LEIntField (BSI,asdu_infobj_7,asdu_infobj_8,asdu_infobj_51,asdu_infobj_64).BSI>, <PacketField (asdu_infobj_8).QDS>, <PacketField (asdu_infobj_8).CP24Time>]
class conpot.protocols.IEC104.frames.asdu_infobj_9(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.asdu_infobj_9'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<LEX3BytesField (IOA,asdu_infobj_1,asdu_infobj_2,asdu_infobj_3,asdu_infobj_4,asdu_infobj_5,asdu_infobj_6,asdu_infobj_7,asdu_infobj_8,asdu_infobj_9,asdu_infobj_10,asdu_infobj_11,asdu_infobj_12,asdu_infobj_13,asdu_infobj_14,asdu_infobj_15,asdu_infobj_16,asdu_infobj_17,asdu_infobj_18,asdu_infobj_19,asdu_infobj_20,asdu_infobj_21,asdu_infobj_30,asdu_infobj_31,asdu_infobj_32,asdu_infobj_33,asdu_infobj_34,asdu_infobj_35,asdu_infobj_36,asdu_infobj_37,asdu_infobj_38,asdu_infobj_39,asdu_infobj_40,asdu_infobj_45,asdu_infobj_46,asdu_infobj_47,asdu_infobj_48,asdu_infobj_49,asdu_infobj_50,asdu_infobj_51,asdu_infobj_58,asdu_infobj_59,asdu_infobj_60,asdu_infobj_61,asdu_infobj_62,asdu_infobj_63,asdu_infobj_64).IOA>, <NormValueField (NVA,asdu_infobj_9,asdu_infobj_10,asdu_infobj_21,asdu_infobj_34,asdu_infobj_48,asdu_infobj_61).NVA>, <PacketField (asdu_infobj_9).QDS>]
conpot.protocols.IEC104.frames.calctime()
class conpot.protocols.IEC104.frames.i_frame(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.i_frame'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XByteField (i_frame).Start>, <ByteField (i_frame).LenAPDU>, <LEShortField (i_frame).SendSeq>, <LEShortField (i_frame).RecvSeq>]
payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({}, <class 'conpot.protocols.IEC104.frames.asdu_head'>)]
post_build(p, pay)

DEV: called right after the current layer is build.

Parameters:
  • pkt (str) – the current packet (build by self_buil function)

  • pay (str) – the packet payload (build by do_build_payload function)

Returns:

a string of the packet with the payload

class conpot.protocols.IEC104.frames.s_frame(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.s_frame'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XByteField (s_frame).Start>, <ByteField (s_frame).LenAPDU>, <XByteField (s_frame).Type>, <XByteField (s_frame).Default>, <LEShortField (s_frame).RecvSeq>]
class conpot.protocols.IEC104.frames.u_frame(*args: Any, **kargs: Any)

Bases: Packet

aliastypes = [<class 'conpot.protocols.IEC104.frames.u_frame'>, <class 'scapy.packet.Packet'>]
fields_desc: Sequence[AnyField] = [<XByteField (u_frame).Start>, <ByteField (u_frame).LenAPDU>, <XByteField (u_frame).Type>, <X3BytesField (u_frame).Default>]

conpot.protocols.IEC104.i_frames_check module

conpot.protocols.IEC104.i_frames_check.check_asdu_1(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_100(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_11(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_12(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_13(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_14(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_2(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_3(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_30(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_31(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_35(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_36(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_4(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_45(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_46(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_47(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_48(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_49(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_50(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_asdu_51(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_command(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_information_with_time(frame, direction)
conpot.protocols.IEC104.i_frames_check.check_information_without_time(frame, direction)

conpot.protocols.IEC104.register module

class conpot.protocols.IEC104.register.IEC104Register(category_id, addr, val, relation)

Bases: object

set_val(val)

Module contents