Подключить ProtoCAN из общего SETProtocol
This commit is contained in:
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "third_party/templates"]
|
||||||
|
path = third_party/templates
|
||||||
|
url = https://git.rd12.ru/Andrey/templates.git
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
#define _protocan
|
#define _protocan
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "can.h"
|
#include "can.h"
|
||||||
|
#include "../third_party/templates/c/set-protocol/include/pcan_id.h"
|
||||||
|
|
||||||
#define _DEMO
|
#define _DEMO
|
||||||
|
|
||||||
@@ -259,6 +260,38 @@ typedef union{
|
|||||||
unsigned int BitAll:29; /**< Общее представление 29-битного идентификатора. */
|
unsigned int BitAll:29; /**< Общее представление 29-битного идентификатора. */
|
||||||
} ProtoCanId_t;
|
} ProtoCanId_t;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Переходная граница legacy API -> переносимый формат линии.
|
||||||
|
*
|
||||||
|
* Прикладной код SETCAN пока может заполнять исторические Fields, но CAN ID
|
||||||
|
* всегда собирается и разбирается общим pcan_id без зависимости от порядка
|
||||||
|
* битовых полей конкретного компилятора.
|
||||||
|
*/
|
||||||
|
static inline uint32_t PROTOCAN_IdPack(const ProtoCanId_t *legacy)
|
||||||
|
{
|
||||||
|
pcan_id_t shared;
|
||||||
|
shared.msg_body = (uint16_t)legacy->Fields.MsgBody;
|
||||||
|
shared.msg_type = (uint8_t)legacy->Fields.MsgType;
|
||||||
|
shared.device_id = (uint8_t)legacy->Fields.DeviceID;
|
||||||
|
shared.device_type = (uint8_t)legacy->Fields.DeviceType;
|
||||||
|
shared.route = (uint8_t)legacy->Fields.Route;
|
||||||
|
shared.priority = (uint8_t)legacy->Fields.Priority;
|
||||||
|
return pcan_id_pack(&shared);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void PROTOCAN_IdUnpack(uint32_t raw, ProtoCanId_t *legacy)
|
||||||
|
{
|
||||||
|
pcan_id_t shared;
|
||||||
|
pcan_id_unpack(raw, &shared);
|
||||||
|
legacy->BitAll = 0U;
|
||||||
|
legacy->Fields.MsgBody = shared.msg_body;
|
||||||
|
legacy->Fields.MsgType = (ProtoCanMsgType)shared.msg_type;
|
||||||
|
legacy->Fields.DeviceID = shared.device_id;
|
||||||
|
legacy->Fields.DeviceType = shared.device_type;
|
||||||
|
legacy->Fields.Route = (ProtoCanRouteType)shared.route;
|
||||||
|
legacy->Fields.Priority = (ProtoCanPriorityType)shared.priority;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Структура для общего адресного пространства CAN.
|
* @brief Структура для общего адресного пространства CAN.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -360,7 +360,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToBroadcastStatus(struct RXMsg _rxMsg)
|
|||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
tmp_eID.Fields.DeviceType = CURRENT_TYPE_DEVICE;
|
tmp_eID.Fields.DeviceType = CURRENT_TYPE_DEVICE;
|
||||||
tmp_eID.Fields.DeviceID = CURRENT_ID_DEVICE;
|
tmp_eID.Fields.DeviceID = CURRENT_ID_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
RTC_TimeTypeDef sTime = {0};
|
RTC_TimeTypeDef sTime = {0};
|
||||||
HAL_RTC_GetTime(_HRTC, &sTime, RTC_FORMAT_BIN);
|
HAL_RTC_GetTime(_HRTC, &sTime, RTC_FORMAT_BIN);
|
||||||
data[0] = sTime.Hours;
|
data[0] = sTime.Hours;
|
||||||
@@ -652,7 +652,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogUniversal(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 6;
|
TxHeader.DLC = 6;
|
||||||
data[0] = 'U';
|
data[0] = 'U';
|
||||||
data[1] = 'N';
|
data[1] = 'N';
|
||||||
@@ -680,7 +680,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogSettings(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 7;
|
TxHeader.DLC = 7;
|
||||||
data[0] = 'U';
|
data[0] = 'U';
|
||||||
data[1] = 'S';
|
data[1] = 'S';
|
||||||
@@ -709,7 +709,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogUSens(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 6;
|
TxHeader.DLC = 6;
|
||||||
msgBodyAnalogType msg;
|
msgBodyAnalogType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -739,7 +739,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogISens(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 6;
|
TxHeader.DLC = 6;
|
||||||
msgBodyAnalogType msg;
|
msgBodyAnalogType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -769,7 +769,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogTSens(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 6;
|
TxHeader.DLC = 6;
|
||||||
msgBodyAnalogType msg;
|
msgBodyAnalogType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -813,7 +813,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_CORE(const ProtoCanId_t id, const struct Pr
|
|||||||
body.Fields.Type = coreData.Type;
|
body.Fields.Type = coreData.Type;
|
||||||
body.Fields.Body = coreData.Body;
|
body.Fields.Body = coreData.Body;
|
||||||
localId.Fields.MsgBody = body.Body;
|
localId.Fields.MsgBody = body.Body;
|
||||||
TxHeader.ExtId = localId.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||||
TxHeader.DLC = 0;
|
TxHeader.DLC = 0;
|
||||||
if(HAL_CAN_AddTxMessage(_HCAN, &TxHeader, canData, &TxMailBox) != HAL_OK)
|
if(HAL_CAN_AddTxMessage(_HCAN, &TxHeader, canData, &TxMailBox) != HAL_OK)
|
||||||
{
|
{
|
||||||
@@ -832,7 +832,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_CORE(const ProtoCanId_t id, const struct Pr
|
|||||||
uint8_t regsInPacket = (regsRemaining > 8) ? 8 : regsRemaining;
|
uint8_t regsInPacket = (regsRemaining > 8) ? 8 : regsRemaining;
|
||||||
body.Fields.Body = coreData.Body + currentIndex;
|
body.Fields.Body = coreData.Body + currentIndex;
|
||||||
localId.Fields.MsgBody = body.Body;
|
localId.Fields.MsgBody = body.Body;
|
||||||
TxHeader.ExtId = localId.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||||
TxHeader.DLC = regsInPacket;
|
TxHeader.DLC = regsInPacket;
|
||||||
for(int i = 0; i < regsInPacket; i++)
|
for(int i = 0; i < regsInPacket; i++)
|
||||||
{
|
{
|
||||||
@@ -859,7 +859,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_CORE(const ProtoCanId_t id, const struct Pr
|
|||||||
uint8_t regsInPacket = (regsRemaining > 8) ? 8 : regsRemaining;
|
uint8_t regsInPacket = (regsRemaining > 8) ? 8 : regsRemaining;
|
||||||
body.Fields.SensorID = coreData.Body + currentIndex;
|
body.Fields.SensorID = coreData.Body + currentIndex;
|
||||||
localId.Fields.MsgBody = body.Body;
|
localId.Fields.MsgBody = body.Body;
|
||||||
TxHeader.ExtId = localId.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||||
TxHeader.DLC = regsInPacket;
|
TxHeader.DLC = regsInPacket;
|
||||||
for(int i = 0; i < regsInPacket; i++)
|
for(int i = 0; i < regsInPacket; i++)
|
||||||
{
|
{
|
||||||
@@ -967,7 +967,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_SETTINGS(
|
|||||||
{
|
{
|
||||||
canData[index] = data.Data[index];
|
canData[index] = data.Data[index];
|
||||||
}
|
}
|
||||||
TxHeader.ExtId = id.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&id);
|
||||||
TxHeader.IDE = CAN_ID_EXT;
|
TxHeader.IDE = CAN_ID_EXT;
|
||||||
TxHeader.RTR = CAN_RTR_DATA;
|
TxHeader.RTR = CAN_RTR_DATA;
|
||||||
TxHeader.TransmitGlobalTime = DISABLE;
|
TxHeader.TransmitGlobalTime = DISABLE;
|
||||||
@@ -1032,7 +1032,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToGeneralAddressSpace(struct RXMsg _rxM
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 8;
|
TxHeader.DLC = 8;
|
||||||
data[0] = 'G';
|
data[0] = 'G';
|
||||||
data[1] = 'A';
|
data[1] = 'A';
|
||||||
@@ -1084,7 +1084,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_GENERAL_ADDRESS_SPACE(ProtoCanId_t id, uint
|
|||||||
uint8_t regsInPacket = (regsRemaining > 4) ? 4 : regsRemaining;
|
uint8_t regsInPacket = (regsRemaining > 4) ? 4 : regsRemaining;
|
||||||
|
|
||||||
tmp_eID.Fields.MsgBody = regStartAdr + currentIndex;
|
tmp_eID.Fields.MsgBody = regStartAdr + currentIndex;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = regsInPacket*2;
|
TxHeader.DLC = regsInPacket*2;
|
||||||
|
|
||||||
for(int i = 0; i < regsInPacket; i++)
|
for(int i = 0; i < regsInPacket; i++)
|
||||||
@@ -1162,7 +1162,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusCoil(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 8;
|
TxHeader.DLC = 8;
|
||||||
msgBodyModbusType msg;
|
msgBodyModbusType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -1194,7 +1194,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusDiscrete(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 8;
|
TxHeader.DLC = 8;
|
||||||
msgBodyModbusType msg;
|
msgBodyModbusType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -1226,7 +1226,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusHolding(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 8;
|
TxHeader.DLC = 8;
|
||||||
msgBodyModbusType msg;
|
msgBodyModbusType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -1258,7 +1258,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusInput(struct RXMsg _rxMsg)
|
|||||||
ProtoCanId_t tmp_eID;
|
ProtoCanId_t tmp_eID;
|
||||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 8;
|
TxHeader.DLC = 8;
|
||||||
msgBodyModbusType msg;
|
msgBodyModbusType msg;
|
||||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||||
@@ -1303,7 +1303,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_MODBUS(const ProtoCanId_t id, const struct
|
|||||||
// Устанавливаем коллизию ExtId с body.Body
|
// Устанавливаем коллизию ExtId с body.Body
|
||||||
localId.Fields.MsgBody = (body.Body & 0xFFFF);
|
localId.Fields.MsgBody = (body.Body & 0xFFFF);
|
||||||
// Обновляем ExtId
|
// Обновляем ExtId
|
||||||
TxHeader.ExtId = localId.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||||
// Остальные настройки
|
// Остальные настройки
|
||||||
TxHeader.IDE = CAN_ID_EXT;
|
TxHeader.IDE = CAN_ID_EXT;
|
||||||
TxHeader.RTR = CAN_RTR_DATA;
|
TxHeader.RTR = CAN_RTR_DATA;
|
||||||
@@ -1332,7 +1332,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_MODBUS(const ProtoCanId_t id, const struct
|
|||||||
body.Fields.RegCount = regsInPacket;
|
body.Fields.RegCount = regsInPacket;
|
||||||
// Обновляем ExtId
|
// Обновляем ExtId
|
||||||
localId.Fields.MsgBody = (body.Body & 0xFFFF);
|
localId.Fields.MsgBody = (body.Body & 0xFFFF);
|
||||||
TxHeader.ExtId = localId.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||||
TxHeader.IDE = CAN_ID_EXT;
|
TxHeader.IDE = CAN_ID_EXT;
|
||||||
TxHeader.RTR = CAN_RTR_DATA;
|
TxHeader.RTR = CAN_RTR_DATA;
|
||||||
TxHeader.TransmitGlobalTime = DISABLE;
|
TxHeader.TransmitGlobalTime = DISABLE;
|
||||||
@@ -1381,7 +1381,7 @@ __weak PROTOCAN_StatusTypeDef PROTOCAN_RequestError(struct RXMsg _rxMsg)
|
|||||||
msg.Fields.ErrorCode = 0xFF;
|
msg.Fields.ErrorCode = 0xFF;
|
||||||
msg.Fields.Info = 0;
|
msg.Fields.Info = 0;
|
||||||
tmp_eID.Fields.MsgBody = msg.Body;
|
tmp_eID.Fields.MsgBody = msg.Body;
|
||||||
TxHeader.ExtId = tmp_eID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||||
TxHeader.DLC = 0;
|
TxHeader.DLC = 0;
|
||||||
return (PROTOCAN_StatusTypeDef)HAL_CAN_AddTxMessage(_HCAN, &TxHeader, data, &TxMailBox);
|
return (PROTOCAN_StatusTypeDef)HAL_CAN_AddTxMessage(_HCAN, &TxHeader, data, &TxMailBox);
|
||||||
}
|
}
|
||||||
@@ -1406,7 +1406,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_ERROR(const ProtoCanId_t id, const struct P
|
|||||||
uint8_t canData[8];
|
uint8_t canData[8];
|
||||||
localId.Fields.MsgBody = ((errorData.Info << 8) | errorData.Code);
|
localId.Fields.MsgBody = ((errorData.Info << 8) | errorData.Code);
|
||||||
// Обновляем ExtId
|
// Обновляем ExtId
|
||||||
TxHeader.ExtId = localId.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||||
// Остальные настройки
|
// Остальные настройки
|
||||||
TxHeader.IDE = CAN_ID_EXT;
|
TxHeader.IDE = CAN_ID_EXT;
|
||||||
TxHeader.RTR = CAN_RTR_DATA;
|
TxHeader.RTR = CAN_RTR_DATA;
|
||||||
@@ -1466,7 +1466,7 @@ void ProtoCanRxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
|
|||||||
if(RxHeader.IDE == CAN_ID_EXT)
|
if(RxHeader.IDE == CAN_ID_EXT)
|
||||||
{
|
{
|
||||||
ProtoCanId_t ExtID_Of_RX_MSG;
|
ProtoCanId_t ExtID_Of_RX_MSG;
|
||||||
ExtID_Of_RX_MSG.BitAll = RxHeader.ExtId;
|
PROTOCAN_IdUnpack(RxHeader.ExtId, &ExtID_Of_RX_MSG);
|
||||||
//Полученное сообщение - пульс устройств в сети.
|
//Полученное сообщение - пульс устройств в сети.
|
||||||
//Место в буфере не занимает, поэтому проверяется до проверки переполнения.
|
//Место в буфере не занимает, поэтому проверяется до проверки переполнения.
|
||||||
if(ExtID_Of_RX_MSG.Fields.MsgType == PROTOCAN_MSGTYPE_PULSE)
|
if(ExtID_Of_RX_MSG.Fields.MsgType == PROTOCAN_MSGTYPE_PULSE)
|
||||||
@@ -1510,7 +1510,7 @@ void ProtoCanPulseCallback(TIM_HandleTypeDef *htim)
|
|||||||
currentID.Fields.DeviceID = CURRENT_ID_DEVICE;
|
currentID.Fields.DeviceID = CURRENT_ID_DEVICE;
|
||||||
currentID.Fields.MsgType = PROTOCAN_MSGTYPE_PULSE;
|
currentID.Fields.MsgType = PROTOCAN_MSGTYPE_PULSE;
|
||||||
currentID.Fields.MsgBody = 0;
|
currentID.Fields.MsgBody = 0;
|
||||||
TxHeader.ExtId = currentID.BitAll;
|
TxHeader.ExtId = PROTOCAN_IdPack(¤tID);
|
||||||
uint8_t data[8];
|
uint8_t data[8];
|
||||||
TxHeader.IDE = CAN_ID_EXT;
|
TxHeader.IDE = CAN_ID_EXT;
|
||||||
TxHeader.TransmitGlobalTime = DISABLE;
|
TxHeader.TransmitGlobalTime = DISABLE;
|
||||||
|
|||||||
1
third_party/templates
vendored
Submodule
1
third_party/templates
vendored
Submodule
Submodule third_party/templates added at 19becd7b8c
Reference in New Issue
Block a user