Refining the FlexRay API

This commit is contained in:
Paul Hollinsky
2019-11-09 15:34:58 -05:00
parent f0582697a6
commit 3396f5dcce
6 changed files with 41 additions and 3 deletions
@@ -5,6 +5,7 @@
#include "icsneo/communication/packet.h"
#include "icsneo/device/extensions/flexray/opcode.h"
#include "icsneo/device/extensions/flexray/pocstatus.h"
#include "icsneo/device/extensions/flexray/channel.h"
namespace icsneo {
@@ -14,6 +15,8 @@ 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);
static std::vector<uint8_t> BuildAddConfiguredTxMessageArgs(
uint8_t controller, uint16_t descriptionId, uint16_t slotId, uint8_t baseCycle, uint8_t cycleReps, FlexRay::Channel channel);
FlexRayControlMessage(const Packet& packet);
virtual ~FlexRayControlMessage() = default;
@@ -4,6 +4,7 @@
#include "icsneo/communication/message/message.h"
#include "icsneo/device/extensions/flexray/symbol.h"
#include "icsneo/device/extensions/flexray/crcstatus.h"
#include "icsneo/device/extensions/flexray/channel.h"
namespace icsneo {
@@ -17,7 +18,7 @@ public:
uint16_t headerCRC = 0;
FlexRay::CRCStatus crcStatus = FlexRay::CRCStatus::OK;
uint32_t frameCRC = 0;
bool channelB = false;
FlexRay::Channel channel = FlexRay::Channel::None;
bool nullFrame = false;
bool reserved0was1 = false;
bool payloadPreamble = false;
@@ -0,0 +1,22 @@
#ifndef __FLEXRAYCHANNEL_H_
#define __FLEXRAYCHANNEL_H_
#include <cstdint>
namespace icsneo {
namespace FlexRay {
// In some cases used as a bitfield
enum class Channel {
None = 0, // Usually an invalid/unset value
A = 1,
B = 2,
AB = 3
};
} // namespace FlexRay
} // namespace icsneo
#endif // __FLEXRAYCHANNEL_H_
@@ -14,7 +14,7 @@ enum class Opcode : uint8_t {
WriteCCReg = 0x02,
WriteMessageBuffer = 0x03,
ReadCCStatus = 0x04,
AddConfiguredMessage = 0x05,
AddConfiguredTxMessage = 0x05,
InitForRun = 0x06,
Unknown = 0xff
};