Esempio n. 1
0
 def setUp(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('GPS_Time', '21:23:48.021')
     self.test_state.set_data_item('GPS_Date', '15-05-19')
     self.test_state.set_data_item('Latitude', 39.739242)
     self.test_state.set_data_item('Longitude', 104.9903299)
     self.test_state.set_data_item('Altitude', 1609)
     self.test_state.set_data_item('X', 0.15)
     self.test_state.set_data_item('Y', 0.86)
     self.test_state.set_data_item('Z', 1.18)
     self.test_state.set_data_item('KPH', 86.3)
     self.test_state.set_data_item('Lap', 3)
     self.test_state.set_data_item('RPM', 5891)
     self.test_state.set_data_item('Gear', 3)
     self.test_state.set_data_item('Throttle', 97)
     self.test_state.set_data_item('ECU_Throttle', 95)
     self.test_state.set_data_item('Brake', 1)
     self.test_state.set_data_item('Brake_Pressure', 42)
     self.test_state.set_data_item('Clutch', 0)
     self.test_state.set_data_item('Steering_Angle', 6.21)
     self.test_state.set_data_item('Steering_Rate', 0.42)
     self.test_state.set_data_item('Coolant_Temperature', 99)
     self.test_state.set_data_item('Oil_Pressure', 240)
     self.test_state.set_data_item('Oil_Temperature', 96)
     self.test_state.set_data_item('LF_KPH', 85.2)
     self.test_state.set_data_item('RF_KPH', 86.9)
     self.test_state.set_data_item('LR_KPH', 85.0)
     self.test_state.set_data_item('RR_KPH', 86.7)
     self.test_state.set_data_item('PSM', 0)
     self.test_state.set_data_item('GPS_KPH', 0.86)
     self.test_state.set_data_item('GPS_Heading', 321.41)
     self.test_state.set_data_item('Accuracy', 0.10)
     self.test_formatter = CsvFormatter(dict())
     pass
 def testFrame24A(self):
     test_fields = [
         "$CNDRV", "476.72", "24A", "0B", "10", "C8", "10", "0E", "10",
         "D2", "10"
     ]
     test_extractor = CanFrame24AExtractor()
     test_extractor.extractData(test_fields, CanFrameParserTest.test_state)
     self.assertAlmostEqual(
         41.07,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.LF_KPH)), 2,
         'LF wheel speed was not parsed correctly.')
     self.assertAlmostEqual(
         42.96,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.RF_KPH)), 2,
         'RF wheel speed was not parsed correctly.')
     self.assertAlmostEqual(
         41.10,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.LR_KPH)), 2,
         'LR wheel speed was not parsed correctly.')
     self.assertAlmostEqual(
         41.12,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.RR_KPH)), 2,
         'RR wheel speed was not parsed correctly.')
     pass
 def testParserFrame24A(self):
     test_line = "$CNDRV,480.17,24A,0B,20,C8,20,F7,20,02,21"
     CanFrameParserTest.test_parser.parse(test_line)
     self.assertEqual(
         480.17,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Time)),
         'Time was not parsed correctly.')
     self.assertAlmostEqual(
         82.030,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.LF_KPH)), 3,
         'LF wheel speed was not parsed correctly.')
     self.assertAlmostEqual(
         83.920,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.RF_KPH)), 3,
         'RF wheel speed was not parsed correctly.')
     self.assertAlmostEqual(
         84.390,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.LR_KPH)), 3,
         'LR wheel speed was not parsed correctly.')
     self.assertAlmostEqual(
         84.810,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.RR_KPH)), 3,
         'RR wheel speed was not parsed correctly.')
     pass
 def testParse(self):
     test_line = "$AC001,477.72,524,598,626"
     self.test_parser.parse(test_line)
     self.assertEqual(477.72, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.Time)), 'Time was not parsed correctly.')
     self.assertAlmostEqual(0.23, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.X)), 2, 'X acceleration was not parsed correctly.')
     self.assertAlmostEqual(0.84, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.Y)), 2, 'Y acceleration was not parsed correctly.')
     self.assertAlmostEqual(1.03, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.Z)), 2, 'Z acceleration was not parsed correctly.')                 
     pass
Esempio n. 5
0
 def testClutch(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('Clutch', 0)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'clutch,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 released=0 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for clutch was not as expected.')
     self.assertTrue('Clutch' not in self.test_state.get_dirty_fields(), 'Clutch still dirty after formatting.')
Esempio n. 6
0
 def testOilTemperature(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('Oil_Temperature', 96)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'oil_temperature,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 value=96 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for oil_temperature was not as expected.')
     self.assertTrue('Oil_Temperature' not in self.test_state.get_dirty_fields(), 'Oil_Temperature still dirty after formatting.')
Esempio n. 7
0
 def testBrake(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('Brake', 1)
     self.test_state.set_data_item('Brake_Pressure', 42)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'brake,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 applied=1,pressure=42 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for brake was not as expected.')
     self.assertTrue('Brake' not in self.test_state.get_dirty_fields(), 'Brake still dirty after formatting.')
     self.assertTrue('Brake_Pressure' not in self.test_state.get_dirty_fields(), 'Brake_Pressure still dirty after formatting.')
Esempio n. 8
0
 def testThrottle(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('Throttle', 97)
     self.test_state.set_data_item('ECU_Throttle', 95)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'throttle,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 driver=97,ecu=95 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for throttle was not as expected.')
     self.assertTrue('Throttle' not in self.test_state.get_dirty_fields(), 'Throttle still dirty after formatting.')
     self.assertTrue('ECU_Throttle' not in self.test_state.get_dirty_fields(), 'ECU_Throttle still dirty after formatting.')
Esempio n. 9
0
 def testSteering(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('Steering_Angle', 6.21)
     self.test_state.set_data_item('Steering_Rate', 0.42)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'steering,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 angle=6.21,rate=0.42 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for steering was not as expected.')
     self.assertTrue('Steering_Angle' not in self.test_state.get_dirty_fields(), 'Steering_Angle still dirty after formatting.')
     self.assertTrue('Steering_Rate' not in self.test_state.get_dirty_fields(), 'Steering_Rate still dirty after formatting.')
 def buildThrottle(self, data):
     #throttle,vin=<vin>,lap=<lap> driver=<999>,ecu=<999> <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Throttle),
         DataState.get_data_name_at_idx(DataState.names.ECU_Throttle)
     ]
     data.clean_fields(field_names)
     return "throttle,{0},lap={1} driver={2},ecu={3} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.Throttle]),
         data.get_data_item(DataState.names[DataState.names.ECU_Throttle]))
 def buildSteering(self, data):
     #steering,vin=<vin>,lap=<lap> angle=<99999>,rate=<99999> <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Steering_Angle),
         DataState.get_data_name_at_idx(DataState.names.Steering_Rate)
     ]
     data.clean_fields(field_names)
     return "steering,{0},lap={1} angle={2},rate={3} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(
             DataState.names[DataState.names.Steering_Angle]),
         data.get_data_item(DataState.names[DataState.names.Steering_Rate]))
 def buildBrake(self, data):
     #brake,vin=<vin>,lap=<lap> applied=[0/1],pressure=<999> <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Brake),
         DataState.get_data_name_at_idx(DataState.names.Brake_Pressure)
     ]
     data.clean_fields(field_names)
     return "brake,{0},lap={1} applied={2},pressure={3} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.Brake]),
         data.get_data_item(
             DataState.names[DataState.names.Brake_Pressure]))
Esempio n. 13
0
 def testPModes(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('Sport_Mode', 1)
     self.test_state.set_data_item('Pasm_Sport_Mode', 1)
     self.test_state.set_data_item('PSM_Disable', 0)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'pmodes,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 sport=1,pasm_sport=1,psm_off=0 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for pmodes was not as expected.')
     self.assertTrue('Sport_Mode' not in self.test_state.get_dirty_fields(), 'Sport_Mode still dirty after formatting.')
     self.assertTrue('Pasm_Sport_Mode' not in self.test_state.get_dirty_fields(), 'Pasm_Sport_Mode still dirty after formatting.')
     self.assertTrue('PSM_Disable' not in self.test_state.get_dirty_fields(), 'PSM_Disable still dirty after formatting.')
 def buildLocation(self, data):
     #location,vin=<vin>,lap=<lap>,geohash=<geohash> latitude=<999.999999>,longitude=<999.99999>,altitude=<9999>  <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Latitude),
         DataState.get_data_name_at_idx(DataState.names.Longitude)
     ]
     data.clean_fields(field_names)
     return "location,{0},lap={1},geohash={2} latitude={3},longitude={4},altitude={5} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         '00000000',
         data.get_data_item(DataState.names[DataState.names.Latitude]),
         data.get_data_item(DataState.names[DataState.names.Longitude]),
         data.get_data_item(DataState.names[DataState.names.Altitude]))
 def buildAcceleration(self, data):
     #acceleration,vin=<vin>,lap=<lap> x=<xg>,y=<yg>,z=<zg> <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.X),
         DataState.get_data_name_at_idx(DataState.names.Y),
         DataState.get_data_name_at_idx(DataState.names.Z)
     ]
     data.clean_fields(field_names)
     return "acceleration,{0},lap={1} x={2},y={3},z={4} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.X]),
         data.get_data_item(DataState.names[DataState.names.Y]),
         data.get_data_item(DataState.names[DataState.names.Z]))
class Test(unittest.TestCase):

    def setUp(self):
        self.test_state = DataState()
        self.test_parser = AccelerometerParser(self.test_state)

    def testParse(self):
        test_line = "$AC001,477.72,524,598,626"
        self.test_parser.parse(test_line)
        self.assertEqual(477.72, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.Time)), 'Time was not parsed correctly.')
        self.assertAlmostEqual(0.23, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.X)), 2, 'X acceleration was not parsed correctly.')
        self.assertAlmostEqual(0.84, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.Y)), 2, 'Y acceleration was not parsed correctly.')
        self.assertAlmostEqual(1.03, self.test_state.get_data_item(DataState.get_data_name_at_idx(DataState.names.Z)), 2, 'Z acceleration was not parsed correctly.')                 
        pass
 def buildPModes(self, data):
     #pmodes,vin=<vin>,lap=<lap> sport=[0/1],pasm_sport=[0/1],psm_off=[0/1] <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Sport_Mode),
         DataState.get_data_name_at_idx(DataState.names.Pasm_Sport_Mode),
         DataState.get_data_name_at_idx(DataState.names.PSM_Disable)
     ]
     data.clean_fields(field_names)
     return "pmodes,{0},lap={1} sport={2},pasm_sport={3},psm_off={4} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.Sport_Mode]),
         data.get_data_item(
             DataState.names[DataState.names.Pasm_Sport_Mode]),
         data.get_data_item(DataState.names[DataState.names.PSM_Disable]))
Esempio n. 18
0
 def testLocation(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('GPS_Time', '21:23:48.021')
     self.test_state.set_data_item('GPS_Date', '15-05-19')
     self.test_state.set_data_item('Latitude', 39.739242)
     self.test_state.set_data_item('Longitude', 104.9903299)
     self.test_state.set_data_item('Altitude', 1609)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'location,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3,geohash=00000000 latitude=39.739242,longitude=104.9903299,altitude=1609 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for locaation was not as expected.')
     self.assertTrue('Latitude' not in self.test_state.get_dirty_fields(), 'Latitude still dirty after formatting.')
     self.assertTrue('Longitude' not in self.test_state.get_dirty_fields(), 'Longitude still dirty after formatting.')
 def buildWheelSpeed(self, data):
     #c<timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.LF_KPH),
         DataState.get_data_name_at_idx(DataState.names.RF_KPH),
         DataState.get_data_name_at_idx(DataState.names.LR_KPH),
         DataState.get_data_name_at_idx(DataState.names.RR_KPH)
     ]
     data.clean_fields(field_names)
     return "wheel_speed,{0},lap={1} left_front={2},right_front={3},left_rear={4},right_rear={5} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.LF_KPH]),
         data.get_data_item(DataState.names[DataState.names.RF_KPH]),
         data.get_data_item(DataState.names[DataState.names.LR_KPH]),
         data.get_data_item(DataState.names[DataState.names.RR_KPH]))
Esempio n. 20
0
 def testAcceleration(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('GPS_Time', '21:23:48.021')
     self.test_state.set_data_item('GPS_Date', '15-05-19')
     self.test_state.set_data_item('X', 0.15)
     self.test_state.set_data_item('Y', 0.86)
     self.test_state.set_data_item('Z', 1.18)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'acceleration,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 x=0.15,y=0.86,z=1.18 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for acceleration was not as expected.')
     self.assertTrue('X' not in self.test_state.get_dirty_fields(), 'X still dirty after formatting.')
     self.assertTrue('Y' not in self.test_state.get_dirty_fields(), 'Y still dirty after formatting.')
     self.assertTrue('Z' not in self.test_state.get_dirty_fields(), 'Z still dirty after formatting.')
 def formatHeading(self, data_state):
     print("Formatting header...")
     csv_line = DataState.names[DataState.names.Time]
     for idx in range(DataState.names.GPS_Time, DataState.names.EOL):
         csv_line += ", "
         csv_line += DataState.get_data_name_at_idx(idx)
     return csv_line
Esempio n. 22
0
 def testWheelSpeed(self):
     self.test_state = DataState()
     self.test_state.set_data_item('Time', 321.36)
     self.test_state.set_data_item('DateTime', datetime(2019,5,15,21,23,48,21000,timezone.utc))
     self.test_state.set_data_item('LF_KPH', 85.2)
     self.test_state.set_data_item('RF_KPH', 86.9)
     self.test_state.set_data_item('LR_KPH', 85.0)
     self.test_state.set_data_item('RR_KPH', 86.7)
     self.test_state.set_data_item('Lap', 3)
     actual = self.test_formatter.formatData(self.test_state)
     expected = 'wheel_speed,vehicle=cayman,vin=WP0AB29858U782772,mileage=79832,lap=3 left_front=85.2,right_front=86.9,left_rear=85.0,right_rear=86.7 1557955428021'
     self.assertEqual(expected, actual[0], 'The generated influxdb line protocol data for wheel_speed was not as expected.')
     self.assertTrue('LF_KPH' not in self.test_state.get_dirty_fields(), 'LF_KPH still dirty after formatting.')
     self.assertTrue('RF_KPH' not in self.test_state.get_dirty_fields(), 'RF_KPH still dirty after formatting.')
     self.assertTrue('LR_KPH' not in self.test_state.get_dirty_fields(), 'LR_KPH still dirty after formatting.')
     self.assertTrue('RR_KPH' not in self.test_state.get_dirty_fields(), 'RR_KPH still dirty after formatting.')
 def buildRPM(self, data):
     #rpm,vin=<vin>,lap=<lap> value=<9999> <timestamp>
     field_names = [DataState.get_data_name_at_idx(DataState.names.RPM)]
     data.clean_fields(field_names)
     return "rpm,{0},lap={1} value={2} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.RPM]))
 def buildClutch(self, data):
     #clutch,vin=<vin>,lap=<lap> released=[0/1] <timestamp>
     field_names = [DataState.get_data_name_at_idx(DataState.names.Clutch)]
     data.clean_fields(field_names)
     return "clutch,{0},lap={1} released={2} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.Clutch]))
 def testFrame246(self):
     test_fields = [
         "$CNDRV", "476.72", "246", "0B", "00", "C8", "E1", "58", "C3",
         "65", "00"
     ]
     test_extractor = CanFrame246Extractor()
     test_extractor.extractData(test_fields, CanFrameParserTest.test_state)
     self.assertEqual(
         3,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Gear)),
         'Gear indicator was not parsed correctly.')
     self.assertAlmostEqual(
         88,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Throttle)), 2,
         'ECU commanded throttle was not parsed correctly.')
     pass
 def buildOilPressure(self, data):
     #oil_pressure,vin=<vin>,lap=<lap> value=<oil-pressure> <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Oil_Pressure)
     ]
     data.clean_fields(field_names)
     return "oil_pressure,{0},lap={1} value={2} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(DataState.names[DataState.names.Oil_Pressure]))
 def testFrame441(self):
     test_fields = [
         "$CNDRV", "476.72", "441", "0B", "10", "C8", "10", "0E", "67",
         "82", "10"
     ]
     test_extractor = CanFrame441Extractor()
     test_extractor.extractData(test_fields, CanFrameParserTest.test_state)
     self.assertAlmostEqual(
         89.33,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(
                 DataState.names.Oil_Temperature)), 2,
         'Oil temperature was not parsed correctly.')
     self.assertEqual(
         325,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Oil_Pressure)),
         'Oil pressure was not parsed correctly.')
     pass
 def testParserFrame246(self):
     test_line = "$CNDRV,478.50,246,04,00,C8,FA,58,C3,65,00"
     CanFrameParserTest.test_parser.parse(test_line)
     self.assertEqual(
         478.50,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Time)),
         'Time was not parsed correctly.')
     self.assertEqual(
         4,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Gear)),
         'Gear indicator was not parsed correctly.')
     self.assertAlmostEqual(
         98,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Throttle)), 2,
         'ECU commanded throttle was not parsed correctly.')
     pass
 def testFrame245(self):
     test_fields = [
         "$CNDRV", "476.72", "245", "01", "6C", "02", "00", "58", "00",
         "65", "00"
     ]
     test_extractor = CanFrame245Extractor()
     test_extractor.extractData(test_fields, CanFrameParserTest.test_state)
     self.assertEqual(
         96,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(
                 DataState.names.Coolant_Temperature)),
         'Coolant temperature was not parsed correctly.')
     self.assertEqual(
         1,
         self.test_state.get_data_item(
             DataState.get_data_name_at_idx(DataState.names.Brake)),
         'Brake pedal was not parsed correctly.')
     pass
 def buildCoolant(self, data):
     #coolant_temperature,vin=<vin>,lap=<lap> value=<coolant-temperature> <timestamp>
     field_names = [
         DataState.get_data_name_at_idx(DataState.names.Coolant_Temperature)
     ]
     data.clean_fields(field_names)
     return "coolant_temperature,{0},lap={1} value={2} ".format(
         self.tags,
         data.get_data_item(DataState.names[DataState.names.Lap]),
         data.get_data_item(
             DataState.names[DataState.names.Coolant_Temperature]))