class OBD_PID6C(OBD_Packet): name = "PID_6C_CommandedThrottleActuatorControlAndRelativeThrottlePosition" fields_desc = [ BitField('reserved', 0, 4), BitField('relative_throttle_b_position_supported', 0, 1), BitField('commanded_throttle_actuator_b_control_supported', 0, 1), BitField('relative_throttle_a_position_supported', 0, 1), BitField('commanded_throttle_actuator_a_control_supported', 0, 1), ScalingField('commanded_throttle_actuator_a_control', 0, scaling=100 / 255., unit="%"), ScalingField('relative_throttle_a_position', 0, scaling=100 / 255., unit="%"), ScalingField('commanded_throttle_actuator_b_control', 0, scaling=100 / 255., unit="%"), ScalingField('relative_throttle_b_position', 0, scaling=100 / 255., unit="%"), ]
class OBD_PID71(OBD_Packet): name = "PID_71_VariableGeometryTurboControl" fields_desc = [ BitField('reserved', 0, 4), BitField('vgt_b_position_supported', 0, 1), BitField('commanded_vgt_b_position_supported', 0, 1), BitField('vgt_a_position_supported', 0, 1), BitField('commanded_vgt_a_position_supported', 0, 1), ScalingField('commanded_variable_geometry_turbo_a_position', 0, scaling=100 / 255., unit="%"), ScalingField('variable_geometry_turbo_a_position', 0, scaling=100 / 255., unit="%"), ScalingField('commanded_variable_geometry_turbo_b_position', 0, scaling=100 / 255., unit="%"), ScalingField('variable_geometry_turbo_b_position', 0, scaling=100 / 255., unit="%"), ]
class OBD_PID70(OBD_Packet): name = "PID_70_BoostPressureControl" fields_desc = [ BitField('reserved', 0, 4), BitField('boost_pressure_sensor_b_supported', 0, 1), BitField('commanded_boost_pressure_b_supported', 0, 1), BitField('boost_pressure_sensor_a_supported', 0, 1), BitField('commanded_boost_pressure_a_supported', 0, 1), ScalingField('commanded_boost_pressure_a', 0, scaling=0.03125, unit="kPa", fmt='H'), ScalingField('boost_pressure_sensor_a', 0, scaling=0.03125, unit="kPa", fmt='H'), ScalingField('commanded_boost_pressure_b', 0, scaling=0.03125, unit="kPa", fmt='H'), ScalingField('boost_pressure_sensor_b', 0, scaling=0.03125, unit="kPa", fmt='H'), ]
class _OBD_PID_ExhaustGasTemperatureBank(OBD_Packet): fields_desc = [ BitField('sensor1_supported', 0, 1), BitField('sensor2_supported', 0, 1), BitField('sensor3_supported', 0, 1), BitField('sensor4_supported', 0, 1), BitField('reserved', 0, 4), ScalingField('sensor1', -40, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ScalingField('sensor2', -40, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ScalingField('sensor3', -40, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ScalingField('sensor4', -40, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ]
class OBD_PID76(OBD_Packet): name = "PID_76_TurbochargerBTemperature" fields_desc = [ BitField('reserved', 0, 4), BitField('turbo_a_turbine_outlet_temperature_supported', 0, 1), BitField('turbo_a_turbine_inlet_temperature_supported', 0, 1), BitField('turbo_a_compressor_outlet_temperature_supported', 0, 1), BitField('turbo_a_compressor_inlet_temperature_supported', 0, 1), ScalingField('turbocharger_a_compressor_inlet_temperature', 0, unit="deg. C", offset=-40), ScalingField('turbocharger_a_compressor_outlet_temperature', 0, unit="deg. C", offset=-40), ScalingField('turbocharger_a_turbine_inlet_temperature', 0, unit="deg. C", offset=-40, fmt='H', scaling=0.1), ScalingField('turbocharger_a_turbine_outlet_temperature', 0, unit="deg. C", offset=-40, fmt='H', scaling=0.1), ]
class _OBD_SensorTrimPacket2(OBD_Packet): fields_desc = [ ScalingField('bank1', 0, scaling=1 / 128., offset=-100, unit="%"), ScalingField('bank3', 0, scaling=1 / 128., offset=-100, unit="%") ]
class OBD_PID7C(OBD_Packet): name = "PID_7C_DieselParticulateFilterTemperature" fields_desc = [ BitField('reserved', 0, 4), BitField('bank2_outlet_temperature_supported', 0, 1), BitField('bank2_inlet_temperature_supported', 0, 1), BitField('bank1_outlet_temperature_supported', 0, 1), BitField('bank1_inlet_temperature_supported', 0, 1), ScalingField('bank1_inlet_temperature_sensor', 0, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ScalingField('bank1_outlet_temperature_sensor', 0, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ScalingField('bank2_inlet_temperature_sensor', 0, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ScalingField('bank2_outlet_temperature_sensor', 0, unit="deg. C", offset=-40, scaling=0.1, fmt='H'), ]
class OBD_PID6A(OBD_Packet): name = "PID_6A_CommandedDieselIntakeAirFlowControl" \ "AndRelativeIntakeAirFlowPosition" fields_desc = [ BitField('reserved', 0, 4), BitField('relative_intake_air_flow_b_position_supported', 0, 1), BitField('commanded_intake_air_flow_b_control_supported', 0, 1), BitField('relative_intake_air_flow_a_position_supported', 0, 1), BitField('commanded_intake_air_flow_a_control_supported', 0, 1), ScalingField('commanded_intake_air_flow_a_control', 0, scaling=100 / 255., unit="%"), ScalingField('relative_intake_air_flow_a_position', 0, scaling=100 / 255., unit="%"), ScalingField('commanded_intake_air_flow_b_control', 0, scaling=100 / 255., unit="%"), ScalingField('relative_intake_air_flow_b_position', 0, scaling=100 / 255., unit="%"), ]
class _OBD_TID_Voltage(OBD_Packet): fields_desc = [ ScalingField('data_a', 0, 0.005, "V"), ScalingField('data_b', 0, 0.005, "V"), ScalingField('data_c', 0, 0.005, "V"), ScalingField('data_d', 0, 0.005, "V"), ScalingField('data_e', 0, 0.005, "V"), ]
class _OBD_TID_Period(OBD_Packet): fields_desc = [ ScalingField('data_a', 0, 0.04, "s"), ScalingField('data_b', 0, 0.04, "s"), ScalingField('data_c', 0, 0.04, "s"), ScalingField('data_d', 0, 0.04, "s"), ScalingField('data_e', 0, 0.04, "s"), ]
def __init__(self, name, default, start, size, scaling=1, unit="", offset=0, ndigits=3, fmt="B"): ScalingField.__init__(self, name, default, scaling, unit, offset, ndigits, fmt) self.start = start self.size = abs(size) if fmt[-1] == "f" and self.size != 32: raise Scapy_Exception("SignalField size has to be 32 for floats")
class OBD_PID4F(OBD_Packet): name = "PID_4F_VariousMaxValues" fields_desc = [ ScalingField('equivalence_ratio', 0), ScalingField('sensor_voltage', 0, unit="V"), ScalingField('sensor_current', 0, unit="mA"), ScalingField('intake_manifold_absolute_pressure', 0, scaling=10, unit="kPa") ]
class OBD_PID6F(OBD_Packet): name = "PID_6F_TurbochargerCompressorInletPressure" fields_desc = [ BitField('reserved', 0, 6), BitField('sensor_b_supported', 0, 1), BitField('sensor_a_supported', 0, 1), ScalingField('sensor_a', 0, unit="kPa"), ScalingField('sensor_b', 0, unit="kPa"), ]
class OBD_PID66(OBD_Packet): name = "PID_66_MassAirFlowSensor" fields_desc = [ BitField('reserved', 0, 6), BitField('sensor_b_supported', 0, 1), BitField('sensor_a_supported', 0, 1), ScalingField('sensor_a', 0, scaling=0.03125, unit="g/s", fmt="H"), ScalingField('sensor_b', 0, scaling=0.03125, unit="g/s", fmt="H"), ]
class OBD_PID73(OBD_Packet): name = "PID_73_ExhaustPressure" fields_desc = [ BitField('reserved', 0, 6), BitField('sensor_bank2_supported', 0, 1), BitField('sensor_bank1_supported', 0, 1), ScalingField('sensor_bank1', 0, scaling=0.01, unit="kPa", fmt='H'), ScalingField('sensor_bank2', 0, scaling=0.01, unit="kPa", fmt='H'), ]
class OBD_PID74(OBD_Packet): name = "PID_74_TurbochargerRpm" fields_desc = [ BitField('reserved', 0, 6), BitField('b_supported', 0, 1), BitField('a_supported', 0, 1), ScalingField('a_rpm', 0, unit="min-1", fmt='H'), ScalingField('b_rpm', 0, unit="min-1", fmt='H'), ]
class OBD_PID67(OBD_Packet): name = "PID_67_EngineCoolantTemperature" fields_desc = [ BitField('reserved', 0, 6), BitField('sensor2_supported', 0, 1), BitField('sensor1_supported', 0, 1), ScalingField('sensor1', 0, unit="deg. C", offset=-40.0), ScalingField('sensor2', 0, unit="deg. C", offset=-40.0) ]
class OBD_PID64(OBD_Packet): name = "PID_64_EnginePercentTorqueData" fields_desc = [ ScalingField('at_point1', 0, unit="%", offset=-125.0), ScalingField('at_point2', 0, unit="%", offset=-125.0), ScalingField('at_point3', 0, unit="%", offset=-125.0), ScalingField('at_point4', 0, unit="%", offset=-125.0), ScalingField('at_point5', 0, unit="%", offset=-125.0) ]
def __init__(self, name, default, start, size, scaling=1, unit="", offset=0, ndigits=3, fmt="B"): # type: (str, Union[int, float], int, int, Union[int, float], str, Union[int, float], int, str) -> None # noqa: E501 ScalingField.__init__(self, name, default, scaling, unit, offset, ndigits, fmt) self.start = start self.size = abs(size) if fmt[-1] == "f" and self.size != 32: raise Scapy_Exception("SignalField size has to be 32 for floats")
class OBD_PID7F(OBD_Packet): name = "PID_7F_EngineRunTime" fields_desc = [ BitField('reserved', 0, 5), BitField('total_with_pto_active_supported', 0, 1), BitField('total_idle_supported', 0, 1), BitField('total_supported', 0, 1), ScalingField('total', 0, unit='sec', fmt='Q'), ScalingField('total_idle', 0, unit='sec', fmt='Q'), ScalingField('total_with_pto_active', 0, unit='sec', fmt='Q'), ]
class OBD_PID83(OBD_Packet): name = "PID_83_NOxSensor" fields_desc = [ BitField('reserved', 0, 6), BitField('nox_sensor_concentration_bank2_sensor1_supported', 0, 1), BitField('nox_sensor_concentration_bank1_sensor1_supported', 0, 1), ScalingField('nox_sensor_concentration_bank1_sensor1', 0, unit='ppm', fmt='H'), ScalingField('nox_sensor_concentration_bank2_sensor1', 0, unit='ppm', fmt='H'), ]
class OBD_PID6E(OBD_Packet): name = "PID_6E_InjectionPressureControlSystem" fields_desc = [ BitField('reserved', 0, 6), BitField('injection_control_pressure_supported', 0, 1), BitField('commanded_injection_control_pressure_supported', 0, 1), ScalingField('commanded_injection_control_pressure', 0, scaling=10, unit="kPa", fmt='H'), ScalingField('injection_control_pressure', 0, scaling=10, unit="kPa", fmt='H'), ]
class OBD_PID77(OBD_Packet): name = "PID_77_ChargeAirCoolerTemperature" fields_desc = [ BitField('reserved', 0, 4), BitField('bank2_sensor2_supported', 0, 1), BitField('bank2_sensor1_supported', 0, 1), BitField('bank1_sensor2_supported', 0, 1), BitField('bank1_sensor1_supported', 0, 1), ScalingField('bank1_sensor1', 0, unit="deg. C", offset=-40), ScalingField('bank1_sensor2', 0, unit="deg. C", offset=-40), ScalingField('bank2_sensor1', 0, unit="deg. C", offset=-40), ScalingField('bank2_sensor2', 0, unit="deg. C", offset=-40), ]
class _OBD_PID_DieselParticulateFilter(OBD_Packet): fields_desc = [ BitField('reserved', 0, 5), BitField('outlet_pressure_supported', 0, 1), BitField('inlet_pressure_supported', 0, 1), BitField('delta_pressure_supported', 0, 1), ScalingField('delta_pressure', 0, unit='kPa', offset=-327.68, scaling=0.01, fmt='H'), ScalingField('particulate_filter', 0, unit='kPa', scaling=0.01, fmt='H'), ScalingField('outlet_pressure', 0, unit='kPa', scaling=0.01, fmt='H'), ]
class OBD_PID6D(OBD_Packet): name = "PID_6D_FuelPressureControlSystem" fields_desc = [ BitField('reserved', 0, 5), BitField('fuel_temperature_supported', 0, 1), BitField('fuel_rail_pressure_supported', 0, 1), BitField('commanded_fuel_rail_pressure_supported', 0, 1), ScalingField('commanded_fuel_rail_pressure', 0, scaling=10, unit="kPa", fmt='H'), ScalingField('fuel_rail_pressure', 0, scaling=10, unit="kPa", fmt='H'), ScalingField('fuel_rail_temperature', 0, unit="deg. C", offset=-40) ]
class OBD_PID6B(OBD_Packet): name = "PID_6B_ExhaustGasRecirculationTemperature" fields_desc = [ BitField('reserved', 0, 4), BitField('bank2_sensor2_supported', 0, 1), BitField('bank2_sensor1_supported', 0, 1), BitField('bank1_sensor2_supported', 0, 1), BitField('bank1_sensor1_supported', 0, 1), ScalingField('bank1_sensor1', 0, unit="deg. C", offset=-40), ScalingField('bank1_sensor2', 0, unit="deg. C", offset=-40), ScalingField('bank2_sensor1', 0, unit="deg. C", offset=-40), ScalingField('bank2_sensor2', 0, unit="deg. C", offset=-40), ]
class OBD_PID72(OBD_Packet): name = "PID_72_WastegateControl" fields_desc = [ BitField('reserved', 0, 4), BitField('wastegate_b_position_supported', 0, 1), BitField('commanded_wastegate_b_position_supported', 0, 1), BitField('wastegate_a_position_supported', 0, 1), BitField('commanded_wastegate_a_position_supported', 0, 1), ScalingField('commanded_wastegate_a_position', 0, scaling=100 / 255., unit="%"), ScalingField('wastegate_a_position', 0, scaling=100 / 255., unit="%"), ScalingField('commanded_wastegate_b_position', 0, scaling=100 / 255., unit="%"), ScalingField('wastegate_b_position', 0, scaling=100 / 255., unit="%"), ]
class OBD_PID3F(OBD_Packet): name = "PID_3F_CatalystTemperatureBank2Sensor2" fields_desc = [ ScalingField('data', 0, scaling=0.1, unit="deg. C", offset=-40.0, fmt="H") ]
class OBD_PID5D(OBD_Packet): name = "PID_5D_FuelInjectionTiming" fields_desc = [ ScalingField('data', 0, scaling=1 / 128., offset=-210, unit="deg.", fmt="H") ]
class OBD_PID82(OBD_Packet): name = "PID_82_EngineRunTimeForAuxiliaryEmissionsControlDevice" fields_desc = [ BitField('reserved', 0, 3), BitField('total_run_time_with_ei_aecd10_supported', 0, 1), BitField('total_run_time_with_ei_aecd9_supported', 0, 1), BitField('total_run_time_with_ei_aecd8_supported', 0, 1), BitField('total_run_time_with_ei_aecd7_supported', 0, 1), BitField('total_run_time_with_ei_aecd6_supported', 0, 1), ScalingField('total_run_time_with_ei_aecd6', 0, unit='sec', fmt='Q'), ScalingField('total_run_time_with_ei_aecd7', 0, unit='sec', fmt='Q'), ScalingField('total_run_time_with_ei_aecd8', 0, unit='sec', fmt='Q'), ScalingField('total_run_time_with_ei_aecd9', 0, unit='sec', fmt='Q'), ScalingField('total_run_time_with_ei_aecd10', 0, unit='sec', fmt='Q'), ]