Exemple #1
0
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="%"),
    ]
Exemple #2
0
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="%"),
    ]
Exemple #3
0
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'),
    ]
Exemple #4
0
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'),
    ]
Exemple #5
0
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),
    ]
Exemple #6
0
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="%")
    ]
Exemple #7
0
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'),
    ]
Exemple #8
0
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="%"),
    ]
Exemple #9
0
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"),
    ]
Exemple #10
0
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"),
    ]
Exemple #11
0
    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")
Exemple #12
0
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")
    ]
Exemple #13
0
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"),
    ]
Exemple #14
0
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"),
    ]
Exemple #15
0
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'),
    ]
Exemple #16
0
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'),
    ]
Exemple #17
0
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)
    ]
Exemple #18
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)
    ]
Exemple #19
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")
Exemple #20
0
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'),
    ]
Exemple #21
0
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'),
    ]
Exemple #22
0
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'),
    ]
Exemple #23
0
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),
    ]
Exemple #24
0
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'),
    ]
Exemple #25
0
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)
    ]
Exemple #26
0
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),
    ]
Exemple #27
0
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="%"),
    ]
Exemple #28
0
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")
    ]
Exemple #29
0
class OBD_PID5D(OBD_Packet):
    name = "PID_5D_FuelInjectionTiming"
    fields_desc = [
        ScalingField('data',
                     0,
                     scaling=1 / 128.,
                     offset=-210,
                     unit="deg.",
                     fmt="H")
    ]
Exemple #30
0
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'),
    ]