PyARINC429 provides object types used for organizing and interpreting digital information as specified by the ARINC 429 data protocol. It supports basic encoding, decoding, and validation for Binary Coded Decimal (BCD), Binary Number Representation (BNR), and discrete word types. It also supports mixed BCD/discrete and BNR/discrete data.
PyARINC429 was developed using Python 3.5.
>>>word=arinc429.Word()>>>word.label=0o1>>>encoded_vhf1_freq=arinc429.BCD(121.5,resolution=0.1)>>>bit_field=arinc429.DataField(11,29,encoded_vhf1_freq)>>>bit_fieldDataField(lsb=11,msb=29,data=BCD(value=121.5,resolution=0.1))>>>word.set_bit_field(*bit_field)>>>print(word)Label=0o1,SDI=0,Data=0x1215,SSM=0,Parity=0>>>decoded_vhf1_freq=arinc429.BCD.decode(word.data,word.ssm,0.1)>>>print(decoded_vhf1_freq)121.5
>>>word=arinc429.Word()>>>word.label=0o400ValueError:Labelmustbe>=0o0and<=0o377:0o400>>>word.label=0o2>>>encoded_pitch=arinc429.BNR(90,0.043945313)>>>encoded_pitchBNR(value=89.956055711,resolution=0.043945313)>>>bnr_bit_field=arinc429.DataField(13,29,encoded_pitch)>>>disc_bit_field=arinc429.DataField(11,12,arinc429.Discrete(1))>>>word.set_bit_field(*bnr_bit_field)>>>print(word)Label=0o1,SDI=0,Data=0x1ffc,SSM=0,Parity=1>>>word.set_bit_field(*disc_bit_field)>>>print(word)Label=0o1,SDI=0,Data=0x1ffd,SSM=0,Parity=0>>>arinc429.BNR.decode(word.get_bit_field(bnr_bit_field.lsb,bnr_bit_field.msb),17,0.043945313)BNR(value=89.956055711,resolution=0.043945313)
>>>word=arinc429.Word()>>>word.label=0o3>>>encoded_mode=arinc429.Discrete(6)>>>bit_field=arinc429.DataField(11,12,encoded_mode)>>>word.set_bit_field(*bit_field)arinc429.arinc429.FieldOverflowError:0x6overflows2bit(s)>>>bit_field=arinc429.DataField(11,13,encoded_mode)>>>bit_fieldDataField(lsb=11,msb=13,data=Discrete(value=0x6))>>>word.set_bit_field(*bit_field)>>>print(word)Label=0o3,SDI=0,Data=0x6,SSM=0,Parity=0>>>decoded_mode=arinc429.Discrete.decode(word.data)>>>print(decoded_mode)6