Skip to content

Commit

Permalink
A429 layer: move reverse_a429_label() to ARINC429.label_reverse()
Browse files Browse the repository at this point in the history
  • Loading branch information
ks-airbus committed Jan 24, 2025
1 parent d224445 commit 6124754
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions scapy/layers/a429.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,13 +147,13 @@ def extract_padding(
def to_int(self, reverse_label: bool = False) -> int:
frame = int.from_bytes(bytes(self), "big")
if reverse_label:
frame = reverse_a429_label(frame)
frame = self.__class__.label_reverse(frame)
return frame

@classmethod
def from_int(cls, frame: int, reverse_label: bool = False):
if reverse_label:
frame = reverse_a429_label(frame)
frame = cls.label_reverse(frame)
frame_bytes = frame.to_bytes(4, "big")
return cls(frame_bytes)

Expand All @@ -167,6 +167,14 @@ def word_reverse(word: int) -> int:
word &= 0xFFFFFFFF
return word

@staticmethod
def label_reverse(frame: int) -> int:
label = frame & 0x000000FF
label = (label & 0xF0) >> 4 | (label & 0x0F) << 4
label = (label & 0xCC) >> 2 | (label & 0x33) << 2
label = (label & 0xAA) >> 1 | (label & 0x55) << 1
return (frame & 0xFFFFFF00) | label


class ARINC429Multiple(Packet):
name: str = "ARINC 429 (Multiple)"
Expand All @@ -186,11 +194,3 @@ class A429GenericPayload(A429Payload):
XBitField("load", 0, 19),
BitField("sdi", 0, 2),
]


def reverse_a429_label(frame: int) -> int:
label = frame & 0x000000FF
label = (label & 0xF0) >> 4 | (label & 0x0F) << 4
label = (label & 0xCC) >> 2 | (label & 0x33) << 2
label = (label & 0xAA) >> 1 | (label & 0x55) << 1
return (frame & 0xFFFFFF00) | label

0 comments on commit 6124754

Please sign in to comment.