Use bit masks for message flags

This commit is contained in:
Gregor Riepl 2021-01-20 15:41:43 +01:00
parent 09039eb999
commit bd170f8d6a

View file

@ -2,6 +2,7 @@
#define _MESSAGES_H #define _MESSAGES_H
#include <stdint.h> #include <stdint.h>
#include <stdbool.h>
#define CAN_HOSTID_FEEDBACK 0x000 #define CAN_HOSTID_FEEDBACK 0x000
#define CAN_HOSTID_POWER 0x001 #define CAN_HOSTID_POWER 0x001
@ -10,24 +11,34 @@
#define CAN_MSG_FEEDBACK_STATUS 0x010 #define CAN_MSG_FEEDBACK_STATUS 0x010
typedef struct { typedef struct {
uint8_t empty_g:1; uint8_t bits[2];
uint8_t empty_h:1;
uint8_t reset_sw:1;
uint8_t pad:5;
uint8_t end_d:1;
uint8_t end_e:1;
uint8_t end_f:1;
uint8_t end_g:1;
uint8_t end_h:1;
uint8_t empty_d:1;
uint8_t empty_e:1;
uint8_t empty_f:1;
} can_msg_feedback_status_t; } can_msg_feedback_status_t;
#define CAN_MSG_FEEDBACK_STATUS_FIELD_RESET_SW 1
#define CAN_MSG_FEEDBACK_STATUS_BIT_RESET_SW 0x04
#define CAN_MSG_FEEDBACK_STATUS_FIELD_EMPTY_H 1
#define CAN_MSG_FEEDBACK_STATUS_BIT_EMPTY_H 0x02
#define CAN_MSG_FEEDBACK_STATUS_FIELD_EMPTY_G 1
#define CAN_MSG_FEEDBACK_STATUS_BIT_EMPTY_G 0x01
#define CAN_MSG_FEEDBACK_STATUS_FIELD_EMPTY_F 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_EMPTY_F 0x80
#define CAN_MSG_FEEDBACK_STATUS_FIELD_EMPTY_E 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_EMPTY_E 0x40
#define CAN_MSG_FEEDBACK_STATUS_FIELD_EMPTY_D 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_EMPTY_D 0x20
#define CAN_MSG_FEEDBACK_STATUS_FIELD_END_H 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_END_H 0x10
#define CAN_MSG_FEEDBACK_STATUS_FIELD_END_G 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_END_G 0x08
#define CAN_MSG_FEEDBACK_STATUS_FIELD_END_F 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_END_F 0x04
#define CAN_MSG_FEEDBACK_STATUS_FIELD_END_E 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_END_E 0x02
#define CAN_MSG_FEEDBACK_STATUS_FIELD_END_D 0
#define CAN_MSG_FEEDBACK_STATUS_BIT_END_D 0x01
#define CAN_MSG_POWER_STATUS 0x011 #define CAN_MSG_POWER_STATUS 0x011
typedef struct { typedef struct {
uint8_t statush; uint8_t bits[2];
uint8_t statusl;
} can_msg_power_status_t; } can_msg_power_status_t;
#define CAN_MSG_POWER_DISPENSE 0x021 #define CAN_MSG_POWER_DISPENSE 0x021