Skip to content
Snippets Groups Projects
Commit fe04fa79 authored by Claudiu MILEA (95030)'s avatar Claudiu MILEA (95030)
Browse files

Write PASTA1.0 CAN specifications (frame id, source and target) - source:...

Write PASTA1.0 CAN specifications (frame id, source and target) - source: https://github.com/pasta-auto/PASTA1.0/blob/master/doc/PASTA1.0%20CAN-ID%20List%20v1.0E.pdf
parent aab73cd3
No related branches found
No related tags found
1 merge request!3Add basic setup for sending frames via CAN Bus and Ethernet between three processes (chassis, powertrain, body)
from enum import Enum, IntEnum
class VehicleSegment(Enum):
Chassis = 0
PowerTrain = 1
Body = 2
class CAN_ID(IntEnum):
BrakeOperationIndicator = 0x1A
BrakeOutputIndicator = 0x24
BrakeOilIndcator = 0x146
AntiLockBrakeOperation = 0x15A
AcceleratorPedalOperationIndicator = 0x2F
ThrottlePosition = 0x39
ThrottleAdjustment = 0x16F
EngineRPMOrSpeed = 0x43
EngineCoolingWaterTemperature = 0x183
EngineMalfunction = 0x18D
SteeringWheelOperationPosition = 0x58
PowerSteeringOutputIndicator = 0x62
PowerSteeringMalfunction = 0x198
ShiftPositionSwitch = 0x6D
ShiftPosition = 0x77
EngineStartButton = 0x1B8
EngineStatus = 0x19A
FuelAmount = 0x3D4
BatteryWarning = 0x3DE
RightLeftTurnSignalOrHazardSwitch = 0x83
TurnSignalIndicator = 0x8D
HornSwitch = 0x98
HornOperation = 0xA2
PositionOrHeadLightsOrHighBeamSwitch = 0x1A7
HeadlightFlashingSwitch = 0x1B1
PositionOrHeadLightsOrHighBeamIndicator = 0x1BB
FrontWiperOrWasherSwitch = 0x25C
FrontWiperOrWasherStatus = 0x266
RearWiperOrWasherSwitch = 0x271
RearWiperOrWasherStatus = 0x27B
DoorsLockOrUnlockSwitch = 0x286
DoorsOpenClosedOrLockedUnlockedIndicator = 0x290
DoorLockDriveUnitMalfunction = 0x420
ParkingBrake = 0x1C9
ParkingBrakeStatus = 0x1D3
RightDoorOrWindowLiftingSwitch = 0x29C
RightDoorOrWindowPositionOrLimitSwitchStatus = 0x2A6
LeftDoorOrWindowLiftingSwitch = 0x2B1
LeftDoorOrWindowPositionOrLimitSwitchStatus = 0x2BB
AirbagActivationSwitch = 0xB4
SeatBeltSensor = 0x457
SeatBeltAlarm = 0x461
BonnetHoodOpenOrCloseSwitch = 0x46C
TrunkOpenOrCloseSwitch = 0x477
EcoDrivingJudgement = 0x482
@property
def source(self):
match self:
case CAN_ID.BrakeOperationIndicator, CAN_ID.AcceleratorPedalOperationIndicator, CAN_ID.SteeringWheelOperationPosition, CAN_ID.ShiftPositionSwitch, CAN_ID.EngineStartButton, CAN_ID.RightLeftTurnSignalOrHazardSwitch, CAN_ID.HornSwitch, CAN_ID.PositionOrHeadLightsOrHighBeamSwitch, CAN_ID.HeadlightFlashingSwitch, CAN_ID.FrontWiperOrWasherSwitch, CAN_ID.RearWiperOrWasherSwitch, CAN_ID.DoorsLockOrUnlockSwitch, CAN_ID.ParkingBrake, CAN_ID.RightDoorOrWindowLiftingSwitch, CAN_ID.LeftDoorOrWindowLiftingSwitch:
return VehicleSegment.Chassis
case CAN_ID.TurnSignalIndicator, CAN_ID.HornOperation, CAN_ID.PositionOrHeadLightsOrHighBeamIndicator, CAN_ID.FrontWiperOrWasherStatus, CAN_ID.RearWiperOrWasherStatus, CAN_ID.DoorsOpenClosedOrLockedUnlockedIndicator, CAN_ID.DoorLockDriveUnitMalfunction, CAN_ID.RightDoorOrWindowPositionOrLimitSwitchStatus, CAN_ID.LeftDoorOrWindowPositionOrLimitSwitchStatus, CAN_ID.AirbagActivationSwitch, CAN_ID.SeatBeltAlarm, CAN_ID.SeatBeltSensor, CAN_ID.BonnetHoodOpenOrCloseSwitch, CAN_ID.TrunkOpenOrCloseSwitch:
return VehicleSegment.Body
case _:
return VehicleSegment.PowerTrain
@property
def execution(self):
match self:
case CAN_ID.BrakeOperationIndicator, CAN_ID.AcceleratorPedalOperationIndicator, CAN_ID.ShiftPositionSwitch, CAN_ID.EngineStartButton, CAN_ID.ParkingBrake:
return VehicleSegment.PowerTrain
case CAN_ID.RightLeftTurnSignalOrHazardSwitch, CAN_ID.HornSwitch, CAN_ID.PositionOrHeadLightsOrHighBeamSwitch, CAN_ID.HeadlightFlashingSwitch, CAN_ID.FrontWiperOrWasherSwitch, CAN_ID.RearWiperOrWasherSwitch, CAN_ID.DoorsLockOrUnlockSwitch, CAN_ID.RightDoorOrWindowLiftingSwitch, CAN_ID.LeftDoorOrWindowLiftingSwitch:
return VehicleSegment.Body
case _:
return VehicleSegment.Chassis
@property
def description(self):
return self._description_
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment