Подключить ProtoCAN из общего SETProtocol
This commit is contained in:
@@ -360,7 +360,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToBroadcastStatus(struct RXMsg _rxMsg)
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
tmp_eID.Fields.DeviceType = CURRENT_TYPE_DEVICE;
|
||||
tmp_eID.Fields.DeviceID = CURRENT_ID_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
RTC_TimeTypeDef sTime = {0};
|
||||
HAL_RTC_GetTime(_HRTC, &sTime, RTC_FORMAT_BIN);
|
||||
data[0] = sTime.Hours;
|
||||
@@ -652,7 +652,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogUniversal(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 6;
|
||||
data[0] = 'U';
|
||||
data[1] = 'N';
|
||||
@@ -680,7 +680,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogSettings(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 7;
|
||||
data[0] = 'U';
|
||||
data[1] = 'S';
|
||||
@@ -709,7 +709,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogUSens(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 6;
|
||||
msgBodyAnalogType msg;
|
||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||
@@ -739,7 +739,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogISens(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 6;
|
||||
msgBodyAnalogType msg;
|
||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||
@@ -769,7 +769,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToAnalogTSens(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 6;
|
||||
msgBodyAnalogType msg;
|
||||
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.Body = coreData.Body;
|
||||
localId.Fields.MsgBody = body.Body;
|
||||
TxHeader.ExtId = localId.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||
TxHeader.DLC = 0;
|
||||
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;
|
||||
body.Fields.Body = coreData.Body + currentIndex;
|
||||
localId.Fields.MsgBody = body.Body;
|
||||
TxHeader.ExtId = localId.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||
TxHeader.DLC = regsInPacket;
|
||||
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;
|
||||
body.Fields.SensorID = coreData.Body + currentIndex;
|
||||
localId.Fields.MsgBody = body.Body;
|
||||
TxHeader.ExtId = localId.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||
TxHeader.DLC = regsInPacket;
|
||||
for(int i = 0; i < regsInPacket; i++)
|
||||
{
|
||||
@@ -967,7 +967,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_SETTINGS(
|
||||
{
|
||||
canData[index] = data.Data[index];
|
||||
}
|
||||
TxHeader.ExtId = id.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&id);
|
||||
TxHeader.IDE = CAN_ID_EXT;
|
||||
TxHeader.RTR = CAN_RTR_DATA;
|
||||
TxHeader.TransmitGlobalTime = DISABLE;
|
||||
@@ -1032,7 +1032,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToGeneralAddressSpace(struct RXMsg _rxM
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 8;
|
||||
data[0] = 'G';
|
||||
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;
|
||||
|
||||
tmp_eID.Fields.MsgBody = regStartAdr + currentIndex;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = regsInPacket*2;
|
||||
|
||||
for(int i = 0; i < regsInPacket; i++)
|
||||
@@ -1162,7 +1162,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusCoil(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 8;
|
||||
msgBodyModbusType msg;
|
||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||
@@ -1194,7 +1194,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusDiscrete(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 8;
|
||||
msgBodyModbusType msg;
|
||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||
@@ -1226,7 +1226,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusHolding(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 8;
|
||||
msgBodyModbusType msg;
|
||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||
@@ -1258,7 +1258,7 @@ __weak PROTOCAN_StatusTypeDef ProtoCanMsgToModbusInput(struct RXMsg _rxMsg)
|
||||
ProtoCanId_t tmp_eID;
|
||||
tmp_eID.BitAll = _rxMsg.eID.BitAll;
|
||||
tmp_eID.Fields.Route = PROTOCAN_ROUTE_FROM_DEVICE;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 8;
|
||||
msgBodyModbusType msg;
|
||||
msg.Body = _rxMsg.eID.Fields.MsgBody;
|
||||
@@ -1303,7 +1303,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_MODBUS(const ProtoCanId_t id, const struct
|
||||
// Устанавливаем коллизию ExtId с body.Body
|
||||
localId.Fields.MsgBody = (body.Body & 0xFFFF);
|
||||
// Обновляем ExtId
|
||||
TxHeader.ExtId = localId.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||
// Остальные настройки
|
||||
TxHeader.IDE = CAN_ID_EXT;
|
||||
TxHeader.RTR = CAN_RTR_DATA;
|
||||
@@ -1332,7 +1332,7 @@ PROTOCAN_StatusTypeDef PROTOCAN_SEND_MODBUS(const ProtoCanId_t id, const struct
|
||||
body.Fields.RegCount = regsInPacket;
|
||||
// Обновляем ExtId
|
||||
localId.Fields.MsgBody = (body.Body & 0xFFFF);
|
||||
TxHeader.ExtId = localId.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||
TxHeader.IDE = CAN_ID_EXT;
|
||||
TxHeader.RTR = CAN_RTR_DATA;
|
||||
TxHeader.TransmitGlobalTime = DISABLE;
|
||||
@@ -1381,7 +1381,7 @@ __weak PROTOCAN_StatusTypeDef PROTOCAN_RequestError(struct RXMsg _rxMsg)
|
||||
msg.Fields.ErrorCode = 0xFF;
|
||||
msg.Fields.Info = 0;
|
||||
tmp_eID.Fields.MsgBody = msg.Body;
|
||||
TxHeader.ExtId = tmp_eID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&tmp_eID);
|
||||
TxHeader.DLC = 0;
|
||||
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];
|
||||
localId.Fields.MsgBody = ((errorData.Info << 8) | errorData.Code);
|
||||
// Обновляем ExtId
|
||||
TxHeader.ExtId = localId.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(&localId);
|
||||
// Остальные настройки
|
||||
TxHeader.IDE = CAN_ID_EXT;
|
||||
TxHeader.RTR = CAN_RTR_DATA;
|
||||
@@ -1466,7 +1466,7 @@ void ProtoCanRxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan)
|
||||
if(RxHeader.IDE == CAN_ID_EXT)
|
||||
{
|
||||
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)
|
||||
@@ -1510,7 +1510,7 @@ void ProtoCanPulseCallback(TIM_HandleTypeDef *htim)
|
||||
currentID.Fields.DeviceID = CURRENT_ID_DEVICE;
|
||||
currentID.Fields.MsgType = PROTOCAN_MSGTYPE_PULSE;
|
||||
currentID.Fields.MsgBody = 0;
|
||||
TxHeader.ExtId = currentID.BitAll;
|
||||
TxHeader.ExtId = PROTOCAN_IdPack(¤tID);
|
||||
uint8_t data[8];
|
||||
TxHeader.IDE = CAN_ID_EXT;
|
||||
TxHeader.TransmitGlobalTime = DISABLE;
|
||||
|
||||
Reference in New Issue
Block a user