mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Begin work on FlexRay support
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
#ifndef __FLEXRAYCONTROLMESSAGE_H_
|
||||
#define __FLEXRAYCONTROLMESSAGE_H_
|
||||
|
||||
#include "icsneo/communication/message/message.h"
|
||||
#include "icsneo/communication/packet.h"
|
||||
#include "icsneo/device/extensions/flexray/opcode.h"
|
||||
#include "icsneo/device/extensions/flexray/pocstatus.h"
|
||||
|
||||
namespace icsneo {
|
||||
|
||||
// Internal message which gives us the state of the FlexRay Controllers
|
||||
class FlexRayControlMessage : public Message {
|
||||
public:
|
||||
static std::vector<uint8_t> BuildBaseControlArgs(uint8_t controller, FlexRay::Opcode op, std::initializer_list<uint8_t> args);
|
||||
static std::vector<uint8_t> BuildReadCCRegsArgs(uint8_t controller, uint16_t startAddress, uint8_t numRegisters = 1);
|
||||
static std::vector<uint8_t> BuildWriteCCRegArgs(uint8_t controller, uint16_t address, uint32_t value);
|
||||
|
||||
FlexRayControlMessage(const Packet& packet);
|
||||
virtual ~FlexRayControlMessage() = default;
|
||||
bool decoded = false;
|
||||
uint8_t controller = 0xff; // Controller index, either 0 or 1
|
||||
FlexRay::Opcode opcode = FlexRay::Opcode::Unknown;
|
||||
FlexRay::POCStatus pocStatus = FlexRay::POCStatus::Unknown;
|
||||
uint16_t slotCounterA = 0;
|
||||
uint16_t slotCounterB = 0;
|
||||
uint16_t macroTick = 0;
|
||||
uint16_t cycleCount = 0;
|
||||
uint32_t rateCorrection = 0;
|
||||
uint32_t offsetCorrection = 0;
|
||||
std::vector<uint32_t> registers;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef __FLEXRAYMESSAGE_H_
|
||||
#define __FLEXRAYMESSAGE_H_
|
||||
|
||||
#include "icsneo/communication/message/message.h"
|
||||
#include "icsneo/device/extensions/flexray/symbol.h"
|
||||
#include "icsneo/device/extensions/flexray/crcstatus.h"
|
||||
|
||||
namespace icsneo {
|
||||
|
||||
class FlexRayMessage : public Message {
|
||||
public:
|
||||
uint16_t id = 0;
|
||||
double tsslen = 0;
|
||||
double framelen = 0;
|
||||
FlexRay::Symbol symbol = FlexRay::Symbol::None;
|
||||
FlexRay::CRCStatus headerCRCStatus = FlexRay::CRCStatus::OK;
|
||||
uint16_t headerCRC = 0;
|
||||
FlexRay::CRCStatus crcStatus = FlexRay::CRCStatus::OK;
|
||||
uint32_t frameCRC = 0;
|
||||
bool channelB = false;
|
||||
bool nullFrame = false;
|
||||
bool reserved0was1 = false;
|
||||
bool payloadPreamble = false;
|
||||
bool sync = false;
|
||||
bool startup = false;
|
||||
bool dynamic = false;
|
||||
uint8_t cycle = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user