78 lines
1.9 KiB
C
78 lines
1.9 KiB
C
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef enum {
|
|
CLS_CODE_0 = 0, // 0b000
|
|
CLS_CODE_FIMWARE = 1, // 0b001
|
|
CLS_CODE_2 = 2, // 0b010
|
|
CLS_CODE_MESSAGE = 3, // 0b011
|
|
CLS_CODE_4 = 4, // 0b100
|
|
CLS_CODE_5 = 5, // 0b101
|
|
CLS_CODE_STATUS = 6, // 0b110
|
|
CLS_CODE_CONFIG = 7 // 0b111
|
|
} CLSMessageCode;
|
|
|
|
typedef enum {
|
|
CLS_CHANNEL1 = 0, // 0b000
|
|
CLS_CHANNEL2 = 1, // 0b001
|
|
CLS_CHANNEL3 = 2, // 0b010
|
|
CLS_CHANNEL4 = 3, // 0b011
|
|
CLS_CHANNEL5 = 4, // 0b100
|
|
CLS_CHANNEL6 = 5, // 0b101
|
|
CLS_CHANNEL7 = 6, // 0b110
|
|
CLS_CHANNEL8 = 7 // 0b111
|
|
} CLSChannel;
|
|
|
|
|
|
typedef enum {
|
|
CLS_CH_FW_MOSI = 0, // 0b000
|
|
CLS_CH_FW_MISO = 1, // 0b001
|
|
CLS_CH_FW_MASTER_CONTROL = 2, // 0b010
|
|
CLS_CH_FW_SLAVE_FEEDBACK = 3, // 0b011
|
|
CLS_CH_FW_4 = 4, // 0b100
|
|
CLS_CH_FW_5 = 5, // 0b101
|
|
CLS_CH_FW_6 = 6, // 0b110
|
|
CLS_CH_FW_BOOTCALL = 7 // 0b111
|
|
} CLSChannelFirmware;
|
|
|
|
|
|
typedef enum {
|
|
CLS_CH_STA_HEATBEAT = 0, // 0b000
|
|
CLS_CH_STA_VEHICLE = 1, // 0b001
|
|
CLS_CH_STA_AMBIENTLIGHT = 2, // 0b010
|
|
CLS_CH_STA_3 = 3, // 0b011
|
|
CLS_CH_STA_4 = 4, // 0b100
|
|
CLS_CH_STA_5 = 5, // 0b101
|
|
CLS_CH_STA_6 = 6, // 0b110
|
|
CLS_CH_STA_7 = 7 // 0b111
|
|
} CLSChannelStatus;
|
|
|
|
|
|
typedef enum {
|
|
CLS_CH_MSG_LIGHT = 0, // 0b000
|
|
CLS_CH_MSG_1 = 1, // 0b001
|
|
CLS_CH_MSG_2 = 2, // 0b010
|
|
CLS_CH_MSG_3 = 3, // 0b011
|
|
CLS_CH_MSG_4 = 4, // 0b100
|
|
CLS_CH_MSG_5 = 5, // 0b101
|
|
CLS_CH_MSG_6 = 6, // 0b110
|
|
CLS_CH_MSG_7 = 7 // 0b111
|
|
} CLSChannelMessage;
|
|
|
|
|
|
|
|
typedef struct {
|
|
CLSMessageCode code : 3;
|
|
uint8_t device : 5;
|
|
CLSChannel channel : 3;
|
|
} CLSAddress;
|
|
|
|
#define GLOBAL_CAST_CLS_ADDRESS 0x11111
|
|
|
|
#define GENERATE_CLS_ADDRESS(type, device, channel) \
|
|
((uint16_t)(((type) << 8) | ((device) << 3) | (channel)) & 0x7ff)
|
|
|
|
inline uint16_t generateCLSAddress(CLSMessageCode type, uint8_t device, CLSChannel channel) {
|
|
return ((type << 8) | (device << 3) | channel) & 0x7ff;
|
|
} |