MCPcopy Create free account
hub / github.com/secdev/scapy / CRX1NewPacketContent

Class CRX1NewPacketContent

scapy/contrib/concox.py:66–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64
65
66class CRX1NewPacketContent(Packet):
67 name = "CRX1 New Packet Content"
68 fields_desc = [
69 XByteEnumField('protocol_number', 0x12, PROTOCOL_NUMBERS),
70 # Login
71 ConditionalField(
72 BCDStrFixedLenField('terminal_id', '00000000', length=8), lambda
73 pkt: len(pkt.original) > 5 and pkt.protocol_number == 0x01),
74 # GPS Location
75 ConditionalField(
76 ByteField('year', 0x00), lambda pkt: len(pkt.original) > 5 and pkt.
77 protocol_number in (0x12, 0x16)),
78 ConditionalField(
79 ByteField('month', 0x01), lambda pkt: len(pkt.original) > 5 and pkt
80 .protocol_number in (0x12, 0x16)),
81 ConditionalField(
82 ByteField('day', 0x01), lambda pkt: len(pkt.original) > 5 and pkt.
83 protocol_number in (0x12, 0x16)),
84 ConditionalField(
85 ByteField('hour', 0x00), lambda pkt: len(pkt.original) > 5 and pkt.
86 protocol_number in (0x12, 0x16)),
87 ConditionalField(
88 ByteField('minute', 0x00), lambda pkt: len(pkt.original) > 5 and
89 pkt.protocol_number in (0x12, 0x16)),
90 ConditionalField(
91 ByteField('second', 0x00), lambda pkt: len(pkt.original) > 5 and
92 pkt.protocol_number in (0x12, 0x16)),
93 ConditionalField(
94 BitField('gps_information_length', 0x00, 4), lambda pkt: len(
95 pkt.original) > 5 and pkt.protocol_number in (0x12, 0x16)),
96 ConditionalField(
97 BitField('positioning_satellite_number', 0x00, 4), lambda pkt: len(
98 pkt.original) > 5 and pkt.protocol_number in (0x12, 0x16)),
99 ConditionalField(
100 ScalingField('latitude', 0x00,
101 scaling=1.0 / 1800000, ndigits=6, fmt="!I"),
102 lambda pkt: len(pkt.original) > 5 and \
103 pkt.protocol_number in (0x12, 0x16)),
104 ConditionalField(
105 ScalingField('longitude', 0x00,
106 scaling=1.0 / 1800000, ndigits=6, fmt="!I"),
107 lambda pkt: len(pkt.original) > 5 and \
108 pkt.protocol_number in (0x12, 0x16)),
109 ConditionalField(
110 ByteField('speed', 0x00), lambda pkt: len(pkt.original) > 5 and pkt
111 .protocol_number in (0x12, 0x16)),
112 ConditionalField(
113 BitField('course', 0x00, 10), lambda pkt: len(pkt.original) > 5 and
114 pkt.protocol_number in (0x12, 0x16)),
115 ConditionalField(
116 BitEnumField('latitude_hemisphere', 0x00, 1, {
117 0: "South",
118 1: "North"
119 }), lambda pkt: len(pkt.original) > 5 and pkt.protocol_number in (
120 0x12, 0x16)),
121 ConditionalField(
122 BitEnumField('longitude_hemisphere', 0x00, 1, {
123 0: "East",

Callers

nothing calls this directly

Calls 15

XByteEnumFieldClass · 0.90
ConditionalFieldClass · 0.90
ByteFieldClass · 0.90
BitFieldClass · 0.90
ScalingFieldClass · 0.90
BitEnumFieldClass · 0.90
XShortFieldClass · 0.90
XByteFieldClass · 0.90
X3BytesFieldClass · 0.90
IntFieldClass · 0.90
ByteEnumFieldClass · 0.90
FieldLenFieldClass · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…