Add LSFTCAN and SWCAN support

This commit is contained in:
Paul Hollinsky
2019-01-22 13:14:28 -05:00
parent c313801a21
commit ae78122cbe
10 changed files with 107 additions and 14 deletions
+3 -1
View File
@@ -30,7 +30,9 @@ bool Decoder::decode(std::shared_ptr<Message>& result, const std::shared_ptr<Pac
result->timestamp *= timestampMultiplier;
result->network = packet->network;
return true;
case Network::Type::CAN: {
case Network::Type::CAN:
case Network::Type::SWCAN:
case Network::Type::LSFTCAN: {
if(packet->data.size() < 24)
return false;
+3 -1
View File
@@ -22,7 +22,9 @@ bool Encoder::encode(std::vector<uint8_t>& result, const std::shared_ptr<Message
break;
} // End of Network::Type::Ethernet
case Network::Type::CAN: {
case Network::Type::CAN:
case Network::Type::SWCAN:
case Network::Type::LSFTCAN: {
auto canmsg = std::dynamic_pointer_cast<CANMessage>(message);
if(!canmsg)
return false; // The message was not a properly formed CANMessage
+6 -2
View File
@@ -18,7 +18,9 @@ neomessage_t icsneo::CreateNeoMessage(const std::shared_ptr<Message> message) {
neomsg.status.transmitMessage = message->transmitted;
switch(type) {
case Network::Type::CAN: {
case Network::Type::CAN:
case Network::Type::SWCAN:
case Network::Type::LSFTCAN: {
neomessage_can_t& can = *(neomessage_can_t*)&neomsg;
auto canmsg = std::static_pointer_cast<CANMessage>(message);
can.arbid = canmsg->arbid;
@@ -52,7 +54,9 @@ neomessage_t icsneo::CreateNeoMessage(const std::shared_ptr<Message> message) {
std::shared_ptr<Message> icsneo::CreateMessageFromNeoMessage(const neomessage_t* neomessage) {
const Network network = neomessage->netid;
switch(network.getType()) {
case Network::Type::CAN: {
case Network::Type::CAN:
case Network::Type::SWCAN:
case Network::Type::LSFTCAN: {
neomessage_can_t& can = *(neomessage_can_t*)neomessage;
auto canmsg = std::make_shared<CANMessage>();
canmsg->network = network;