try resend on errors
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
#include <mcp2515.h>;
|
||||
|
||||
const byte SoftwareVersionHigh = 3;
|
||||
const byte SoftwareVersionLow = 0;
|
||||
const byte SoftwareVersionLow = 1;
|
||||
const byte HardwareVersionHigh = 6;
|
||||
const byte HardwareVersionLow = 0;
|
||||
const uint32_t HELP_PACKAGE_CAN_ID = 0xFFFF;
|
||||
@@ -268,30 +268,31 @@ void loop()
|
||||
{
|
||||
if (mcp2515_0.readMessage(&_frame) == MCP2515::ERROR_OK)
|
||||
{
|
||||
mcp2515_1.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_2.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_3.sendMessage(MCP2515::TXB1, &_frame);
|
||||
|
||||
DoSendCanPkg(&mcp2515_1, &_frame);
|
||||
DoSendCanPkg(&mcp2515_2, &_frame);
|
||||
DoSendCanPkg(&mcp2515_3, &_frame);
|
||||
HandleFrame(&_frame);
|
||||
}
|
||||
if (mcp2515_1.readMessage(&_frame) == MCP2515::ERROR_OK)
|
||||
{
|
||||
mcp2515_0.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_2.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_3.sendMessage(MCP2515::TXB1, &_frame);
|
||||
DoSendCanPkg(&mcp2515_0, &_frame);
|
||||
DoSendCanPkg(&mcp2515_2, &_frame);
|
||||
DoSendCanPkg(&mcp2515_3, &_frame);
|
||||
HandleFrame(&_frame);
|
||||
}
|
||||
if (mcp2515_2.readMessage(&_frame) == MCP2515::ERROR_OK)
|
||||
{
|
||||
mcp2515_0.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_1.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_3.sendMessage(MCP2515::TXB1, &_frame);
|
||||
DoSendCanPkg(&mcp2515_0, &_frame);
|
||||
DoSendCanPkg(&mcp2515_1, &_frame);
|
||||
DoSendCanPkg(&mcp2515_3, &_frame);
|
||||
HandleFrame(&_frame);
|
||||
}
|
||||
if (mcp2515_3.readMessage(&_frame) == MCP2515::ERROR_OK)
|
||||
{
|
||||
mcp2515_0.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_1.sendMessage(MCP2515::TXB1, &_frame);
|
||||
mcp2515_2.sendMessage(MCP2515::TXB1, &_frame);
|
||||
DoSendCanPkg(&mcp2515_0, &_frame);
|
||||
DoSendCanPkg(&mcp2515_1, &_frame);
|
||||
DoSendCanPkg(&mcp2515_2, &_frame);;
|
||||
HandleFrame(&_frame);
|
||||
}
|
||||
}
|
||||
@@ -471,7 +472,7 @@ void SendSerialPackage(MCP2515 *interface)
|
||||
_frame.data[1] = SoftwareVersionLow;
|
||||
_frame.data[2] = HardwareVersionHigh;
|
||||
_frame.data[3] = HardwareVersionLow;
|
||||
interface->sendMessage(MCP2515::TXB1, &_frame);
|
||||
DoSendCanPkg(interface, &_frame);
|
||||
}
|
||||
|
||||
void SendSwitchedTriggeredCanPackage(MCP2515 *interface, byte pinId, int state)
|
||||
@@ -480,7 +481,7 @@ void SendSwitchedTriggeredCanPackage(MCP2515 *interface, byte pinId, int state)
|
||||
_frame.can_dlc = 2;
|
||||
_frame.data[0] = pinId;
|
||||
_frame.data[1] = state;
|
||||
interface->sendMessage(MCP2515::TXB1, &_frame);
|
||||
DoSendCanPkg(interface, &_frame);
|
||||
}
|
||||
|
||||
|
||||
@@ -492,9 +493,21 @@ void SendDoTriggerSwitchCanPackage(MCP2515 *interface, uint16_t targetCanId, byt
|
||||
_frame.data[1] = targetCanId & 0xFF;
|
||||
_frame.data[2] = pinId;
|
||||
_frame.data[3] = state;
|
||||
interface->sendMessage(MCP2515::TXB1, &_frame);
|
||||
|
||||
DoSendCanPkg(interface, &_frame);
|
||||
|
||||
}
|
||||
|
||||
void DoSendCanPkg(MCP2515 *interface, can_frame *frame)
|
||||
{
|
||||
// ToggleDebug();
|
||||
byte cnt = 0;
|
||||
while (interface->sendMessage(&_frame)) {
|
||||
cnt++;
|
||||
if (cnt > 10) return;
|
||||
}
|
||||
|
||||
}
|
||||
void SendDebugCanPackage(MCP2515 *interface, int16_t *data, int len)
|
||||
{
|
||||
can_frame frame = can_frame();
|
||||
@@ -510,5 +523,5 @@ void SendDebugCanPackage(MCP2515 *interface, int16_t *data, int len)
|
||||
frame.data[2 * i + 1] = ((byte[])data)[2 * i];
|
||||
}
|
||||
|
||||
interface->sendMessage(MCP2515::TXB1, &frame);
|
||||
DoSendCanPkg(interface, &frame);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user