Refactor MessageDecoder to Decoder

pull/4/head
Paul Hollinsky 2018-09-25 18:00:16 -04:00
parent 69773d6537
commit 9f20d70102
20 changed files with 301 additions and 301 deletions

View File

@ -41,7 +41,7 @@ endif()
set(COMMON_SRC set(COMMON_SRC
communication/message/neomessage.cpp communication/message/neomessage.cpp
communication/messagedecoder.cpp communication/decoder.cpp
communication/packetizer.cpp communication/packetizer.cpp
communication/multichannelcommunication.cpp communication/multichannelcommunication.cpp
communication/communication.cpp communication/communication.cpp

View File

@ -7,7 +7,7 @@
#include <mutex> #include <mutex>
#include <condition_variable> #include <condition_variable>
#include "communication/include/command.h" #include "communication/include/command.h"
#include "communication/include/messagedecoder.h" #include "communication/include/decoder.h"
#include "communication/include/packetizer.h" #include "communication/include/packetizer.h"
#include "communication/message/include/serialnumbermessage.h" #include "communication/message/include/serialnumbermessage.h"
#include "communication/message/filter/include/main51messagefilter.h" #include "communication/message/filter/include/main51messagefilter.h"

View File

@ -1,4 +1,4 @@
#include "communication/include/messagedecoder.h" #include "communication/include/decoder.h"
#include "communication/include/communication.h" #include "communication/include/communication.h"
#include "communication/message/include/serialnumbermessage.h" #include "communication/message/include/serialnumbermessage.h"
#include "communication/include/command.h" #include "communication/include/command.h"
@ -7,14 +7,14 @@
using namespace icsneo; using namespace icsneo;
uint64_t MessageDecoder::GetUInt64FromLEBytes(uint8_t* bytes) { uint64_t Decoder::GetUInt64FromLEBytes(uint8_t* bytes) {
uint64_t ret = 0; uint64_t ret = 0;
for(int i = 0; i < 8; i++) for(int i = 0; i < 8; i++)
ret |= (bytes[i] << (i * 8)); ret |= (bytes[i] << (i * 8));
return ret; return ret;
} }
std::shared_ptr<Message> MessageDecoder::decodePacket(const std::shared_ptr<Packet>& packet) { std::shared_ptr<Message> Decoder::decodePacket(const std::shared_ptr<Packet>& packet) {
switch(packet->network.getType()) { switch(packet->network.getType()) {
case Network::Type::CAN: { case Network::Type::CAN: {
if(packet->data.size() < 24) if(packet->data.size() < 24)

View File

@ -8,7 +8,7 @@
#include "communication/message/callback/include/messagecallback.h" #include "communication/message/callback/include/messagecallback.h"
#include "communication/message/include/serialnumbermessage.h" #include "communication/message/include/serialnumbermessage.h"
#include "communication/include/packetizer.h" #include "communication/include/packetizer.h"
#include "communication/include/messagedecoder.h" #include "communication/include/decoder.h"
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <atomic> #include <atomic>
@ -20,7 +20,7 @@ namespace icsneo {
class Communication { class Communication {
public: public:
Communication(std::shared_ptr<ICommunication> com, std::shared_ptr<Packetizer> p, std::shared_ptr<MessageDecoder> md) : impl(com), packetizer(p), decoder(md) {} Communication(std::shared_ptr<ICommunication> com, std::shared_ptr<Packetizer> p, std::shared_ptr<Decoder> md) : impl(com), packetizer(p), decoder(md) {}
virtual ~Communication() { close(); } virtual ~Communication() { close(); }
bool open(); bool open();
@ -43,7 +43,7 @@ public:
std::shared_ptr<Message> waitForMessageSync(std::shared_ptr<MessageFilter> f, std::chrono::milliseconds timeout = std::chrono::milliseconds(50)); std::shared_ptr<Message> waitForMessageSync(std::shared_ptr<MessageFilter> f, std::chrono::milliseconds timeout = std::chrono::milliseconds(50));
std::shared_ptr<Packetizer> packetizer; std::shared_ptr<Packetizer> packetizer;
std::shared_ptr<MessageDecoder> decoder; std::shared_ptr<Decoder> decoder;
protected: protected:
std::shared_ptr<ICommunication> impl; std::shared_ptr<ICommunication> impl;

View File

@ -1,278 +1,278 @@
#ifndef __MESSAGEDECODER_H_ #ifndef __DECODER_H_
#define __MESSAGEDECODER_H_ #define __DECODER_H_
#include "communication/message/include/message.h" #include "communication/message/include/message.h"
#include "communication/message/include/canmessage.h" #include "communication/message/include/canmessage.h"
#include "communication/include/packet.h" #include "communication/include/packet.h"
#include "communication/include/network.h" #include "communication/include/network.h"
#include <queue> #include <queue>
#include <vector> #include <vector>
#include <memory> #include <memory>
#pragma pack(push) #pragma pack(push)
#pragma pack(1) #pragma pack(1)
namespace icsneo { namespace icsneo {
class MessageDecoder { class Decoder {
public: public:
static uint64_t GetUInt64FromLEBytes(uint8_t* bytes); static uint64_t GetUInt64FromLEBytes(uint8_t* bytes);
std::shared_ptr<Message> decodePacket(const std::shared_ptr<Packet>& message); std::shared_ptr<Message> decodePacket(const std::shared_ptr<Packet>& message);
private: private:
typedef uint16_t icscm_bitfield; typedef uint16_t icscm_bitfield;
struct HardwareCANPacket { struct HardwareCANPacket {
struct { struct {
icscm_bitfield IDE : 1; icscm_bitfield IDE : 1;
icscm_bitfield SRR : 1; icscm_bitfield SRR : 1;
icscm_bitfield SID : 11; icscm_bitfield SID : 11;
icscm_bitfield EDL : 1; icscm_bitfield EDL : 1;
icscm_bitfield BRS : 1; icscm_bitfield BRS : 1;
icscm_bitfield ESI : 1; icscm_bitfield ESI : 1;
} header; } header;
struct { struct {
icscm_bitfield EID : 12; icscm_bitfield EID : 12;
icscm_bitfield TXMSG : 1; icscm_bitfield TXMSG : 1;
icscm_bitfield TXAborted : 1; icscm_bitfield TXAborted : 1;
icscm_bitfield TXLostArb : 1; icscm_bitfield TXLostArb : 1;
icscm_bitfield TXError : 1; icscm_bitfield TXError : 1;
} eid; } eid;
struct { struct {
icscm_bitfield DLC : 4; icscm_bitfield DLC : 4;
icscm_bitfield RB0 : 1; icscm_bitfield RB0 : 1;
icscm_bitfield IVRIF : 1; icscm_bitfield IVRIF : 1;
icscm_bitfield HVEnable : 1;// must be cleared before passing into CAN driver icscm_bitfield HVEnable : 1;// must be cleared before passing into CAN driver
icscm_bitfield ExtendedNetworkIndexBit : 1;//DO NOT CLOBBER THIS icscm_bitfield ExtendedNetworkIndexBit : 1;//DO NOT CLOBBER THIS
icscm_bitfield RB1 : 1; icscm_bitfield RB1 : 1;
icscm_bitfield RTR : 1; icscm_bitfield RTR : 1;
icscm_bitfield EID : 6; icscm_bitfield EID : 6;
} dlc; } dlc;
unsigned char data[8]; unsigned char data[8];
struct { struct {
uint64_t TS : 60; uint64_t TS : 60;
uint64_t : 3; uint64_t : 3;
uint64_t IsExtended : 1; uint64_t IsExtended : 1;
} timestamp; } timestamp;
}; };
// struct CoreMiniMsg { // struct CoreMiniMsg {
// CANMessage toCANMessage(Network netid); // CANMessage toCANMessage(Network netid);
// union { // union {
// uint16_t CxTRB0SID16; // uint16_t CxTRB0SID16;
// struct // struct
// { // {
// icscm_bitfield IDE : 1; // icscm_bitfield IDE : 1;
// icscm_bitfield SRR : 1; // icscm_bitfield SRR : 1;
// icscm_bitfield SID : 11; // icscm_bitfield SID : 11;
// icscm_bitfield NETWORKINDEX : 3;//DO NOT CLOBBER THIS // icscm_bitfield NETWORKINDEX : 3;//DO NOT CLOBBER THIS
// } CxTRB0SID; // } CxTRB0SID;
// struct // struct
// { // {
// icscm_bitfield : 13; // icscm_bitfield : 13;
// icscm_bitfield EDL : 1; // icscm_bitfield EDL : 1;
// icscm_bitfield BRS : 1; // icscm_bitfield BRS : 1;
// icscm_bitfield ESI : 1; // icscm_bitfield ESI : 1;
// } CxTRB0FD; // } CxTRB0FD;
// struct // struct
// { // {
// icscm_bitfield ErrRxOnlyBreak : 1; // icscm_bitfield ErrRxOnlyBreak : 1;
// icscm_bitfield ErrRxOnlyBreakSync : 1; // icscm_bitfield ErrRxOnlyBreakSync : 1;
// icscm_bitfield ID : 11; // icscm_bitfield ID : 11;
// icscm_bitfield NETWORKINDEX : 3;//DO NOT CLOBBER THIS // icscm_bitfield NETWORKINDEX : 3;//DO NOT CLOBBER THIS
// } CxLIN3; // } CxLIN3;
// struct // struct
// { // {
// uint8_t D8; // uint8_t D8;
// uint8_t options : 4; // uint8_t options : 4;
// uint8_t TXMSG : 1; // uint8_t TXMSG : 1;
// uint8_t NETWORKINDEX : 3;//DO NOT CLOBBER THIS // uint8_t NETWORKINDEX : 3;//DO NOT CLOBBER THIS
// } C1xJ1850; // } C1xJ1850;
// struct // struct
// { // {
// uint8_t D8; // uint8_t D8;
// uint8_t options : 4; // uint8_t options : 4;
// uint8_t TXMSG : 1; // uint8_t TXMSG : 1;
// uint8_t NETWORKINDEX : 3;//DO NOT CLOBBER THIS // uint8_t NETWORKINDEX : 3;//DO NOT CLOBBER THIS
// } C1xISO; // } C1xISO;
// struct // struct
// { // {
// uint8_t D8; // uint8_t D8;
// uint8_t options : 4; // uint8_t options : 4;
// uint8_t TXMSG : 1; // uint8_t TXMSG : 1;
// uint8_t NETWORKINDEX : 3;//DO NOT CLOBBER THIS // uint8_t NETWORKINDEX : 3;//DO NOT CLOBBER THIS
// } C1xJ1708; // } C1xJ1708;
// struct // struct
// { // {
// icscm_bitfield FCS_AVAIL : 1; // icscm_bitfield FCS_AVAIL : 1;
// icscm_bitfield RUNT_FRAME : 1; // icscm_bitfield RUNT_FRAME : 1;
// icscm_bitfield DISABLE_PADDING : 1; // icscm_bitfield DISABLE_PADDING : 1;
// icscm_bitfield PREEMPTION_ENABLED : 1; // icscm_bitfield PREEMPTION_ENABLED : 1;
// icscm_bitfield MPACKET_TYPE : 4; // icscm_bitfield MPACKET_TYPE : 4;
// icscm_bitfield MPACKET_FRAG_CNT : 2; // icscm_bitfield MPACKET_FRAG_CNT : 2;
// icscm_bitfield : 6; // icscm_bitfield : 6;
// } C1xETH; // } C1xETH;
// struct // struct
// { // {
// uint16_t ID : 11; // uint16_t ID : 11;
// uint16_t STARTUP : 1; // uint16_t STARTUP : 1;
// uint16_t SYNC : 1; // uint16_t SYNC : 1;
// uint16_t NULL_FRAME : 1; // uint16_t NULL_FRAME : 1;
// uint16_t PAYLOAD_PREAMBLE : 1; // uint16_t PAYLOAD_PREAMBLE : 1;
// uint16_t RESERVED_0 : 1; // uint16_t RESERVED_0 : 1;
// } C1xFlex; // } C1xFlex;
// struct // struct
// { // {
// uint8_t daqType; // uint8_t daqType;
// uint8_t ethDaqRes1; // uint8_t ethDaqRes1;
// } C1xETHDAQ; // } C1xETHDAQ;
// }; // };
// union { // union {
// uint16_t CxTRB0EID16; // uint16_t CxTRB0EID16;
// struct // struct
// { // {
// icscm_bitfield EID : 12; // icscm_bitfield EID : 12;
// icscm_bitfield TXMSG : 1; // icscm_bitfield TXMSG : 1;
// icscm_bitfield TXAborted : 1; // icscm_bitfield TXAborted : 1;
// icscm_bitfield TXLostArb : 1; // icscm_bitfield TXLostArb : 1;
// icscm_bitfield TXError : 1; // icscm_bitfield TXError : 1;
// } CxTRB0EID; // } CxTRB0EID;
// struct // struct
// { // {
// uint8_t LINByte9; // uint8_t LINByte9;
// uint8_t ErrTxRxMismatch : 1; // uint8_t ErrTxRxMismatch : 1;
// uint8_t TxChkSumEnhanced : 1; // uint8_t TxChkSumEnhanced : 1;
// uint8_t TXMaster : 1; // uint8_t TXMaster : 1;
// uint8_t TXSlave : 1; // uint8_t TXSlave : 1;
// uint8_t ErrRxBreakNot0 : 1; // uint8_t ErrRxBreakNot0 : 1;
// uint8_t ErrRxBreakTooShort : 1; // uint8_t ErrRxBreakTooShort : 1;
// uint8_t ErrRxSyncNot55 : 1; // uint8_t ErrRxSyncNot55 : 1;
// uint8_t ErrRxDataGreater8 : 1; // uint8_t ErrRxDataGreater8 : 1;
// } CxLIN; // } CxLIN;
// struct // struct
// { // {
// uint8_t D9; // uint8_t D9;
// uint8_t D10; // uint8_t D10;
// } C2xJ1850; // } C2xJ1850;
// struct // struct
// { // {
// uint8_t D9; // uint8_t D9;
// uint8_t D10; // uint8_t D10;
// } C2xISO; // } C2xISO;
// struct // struct
// { // {
// uint8_t D9; // uint8_t D9;
// uint8_t D10; // uint8_t D10;
// } C2xJ1708; // } C2xJ1708;
// struct // struct
// { // {
// uint16_t txlen : 12; // uint16_t txlen : 12;
// uint16_t TXMSG : 1; // uint16_t TXMSG : 1;
// uint16_t : 3; // uint16_t : 3;
// } C2xETH; // } C2xETH;
// struct // struct
// { // {
// uint16_t HDR_CRC_10 : 1; // uint16_t HDR_CRC_10 : 1;
// uint16_t PAYLOAD_LEN : 7; // uint16_t PAYLOAD_LEN : 7;
// uint16_t RESERVED_1 : 4; // uint16_t RESERVED_1 : 4;
// uint16_t TXMSG : 1; // uint16_t TXMSG : 1;
// uint16_t RESERVED_2 : 3; // uint16_t RESERVED_2 : 3;
// } C2xFlex; // } C2xFlex;
// }; // };
// union { // union {
// // For use by CAN // // For use by CAN
// uint16_t CxTRB0DLC16; // uint16_t CxTRB0DLC16;
// struct // struct
// { // {
// icscm_bitfield DLC : 4; // icscm_bitfield DLC : 4;
// icscm_bitfield RB0 : 1; // icscm_bitfield RB0 : 1;
// icscm_bitfield IVRIF : 1; // icscm_bitfield IVRIF : 1;
// icscm_bitfield HVEnable : 1;// must be cleared before passing into CAN driver // icscm_bitfield HVEnable : 1;// must be cleared before passing into CAN driver
// icscm_bitfield ExtendedNetworkIndexBit : 1;//DO NOT CLOBBER THIS // icscm_bitfield ExtendedNetworkIndexBit : 1;//DO NOT CLOBBER THIS
// icscm_bitfield RB1 : 1; // icscm_bitfield RB1 : 1;
// icscm_bitfield RTR : 1; // icscm_bitfield RTR : 1;
// icscm_bitfield EID : 6; // icscm_bitfield EID : 6;
// } CxTRB0DLC; // } CxTRB0DLC;
// struct // struct
// { // {
// icscm_bitfield len : 4; // icscm_bitfield len : 4;
// icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS // icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS
// icscm_bitfield UpdateSlaveOnce : 1; // icscm_bitfield UpdateSlaveOnce : 1;
// icscm_bitfield HasUpdatedSlaveOnce : 1; // icscm_bitfield HasUpdatedSlaveOnce : 1;
// icscm_bitfield ExtendedNetworkIndexBit : 1;//DO NOT CLOBBER THIS // icscm_bitfield ExtendedNetworkIndexBit : 1;//DO NOT CLOBBER THIS
// icscm_bitfield BusRecovered : 1; // icscm_bitfield BusRecovered : 1;
// icscm_bitfield SyncFerr : 1;//!< We got framing error in our sync byte. // icscm_bitfield SyncFerr : 1;//!< We got framing error in our sync byte.
// icscm_bitfield MidFerr : 1;//!< We got framing error in our message id. // icscm_bitfield MidFerr : 1;//!< We got framing error in our message id.
// icscm_bitfield SlaveByteFerr : 1;//!< We got framing error in one of our slave bytes. // icscm_bitfield SlaveByteFerr : 1;//!< We got framing error in one of our slave bytes.
// icscm_bitfield TxAborted : 1;//!< This transmit was aborted. // icscm_bitfield TxAborted : 1;//!< This transmit was aborted.
// icscm_bitfield breakOnly : 1; // icscm_bitfield breakOnly : 1;
// icscm_bitfield : 2; // icscm_bitfield : 2;
// } CxLIN2; // } CxLIN2;
// // For use by JVPW // // For use by JVPW
// struct // struct
// { // {
// icscm_bitfield len : 4; // icscm_bitfield len : 4;
// icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS // icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS
// icscm_bitfield just_tx_timestamp : 1; // icscm_bitfield just_tx_timestamp : 1;
// icscm_bitfield first_seg : 1; // icscm_bitfield first_seg : 1;
// icscm_bitfield ExtendedNetworkIndexBit : 1;// do not clobber ExtendedNetworkIndexBit // icscm_bitfield ExtendedNetworkIndexBit : 1;// do not clobber ExtendedNetworkIndexBit
// icscm_bitfield D11 : 8; // icscm_bitfield D11 : 8;
// } C3xJ1850; // } C3xJ1850;
// // For use by the ISO/KEYWORD // // For use by the ISO/KEYWORD
// struct // struct
// { // {
// icscm_bitfield len : 4; // icscm_bitfield len : 4;
// icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS // icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS
// icscm_bitfield FRM : 1; // icscm_bitfield FRM : 1;
// icscm_bitfield INIT : 1; // icscm_bitfield INIT : 1;
// icscm_bitfield ExtendedNetworkIndexBit : 1;// do not clobber ExtendedNetworkIndexBit // icscm_bitfield ExtendedNetworkIndexBit : 1;// do not clobber ExtendedNetworkIndexBit
// icscm_bitfield D11 : 8; // icscm_bitfield D11 : 8;
// } C3xISO; // } C3xISO;
// struct // struct
// { // {
// icscm_bitfield len : 4; // icscm_bitfield len : 4;
// icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS // icscm_bitfield ExtendedNetworkIndexBit2 : 1;//DO NOT CLOBBER THIS
// icscm_bitfield FRM : 1; // icscm_bitfield FRM : 1;
// icscm_bitfield : 1; // icscm_bitfield : 1;
// icscm_bitfield ExtendedNetworkIndexBit : 1;// do not clobber ExtendedNetworkIndexBit // icscm_bitfield ExtendedNetworkIndexBit : 1;// do not clobber ExtendedNetworkIndexBit
// icscm_bitfield pri : 8; // icscm_bitfield pri : 8;
// } C3xJ1708; // } C3xJ1708;
// struct // struct
// { // {
// uint16_t rsvd; // uint16_t rsvd;
// } C3xETH; // } C3xETH;
// struct // struct
// { // {
// uint16_t CYCLE : 6; // uint16_t CYCLE : 6;
// uint16_t HDR_CRC_9_0 : 10; // uint16_t HDR_CRC_9_0 : 10;
// } C3xFlex; // } C3xFlex;
// }; // };
// unsigned char CxTRB0Dall[8]; // unsigned char CxTRB0Dall[8];
// union { // union {
// uint16_t CxTRB0STAT; // uint16_t CxTRB0STAT;
// uint16_t J1850_TX_ID; // uint16_t J1850_TX_ID;
// }; // };
// union { // union {
// struct // struct
// { // {
// uint32_t uiTimeStamp10uS; // uint32_t uiTimeStamp10uS;
// union { // union {
// uint32_t uiTimeStamp10uSMSB; // uint32_t uiTimeStamp10uSMSB;
// struct // struct
// { // {
// unsigned : 28; // unsigned : 28;
// unsigned res_0s : 3;// must be 0!!! // unsigned res_0s : 3;// must be 0!!!
// unsigned bIsExtended : 1;// always 1 for CoreMiniMsgExtended. // unsigned bIsExtended : 1;// always 1 for CoreMiniMsgExtended.
// }; // };
// }; // };
// }; // };
// int64_t uiTimeStampLarge; // int64_t uiTimeStampLarge;
// uint8_t uiTimeStampBytes[8]; // uint8_t uiTimeStampBytes[8];
// }; // };
// }; // };
}; };
} }
#pragma pack(pop) #pragma pack(pop)
#endif #endif

View File

@ -9,7 +9,7 @@ namespace icsneo {
class MultiChannelCommunication : public Communication { class MultiChannelCommunication : public Communication {
public: public:
MultiChannelCommunication(std::shared_ptr<ICommunication> com, std::shared_ptr<Packetizer> p, std::shared_ptr<MessageDecoder> md) : Communication(com, p, md) {} MultiChannelCommunication(std::shared_ptr<ICommunication> com, std::shared_ptr<Packetizer> p, std::shared_ptr<Decoder> md) : Communication(com, p, md) {}
void spawnThreads(); void spawnThreads();
void joinThreads(); void joinThreads();
bool sendCommand(Command cmd, std::vector<uint8_t> arguments); bool sendCommand(Command cmd, std::vector<uint8_t> arguments);

View File

@ -1,6 +1,6 @@
#include "communication/include/multichannelcommunication.h" #include "communication/include/multichannelcommunication.h"
#include "communication/include/command.h" #include "communication/include/command.h"
#include "communication/include/messagedecoder.h" #include "communication/include/decoder.h"
#include "communication/include/packetizer.h" #include "communication/include/packetizer.h"
#include <iostream> #include <iostream>
#include <iomanip> #include <iomanip>

View File

@ -8,7 +8,7 @@
#include "device/include/idevicesettings.h" #include "device/include/idevicesettings.h"
#include "communication/include/communication.h" #include "communication/include/communication.h"
#include "communication/include/packetizer.h" #include "communication/include/packetizer.h"
#include "communication/include/messagedecoder.h" #include "communication/include/decoder.h"
#include "third-party/concurrentqueue/concurrentqueue.h" #include "third-party/concurrentqueue/concurrentqueue.h"
namespace icsneo { namespace icsneo {

View File

@ -14,7 +14,7 @@ public:
NeoOBD2PRO(neodevice_t neodevice) : Device(neodevice) { NeoOBD2PRO(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<STM32>(getWritableNeoDevice()); auto transport = std::make_shared<STM32>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -14,7 +14,7 @@ public:
NeoOBD2SIM(neodevice_t neodevice) : Device(neodevice) { NeoOBD2SIM(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<STM32>(getWritableNeoDevice()); auto transport = std::make_shared<STM32>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -13,7 +13,7 @@ public:
NeoVIFIRE(neodevice_t neodevice) : Device(neodevice) { NeoVIFIRE(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<FTDI>(getWritableNeoDevice()); auto transport = std::make_shared<FTDI>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -13,7 +13,7 @@ public:
NeoVIFIRE2ETH(neodevice_t neodevice) : NeoVIFIRE2(neodevice) { NeoVIFIRE2ETH(neodevice_t neodevice) : NeoVIFIRE2(neodevice) {
auto transport = std::make_shared<PCAP>(getWritableNeoDevice()); auto transport = std::make_shared<PCAP>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
productId = PRODUCT_ID; productId = PRODUCT_ID;
} }

View File

@ -12,7 +12,7 @@ public:
NeoVIFIRE2USB(neodevice_t neodevice) : NeoVIFIRE2(neodevice) { NeoVIFIRE2USB(neodevice_t neodevice) : NeoVIFIRE2(neodevice) {
auto transport = std::make_shared<FTDI>(getWritableNeoDevice()); auto transport = std::make_shared<FTDI>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
productId = PRODUCT_ID; productId = PRODUCT_ID;
} }

View File

@ -12,7 +12,7 @@ public:
Plasion(neodevice_t neodevice) : Device(neodevice) { Plasion(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<FTDI>(getWritableNeoDevice()); auto transport = std::make_shared<FTDI>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<MultiChannelCommunication>(transport, packetizer, decoder); com = std::make_shared<MultiChannelCommunication>(transport, packetizer, decoder);
} }
}; };

View File

@ -4,7 +4,7 @@
#include "device/include/device.h" #include "device/include/device.h"
#include "platform/include/pcap.h" #include "platform/include/pcap.h"
#include "communication/include/packetizer.h" #include "communication/include/packetizer.h"
#include "communication/include/messagedecoder.h" #include "communication/include/decoder.h"
namespace icsneo { namespace icsneo {
@ -18,7 +18,7 @@ public:
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
packetizer->disableChecksum = true; packetizer->disableChecksum = true;
packetizer->align16bit = false; packetizer->align16bit = false;
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -14,7 +14,7 @@ public:
RADStar2(neodevice_t neodevice) : Device(neodevice) { RADStar2(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<FTDI>(getWritableNeoDevice()); auto transport = std::make_shared<FTDI>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -16,7 +16,7 @@ public:
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
packetizer->disableChecksum = true; packetizer->disableChecksum = true;
packetizer->align16bit = false; packetizer->align16bit = false;
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -13,7 +13,7 @@ public:
ValueCAN3(neodevice_t neodevice) : Device(neodevice) { ValueCAN3(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<FTDI>(getWritableNeoDevice()); auto transport = std::make_shared<FTDI>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -14,7 +14,7 @@ public:
ValueCAN4(neodevice_t neodevice) : Device(neodevice) { ValueCAN4(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<STM32>(getWritableNeoDevice()); auto transport = std::make_shared<STM32>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;

View File

@ -14,7 +14,7 @@ public:
VividCAN(neodevice_t neodevice) : Device(neodevice) { VividCAN(neodevice_t neodevice) : Device(neodevice) {
auto transport = std::make_shared<STM32>(getWritableNeoDevice()); auto transport = std::make_shared<STM32>(getWritableNeoDevice());
auto packetizer = std::make_shared<Packetizer>(); auto packetizer = std::make_shared<Packetizer>();
auto decoder = std::make_shared<MessageDecoder>(); auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, decoder); com = std::make_shared<Communication>(transport, packetizer, decoder);
setProductName(PRODUCT_NAME); setProductName(PRODUCT_NAME);
productId = PRODUCT_ID; productId = PRODUCT_ID;