fixed error on can parsing

This commit is contained in:
2024-05-28 04:55:31 +02:00
parent eb5733da97
commit 452246951b
3 changed files with 26 additions and 9 deletions

View File

@@ -139,6 +139,10 @@ void byteToHex(uint8_t byte, char * hex) {
hex[1] = hexLookup[byte & 0x0F];
}
static FDCAN_RxHeaderTypeDef RxHeader = {0};
static uint8_t RxData[8] = {0};
void CarCanTask_func(void *argument) {
// for testing accept all messages from the car can bus
@@ -160,8 +164,7 @@ void CarCanTask_func(void *argument) {
Error_Handler();
}
FDCAN_RxHeaderTypeDef RxHeader;
uint8_t RxData[8];
for(;;) {
// wait for interrupt event on any fifo

View File

@@ -31,7 +31,7 @@ void Vehicle_Setup_CAN() {
}
static void rx_unlock(uint8_t * RxData ) {
static void rx_unlock_key(uint8_t * RxData ) {
if (RxData[1] == 0x04)
{
// car was unlocked
@@ -47,6 +47,20 @@ static void rx_unlock(uint8_t * RxData ) {
}
static void rx_unlock_secure(uint8_t * RxData ) {
if ((RxData[0] & 0x0F) == 0x01) {
// car was unlocked
last_unlock_message_time = osKernelGetTickCount();
} else if ((RxData[0] & 0x0F) == 0x02) {
// car was locked
if (!BSP_GPIO_K15isSet()) {
NVIC_SystemReset();
}
}
}
static void rx_speed(uint8_t * RxData) {
// speed signal
@@ -70,11 +84,11 @@ static void rx_brightness(uint8_t* RxData) {
void Vehicle_Receive_CAN( FDCAN_RxHeaderTypeDef RxHeader, uint8_t* RxData) {
if(RxHeader.Identifier == 0x391) {
rx_unlock(RxData);
rx_unlock_key(RxData);
}
if (RxHeader.Identifier == 0x395) {
rx_unlock(RxData);
rx_unlock_secure(RxData);
}

View File

@@ -6,10 +6,10 @@ if __name__ == "__main__":
ser = setup_connection()
# Create a message
request = UpdateDeviceSettings()
request.device = 5
request.type = Type.LIGHT
request.position.append(Position.RIGHT)
request.position.append(Position.FLOOR)
request.device = 0
request.type = Type.COMMING_HOME
request.position.append(Position.LEFT)
request.position.append(Position.CENTER)
# Serialize the request to a bytearray
request_data = request.SerializeToString()