2023-08-25 12:13:51 +00:00
|
|
|
|
/**
|
|
|
|
|
* @author R<EFBFBD>mi Heredero
|
|
|
|
|
* @version 1.0.0
|
|
|
|
|
* @date August 2023
|
|
|
|
|
* @file can_message.c
|
|
|
|
|
*/
|
|
|
|
|
|
2023-08-27 15:39:45 +00:00
|
|
|
|
#include "can_message.h"
|
2023-08-25 12:13:51 +00:00
|
|
|
|
#include "../middleware/can_interface.h"
|
2023-08-25 16:23:36 +00:00
|
|
|
|
#include "car.h"
|
|
|
|
|
#include "../app/factory/factory.h"
|
2023-08-25 12:13:51 +00:00
|
|
|
|
|
2023-08-25 16:23:36 +00:00
|
|
|
|
typedef union {
|
|
|
|
|
struct {
|
|
|
|
|
uint8_t byte0;
|
|
|
|
|
uint8_t byte1;
|
|
|
|
|
uint8_t byte2;
|
|
|
|
|
uint8_t byte3;
|
|
|
|
|
} separate;
|
|
|
|
|
struct {
|
|
|
|
|
uint32_t bytes;
|
|
|
|
|
} full;
|
|
|
|
|
} BYTES_4;
|
|
|
|
|
|
|
|
|
|
void CM_processIncome(uint8_t idSender, uint8_t idMsg, uint32_t data){
|
|
|
|
|
switch(idSender){
|
|
|
|
|
case 0: // Broadcast / Debug
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 2: // Joystick
|
|
|
|
|
if(idMsg == 0x1) { // JOY_MESURE
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(idMsg == 0xF) { // JOY_ALIVE
|
|
|
|
|
ALIVE_CHECKER_ISALIVE(ACjoy());
|
2023-08-25 20:53:04 +00:00
|
|
|
|
if(ACjoy()->state == STAC_DEAD){
|
2023-08-27 19:35:19 +00:00
|
|
|
|
CAR_CST.JOYSTICK_MODE = MEM_read_one_byte(MEMADD_JOYSTICK_MODE);
|
|
|
|
|
CAR_CST.JOYSTICK_PARAM1 = MEM_read_one_byte(MEMADD_JOYSTICK_PARAM1);
|
|
|
|
|
CAR_CST.JOYSTICK_PARAM2 = MEM_read_one_byte(MEMADD_JOYSTICK_PARAM2);
|
|
|
|
|
CAR_CST.JOYSTICK_ALIVE_TIME = MEM_read_one_byte(MEMADD_JOYSTICK_ALIVE_TIME);
|
|
|
|
|
ALIVE_CHECKER_setAliveTime(ACjoy(), CAR_CST.JOYSTICK_ALIVE_TIME);
|
2023-08-25 20:53:04 +00:00
|
|
|
|
ALIVE_CHECKER_emitBorn(ACjoy(), 0, 0);
|
|
|
|
|
ALIVE_CHECKER_emitReady(ACjoy(), 100, 0);
|
|
|
|
|
}
|
2023-08-25 16:23:36 +00:00
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 3: // Display
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 4: // Drive
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 5: // Steering
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 6: // Supply
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 7: // Undefined
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_CONTROLLER_ALIVE(void* p) {
|
2023-08-25 12:13:51 +00:00
|
|
|
|
CAN_Send(0x0, 0xF, 0);
|
2023-08-25 16:23:36 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_JOY_SETUP(void* p) {
|
|
|
|
|
BYTES_4 joy;
|
|
|
|
|
joy.separate.byte0 = CAR_CST.JOYSTICK_MODE;
|
|
|
|
|
joy.separate.byte1 = CAR_CST.JOYSTICK_PARAM1;
|
|
|
|
|
joy.separate.byte2 = CAR_CST.JOYSTICK_PARAM2;
|
|
|
|
|
joy.separate.byte3 = CAR_CST.JOYSTICK_ALIVE_TIME;
|
|
|
|
|
CAN_Send(2, 0, joy.full.bytes);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
void CM_DISPLAY_SETUP(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_DISPLAY_SPEED(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_DISPLAY_DIRECTION(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_DRIVE_SETUP(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_DRIVE_POWER(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_STEERING_SETUP(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_STEERING_SET(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CM_SETUP_CONTROL(void* p) {
|
|
|
|
|
|
|
|
|
|
}
|