Entering a message buffer for CAN. The code has been restructured to import the library prototype into other projects
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
#define ONLINE 1;
|
||||
#define OFFLINE 0;
|
||||
|
||||
|
||||
// TIM defines
|
||||
#define TIM_REQUESTER_Prescaler 64000
|
||||
|
||||
//CAN Filter
|
||||
@@ -22,19 +24,6 @@
|
||||
#define CAN_SENSOR_TYPE_FILTER 0x00F80000
|
||||
#define CAN_SENSOR_ID_FILTER 0x0007FF00
|
||||
|
||||
|
||||
void REQUESTER_Init(void);
|
||||
void REQUESTER_MainWhile(void);
|
||||
void Boot_SystemClock_Config(void);
|
||||
void REQUESTER_AnalogProcessing(void);
|
||||
void REQUESTER_BroadcastProcessing(void);
|
||||
void REQUESTER_DiscreticProcessing(void);
|
||||
void REQUESTER_ModbusProcessing(void);
|
||||
void REQUESTER_RTC_SYNC(uint8_t *data);
|
||||
void REQUESTER_Pulse_TIM_Handler(void);
|
||||
void Boot_SystemClock_Config(void);
|
||||
void REQUESTER_CAN_FILTERS(void);
|
||||
|
||||
union Byte{
|
||||
struct bitfield{
|
||||
unsigned bit0:1;
|
||||
@@ -75,24 +64,26 @@ _Bool IsLeapYear(uint8_t year);
|
||||
#define DATA_TYPE_PULSE 0b1111
|
||||
|
||||
//Sensor Types for DATA_TYPE_BROADCAST
|
||||
#define SENSOR_TYPE_STATUS 0b00000
|
||||
#define SENSOR_TYPE_ONOFF 0b00001
|
||||
#define SENSOR_TYPE_RTCSETUP 0b00010
|
||||
#define SENSOR_TYPE_BROADCAST_STATUS 0b00000
|
||||
#define SENSOR_TYPE_BROADCAST_ONOFF 0b00001
|
||||
#define SENSOR_TYPE_BROADCAST_RESTARTDEVICE 0b00010
|
||||
#define SENSOR_TYPE_BROADCAST_RTCSETUP 0b00011
|
||||
|
||||
//Sensor Types for DATA_TYPE_DISCRETE
|
||||
#define SENSOR_TYPE_ACCIDENT 0b00000
|
||||
#define SENSOR_TYPE_WARNING 0b00001
|
||||
#define SENSOR_TYPE_CONTROL_SIGNALS 0b00010
|
||||
#define SENSOR_TYPE_FLAGS 0b00011
|
||||
#define SENSOR_TYPE_RESET 0b00100
|
||||
#define SENSOR_TYPE_CHANGE_MODE 0b00101
|
||||
#define SENSOR_TYPE_REQUEST_LIST_OF_PARAMETERS 0b00110
|
||||
#define SENSOR_TYPE_DISCRETE_ACCIDENT 0b00000
|
||||
#define SENSOR_TYPE_DISCRETE_WARNING 0b00001
|
||||
#define SENSOR_TYPE_DISCRETE_CONTROL_SIGNALS 0b00010
|
||||
#define SENSOR_TYPE_DISCRETE_FLAGS 0b00011
|
||||
#define SENSOR_TYPE_DISCRETE_RESET 0b00100
|
||||
#define SENSOR_TYPE_DISCRETE_CHANGE_MODE 0b00101
|
||||
#define SENSOR_TYPE_DISCRETE_REQUEST_LIST_OF_PARAMETERS 0b00110
|
||||
|
||||
//Sensor Types for DATA_TYPE_ANALOG
|
||||
#define SENSOR_TYPE_UNIVERSAL 0b00000
|
||||
#define SENSOR_TYPE_U 0b00001
|
||||
#define SENSOR_TYPE_I 0b00010
|
||||
#define SENSOR_TYPE_T 0b00011
|
||||
#define SENSOR_TYPE_ANALOG_UNIVERSAL 0b00000
|
||||
#define SENSOR_TYPE_ANALOG_USTAVKI 0b00001
|
||||
#define SENSOR_TYPE_ANALOG_U 0b00010
|
||||
#define SENSOR_TYPE_ANALOG_I 0b00011
|
||||
#define SENSOR_TYPE_ANALOG_T 0b00100
|
||||
|
||||
//Error Code
|
||||
#define NONEXISTENT_ELEMENT 0x01
|
||||
@@ -106,7 +97,7 @@ struct controlflags{
|
||||
};
|
||||
|
||||
//Device settings
|
||||
union ext_ID{
|
||||
/*union ext_ID{
|
||||
struct ext_ID_fields{
|
||||
unsigned DeviceID:8;
|
||||
unsigned SensorID:11;
|
||||
@@ -123,15 +114,33 @@ union ext_ID_Modbus{
|
||||
unsigned CountReg:8;
|
||||
unsigned StrAdr:8;
|
||||
unsigned DataType:4;
|
||||
unsigned Route;
|
||||
unsigned Route:1;
|
||||
}Fields;
|
||||
unsigned int BitAll:29;
|
||||
};
|
||||
};*/
|
||||
|
||||
typedef union _extID{
|
||||
struct extID_Standard_Fields{
|
||||
unsigned DeviceID:8;
|
||||
unsigned SensorID:11;
|
||||
unsigned SensorType:5;
|
||||
unsigned DataType:4;
|
||||
unsigned Route:1;
|
||||
}StandardFields;
|
||||
struct extID_Modbus_Fields{
|
||||
unsigned DeviceID:8;
|
||||
unsigned CountReg:8;
|
||||
unsigned StrAdr:8;
|
||||
unsigned DataType:4;
|
||||
unsigned Route:1;
|
||||
}ModbusFields;
|
||||
unsigned int BitAll:29;
|
||||
}extID;
|
||||
|
||||
struct device
|
||||
{
|
||||
unsigned Status:1;
|
||||
union ext_ID ExtID;
|
||||
extID ExtID;
|
||||
unsigned TimeFromLastPulse;
|
||||
unsigned LastPulseStep;
|
||||
};
|
||||
@@ -161,7 +170,7 @@ struct data
|
||||
};
|
||||
|
||||
struct received_request{
|
||||
union ext_ID RequestedExtID;
|
||||
extID RequestedExtID;
|
||||
unsigned RequestedDLC;
|
||||
uint8_t RxData[8];
|
||||
|
||||
@@ -221,4 +230,56 @@ struct received_request{
|
||||
unsigned ModbusFlag:1;
|
||||
};
|
||||
|
||||
|
||||
#define CAN_RX_BUFFER_SIZE 128
|
||||
|
||||
struct RXMsg{
|
||||
struct INFO{
|
||||
unsigned EXT:1;
|
||||
unsigned RTR:1;
|
||||
}info;
|
||||
extID eID;
|
||||
uint16_t DLC;
|
||||
uint8_t Data[8];
|
||||
};
|
||||
|
||||
uint16_t AvailableCanRxMsg(void);
|
||||
|
||||
|
||||
void REQUESTER_Init(void);
|
||||
void REQUESTER_MainWhile(void);
|
||||
void Boot_SystemClock_Config(void);
|
||||
|
||||
void REQUESTER_AnalogProcessing(struct RXMsg _rxMsg);
|
||||
HAL_StatusTypeDef CanRequestToAnalogUniversal(struct RXMsg _rxMsg);
|
||||
HAL_StatusTypeDef CanRequestToAnalogUSTAVKI(struct RXMsg _rxMsg);
|
||||
HAL_StatusTypeDef CanRequestToAnalogUSens(struct RXMsg _rxMsg);
|
||||
HAL_StatusTypeDef CanRequestToAnalogISens(struct RXMsg _rxMsg);
|
||||
HAL_StatusTypeDef CanRequestToAnalogTSens(struct RXMsg _rxMsg);
|
||||
|
||||
void REQUESTER_BroadcastProcessing(struct RXMsg _rxMsg);
|
||||
HAL_StatusTypeDef CanRequestToBroadcastStatus(struct RXMsg _rxMsg);
|
||||
void CanRequestToBroadcastOnOff(struct RXMsg _rxMsg);
|
||||
void CanRequestToBroadcastRestart(struct RXMsg _rxMsg);
|
||||
void CanRequestToBroadcastRtcSetup(struct RXMsg _rxMsg);
|
||||
|
||||
void REQUESTER_DiscreticProcessing(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteAccident(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteWarning(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteControlSignals(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteFlags(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteReset(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteChangeMode(struct RXMsg _rxMsg);
|
||||
void CanRequestToDiscreteRequestListOfParameters(struct RXMsg _rxMsg);
|
||||
|
||||
void REQUESTER_ModbusProcessing(struct RXMsg _rxMsg);
|
||||
void CanRequestToModbusCoil(struct RXMsg _rxMsg);
|
||||
void CanRequestToModbusDiscrete(struct RXMsg _rxMsg);
|
||||
void CanRequestToModbusHolding(struct RXMsg _rxMsg);
|
||||
void CanRequestToModbusInput(struct RXMsg _rxMsg);
|
||||
|
||||
void REQUESTER_RTC_SYNC(uint8_t *data);
|
||||
void REQUESTER_Pulse_TIM_Handler(void);
|
||||
void Boot_SystemClock_Config(void);
|
||||
void REQUESTER_CAN_FILTERS(void);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user