예제 #1
0
    def test_ParameterPitch(self):
        p = canfix.Parameter()
        p.node = 0x02
        p.name = "Pitch Angle"
        p.value = -1.02
        msg = p.msg

        self.assertEqual(msg.arbitration_id, 0x180)
        self.assertEqual(msg.data, bytearray([0x02, 0x00, 0x00, 0x9a, 0xff]))
        self.assertEqual(msg.dlc, 5)
예제 #2
0
    def test_ParameterDate(self):
        p = canfix.Parameter()
        p.node = 0x02
        p.name = "Date"
        p.value = [1970, 7, 27]
        msg = p.msg

        self.assertEqual(msg.arbitration_id, 0x581)
        self.assertEqual(msg.data,
                         bytearray([0x02, 0x00, 0x00, 0xB2, 0x07, 7, 27]))
        self.assertEqual(msg.dlc, 7)
예제 #3
0
    def test_ParameterTime(self):
        p = canfix.Parameter()
        p.node = 0x02
        p.name = "Time"
        p.value = [13, 14, 15, 556]
        msg = p.msg

        self.assertEqual(msg.arbitration_id, 0x580)
        self.assertEqual(msg.data,
                         bytearray([0x02, 0x00, 0x00, 13, 14, 15, 0x2C, 0x02]))
        self.assertEqual(msg.dlc, 8)
예제 #4
0
    def test_ParameterLongitude(self):
        p = canfix.Parameter()
        p.node = 0x02
        p.name = "Aircraft Position Longitude"
        p.value = -115.324
        msg = p.msg

        self.assertEqual(msg.arbitration_id, 0x1C4)
        self.assertEqual(msg.data,
                         bytearray([0x02, 0x00, 0x00, 0xE3, 0xA5, 0xE6, 0xC2]))
        self.assertEqual(msg.dlc, 7)
예제 #5
0
 def test_ParameterIDsToNames(self):
     p = canfix.Parameter()
     p.identifier = 0x183
     self.assertEqual(p.name, "Indicated Airspeed")
     p.identifier = 0x40B
     self.assertEqual(p.name, "Wind Direction")
     p.identifier = 0x38B
     self.assertEqual(p.name, "Fuel Pump Status #1")
     p.identifier = 0x281
     self.assertEqual(p.name, "Cabin Altitude")
     p.identifier = 0x103
     self.assertEqual(p.name, "Trim Switches #2")
예제 #6
0
    def test_ParameterAircraftIdentifier(self):
        p = canfix.Parameter()
        p.node = 0x02
        p.name = "Aircraft Identifier"
        p.value = '727WB'
        msg = p.msg

        self.assertEqual(msg.arbitration_id, 0x587)
        self.assertEqual(
            msg.data,
            bytearray([0x02, 0x00, 0x00, 0x37, 0x32, 0x37, 0x57, 0x42]))
        self.assertEqual(msg.dlc, 8)
예제 #7
0
    def test_ParameterMetaData(self):
        p = canfix.Parameter()
        p.identifier = 0x200
        p.node = 2
        p.meta = "Low Warn"
        p.value = 1700
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x02, 0x00, 0x40, 0xA4, 0x06]))
        self.assertEqual(msg.dlc, 5)

        p.meta = "Min"
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x02, 0x00, 0x10, 0xA4, 0x06]))
        self.assertEqual(msg.dlc, 5)
예제 #8
0
def listen(conn, msg_count, raw):
    count = 0
    while True:
        try:
            msg = conn.recv(1.0)
            if msg:
                #print(str(msg) + canfix.parameters[msg.arbitration_id].name)
                x = canfix.parseMessage(msg)
                if raw:
                    print(str(msg))
                else:
                    print(canfix.Parameter(msg))
                count+=1
                if msg_count != 0:
                    if count > msg_count: break
        except KeyboardInterrupt:
            break
        except:
            print(str(msg))
예제 #9
0
    def test_ParameterFlags(self):
        p = canfix.Parameter()
        p.node = 5
        p.identifier = 0x220
        p.value = 75.6
        p.annunciate = True
        p.quality = False
        p.failure = False
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x05, 0x00, 0x01, 0x88, 0x1D]))
        self.assertEqual(msg.dlc, 5)

        p.annunciate = True
        p.quality = False
        p.failure = False
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x05, 0x00, 0x01, 0x88, 0x1D]))
        self.assertEqual(msg.dlc, 5)

        p.annunciate = False
        p.quality = True
        p.failure = False
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x05, 0x00, 0x02, 0x88, 0x1D]))
        self.assertEqual(msg.dlc, 5)

        p.annunciate = False
        p.quality = False
        p.failure = True
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x05, 0x00, 0x04, 0x88, 0x1D]))
        self.assertEqual(msg.dlc, 5)

        p.annunciate = True
        p.quality = False
        p.failure = True
        msg = p.msg
        self.assertEqual(msg.data, bytearray([0x05, 0x00, 0x05, 0x88, 0x1D]))
        self.assertEqual(msg.dlc, 5)
예제 #10
0
 def addParameter(self, name, func):
     p = canfix.Parameter()
     p.node = self.node
     p.name = name
     self.parameters.append((p, func))
     return p