A few ideas for can mappings
This commit is contained in:
parent
84b4a487fc
commit
298fd8709c
133
Software/Core/Inc/mappings_o.h
Normal file
133
Software/Core/Inc/mappings_o.h
Normal file
@ -0,0 +1,133 @@
|
||||
#ifndef MAPPINGS_H
|
||||
#define MAPPINGS_H
|
||||
|
||||
#define SN_FRONT
|
||||
//#define SN_REAR
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct {
|
||||
uint8_t en;
|
||||
uint16_t can_id;
|
||||
uint8_t start_bit;
|
||||
char name[16];
|
||||
float scale_factor; // (phys_max/can_scale)/adc_quants
|
||||
} adc_ch_tx_cfg_t;
|
||||
|
||||
static adc_ch_tx_cfg_t CAN_TX_MAP[16] = {
|
||||
/* 0 */ {.en = 1, .can_id = 0xD1, .start_bit = 16, .name = "SAS" , .scale_factor = ((6.5535/0.0001)/(2^12)) },
|
||||
/* 1 */ {.en = 1, .can_id = 0xD2, .start_bit = 0, .name = "APPS1" , .scale_factor = ((6.5535/0.0001)/(2^12)) },
|
||||
/* 2 */ {.en = 0, .can_id = 0x00, .start_bit = 0, .name = "_unused_", .scale_factor = 0 },
|
||||
/* 3 */ {.en = 0, .can_id = 0x00, .start_bit = 0, .name = "_unused_", .scale_factor = 0 },
|
||||
/* 4 */ {.en = 0, .can_id = 0x00, .start_bit = 0, .name = "_unused_", .scale_factor = 0 },
|
||||
/* 5 */ {.en = 0, .can_id = 0x00, .start_bit = 0, .name = "_unused_", .scale_factor = 0 },
|
||||
/* 6 */ {.en = 0, .can_id = 0x00, .start_bit = 0, .name = "_unused_", .scale_factor = 0 },
|
||||
/* 7 */ {.en = 0, .can_id = 0x00, .start_bit = 0, .name = "_unused_", .scale_factor = 0 },
|
||||
/* 8 */ {.en = 1, .can_id = 0xD2, .start_bit = 16, .name = "APPS2" , .scale_factor = ((6.5535/0.0001)/(2^12)) },
|
||||
/* 9 */ {.en = 1, .can_id = 0xD3, .start_bit = 0, .name = "DS FL" , .scale_factor = ((6.5535/0.0001)/(2^12)) },
|
||||
/* A */ {.en = 1, .can_id = 0xD1, .start_bit = 0, .name = "BPS F" , .scale_factor = ((6.5535/0.0001)/(2^12)) },
|
||||
/* ... */
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
L1 = 0,
|
||||
L2 = 1,
|
||||
L3 = 2,
|
||||
L4 = 3,
|
||||
L5 = 4,
|
||||
L6 = 5,
|
||||
L7 = 6,
|
||||
L8 = 7,
|
||||
R9 = 8,
|
||||
RA = 9,
|
||||
RB = 10,
|
||||
RC = 11,
|
||||
RD = 12,
|
||||
RE = 13,
|
||||
RF = 14,
|
||||
R0 = 15,
|
||||
} analog_pin_t;
|
||||
|
||||
typedef enum {
|
||||
L9 = 0,
|
||||
LA = 1,
|
||||
LC = 2,
|
||||
R5 = 3,
|
||||
R6 = 4,
|
||||
R7 = 5,
|
||||
} digital_pin_t;
|
||||
|
||||
typedef enum {
|
||||
LB = 0,
|
||||
R8 = 1,
|
||||
} freq_pin_t;
|
||||
|
||||
typedef enum {
|
||||
NONE = 0, // Not used
|
||||
AIN = 1, // Analog in
|
||||
DIN = 2, // Digital in
|
||||
FIN = 3, // Frequency in
|
||||
DOUT = 4, // Digital out
|
||||
POUT = 5, // PWM out
|
||||
} signal_type_t;
|
||||
|
||||
typedef struct {
|
||||
signal_type_t type;
|
||||
|
||||
// CAN INFO
|
||||
uint8_t start; // start byte
|
||||
uint8_t length; // in bytes
|
||||
|
||||
// PERIPHERY INFO
|
||||
uint8_t channel; // ADC or PWM or Freq channel
|
||||
uint8_t dio_map[8]; // Up to 8 bits mappable to DIOs
|
||||
|
||||
// METADATA
|
||||
//float scale_factor; // (phys_max/can_scale)/adc_quants
|
||||
char name[16];
|
||||
} can_signal_t;
|
||||
|
||||
typedef struct {
|
||||
uint16_t can_id;
|
||||
uint8_t dlc;
|
||||
uint8_t num_signals;
|
||||
can_signal_t signals[8];
|
||||
} can_pkt_t;
|
||||
|
||||
#ifdef SN_FRONT
|
||||
|
||||
static can_pkt_t CAN_SIGNAL_MAP[4] {
|
||||
{
|
||||
.can_id = 0x0D1, .dlc = 5, .num_signals = 2, .signals = {
|
||||
{ .type = AIN, .start = 0, .length = 2, .channel = RB, .name = "BPS F" },
|
||||
{ .type = AIN, .start = 2, .length = 2, .channel = L1, .name = "SAS" },
|
||||
{ .type = DIN, .start = 4, .length = 1, .dio_map = {L9, LC, R5, R6, R7}, .name = "SAS" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.can_id = 0x0D2, .dlc = 4, .num_signals = 2, .signals = {
|
||||
{ .type = AIN, .start = 0, .length = 2, .channel = R9, .name = "APPS 1" },
|
||||
{ .type = AIN, .start = 2, .length = 2, .channel = L2, .name = "APPS 2" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.can_id = 0x0D3, .dlc = 8, .num_signals = 4, .signals = {
|
||||
{ .type = AIN, .start = 0, .length = 2, .channel = RA, .name = "DS FL" },
|
||||
{ .type = AIN, .start = 2, .length = 2, .channel = RC, .name = "DS FR" },
|
||||
{ .type = AIN, .start = 4, .length = 2, .channel = RE, .name = "SLS FL" },
|
||||
{ .type = AIN, .start = 6, .length = 2, .channel = R0, .name = "SLS FR" }
|
||||
}
|
||||
},
|
||||
{
|
||||
.can_id = 0x0D4, .dlc = 8, .num_signals = 4, .signals = {
|
||||
{ .type = AIN, .start = 0, .length = 2, .channel = RD, .name = "BDTS FL" },
|
||||
{ .type = AIN, .start = 2, .length = 2, .channel = RF, .name = "BDTS FR" },
|
||||
{ .type = FIN, .start = 4, .length = 2, .channel = LB, .name = "WSS FL" },
|
||||
{ .type = FIN, .start = 6, .length = 2, .channel = R8, .name = "WSS FR" }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user