This commit is contained in:
2026-03-30 14:15:42 +03:00
parent c210396ee3
commit 3cae8b7008
10 changed files with 1268 additions and 1035 deletions

View File

@@ -31,7 +31,7 @@ extern "C" {
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "requester.h"
#include "protocan.h"
#include "canerrorbox.h"
/* USER CODE END Includes */

View File

@@ -1,9 +1,7 @@
#ifndef _requester
#define _requester
#ifndef _protocan
#define _protocan
#include "main.h"
#include "can.h"
#include "rtc.h"
#include "tim.h"
#define _DEMO
@@ -11,10 +9,7 @@
#define OFFLINE 0;
// TIM defines
#define TIM_REQUESTER_Prescaler 64000
//CAN Settings
#define _HCAN hcan
#define TIM_PROTOCAN_Prescaler 64000
//CAN Speed
#define CAN_SPEED_PRSC_1000KB 2
@@ -51,17 +46,6 @@ typedef union{
char AllBit;
}Byte;
/**
* @brief HAL Status structures definition
*/
typedef enum
{
CRR_OK = 0x00U,
CRR_ERROR = 0x01U,
CRR_BUSY = 0x02U,
CRR_TIMEOUT = 0x03U
} CRR_Status;
_Bool IsLeapYear(uint8_t year);
#define COUNT_OF_MODBUS_SECTIONS 1
@@ -176,25 +160,6 @@ typedef union{
}Fields;
unsigned int BitAll:29;
}extID;
// typedef union{
// struct extID_Fields{
// union{
// msgBodyBroadcast Broadcast;
// msgBodyDiscrete Discrete;
// msgBodyAnalog Analog;
// msgBodyModbus Modbus;
// msgBodyError Error;
// unsigned Body:16;
// }Msg;
// unsigned MsgType:4;
// unsigned DeviceID:4;
// unsigned DeviceType:3;
// unsigned Route:1;
// unsigned Priority:1;
// }Fields;
// unsigned int BitAll:29;
//}extID;
struct device{
unsigned Status:1;
@@ -299,45 +264,51 @@ struct RXMsg{
uint8_t Data[8];
};
typedef enum
{
PROTOCAN_OK = 0x00U,
PROTOCAN_HCAN_ERROR = 0x01U,
PROTOCAN_HRTC_ERROR = 0x02U,
} PROTOCAN_INIT_StatusTypeDef;
uint16_t AvailableCanRxMsg(void);
void REQUESTER_Init(void);
void REQUESTER_MainWhile(void);
void Boot_SystemClock_Config(void);
PROTOCAN_INIT_StatusTypeDef PROTOCAN_INIT(CAN_HandleTypeDef *tmp_hcan, RTC_HandleTypeDef *tmp_hrtc);
void ProtoCanPulse_TIM_Handler(void);
void PROTOCAN_FILTERS(void);
void PROTOCAN_LOOP(void);
CRR_Status 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);
HAL_StatusTypeDef PROTOCAN_AnalogProcessing(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToAnalogUniversal(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToAnalogUSTAVKI(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToAnalogUSens(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToAnalogISens(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToAnalogTSens(struct RXMsg _rxMsg);
CRR_Status 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);
HAL_StatusTypeDef PROTOCAN_BroadcastProcessing(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToBroadcastStatus(struct RXMsg _rxMsg);
void ProtoCanMsgToBroadcastOnOff(struct RXMsg _rxMsg);
void ProtoCanMsgToBroadcastRestart(struct RXMsg _rxMsg);
void ProtoCanMsgToBroadcastRtcSetup(struct RXMsg _rxMsg);
CRR_Status 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);
HAL_StatusTypeDef PROTOCAN_DiscreticProcessing(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteAccident(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteWarning(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteControlSignals(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteFlags(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteReset(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteChangeMode(struct RXMsg _rxMsg);
void ProtoCanMsgToDiscreteRequestListOfParameters(struct RXMsg _rxMsg);
void REQUESTER_GeneralAddressSpace_Answer(struct RXMsg _rxMsg);
void PROTOCAN_GeneralAddressSpace_Answer(struct RXMsg _rxMsg);
HAL_StatusTypeDef CanRequestError(struct RXMsg _rxMsg);
CRR_Status REQUESTER_ModbusProcessing(struct RXMsg _rxMsg);
HAL_StatusTypeDef CanRequestToModbusCoil(struct RXMsg _rxMsg);
HAL_StatusTypeDef CanRequestToModbusDiscrete(struct RXMsg _rxMsg);
HAL_StatusTypeDef CanRequestToModbusHolding(struct RXMsg _rxMsg);
HAL_StatusTypeDef CanRequestToModbusInput(struct RXMsg _rxMsg);
HAL_StatusTypeDef PROTOCAN_ModbusProcessing(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToModbusCoil(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToModbusDiscrete(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToModbusHolding(struct RXMsg _rxMsg);
HAL_StatusTypeDef ProtoCanMsgToModbusInput(struct RXMsg _rxMsg);
void PROTOCAN_RTC_SYNC(uint8_t *data);
void REQUESTER_RTC_SYNC(uint8_t *data);
void REQUESTER_Pulse_TIM_Handler(void);
void Boot_SystemClock_Config(void);
void REQUESTER_CAN_FILTERS(void);
#endif

View File

@@ -134,7 +134,7 @@
#define PREFETCH_ENABLE 1U
#define USE_HAL_ADC_REGISTER_CALLBACKS 0U /* ADC register callback disabled */
#define USE_HAL_CAN_REGISTER_CALLBACKS 0U /* CAN register callback disabled */
#define USE_HAL_CAN_REGISTER_CALLBACKS 1U /* CAN register callback enabled */
#define USE_HAL_CEC_REGISTER_CALLBACKS 0U /* CEC register callback disabled */
#define USE_HAL_DAC_REGISTER_CALLBACKS 0U /* DAC register callback disabled */
#define USE_HAL_ETH_REGISTER_CALLBACKS 0U /* ETH register callback disabled */