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