C++ API

enum class icsneo::Command : uint8_t

Values:

enumerator EnableNetworkCommunication
enumerator EnableNetworkCommunicationEx
enumerator NeoReadMemory
enumerator NeoWriteMemory
enumerator ClearCoreMini
enumerator LoadCoreMini
enumerator GetRTC
enumerator SetRTC
enumerator RequestSerialNumber
enumerator GetMainVersion
enumerator SetSettings
enumerator SaveSettings
enumerator UpdateLEDState
enumerator SetDefaultSettings
enumerator GetSecondaryVersions
enumerator GetHardwareInfo
enumerator GetLogicalDiskInfo
enumerator RequestStatusUpdate
enumerator ReadSettings
enumerator SetVBattMonitor
enumerator RequestBitSmash
enumerator WiVICommand
enumerator GetVBattReq
enumerator ScriptStatus
enumerator MiscControl
enumerator NeoEraseMemory
enumerator Extended
enumerator ExtendedData
enumerator FlexRayControl
enumerator CoreMiniPreload
enumerator PHYControlRegisters
enum class icsneo::ExtendedCommand : uint16_t

Values:

enumerator GenericReturn
enumerator GetDiskDetails
enumerator DiskFormatStart
enumerator DiskFormatCancel
enumerator DiskFormatProgress
enumerator DiskFormatUpdate
enumerator Extract
enumerator StartDHCPServer
enumerator StopDHCPServer
enumerator GetSupportedFeatures
enumerator GetGPTPStatus
enumerator GetComponentVersions
enumerator Reboot
enumerator SetRootFSEntryFlags
enumerator GenericBinaryInfo
enumerator LiveData
enumerator RequestTC10Wake
enumerator RequestTC10Sleep
enumerator GetTC10Status
enum class icsneo::ExtendedResponse : int32_t

Values:

enumerator OK
enumerator InvalidCommand
enumerator InvalidState
enumerator OperationFailed
enumerator OperationPending
enumerator InvalidParameter
enum class icsneo::ExtendedDataSubCommand : uint32_t

Values:

enumerator GenericBinaryRead
enumerator GenericBinaryWrite
enum class icsneo::IO

Values:

enumerator EthernetActivation
enumerator USBHostPower
enumerator BackupPowerEnabled
enumerator BackupPowerGood
enumerator Misc
enumerator EMisc
enum class icsneo::LiveDataCommand : uint32_t

Values:

enumerator STATUS
enumerator SUBSCRIBE
enumerator UNSUBSCRIBE
enumerator RESPONSE
enumerator CLEAR_ALL
enum class icsneo::LiveDataStatus : uint32_t

Values:

enumerator SUCCESS
enumerator ERR_UNKNOWN_COMMAND
enumerator ERR_HANDLE
enumerator ERR_DUPLICATE
enumerator ERR_FULL
enum icsneo::LiveDataObjectType

Values:

enumerator MISC
enumerator SNA
enum class icsneo::LiveDataValueType : uint32_t

Values:

enumerator GPS_LATITUDE
enumerator GPS_LONGITUDE
enumerator GPS_ALTITUDE
enumerator GPS_SPEED
enumerator GPS_VALID
enumerator GPS_ENABLE
enumerator GPS_ACCURACY
enumerator GPS_BEARING
enumerator GPS_TIME
enumerator GPS_TIME_VALID
enum class icsneo::PCMType : uint8_t

Values:

enumerator L16
enumerator L24
enumerator L32
enum class icsneo::AppErrorType : uint16_t

Values:

enumerator AppErrorRxMessagesFull
enumerator AppErrorTxMessagesFull
enumerator AppErrorTxReportMessagesFull
enumerator AppErrorBadCommWithDspIC
enumerator AppErrorDriverOverflow
enumerator AppErrorPCBuffOverflow
enumerator AppErrorPCChksumError
enumerator AppErrorPCMissedByte
enumerator AppErrorPCOverrunError
enumerator AppErrorSettingFailure
enumerator AppErrorTooManySelectedNetworks
enumerator AppErrorNetworkNotEnabled
enumerator AppErrorRtcNotCorrect
enumerator AppErrorLoadedDefaultSettings
enumerator AppErrorFeatureNotUnlocked
enumerator AppErrorFeatureRtcCmdDropped
enumerator AppErrorTxMessagesFlushed
enumerator AppErrorTxMessagesHalfFull
enumerator AppErrorNetworkNotValid
enumerator AppErrorTxInterfaceNotImplemented
enumerator AppErrorTxMessagesCommEnableIsOff
enumerator AppErrorRxFilterMatchCountExceeded
enumerator AppErrorEthPreemptionNotEnabled
enumerator AppErrorTxNotSupportedInMode
enumerator AppErrorJumboFramesNotSupported
enumerator AppErrorEthernetIpFragment
enumerator AppErrorTxMessagesUnderrun
enumerator AppErrorDeviceFanFailure
enumerator AppErrorDeviceOvertemperature
enumerator AppErrorTxMessageIndexOutOfRange
enumerator AppErrorUndersizedFrameDropped
enumerator AppErrorOversizedFrameDropped
enumerator AppErrorWatchdogEvent
enumerator AppErrorSystemClockFailure
enumerator AppErrorSystemClockRecovered
enumerator AppErrorSystemPeripheralReset
enumerator AppErrorSystemCommunicationFailure
enumerator AppErrorTxMessagesUnsupportedSourceOrPacketId
enumerator AppErrorWbmsManagerConnectFailed
enumerator AppErrorWbmsManagerConnectBadState
enumerator AppErrorWbmsManagerConnectTimeout
enumerator AppErrorFailedToInitializeLoggerDisk
enumerator AppErrorInvalidSetting
enumerator AppErrorSystemFailureRequestedReset
enumerator AppErrorPortKeyMistmatch
enumerator AppErrorBusFailure
enumerator AppErrorTapOverflow
enumerator AppErrorEthTxNoLink
enumerator AppErrorErrorBufferOverflow
enumerator AppNoError
enum class icsneo::CANErrorCode : uint8_t

Values:

enumerator NoError
enumerator StuffError
enumerator FormError
enumerator AckError
enumerator Bit1Error
enumerator Bit0Error
enumerator CRCError
enumerator NoChange
enum class icsneo::MACsecPacketType : uint8_t

Values:

enumerator NoVLANOrMPLS
enumerator SingleVLAN
enumerator DualVLAN
enumerator MPLS
enumerator SingleVLANFollowedByMPLS
enumerator DualVLANFollowedByMPLS
enumerator Unsupported
enum class icsneo::MACsecValidateFrameType : uint8_t

Values:

enumerator Disabled

Disable validation

enumerator Check

Enable validation, do not discard invalid frames

enumerator Strict

Enable validation and discard invalid frames

enumerator NA

No processing or accounting

enum class icsneo::MACsecSecTagIcvStripType : uint8_t

Values:

enumerator StripBoth

Strip both SecTag and ICV from packet

enumerator StripSecTagPreserveICV
enumerator PreserveSecTagStripICV

Preserve SecTag, Strip ICV

enumerator PreserveBoth

Preserve both SecTag and ICV

enum class icsneo::MACsecCipherSuiteType : uint8_t

Values:

enumerator GcmAes128
enumerator GcmAes256
enumerator GcmAes128Xpn
enumerator GcmAes256Xpn
enum class icsneo::SupportedFeature : uint16_t

Values:

enumerator networkDWCAN01
enumerator networkDWCAN02
enumerator networkDWCAN03
enumerator networkDWCAN04
enumerator networkDWCAN05
enumerator networkDWCAN06
enumerator networkDWCAN07
enumerator networkDWCAN08
enumerator networkTerminationDWCAN01
enumerator networkTerminationDWCAN02
enumerator networkTerminationDWCAN03
enumerator networkTerminationDWCAN04
enumerator networkTerminationDWCAN05
enumerator networkTerminationDWCAN06
enumerator networkTerminationDWCAN07
enumerator networkTerminationDWCAN08
enumerator enhancedFlashDriver
enumerator rtcCalibration
enumerator rtcClosedLoopCalibration
enumerator numSupportedFeatures
enum class icsneo::TC10WakeStatus : uint8_t

Values:

enumerator NoWakeReceived
enumerator WakeReceived
enum class icsneo::TC10SleepStatus : uint8_t

Values:

enumerator NoSleepReceived
enumerator SleepReceived
enumerator SleepFailed
enumerator SleepAborted
enum icsneo::RadMoonDuoConverterMode

Values:

enumerator CONVERTER_TARGET_RJ45
enumerator CONVERTER_TARGET_USB_CM
typedef std::function<void(APIEvent::Type, APIEvent::Severity)> icsneo::device_eventhandler_t
using icsneo::MiscIO = neomiscio_t
typedef uint32_t icsneo::LiveDataHandle
using icsneo::PCMSample = int32_t
using icsneo::ChannelMap = std::unordered_map<uint8_t, uint8_t>
using icsneo::CANErrorCountMessage = CANErrorMessage
typedef uint16_t icsneo::icscm_bitfield
typedef uint64_t icsneo::MemoryAddress
typedef std::function<std::unique_ptr<Driver>(device_eventhandler_t err, neodevice_t &forDevice)> icsneo::driver_factory_t
typedef struct icsneo::valuecan4_1_2_settings_t icsneo::valuecan4_1_settings_t
typedef struct icsneo::valuecan4_1_2_settings_t icsneo::valuecan4_2_settings_t
typedef struct icsneo::valuecan4_4_2el_settings_t icsneo::valuecan4_4_settings_t
typedef struct icsneo::valuecan4_4_2el_settings_t icsneo::valuecan4_2el_settings_t
typedef struct icsneo::valuecan4_4_2el_status_t icsneo::valuecan4_4_status_t
typedef struct icsneo::valuecan4_4_2el_status_t icsneo::valuecan4_2el_status_t
using icsneo::CaptureBitfield = uint16_t
using icsneo::Timestamp = ICSClock::time_point
static constexpr size_t icsneo::MAX_LIVE_DATA_ENTRIES = 20
static constexpr size_t icsneo::MaxPhyEntries = 128u
static constexpr size_t icsneo::MaxBytesPhyEntries = MaxPhyEntries * sizeof(PhyRegisterHeader_t)
static constexpr uint8_t icsneo::PhyPacketVersion = 1u
static constexpr uint8_t icsneo::FiveBits = 0x1Fu
static constexpr size_t icsneo::I2CMaxLength = 1024u
static constexpr uint64_t icsneo::ICSEpochHoursSinceUnix = 13514 * 24
static constexpr uint64_t icsneo::UINT63_MAX = 0x7FFFFFFFFFFFFFFFu
neoversion_t icsneo::GetVersion(void)
inline std::ostream &icsneo::operator<<(std::ostream &os, const LiveDataCommand cmd)
inline std::ostream &icsneo::operator<<(std::ostream &os, const LiveDataStatus cmd)
inline std::ostream &icsneo::operator<<(std::ostream &os, const LiveDataValueType cmd)
neomessage_t icsneo::CreateNeoMessage(const std::shared_ptr<Message> message)
std::shared_ptr<Message> icsneo::CreateMessageFromNeoMessage(const neomessage_t *neomessage)
std::vector<std::shared_ptr<Device>> icsneo::FindAllDevices()
std::vector<DeviceType> icsneo::GetSupportedDevices()
size_t icsneo::EventCount(EventFilter filter = EventFilter())
std::vector<APIEvent> icsneo::GetEvents(EventFilter filter, size_t max = 0)
std::vector<APIEvent> icsneo::GetEvents(size_t max = 0, EventFilter filter = EventFilter())
void icsneo::GetEvents(std::vector<APIEvent> &events, EventFilter filter, size_t max = 0)
void icsneo::GetEvents(std::vector<APIEvent> &events, size_t max = 0, EventFilter filter = EventFilter())
APIEvent icsneo::GetLastError()
void icsneo::DiscardEvents(EventFilter filter = EventFilter())
void icsneo::SetEventLimit(size_t newLimit)
size_t icsneo::GetEventLimit()
std::string icsneo::convertWideString(const std::wstring &value)
std::wstring icsneo::convertStringToWide(const std::string &value)
class A2BMessage : public icsneo::Frame
#include <a2bmessage.h>

Public Types

enum class TDMMode : uint8_t

Values:

enumerator TDM2
enumerator TDM4
enumerator TDM8
enumerator TDM12
enumerator TDM16
enumerator TDM20
enumerator TDM24
enumerator TDM32
enum class Direction : uint8_t

Values:

enumerator Downstream
enumerator Upstream

Public Functions

A2BMessage() = default
A2BMessage(size_t numFrames, TDMMode tdm, bool chSize16)

Creates a new A2BMessage

Parameters:
  • numFrames – The number of audio frames to hold in the message audio buffer

  • tdm – The TDM mode to transmit this message to, note this variable determines the number of channels

  • chSize16 – True if the message channel sizes are 16 bit, false for 32 bit.

A2BMessage(TDMMode tdm, bool chSize16)

Creates a new A2BMessage with the maximum number of possible frames

Parameters:
  • tdm – The TDM mode to transmit this message to, note this variable determines the number of channels

  • chSize16 – True if the message channel sizes are 16 bit, false for 32 bit.

bool loadAudioBuffer(IWAVStream &wavStream, const ChannelMap &channelMap)

Loads A2BMessage audio buffer from a IWAVStream object representing a WAV data-stream

Parameters:
  • wavStream – The WAV data-stream the audio buffer with

  • channelMap – A map which maps a message channel to a wav channel. See docs for A2B message channel format

Returns:

true on successful load, false otherwise

PCMSample getChannelSample(Direction dir, uint8_t channel, size_t frame, PCMType pcmType) const

Get a PCM sample from the audio buffer. If the desired pcmType is larger than the channel size, the output will be a PCM sample which is scaled up.

Parameters:
  • dir – The direction of the A2B stream

  • channel – The desired channel to read a PCM sample from

  • frame – The desired frame to read a PCM sample from

  • pcmType – The interpretted bit depth of the audio buffer sample

void setChannelSample(Direction dir, uint8_t channel, size_t frame, PCMSample sampleToSet, PCMType pcmType)

Write a PCM sample to the audio buffer

Parameters:
  • dir – The direction of the A2B stream

  • channel – The desired channel to write a PCM sample to

  • frame – The desired frame to write a PCM sample to

  • sampleToSet – The PCM sample which will be written to the buffer

  • pcmType – The interpretted bit depth of the sample to write

size_t getFrameSize() const
size_t getSampleOffset(Direction dir, uint8_t channel, size_t frame) const
uint8_t getBytesPerChannel() const
size_t getNumFrames() const

Public Members

uint16_t rfu2 = 0
uint8_t numChannels = 0
bool channelSize16 = false
bool monitor = false
bool txmsg = false
bool errIndicator = false
bool syncFrame = false

Public Static Functions

static uint8_t tdmToChannelNum(TDMMode tdm)

Public Static Attributes

static constexpr size_t maxAudioBufferSize = 2048
class A2BWAVOutput : public icsneo::StreamOutput
#include <a2bwavoutput.h>

A message callback which injests A2BMessage PCM data and formats it into a WAV file

Public Functions

A2BWAVOutput(const char *filename, const ChannelMap &channelMap, PCMType bitDepth, size_t numWAVChannels, uint32_t sampleRate = 48000)

Creates a new A2BWAVOutput object

Parameters:
  • filename – Name of desired output WAV file

  • channelMap – A map which maps a channel in the output WAV file to a channel in received messages. See docs for specific channel format in messages

  • bitDepth – The size of the samples in the WAV file.

  • numWAVChannels – The number of channels in the output WAV file

  • sampleRate – The output WAV file sample rate

A2BWAVOutput(std::ostream &os, const ChannelMap &channelMap, PCMType bitDepth, size_t numWAVChannels, uint32_t sampleRate = 48000)

Creates a new A2BWAVOutput object

Parameters:
  • os – A std::ostream object which represents this WAV file

  • channelMap – A map which maps a channel in the output WAV file to a channel in received messages. See docs for specific channel format in messages

  • bitDepth – The size of the samples in the WAV file.

  • numWAVChannels – The number of channels in the output WAV file

  • sampleRate – The output WAV file sample rate

virtual bool callIfMatch(const std::shared_ptr<Message> &message) const override
~A2BWAVOutput() override

Public Static Attributes

static constexpr size_t wavBufferSize = 1024 * 32
class APIEvent
#include <event.h>

Public Types

enum class Type : uint32_t

Values:

enumerator Any
enumerator InvalidNeoDevice
enumerator RequiredParameterNull
enumerator BufferInsufficient
enumerator OutputTruncated
enumerator ParameterOutOfRange
enumerator DeviceCurrentlyOpen
enumerator DeviceCurrentlyClosed
enumerator DeviceCurrentlyOnline
enumerator DeviceCurrentlyOffline
enumerator DeviceCurrentlyPolling
enumerator DeviceNotCurrentlyPolling
enumerator UnsupportedTXNetwork
enumerator MessageMaxLengthExceeded
enumerator ValueNotYetPresent
enumerator Timeout
enumerator WiVINotSupported
enumerator RestrictedEntryFlag
enumerator NotSupported
enumerator PollingMessageOverflow
enumerator NoSerialNumber
enumerator IncorrectSerialNumber
enumerator SettingsReadError
enumerator SettingsVersionError
enumerator SettingsLengthError
enumerator SettingsChecksumError
enumerator SettingsNotAvailable
enumerator SettingsReadOnly
enumerator CANSettingsNotAvailable
enumerator CANFDSettingsNotAvailable
enumerator LSFTCANSettingsNotAvailable
enumerator SWCANSettingsNotAvailable
enumerator BaudrateNotFound
enumerator UnexpectedNetworkType
enumerator DeviceFirmwareOutOfDate
enumerator SettingsStructureMismatch
enumerator SettingsStructureTruncated
enumerator NoDeviceResponse
enumerator MessageFormattingError
enumerator CANFDNotSupported
enumerator RTRNotSupported
enumerator DeviceDisconnected
enumerator OnlineNotSupported
enumerator TerminationNotSupportedDevice
enumerator TerminationNotSupportedNetwork
enumerator AnotherInTerminationGroupEnabled
enumerator NoSerialNumberFW
enumerator NoSerialNumber12V
enumerator NoSerialNumberFW12V
enumerator EthPhyRegisterControlNotAvailable
enumerator DiskNotSupported
enumerator EOFReached
enumerator SettingsDefaultsUsed
enumerator AtomicOperationRetried
enumerator AtomicOperationCompletedNonatomically
enumerator WiVIStackRefreshFailed
enumerator WiVIUploadStackOverflow
enumerator I2CMessageExceedsMaxLength
enumerator A2BMessageIncompleteFrame
enumerator CoreminiUploadVersionMismatch
enumerator DiskNotConnected
enumerator UnexpectedResponse
enumerator LiveDataInvalidHandle
enumerator LiveDataInvalidCommand
enumerator LiveDataInvalidArgument
enumerator LiveDataVersionMismatch
enumerator LiveDataNoDeviceResponse
enumerator LiveDataMaxSignalsReached
enumerator LiveDataCommandFailed
enumerator LiveDataEncoderError
enumerator LiveDataDecoderError
enumerator LiveDataNotSupported
enumerator LINSettingsNotAvailable
enumerator ModeNotFound
enumerator AppErrorParsingFailed
enumerator GPTPNotSupported
enumerator SettingNotAvaiableDevice
enumerator FailedToRead
enumerator FailedToWrite
enumerator DriverFailedToOpen
enumerator DriverFailedToClose
enumerator PacketChecksumError
enumerator TransmitBufferFull
enumerator DeviceInUse
enumerator PCAPCouldNotStart
enumerator PCAPCouldNotFindDevices
enumerator PacketDecodingError
enumerator SocketFailedToOpen
enumerator FailedToBind
enumerator ErrorSettingSocketOption
enumerator GetIfAddrsError
enumerator SendToError
enumerator MDIOMessageExceedsMaxLength
enumerator FTOK
enumerator FTInvalidHandle
enumerator FTDeviceNotFound
enumerator FTDeviceNotOpened
enumerator FTIOError
enumerator FTInsufficientResources
enumerator FTInvalidParameter
enumerator FTInvalidBaudRate
enumerator FTDeviceNotOpenedForErase
enumerator FTDeviceNotOpenedForWrite
enumerator FTFailedToWriteDevice
enumerator FTEEPROMReadFailed
enumerator FTEEPROMWriteFailed
enumerator FTEEPROMEraseFailed
enumerator FTEEPROMNotPresent
enumerator FTEEPROMNotProgrammed
enumerator FTInvalidArgs
enumerator FTNotSupported
enumerator FTNoMoreItems
enumerator FTTimeout
enumerator FTOperationAborted
enumerator FTReservedPipe
enumerator FTInvalidControlRequestDirection
enumerator FTInvalidControlRequestType
enumerator FTIOPending
enumerator FTIOIncomplete
enumerator FTHandleEOF
enumerator FTBusy
enumerator FTNoSystemResources
enumerator FTDeviceListNotReady
enumerator FTDeviceNotConnected
enumerator FTIncorrectDevicePath
enumerator FTOtherError
enumerator VSABufferCorrupted
enumerator VSATimestampNotFound
enumerator VSABufferFormatError
enumerator VSAMaxReadAttemptsReached
enumerator VSAByteParseFailure
enumerator VSAExtendedMessageError
enumerator VSAOtherError
enumerator NoErrorFound
enumerator TooManyEvents
enumerator Unknown
enum class Severity : uint8_t

Values:

enumerator Any
enumerator EventInfo
enumerator EventWarning
enumerator Error
typedef std::chrono::system_clock EventClock
typedef std::chrono::time_point<EventClock> EventTimePoint

Public Functions

inline APIEvent()
APIEvent(APIEvent::Type event, APIEvent::Severity severity, const Device *device = nullptr)
inline const neoevent_t *getNeoEvent() const noexcept
inline Type getType() const noexcept
inline Severity getSeverity() const noexcept
inline std::string getDescription() const noexcept
inline const Device *getDevice() const noexcept
inline EventTimePoint getTimestamp() const noexcept
void downgradeFromError() noexcept
inline bool isForDevice(const Device *forDevice) const noexcept
bool isForDevice(std::string serial) const noexcept
std::string describe() const noexcept

Public Static Functions

static const char *DescriptionForType(Type type)

Friends

inline friend std::ostream &operator<<(std::ostream &os, const APIEvent &event)
class AppErrorMessage : public icsneo::RawMessage
#include <apperrormessage.h>

Public Functions

inline AppErrorMessage()
AppErrorType getAppErrorType()
std::string getAppErrorString()

Public Members

uint16_t errorType
Network::NetID errorNetID
uint32_t timestamp10us
uint32_t timestamp10usMSB

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
class CANErrorMessage : public icsneo::Message
#include <canerrormessage.h>

Public Functions

inline CANErrorMessage()

Public Members

Network network
uint8_t transmitErrorCount
uint8_t receiveErrorCount
bool busOff
bool errorPassive
bool errorWarn
CANErrorCode dataErrorCode
CANErrorCode errorCode
class CANMessage : public icsneo::Frame
#include <canmessage.h>

Public Members

uint32_t arbid
uint8_t dlcOnWire
bool isRemote = false
bool isExtended = false
bool isCANFD = false
bool baudrateSwitch = false
bool errorStateIndicator = false
class CANMessageCallback : public icsneo::MessageCallback
#include <canmessagecallback.h>

Public Functions

inline CANMessageCallback(fn_messageCallback cb, std::shared_ptr<CANMessageFilter> f)
inline CANMessageCallback(fn_messageCallback cb, CANMessageFilter f = CANMessageFilter())
inline CANMessageCallback(std::shared_ptr<CANMessageFilter> f, fn_messageCallback cb)
inline CANMessageCallback(CANMessageFilter f, fn_messageCallback cb)
class CANMessageFilter : public icsneo::MessageFilter
#include <canmessagefilter.h>

Public Functions

inline CANMessageFilter()
inline CANMessageFilter(uint32_t arbid)
inline virtual bool match(const std::shared_ptr<Message> &message) const
class CDCACM : public icsneo::Driver, public icsneo::VCP
#include <cdcacm.h>

Public Functions

inline CDCACM(const device_eventhandler_t &err, neodevice_t &forDevice)

Note: This is a driver for all devices which use CDC_ACM Once we find the TTY we want it’s a pretty generic POSIX TTY driver, but the method for finding the TTY we want varies by OS. On Linux, we read sysfs to find users of the CDC_ACM driver On macOS, we use IOKit to find the USB device we’re looking for As such platform specific FindByProduct & HandleToTTY code can be found in cdcacmlinux.cpp and cdcacmdarwin.cpp respectively Other POSIX systems (BSDs, QNX, etc) will need bespoke code written in the future

~CDCACM()
virtual bool open() override
virtual bool isOpen() override
virtual bool close() override
virtual void modeChangeIncoming() override
virtual void awaitModeChangeComplete() override
inline CDCACM(const device_eventhandler_t &err, neodevice_t &forDevice)

Public Static Functions

static void Find(std::vector<FoundDevice> &found)
static inline void Find(std::vector<FoundDevice> &found)
struct Clause22Message
#include <ethphyregpacket.h>

Public Members

uint8_t phyAddr
uint8_t page
uint16_t regAddr
uint16_t regVal
struct Clause45Message
#include <ethphyregpacket.h>

Public Members

uint8_t port
uint8_t device
uint16_t regAddr
uint16_t regVal
class Communication
#include <communication.h>

Subclassed by icsneo::MultiChannelCommunication

Public Functions

inline Communication(device_eventhandler_t report, std::unique_ptr<Driver> &&driver, std::function<std::unique_ptr<Packetizer>()> makeConfiguredPacketizer, std::unique_ptr<Encoder> &&e, std::unique_ptr<Decoder> &&md)
virtual ~Communication()
bool open()
bool close()
bool isOpen()
bool isDisconnected()
virtual void spawnThreads()
virtual void joinThreads()
inline void modeChangeIncoming()
inline void awaitModeChangeComplete()
inline bool rawWrite(const std::vector<uint8_t> &bytes)
virtual bool sendPacket(std::vector<uint8_t> &bytes)
void pauseReads()
void resumeReads()
bool readsArePaused()
inline void setWriteBlocks(bool blocks)
inline virtual bool sendCommand(Command cmd, bool boolean)
virtual bool sendCommand(Command cmd, std::vector<uint8_t> arguments = {})
bool sendCommand(ExtendedCommand cmd, std::vector<uint8_t> arguments = {})
bool getSettingsSync(std::vector<uint8_t> &data, std::chrono::milliseconds timeout = std::chrono::milliseconds(50))
std::shared_ptr<SerialNumberMessage> getSerialNumberSync(std::chrono::milliseconds timeout = std::chrono::milliseconds(50))
std::optional<std::vector<std::optional<DeviceAppVersion>>> getVersionsSync(std::chrono::milliseconds timeout = std::chrono::milliseconds(50))
std::shared_ptr<LogicalDiskInfoMessage> getLogicalDiskInfoSync(std::chrono::milliseconds timeout = std::chrono::milliseconds(50))
std::optional<std::vector<ComponentVersion>> getComponentVersionsSync(std::chrono::milliseconds timeout = std::chrono::milliseconds(50))
int addMessageCallback(const std::shared_ptr<MessageCallback> &cb)
bool removeMessageCallback(int id)
inline std::shared_ptr<Message> waitForMessageSync(const std::shared_ptr<MessageFilter> &f = {}, std::chrono::milliseconds timeout = std::chrono::milliseconds(500))
std::shared_ptr<Message> waitForMessageSync(std::function<bool(void)> onceWaitingDo, const std::shared_ptr<MessageFilter> &f = {}, std::chrono::milliseconds timeout = std::chrono::milliseconds(500))
void dispatchMessage(const std::shared_ptr<Message> &msg)

Public Members

std::function<std::unique_ptr<Packetizer>()> makeConfiguredPacketizer
std::unique_ptr<Packetizer> packetizer
std::unique_ptr<Encoder> encoder
std::unique_ptr<Decoder> decoder
std::unique_ptr<Driver> driver
device_eventhandler_t report
size_t readTaskWakeLimit = 1
std::chrono::milliseconds readTaskWakeTimeout = std::chrono::milliseconds(1000)
class ComponentVersion
#include <componentversionsmessage.h>

Public Functions

inline ComponentVersion(uint8_t valid, uint8_t componentInfo, uint32_t identifier, uint32_t dotVersion, uint32_t commitHash)

Public Members

const bool valid
const uint8_t componentInfo
const uint32_t identifier
const uint32_t dotVersion
const uint32_t commitHash

Public Static Functions

static inline ComponentVersion FromAppVersion(uint32_t identifier, uint8_t appMajor, uint8_t appMinor)
struct ComponentVersionPacket
#include <componentversionpacket.h>

Public Static Functions

static std::shared_ptr<ComponentVersionsMessage> DecodeToMessage(const std::vector<uint8_t> &bytes)
class ComponentVersionsMessage : public icsneo::Message
#include <componentversionsmessage.h>

Public Functions

inline ComponentVersionsMessage()

Public Members

std::vector<ComponentVersion> versions
union CoreMiniFixedPointValue
#include <wivicommandpacket.h>

Public Functions

inline CoreMiniFixedPointValue()
inline CoreMiniFixedPointValue(int32_t integralValue)

Public Members

uint32_t ValueFractionPart
int16_t ValueInt16FractionLSB
int16_t ValueInt16FractionMSB
int32_t ValueInt32
int16_t ValueInt16
int16_t ValueInt16PartMSB
uint8_t ValueInt8
uint8_t ValueInt8PartMSB
int16_t ValueInt8Part16MSB
struct icsneo::CoreMiniFixedPointValue
int64_t ValueLarge
struct CoreminiHeader
#include <coremini.h>

Public Members

uint16_t coreminiVersion
uint32_t storedFileSize
uint32_t fileChecksum
bool skipDecompression
bool encryptedMode
std::array<uint8_t, 32> fileHash
std::chrono::time_point<std::chrono::system_clock> timestamp
struct CoreMiniStatus
#include <scriptstatuspacket.h>

Public Members

uint32_t justReset
uint32_t communicationEnabled
uint32_t isRunning
uint32_t checksumFailed
uint32_t licenseFailed
uint32_t versionMismatch
uint32_t bootOff
uint32_t hardwareFailure
uint32_t isPassiveConnect
uint32_t usbCommunicationEnabled
uint32_t linuxCommunicationEnabled
uint32_t tooBig
uint32_t hidUsbState
uint32_t fpgaUsbState
uint32_t filesystem
uint32_t isEncrypted
uint32_t reserved
class Decoder
#include <decoder.h>

Public Functions

inline Decoder(device_eventhandler_t report)
bool decode(std::shared_ptr<Message> &result, const std::shared_ptr<Packet> &packet)

Public Members

uint16_t timestampResolution = 25

Public Static Functions

static uint64_t GetUInt64FromLEBytes(const uint8_t *bytes)
class Device
#include <device.h>

Subclassed by icsneo::EtherBADGE, icsneo::NeoOBD2PRO, icsneo::NeoOBD2SIM, icsneo::NeoVIConnect, icsneo::NeoVIFIRE, icsneo::NeoVIFIRE2, icsneo::NeoVIFIRE3, icsneo::NeoVIFIRE3FlexRay, icsneo::NeoVIRED2, icsneo::Plasion, icsneo::RADA2B, icsneo::RADComet3, icsneo::RADCometBase, icsneo::RADEpsilon, icsneo::RADEpsilonXL, icsneo::RADGalaxy, icsneo::RADGalaxy2, icsneo::RADGigastar, icsneo::RADGigastar2, icsneo::RADJupiter, icsneo::RADMars, icsneo::RADMoon2Base, icsneo::RADMoon3, icsneo::RADMoonDuo, icsneo::RADMoonT1S, icsneo::RADPluto, icsneo::RADStar2, icsneo::RADSupermoon, icsneo::ValueCAN3, icsneo::ValueCAN4, icsneo::VividCAN

Public Types

enum class OpenDirective

Values:

enumerator Continue
enumerator Cancel
enumerator Skip
enum class OpenStatusType

Values:

enumerator QuestionContinueSkipCancel
enumerator QuestionContinueCancel
enumerator Progress
enum class PreloadReturn : uint8_t

Values:

enumerator Pending
enumerator Ok
enumerator OKEncrypted
enumerator NoScript
enum class ScriptStatus

Values:

enumerator CoreMiniRunning
enumerator SectorOverflow
enumerator RemainingSectors
enumerator LastSector
enumerator ReadBinSize
enumerator MinSector
enumerator MaxSector
enumerator CurrentSector
enumerator CoreMiniCreateTime
enumerator FileChecksum
enumerator CoreMiniVersion
enumerator CoreMiniHeaderSize
enumerator DiagnosticErrorCode
enumerator DiagnosticErrorCodeCount
enumerator MaxCoreMiniSize
enumerator Logging
enumerator IsEncrypted
enum RootDirectoryEntryFlags

Values:

enumerator IsPrePost
enumerator PrePostTriggered
enumerator UploadPriority
enumerator CellularEnabled
enumerator WiFiEnabled
enumerator Uploaded
enumerator Unused
using OpenStatusHandler = std::function<Device::OpenDirective(OpenStatusType type, const std::string &status, std::optional<double> progress)>
typedef std::function<void(WiVIUpload upload)> NewCaptureCallback
typedef std::function<void(uint16_t connectionTimeoutMinutes)> SleepRequestedCallback
typedef std::function<void(uint64_t value)> ScriptStatusCallback

Public Functions

virtual ~Device()
uint16_t getTimestampResolution() const
inline DeviceType getType() const
inline std::string getSerial() const
inline uint32_t getSerialNumber() const
inline const neodevice_t &getNeoDevice() const
inline virtual std::string getProductName() const
std::string describe() const
bool open(OpenFlags flags = {}, OpenStatusHandler handler = [](OpenStatusType, const std::string &, std::optional< double >) { return Device::OpenDirective::Continue;})
virtual bool close()
inline virtual bool isOnline() const
inline virtual bool isOpen() const
inline virtual bool isDisconnected() const
virtual bool goOnline()
virtual bool goOffline()
int8_t prepareScriptLoad()
bool startScript(Disk::MemoryType memType = Disk::MemoryType::SD)
bool stopScript()
bool clearScript(Disk::MemoryType memType = Disk::MemoryType::SD)
bool uploadCoremini(std::istream &stream, Disk::MemoryType memType = Disk::MemoryType::SD)
std::optional<CoreminiHeader> readCoreminiHeader(Disk::MemoryType memType = Disk::MemoryType::SD)
bool eraseScriptMemory(Disk::MemoryType memType, uint64_t amount)
inline virtual std::optional<MemoryAddress> getCoreminiStartAddressFlash() const
inline virtual std::optional<MemoryAddress> getCoreminiStartAddressSD() const
inline std::optional<MemoryAddress> getCoreminiStartAddress(Disk::MemoryType memType) const
inline virtual bool supportsEraseMemory() const
bool enableMessagePolling()
bool disableMessagePolling()
inline bool isMessagePollingEnabled()
std::pair<std::vector<std::shared_ptr<Message>>, bool> getMessages()
bool getMessages(std::vector<std::shared_ptr<Message>> &container, size_t limit = 0, std::chrono::milliseconds timeout = std::chrono::milliseconds(0))
inline size_t getCurrentMessageCount()
inline size_t getPollingMessageLimit()
inline void setPollingMessageLimit(size_t newSize)
inline int addMessageCallback(const std::shared_ptr<MessageCallback> &cb)
inline bool removeMessageCallback(int id)
bool transmit(std::shared_ptr<Frame> frame)
bool transmit(std::vector<std::shared_ptr<Frame>> frames)
void setWriteBlocks(bool blocks)
inline const std::vector<Network> &getSupportedRXNetworks() const
inline const std::vector<Network> &getSupportedTXNetworks() const
inline virtual bool isSupportedRXNetwork(const Network &net) const
inline virtual bool isSupportedTXNetwork(const Network &net) const
virtual size_t getNetworkCountByType(Network::Type) const
virtual Network getNetworkByNumber(Network::Type, size_t) const
std::shared_ptr<HardwareInfo> getHardwareInfo(std::chrono::milliseconds timeout = std::chrono::milliseconds(100))
std::optional<uint64_t> readLogicalDisk(uint64_t pos, uint8_t *into, uint64_t amount, std::chrono::milliseconds timeout = Disk::DefaultTimeout, Disk::MemoryType memType = Disk::MemoryType::SD)

Read from the logical disk in this device, starting from byte pos and reading up to amount bytes.

The number of bytes read will be returned in case of success.

If the number of bytes read is less than the amount requested, an error will be set in icsneo::GetLastError() explaining why. Likely, either the end of the logical disk has been reached, or the timeout was reached while the read had only partially completed.

Upon failure, icsneo::nullopt will be returned and an error will be set in icsneo::GetLastError().

std::optional<uint64_t> writeLogicalDisk(uint64_t pos, const uint8_t *from, uint64_t amount, std::chrono::milliseconds timeout = Disk::DefaultTimeout, Disk::MemoryType memType = Disk::MemoryType::SD)

Write to the logical disk in this device, starting from byte pos and writing up to amount bytes.

The number of bytes written will be returned in case of success.

If the number of bytes written is less than the amount requested, an error will be set in icsneo::GetLastError() explaining why. Likely, either the end of the logical disk has been reached, or the timeout was reached while the write had only partially completed.

Upon failure, icsneo::nullopt will be returned and an error will be set in icsneo::GetLastError().

std::optional<bool> isLogicalDiskConnected()

Check if the logical disk is connected. This means the disk is inserted, and if required (for instance for multi-card configurations), configured properly.

This method is synchronous and contacts the device for the latest status.

icsneo::nullopt will be returned if the device does not respond in a timely manner.

std::optional<uint64_t> getLogicalDiskSize()

Get the size of the connected logical disk in bytes.

This method is synchronous and contacts the device for the latest status.

icsneo::nullopt will be returned if the device does not respond in a timely manner, or if the disk is disconnected/improperly configured.

std::optional<uint64_t> getVSAOffsetInLogicalDisk()

Get the offset to the VSA filesystem within the logical disk, represented in bytes.

This method is synchronous and consacts the device for the latest status if necessary.

icsneo::nullopt will be returned if the device does not respond in a timely manner, or if the disk is disconnected/improperly configured.

inline virtual size_t getEthernetActivationLineCount() const

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual size_t getUSBHostPowerCount() const

Retrieve the number of power-controlled USB Host ports present on this device.

inline virtual bool getBackupPowerSupported() const

Tell whether the current device supports controlling a backup power source through the API.

inline virtual std::vector<MiscIO> getMiscIO() const

Retrieve the information about the misc IOs present on this device.

inline virtual std::vector<MiscIO> getEMiscIO() const

Retrieve the information about the emisc IOs present on this device.

std::optional<bool> getDigitalIO(IO type, size_t number = 1)

Get the value of a digital IO, returning an empty optional if the value is not present, the specified IO is not valid for this device, or if an error occurs.

The index number starts counting at 1 to keep the numbers in sync with the numbering on the device, and is set to 1 by default.

bool setDigitalIO(IO type, size_t number, bool value)

Set a digital IO to either a 1, if value is true, or 0 otherwise.

The index number starts counting at 1 to keep the numbers in sync with the numbering on the device.

inline bool setDigitalIO(IO type, bool value)

Set the first digital IO of a given type to either a 1, if value is true, or 0 otherwise.

std::optional<double> getAnalogIO(IO type, size_t number = 1)

Get the value of an analog IO, returning an empty optional if the value is not present, the specified IO is not valid for this device, or if an error occurs.

The index number starts counting at 1 to keep the numbers in sync with the numbering on the device, and is set to 1 by default.

Lifetime addNewCaptureCallback(NewCaptureCallback cb)

Add a callback which will be called for all new captures.

This is invalid for devices which are not running the Wireless neoVI stack.

Lifetime addSleepRequestedCallback(SleepRequestedCallback cb)

Add a callback which will be called when a Wireless neoVI device is ready for sleep, pending any uploads we might want to complete first.

Call Device::allowSleep() once ready to signal that status to the device.

Check Device::isSleepRequested() to check if the sleep request was interrupted. In that case, the sleep requested callbacks will be called again.

This is invalid for devices which are not running the Wireless neoVI stack.

std::optional<bool> isSleepRequested() const

Check whether sleep has been requested by a VSSAL Wireless neoVI script.

bool allowSleep(bool remoteWakeup = false)

Signal to a running VSSAL Wireless neoVI script that we are ready for sleep.

If

This is invalid for devices which are not running the Wireless neoVI stack.

Parameters:

remoteWakeup – is specified, the modem will be kept running in sleep mode, where supported.

std::shared_ptr<ScriptStatusMessage> getScriptStatus() const

Get all current script status values

inline Lifetime addCoreMiniRunningCallback(ScriptStatusCallback cb)

Add a callback to be called when VSSAL script running state changes

inline Lifetime addEncryptedModeCallback(ScriptStatusCallback cb)

Add a callback to be called when the VSSAL script encryption mode changes

inline Lifetime addSectorOverflowsCallback(ScriptStatusCallback cb)

Add a callback to be called when the number of times a sector was dropped due to lack of space in firmware’s filesystem buffer changes

inline Lifetime addNumberRemainingSectorsCallback(ScriptStatusCallback cb)

Add a callback to be called when number of sectors of space left in firmware’s local file system buffer changes

inline Lifetime addLastSectorCallback(ScriptStatusCallback cb)

Add a callback to be called when last sector that was written to changes

inline Lifetime addReadBinSizeCallback(ScriptStatusCallback cb)

Add a callback to be called when the size of the ReadBin changes

inline Lifetime addMinSectorCallback(ScriptStatusCallback cb)

Add a callback to be called when the first sector address of logged data changes

inline Lifetime addMaxSectorCallback(ScriptStatusCallback cb)

Add a callback to be called when the last sector address of logged data changes

inline Lifetime addCurrentSectorCallback(ScriptStatusCallback cb)

Add a callback to be called when the sector that is about to be written changes

inline Lifetime addCoreMiniCreateTimeCallback(ScriptStatusCallback cb)

Add a callback to be called when the VSSAL script create time changes

inline Lifetime addFileChecksumCallback(ScriptStatusCallback cb)

Add a callback to be called when the VSSAL script checksum changes

inline Lifetime addCoreMiniVersionCallback(ScriptStatusCallback cb)

Add a callback to be called when the VSSAL script version changes

inline Lifetime addCoreMiniHeaderSizeCallback(ScriptStatusCallback cb)

Add a callback to be called when the VSSAL script header size changes

inline Lifetime addDiagnosticErrorCodeCallback(ScriptStatusCallback cb)

Add a callback to be called when the firmware diagnostic error code changes

inline Lifetime addDiagnosticErrorCodeCountCallback(ScriptStatusCallback cb)

Add a callback to be called when the firmware diagnostic error code count changes

inline Lifetime addMaxCoreMiniSizeCallback(ScriptStatusCallback cb)

Add a callback to be called when the maximum size a VSSAL script can be changes

inline Lifetime addLoggingCallback(ScriptStatusCallback cb)

Add a callback to be called when the device logging state changes

inline virtual std::vector<std::shared_ptr<FlexRay::Controller>> getFlexRayControllers() const
void addExtension(std::shared_ptr<DeviceExtension> &&extension)
Lifetime suppressDisconnects()

For use by extensions only.

inline const std::vector<std::optional<DeviceAppVersion>> &getVersions() const

For use by extensions only. A more stable API will be provided in the future.

inline const std::vector<ComponentVersion> &getComponentVersions() const
inline virtual bool currentDriverSupportsDFU() const

Some alternate communication protocols do not support DFU

inline const device_eventhandler_t &getEventHandler() const
inline virtual bool getEthPhyRegControlSupported() const

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

std::optional<std::chrono::time_point<std::chrono::system_clock>> getRTC()
bool setRTC(const std::chrono::time_point<std::chrono::system_clock> &time)
std::optional<std::set<SupportedFeature>> getSupportedFeatures()
inline virtual bool supportsWiVI() const

Returns true if this device supports the Wireless neoVI featureset

inline virtual bool supportsLiveData() const
std::optional<EthPhyMessage> sendEthPhyMsg(const EthPhyMessage &message, std::chrono::milliseconds timeout = std::chrono::milliseconds(50))
std::optional<bool> SetRootDirectoryEntryFlags(uint8_t mask, uint8_t values, uint32_t collectionEntryByteAddress)

Set the flags of the root directory entry specified at given address

Will not allow changes of IsPrePost and PrePostTriggered flags and will produce a warning if there is an attempt to do so

Parameters:
  • mask – Flags to set, with each bit representing a different entry flag @RootDirectoryEntryFlags

  • values – The values in which to set each flag, each bit corresponding to the flag in the same position

  • collectionEntryByteAddress – The position of the root directory entry in which to set these flags

Returns:

Success or failure

std::optional<size_t> getGenericBinarySize(uint16_t binaryIndex)
bool readBinaryFile(std::ostream &stream, uint16_t binaryIndex)
bool writeBinaryFile(const std::vector<uint8_t> &in, uint16_t binaryIndex)
bool subscribeLiveData(std::shared_ptr<LiveDataCommandMessage> message)
bool unsubscribeLiveData(const LiveDataHandle &handle)
bool clearAllLiveData()
bool readVSA(const VSAExtractionSettings &extractionSettings = VSAExtractionSettings())

Read VSA message records from disk and dispatch the messages via Communication object. Default behavior excludes records older than the current CoreMini script and performs a full disk dump of other records. The CoreMini script is also stopped by default.

Parameters:

extractionSettings – Contains filters and other advanced settings for extraction process

Returns:

Returns false if there were failures during the read or parse processes or issues with record formatting, else true

bool probeVSA(VSAMetadata &metadata, const VSAExtractionSettings &extractionSettings)

Determines important metadata about VSA record storage on the disk. Terminates at first failed attempt to retrieve information

Parameters:
  • metadata – The metadata object to store the probed information into

  • extractionSettings – The settings for this extraction of VSA data

Returns:

True if all metadata information was successfully found

bool findFirstVSARecord(uint64_t &firstOffset, std::shared_ptr<VSA> &firstRecord, const VSAExtractionSettings &extractionSettings = VSAExtractionSettings(), std::optional<VSAMetadata> optMetadata = std::nullopt)

Find the first VSA record chronologically from ring buffer in the VSA log file on disk

Parameters:
  • firstOffset – Variable used to pass out offset of first record on the disk

  • firstRecord – Variable used to pass out the first record in the buffer

  • extractionSettings – The settings for this extraction of VSA data

  • optMetadata – Metadata about the current state of the VSA log file (Must include valid CoreMini timestamp, disk size, and isOverlapped values)

Returns:

True if the first record was found successfully

bool findLastVSARecord(uint64_t &lastOffset, std::shared_ptr<VSA> &lastRecord, const VSAExtractionSettings &extractionSettings = VSAExtractionSettings(), std::optional<VSAMetadata> optMetadata = std::nullopt)

Find the last record chronologically from ring buffer in the VSA log file with a valid timestamp

Parameters:
  • lastOffset – Variable used to pass out the offset of the last record on the disk

  • lastRecord – Variable used to pass out the last record with a valid timestamp

  • extractionSettings – The settings for this extraction of VSA data

  • optMetadata – Metadata about the current state of the VSA log file (Must include valid CoreMini timestamp, disk size, and isOverlapped values)

Returns:

True if the last record was found successfully

bool findVSAOffsetFromTimepoint(ICSClock::time_point point, uint64_t &vsaOffset, std::shared_ptr<VSA> &record, const VSAExtractionSettings &extractionSettings = VSAExtractionSettings(), std::optional<VSAMetadata> optMetadata = std::nullopt)

Find the closest VSA record to the desired time_point

Parameters:
  • point – The desired time_point of the record

  • vsaOffset – Variable used to pass out offset of record closest to the desired time_point

  • record – Variable used to pass out the record closest to the desired time_point

  • extractionSettings – Settings for this extraction of VSA data

  • optMetadata – Optional param to include metadata about the VSA log file on disk

Returns:

Pair containing the location of the record closest to the desired time_point (in bytes from the beginning of VSA log file) and the record itself

bool parseVSA(VSAMetadata &metadata, const VSAExtractionSettings &extractionSettings = VSAExtractionSettings(), const VSAMessageReadFilter &filter = VSAMessageReadFilter())

Parse VSA message records with the given filter and dispatch them with this device’s com channel

Parameters:
  • metadata – Important information about the VSA logfile (including first record location)

  • extractionSettings – Settings for this extraction of VSA data

  • filter – Struct used to determine which bytes to read and to filter out undesired VSA records

Returns:

True if there were no failures reading from disk, parsing VSA records, or dispatching VSA records

std::optional<uint64_t> vsaReadLogicalDisk(uint64_t pos, uint8_t *into, uint64_t amount, std::optional<VSAMetadata> metadata = std::nullopt)

Wrapper function for Device::readLogicalDisk(pos, into, amount, …) that handles the VSA record ring buffer. Handles pos that is before the VSA::RecordStartOffset or is larger than the diskSize. Sets amount to maximum size of ring buffer if given amount is too large.

Parameters:
  • pos – Position to start read from in relation to VSA file start

  • into – The buffer to read bytes into from the disk

  • amount – The number of bytes to read into the buffer

  • metadata – Optional metadata param (used to determine disk size and if disk is overlapped)

Returns:

Returns value of return from readLogicalDisk with the given inputs

inline virtual bool isOnlineSupported() const
inline virtual bool supportsComponentVersions() const
inline virtual bool supportsTC10() const
inline virtual bool supportsGPTP() const
bool requestTC10Wake(Network::NetID network)
bool requestTC10Sleep(Network::NetID network)
std::optional<TC10StatusMessage> getTC10Status(Network::NetID network)
std::optional<GPTPStatus> getGPTPStatus(std::chrono::milliseconds timeout = std::chrono::milliseconds(100))
virtual bool writeMACsecConfig(const MACsecMessage &message, uint16_t binaryIndex)

Public Members

std::shared_ptr<Communication> com
std::shared_ptr<IDeviceSettings> settings

Public Static Functions

static std::string SerialNumToString(uint32_t serial)
static uint32_t SerialStringToNum(const std::string &serial)
static bool SerialStringIsNumeric(const std::string &serial)

Friends

inline friend std::ostream &operator<<(std::ostream &os, const Device &device)
class OpenFlags
#include <device.h>

Public Types

enum Enum

Values:

enumerator SuppressAutoUpdate

Even if the firmware does not match the current firmware version, the device will not be updated.

Note: The device may still be flashed if the device has no firmware

This has no effect if the DFU extension is not present

enumerator ForceReflash

Force reflash the device.

This has no effect if the DFU extension is not present

using EnumType = std::underlying_type<Enum>::type

Public Functions

inline OpenFlags(Enum e = Enum(0))
inline EnumType operator&(Enum e) const
struct WiVIUpload
#include <device.h>

Public Members

bool cellular
bool wifi
bool isPrePost
bool isPreTime
uint32_t preTriggerSize
uint16_t priority
uint16_t captureIndex
uint32_t startSector
uint32_t endSector
struct DeviceAppVersion
#include <deviceversion.h>

Public Functions

inline bool operator!=(const DeviceAppVersion &rhs) const

Public Members

uint8_t major = 0
uint8_t minor = 0
class DeviceExtension
#include <deviceextension.h>

Subclassed by icsneo::FlexRay::Extension

Public Functions

inline DeviceExtension(Device &device)
virtual ~DeviceExtension() = default
virtual const char *getName() const = 0
inline virtual bool onDeviceOpen(Device::OpenFlags, const Device::OpenStatusHandler&)
inline virtual bool onDeviceCommunicationDead(Device::OpenFlags, const Device::OpenStatusHandler&)
inline virtual void onGoOnline()
inline virtual void onGoOffline()
inline virtual void onDeviceClose()
inline virtual bool providesFirmware() const
inline virtual void handleMessage(const std::shared_ptr<Message>&)
inline virtual bool transmitHook(const std::shared_ptr<Frame> &frame, bool &success)
class DeviceFinder
#include <devicefinder.h>

Public Static Functions

static std::vector<std::shared_ptr<Device>> FindAll()
static const std::vector<DeviceType> &GetSupportedDevices()
class DeviceType
#include <devicetype.h>

Public Types

enum Enum

Values:

enumerator Unknown
enumerator BLUE
enumerator ECU_AVB
enumerator RADSupermoon
enumerator DW_VCAN
enumerator RADMoon2
enumerator RADMars
enumerator VCAN4_1
enumerator FIRE
enumerator RADPluto
enumerator VCAN4_2EL
enumerator RADIO_CANHUB
enumerator NEOECU12
enumerator OBD2_LCBADGE
enumerator RADMoonDuo
enumerator FIRE3
enumerator VCAN3
enumerator RADJupiter
enumerator VCAN4_IND
enumerator RADGigastar
enumerator RED2
enumerator EtherBADGE
enumerator RAD_A2B
enumerator RADEpsilon
enumerator RADEpsilonXL
enumerator RADGalaxy2
enumerator RADMoon3
enumerator RADComet
enumerator FIRE3_FlexRay
enumerator Connect
enumerator RADComet3
enumerator RADMoonT1S
enumerator RADGigastar2
enumerator RED
enumerator ECU
enumerator IEVB
enumerator Pendant
enumerator OBD2_PRO
enumerator ECUChip_UART
enumerator PLASMA
enumerator DONT_REUSE0
enumerator NEOAnalog
enumerator CT_OBD
enumerator DONT_REUSE1
enumerator DONT_REUSE2
enumerator ION
enumerator RADStar
enumerator DONT_REUSE3
enumerator VCAN4_4
enumerator VCAN4_2
enumerator CMProbe
enumerator EEVB
enumerator VCANrf
enumerator FIRE2
enumerator Flex
enumerator RADGalaxy
enumerator RADStar2
enumerator VividCAN
enumerator OBD2_SIM

Public Functions

inline DeviceType()
inline DeviceType(devicetype_t netid)
inline DeviceType(DeviceType::Enum netid)
inline DeviceType::Enum getDeviceType() const
inline std::string getGenericProductName() const
inline operator devicetype_t() const

Public Static Functions

static inline const char *GetGenericProductName(DeviceType::Enum type)

Get the generic product name for this device type.

Note that device->getProductName() should always be preferred where available, as the product name may change based on device-specific factors, such as serial number.

class DiskDataMessage : public icsneo::RawMessage
#include <diskdatamessage.h>

Public Functions

inline DiskDataMessage(std::vector<uint8_t> &&d)
class Driver
#include <driver.h>

Subclassed by icsneo::CDCACM, icsneo::FTD3XX, icsneo::FTDI, icsneo::FirmIO, icsneo::PCAP, icsneo::PCAP, icsneo::TCP, icsneo::VCP

Public Functions

inline Driver(const device_eventhandler_t &handler)
inline virtual ~Driver()
virtual bool open() = 0
virtual bool isOpen() = 0
inline virtual void modeChangeIncoming()
inline virtual void awaitModeChangeComplete()
virtual bool close() = 0
inline bool isDisconnected() const
inline bool isClosing() const
bool waitForRx(size_t limit, std::chrono::milliseconds timeout)
bool waitForRx(std::function<bool()> predicate, std::chrono::milliseconds timeout)
bool readWait(std::vector<uint8_t> &bytes, std::chrono::milliseconds timeout = std::chrono::milliseconds(100), size_t limit = 0)
bool write(const std::vector<uint8_t> &bytes)
inline virtual bool isEthernet() const
inline bool readAvailable()
inline RingBuffer &getReadBuffer()

Public Members

device_eventhandler_t report
size_t writeQueueSize = 50
bool writeBlocks = true
class Encoder
#include <encoder.h>

Public Functions

inline Encoder(device_eventhandler_t report)
bool encode(const Packetizer &packetizer, std::vector<uint8_t> &result, const std::shared_ptr<Message> &message)
bool encode(const Packetizer &packetizer, std::vector<uint8_t> &result, Command cmd, std::vector<uint8_t> arguments = {})

Public Members

bool supportCANFD = false
bool supportEthPhy = false
class EtherBADGE : public icsneo::Device
#include <etherbadge.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (EtherBADGE, DeviceType::EtherBADGE, "EB")
inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct etherbadge_settings_t
#include <etherbadgesettings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
LIN_SETTINGS lin1
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
uint64_t termination_enables
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
int16_t iso15765_separation_time_offset
uint16_t iso9141_kwp_enable_reserved
uint16_t iso_tester_pullup_enable
uint16_t iso_parity
uint16_t iso_msg_termination
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
ETHERNET_SETTINGS ethernet
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
uint16_t misc_io_report_period
uint16_t misc_io_on_report_events
uint16_t misc_io_analog_enable
uint16_t ain_sample_period
uint16_t ain_threshold
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t enablePcEthernetComm
uint32_t reserved
struct icsneo::etherbadge_settings_t flags
class EtherBADGESettings : public icsneo::IDeviceSettings
#include <etherbadgesettings.h>

Public Functions

inline EtherBADGESettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class EthernetMessage : public icsneo::Frame
#include <ethernetmessage.h>

Public Functions

inline const MACAddress &getDestinationMAC() const
inline const MACAddress &getSourceMAC() const
inline uint16_t getEtherType() const

Public Members

bool preemptionEnabled = false
uint8_t preemptionFlags = 0
std::optional<uint32_t> fcs
bool frameTooShort = false
bool noPadding = false
class EthernetPacketizer
#include <ethernetpacketizer.h>

A layer of encapsulation on top of the standard packetizer for 0xCAB1/0xCAB2 Ethernet packets.

Not thread-safe by default.

Public Functions

inline EthernetPacketizer(device_eventhandler_t report)
void inputDown(std::vector<uint8_t> bytes, bool first = true)

Call with as many packets as desired before calling outputDown to get the results. Passing in multiple packets may result in better packing.

std::vector<std::vector<uint8_t>> outputDown()
bool inputUp(std::vector<uint8_t> bytes)

Call with packet data, the packet may be queued waiting for reassembly. In this case, false will be returned.

std::vector<uint8_t> outputUp()

Public Members

uint8_t hostMAC[6] = {0x00, 0xFC, 0x70, 0xFF, 0xFF, 0xFF}
uint8_t deviceMAC[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
bool allowInPacketsFromAnyMAC = false

Public Static Attributes

static const size_t MaxPacketLength
class EthernetPacket
#include <ethernetpacketizer.h>

Public Functions

inline EthernetPacket()
EthernetPacket(const std::vector<uint8_t> &bytestream)
EthernetPacket(const uint8_t *data, size_t size)
int loadBytestream(const std::vector<uint8_t> &bytestream)
std::vector<uint8_t> getBytestream() const

Public Members

uint8_t errorWhileDecodingFromBytestream = 0
uint8_t destMAC[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
uint8_t srcMAC[6] = {0x00, 0xFC, 0x70, 0xFF, 0xFF, 0xFF}
uint16_t etherType = 0xCAB1
uint32_t icsEthernetHeader = 0xAAAA5555
uint16_t payloadSize = 0
uint16_t packetNumber = 0
bool firstPiece = true
bool lastPiece = true
bool bufferHalfFull = false
std::vector<uint8_t> payload
class EthernetStatusMessage : public icsneo::Message
#include <ethernetstatusmessage.h>

Public Types

enum class LinkSpeed

Values:

enumerator LinkSpeedAuto
enumerator LinkSpeed10
enumerator LinkSpeed100
enumerator LinkSpeed1000
enumerator LinkSpeed2500
enumerator LinkSpeed5000
enumerator LinkSpeed10000
enum class LinkMode

Values:

enumerator LinkModeAuto
enumerator LinkModeMaster
enumerator LinkModeSlave
enumerator LinkModeInvalid

Public Functions

inline EthernetStatusMessage(Network net, bool state, LinkSpeed speed, bool duplex, LinkMode mode)

Public Members

Network network
bool state
LinkSpeed speed
bool duplex
LinkMode mode

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream)
class EthPhyMessage : public icsneo::Message
#include <ethphymessage.h>

Public Functions

inline EthPhyMessage()
bool appendPhyMessage(bool writeEnable, bool clause45, uint8_t phyAddrOrPort, uint8_t pageOrDevice, uint16_t regAddr, uint16_t regVal = 0x0000u, bool enabled = true)
bool appendPhyMessage(std::shared_ptr<PhyMessage> message)
size_t getMessageCount() const

Public Members

std::vector<std::shared_ptr<PhyMessage>> messages
class EventCallback
#include <eventcallback.h>

Public Types

typedef std::function<void(std::shared_ptr<APIEvent>)> fn_eventCallback

Public Functions

inline EventCallback(fn_eventCallback cb, std::shared_ptr<EventFilter> f)
inline EventCallback(fn_eventCallback cb, EventFilter f = EventFilter())
inline EventCallback(std::shared_ptr<EventFilter> f, fn_eventCallback cb)
inline EventCallback(EventFilter f, fn_eventCallback cb)
inline virtual bool callIfMatch(const std::shared_ptr<APIEvent> &event) const
inline const EventFilter &getFilter() const
inline const fn_eventCallback &getCallback() const
class EventFilter
#include <event.h>

Public Functions

inline EventFilter()
inline EventFilter(APIEvent::Type type, APIEvent::Severity severity = APIEvent::Severity::Any)
inline EventFilter(APIEvent::Severity severity)
inline EventFilter(const Device *device, APIEvent::Type type = APIEvent::Type::Any, APIEvent::Severity severity = APIEvent::Severity::Any)
inline EventFilter(const Device *device, APIEvent::Severity severity)
inline EventFilter(std::string serial, APIEvent::Type type = APIEvent::Type::Any, APIEvent::Severity severity = APIEvent::Severity::Any)
inline EventFilter(std::string serial, APIEvent::Severity severity)
bool match(const APIEvent &event) const noexcept

Public Members

APIEvent::Type type = APIEvent::Type::Any
APIEvent::Severity severity = APIEvent::Severity::Any
bool matchOnDevicePtr = false
const Device *device = nullptr
std::string serial
class EventManager
#include <eventmanager.h>

Public Functions

inline ~EventManager()
void ResetInstance()
void downgradeErrorsOnCurrentThread()
void cancelErrorDowngradingOnCurrentThread()
bool isDowngradingErrorsOnCurrentThread() const
int addEventCallback(const EventCallback &cb)
bool removeEventCallback(int id)
inline size_t eventCount(EventFilter filter = EventFilter()) const
inline std::vector<APIEvent> get(EventFilter filter, size_t max = 0)
inline std::vector<APIEvent> get(size_t max = 0, EventFilter filter = EventFilter())
inline void get(std::vector<APIEvent> &outEvents, EventFilter filter, size_t max = 0)
void get(std::vector<APIEvent> &outEvents, size_t max = 0, EventFilter filter = EventFilter())
APIEvent getLastError()
void add(APIEvent event)
inline void add(APIEvent::Type type, APIEvent::Severity severity, const Device *forDevice = nullptr)
void discard(EventFilter filter = EventFilter())
inline size_t getEventLimit() const
void setEventLimit(size_t newLimit)

Public Static Functions

static EventManager &GetInstance()
struct ExtendedCommandHeader
#include <command.h>

Public Members

uint8_t netid
uint16_t fullLength
uint8_t command
uint16_t extendedCommand
uint16_t payloadLength
class ExtendedDataMessage : public icsneo::Frame
#include <extendeddatamessage.h>

Public Functions

inline ExtendedDataMessage(ExtendedDataHeader params)

Public Members

const ExtendedDataHeader header

Public Static Attributes

static constexpr size_t MaxExtendedDataBufferSize = 2048
struct ExtendedDataHeader
#include <extendeddatamessage.h>

Public Members

ExtendedDataSubCommand subCommand
uint32_t userValue
uint32_t offset
uint32_t length
class ExtendedResponseMessage : public icsneo::Message
#include <extendedresponsemessage.h>

Public Functions

inline ExtendedResponseMessage(ExtendedCommand cmd, ExtendedResponse resp)

Public Members

const ExtendedCommand command
const ExtendedResponse response
struct PackedGenericResponse
#include <extendedresponsemessage.h>

Public Members

ResponseHeader header
ExtendedCommand command
ExtendedResponse returnCode
struct ResponseHeader
#include <extendedresponsemessage.h>

Public Members

ExtendedCommand command
uint16_t length
struct ExtResponseHeader
#include <livedata.h>

Public Members

ExtendedCommand command
uint16_t length
class FirmIO : public icsneo::Driver
#include <firmio.h>

Public Functions

~FirmIO()
virtual bool open() override
virtual bool isOpen() override
virtual bool close() override
inline Driver(const device_eventhandler_t &handler)

Public Static Functions

static void Find(std::vector<FoundDevice> &foundDevices)
class FlashMemoryMessage : public icsneo::RawMessage
#include <flashmemorymessage.h>

Public Functions

inline FlashMemoryMessage()

Public Members

uint16_t startAddress = 0
class FlexRayControlMessage : public icsneo::Message
#include <flexraycontrolmessage.h>

Public Functions

FlexRayControlMessage(const Packet &packet)

Public Members

bool decoded = false
uint8_t controller = 0xff
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

Public Static Functions

static std::vector<uint8_t> BuildBaseControlArgs(uint8_t controller, FlexRay::Opcode op, const std::vector<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)
static std::vector<uint8_t> BuildWriteMessageBufferArgs(uint8_t controller, uint16_t bufferId, const std::vector<uint8_t> &data, uint16_t desiredSize)
class FlexRayMessage : public icsneo::Frame
#include <flexraymessage.h>

Public Members

uint16_t slotid = 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
FlexRay::Channel channel = FlexRay::Channel::None
bool nullFrame = false
bool reserved0was1 = false
bool payloadPreamble = false
bool sync = false
bool startup = false
bool dynamic = false
uint8_t cycle = 0
uint8_t cycleRepetition = 0
class FoundDevice
#include <founddevice.h>

Public Members

neodevice_handle_t handle = 0
char serial[7] = {}
uint16_t productId = 0
driver_factory_t makeDriver
class Frame : public icsneo::RawMessage
#include <message.h>

Subclassed by icsneo::A2BMessage, icsneo::CANMessage, icsneo::EthernetMessage, icsneo::ExtendedDataMessage, icsneo::FlexRayMessage, icsneo::I2CMessage, icsneo::ISO9141Message, icsneo::LINMessage, icsneo::MDIOMessage

Public Functions

inline Frame()

Public Members

uint16_t description = 0
bool transmitted = false
bool error = false
class FTD3XX : public icsneo::Driver
#include <ftd3xx.h>

Public Functions

FTD3XX(const device_eventhandler_t &err, neodevice_t &forDevice)
inline ~FTD3XX() override
virtual bool open() override
virtual bool isOpen() override
virtual bool close() override
inline virtual bool isEthernet() const override

Public Static Functions

static void Find(std::vector<FoundDevice> &foundDevices)
class FTDI : public icsneo::Driver, public icsneo::VCP
#include <ftdi.h>

Public Functions

FTDI(const device_eventhandler_t &err, neodevice_t &forDevice)
inline ~FTDI()
virtual bool open()
virtual bool close()
inline virtual bool isOpen()
inline FTDI(const device_eventhandler_t &err, neodevice_t &forDevice)

Public Static Functions

static void Find(std::vector<FoundDevice> &found)
static inline void Find(std::vector<FoundDevice> &found)
class GenericBinaryStatusMessage : public icsneo::Message
#include <genericbinarystatusmessage.h>

Public Functions

inline GenericBinaryStatusMessage()

Public Members

size_t binarySize
uint16_t binaryIndex
uint16_t binaryStatus
struct GenericBinaryStatusPacket
#include <genericbinarystatuspacket.h>

Public Static Functions

static std::shared_ptr<GenericBinaryStatusMessage> DecodeToMessage(const std::vector<uint8_t> &bytes)
static std::vector<uint8_t> EncodeArguments(uint16_t binaryIndex)
class GPTPStatus : public icsneo::Message
#include <gptpstatusmessage.h>

Public Types

typedef uint64_t TimeInterval
typedef uint64_t ClockID

Public Functions

inline GPTPStatus()

Public Members

Timestamp currentTime
PriorityVector gmPriority
int64_t msOffsetNs
uint8_t isSync
uint8_t linkStatus
int64_t linkDelayNS
uint8_t selectedRole
uint8_t asCapable
uint8_t isSyntonized
Timestamp lastRXSyncTS
CurrentDS currentDS
ParentDS parentDS
bool shortFormat = false

Public Static Functions

static std::shared_ptr<GPTPStatus> DecodeToMessage(std::vector<uint8_t> &bytes, const device_eventhandler_t &report)
struct ClockQuality
#include <gptpstatusmessage.h>

Public Members

uint8_t clockClass
uint8_t clockAccuracy
uint16_t offsetScaledLogVariance
struct CurrentDS
#include <gptpstatusmessage.h>

Public Members

uint16_t stepsRemoved
TimeInterval offsetFromMaster
ScaledNanoSeconds lastgmPhaseChange
double lastgmFreqChange
uint16_t gmTimeBaseIndicator
uint32_t gmChangeCount
uint32_t timeOfLastgmChangeEvent
uint32_t timeOfLastgmPhaseChangeEvent
uint32_t timeOfLastgmFreqChangeEvent
struct ParentDS
#include <gptpstatusmessage.h>

Public Members

PortID parentPortIdentity
int32_t cumulativeRateRatio
ClockID grandmasterIdentity
uint8_t gmClockQualityClockClass
uint8_t gmClockQualityClockAccuracy
uint16_t gmClockQualityOffsetScaledLogVariance
uint8_t gmPriority1
uint8_t gmPriority2
struct PortID
#include <gptpstatusmessage.h>

Public Members

ClockID clockIdentity
uint16_t portNumber
struct PriorityVector
#include <gptpstatusmessage.h>

Public Members

SystemID sysID
uint16_t stepsRemoved
PortID portID
uint16_t portNumber
struct ScaledNanoSeconds
#include <gptpstatusmessage.h>

Public Members

int16_t nanosecondsMSB
int64_t nanosecondsLSB
int16_t fractionalNanoseconds
struct SystemID
#include <gptpstatusmessage.h>

Public Members

uint8_t priority1
ClockQuality clockQuality
uint8_t priority2
ClockID clockID
struct Timestamp
#include <gptpstatusmessage.h>

Public Functions

inline double toSeconds() const

Public Members

uint64_t seconds
uint32_t nanoseconds
struct HardwareA2BPacket
#include <a2bpacket.h>

Public Members

icscm_bitfield channelNum
icscm_bitfield channelSize16
icscm_bitfield __pad0__
icscm_bitfield monitor
icscm_bitfield txmsg
icscm_bitfield errIndicator
icscm_bitfield syncFrame
icscm_bitfield upstream
icscm_bitfield __pad1__
icscm_bitfield rfu2
struct icsneo::HardwareA2BPacket header
uint8_t offset[8]
uint16_t stats
uint64_t TS
uint64_t __pad0__
uint64_t IsExtended
struct icsneo::HardwareA2BPacket timestamp
uint16_t networkID
uint16_t length

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream)
static bool EncodeFromMessage(const A2BMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)

Public Static Attributes

static const size_t a2bMessageMaxLength
struct HardwareCANErrorPacket
#include <canpacket.h>

Public Members

uint8_t error_code
uint8_t brs_data_error_code
uint16_t reserved
uint16_t DLC
uint16_t __pad0__
uint16_t ERROR_INDICATOR
uint16_t __pad1__
uint8_t flags
uint8_t REC
uint8_t TEC

Public Static Functions

static inline bool GetErrorWarn(uint8_t flags)
static inline bool GetErrorPassive(uint8_t flags)
static inline bool GetBusOff(uint8_t flags)
struct HardwareCANPacket
#include <canpacket.h>

Public Members

icscm_bitfield IDE
icscm_bitfield SRR
icscm_bitfield SID
icscm_bitfield EDL
icscm_bitfield BRS
icscm_bitfield ESI
struct icsneo::HardwareCANPacket header
icscm_bitfield EID
icscm_bitfield TXMSG
icscm_bitfield TXAborted
icscm_bitfield TXLostArb
icscm_bitfield TXError
struct icsneo::HardwareCANPacket eid
icscm_bitfield DLC
icscm_bitfield RB0
icscm_bitfield IVRIF
icscm_bitfield HVEnable
icscm_bitfield ExtendedNetworkIndexBit
icscm_bitfield RB1
icscm_bitfield RTR
icscm_bitfield EID2
struct icsneo::HardwareCANPacket dlc
unsigned char data[8]
uint16_t stats
uint64_t TS
uint64_t __pad0__
uint64_t IsExtended
struct icsneo::HardwareCANPacket timestamp

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream)
static bool EncodeFromMessage(const CANMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
struct HardwareEthernetPacket
#include <ethernetpacket.h>

Public Members

icscm_bitfield FCS_AVAIL
icscm_bitfield RUNT_FRAME
icscm_bitfield DISABLE_PADDING
icscm_bitfield PREEMPTION_ENABLED
icscm_bitfield MPACKET_TYPE
icscm_bitfield MPACKET_FRAG_CNT
icscm_bitfield __pad0__
struct icsneo::HardwareEthernetPacket header
icscm_bitfield txlen
icscm_bitfield TXMSG
struct icsneo::HardwareEthernetPacket eid
icscm_bitfield reserved
unsigned char data[8]
uint16_t stats
uint64_t TS
uint64_t __pad0__
uint64_t IsExtended
struct icsneo::HardwareEthernetPacket timestamp
uint16_t NetworkID
uint16_t Length

Public Static Functions

static std::shared_ptr<EthernetMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
static bool EncodeFromMessage(const EthernetMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
struct HardwareEthernetPhyRegisterPacket
#include <ethphyregpacket.h>

Public Static Functions

static std::shared_ptr<EthPhyMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
static bool EncodeFromMessage(const EthPhyMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
struct HardwareFlexRayPacket
#include <flexraypacket.h>

Public Members

uint16_t slotid
uint16_t startup
uint16_t sync
uint16_t null_frame
uint16_t payload_preamble
uint16_t reserved_0
uint16_t hdr_crc_10
uint16_t payload_len
uint16_t reserved_1
uint16_t txmsg
uint16_t reserved_2
uint16_t cycle
uint16_t hdr_crc_9_0
uint16_t word
uint16_t bytesRxed
uint16_t dynamic
uint16_t chb
uint16_t hcrc_error
uint16_t fcrc_error
uint16_t reserved_3
struct icsneo::HardwareFlexRayPacket bits
union icsneo::HardwareFlexRayPacket statusBits
uint16_t tss_length_12_5ns
uint16_t frame_length_12_5ns
uint16_t extra
uint16_t stat
uint64_t TS
uint64_t __pad0__
uint64_t IsExtended
struct icsneo::HardwareFlexRayPacket timestamp
uint16_t NetworkID
uint16_t Length

Public Static Functions

static std::shared_ptr<FlexRayMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream)
static bool EncodeFromMessage(const FlexRayMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
struct HardwareI2CPacket
#include <i2cpacket.h>

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream)
static bool EncodeFromMessage(const I2CMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
class HardwareInfo : public icsneo::Message
#include <hardwareinfo.h>

Public Functions

inline HardwareInfo()

Public Members

Date manufactureDate
Version hardwareRevision
Version bootloaderVersion
struct Date
#include <hardwareinfo.h>

Public Members

uint8_t day
uint8_t month
uint16_t year
struct Version
#include <hardwareinfo.h>

Public Members

uint8_t major
uint8_t minor
struct HardwareInfoPacket
#include <hardwareinfopacket.h>

Public Static Functions

static std::shared_ptr<HardwareInfo> DecodeToMessage(const std::vector<uint8_t> &bytes)
struct HardwareISO9141Packet
#include <iso9141packet.h>

Public Members

icscm_bitfield d8
icscm_bitfield options
icscm_bitfield tx
icscm_bitfield networkIndex
struct icsneo::HardwareISO9141Packet c1
icscm_bitfield d9
icscm_bitfield d10
struct icsneo::HardwareISO9141Packet c2
icscm_bitfield len
icscm_bitfield extendedNetworkIndexBit2
icscm_bitfield frm
icscm_bitfield init
icscm_bitfield extendedNetworkIndexBit
icscm_bitfield d11
struct icsneo::HardwareISO9141Packet c3
unsigned char data[8]
uint16_t stats
uint64_t TS
uint64_t __pad0__
uint64_t IsExtended
struct icsneo::HardwareISO9141Packet timestamp

Public Static Functions

static bool EncodeFromMessage(const ISO9141Message &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report, const Packetizer &packetizer)
class Decoder
#include <iso9141packet.h>

Public Functions

std::shared_ptr<ISO9141Message> decodeToMessage(const std::vector<uint8_t> &bytestream)
struct HardwareLINPacket
#include <linpacket.h>

Public Members

uint16_t ErrRxOnlyBreak
uint16_t ErrRxOnlyBreakSync
uint16_t ID
uint16_t NETWORKINDEX
uint8_t LINByte9
uint8_t ErrTxRxMismatch
uint8_t TxChkSumEnhanced
uint8_t TXCommander
uint8_t TXResponder
uint8_t ErrRxBreakNotZero
uint8_t ErrRxBreakTooShort
uint8_t ErrRxSyncNot55
uint8_t ErrRxDataGreater8
uint16_t len
uint16_t ExtendedNetworkIndexBit2
uint16_t UpdateResponderOnce
uint16_t HasUpdatedResponderOnce
uint16_t ExtendedNetworkIndexBit
uint16_t BusRecovered
uint16_t SyncFerr
uint16_t MidFerr
uint16_t ResponderByteFerr
uint16_t TxAborted

This transmit was aborted.

uint16_t BreakOnly
uint16_t __pad0__
struct icsneo::HardwareLINPacket CoreMiniBitsLIN
uint8_t data[8]
uint16_t stats
uint64_t timestamp
uint16_t networkID
uint16_t length

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream)
static bool EncodeFromMessage(LINMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
struct HardwareLiveDataPacket
#include <livedatapacket.h>

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytes, const device_eventhandler_t &report)
static bool EncodeFromMessage(LiveDataMessage &message, std::vector<uint8_t> &bytes, const device_eventhandler_t &report)
struct HardwareMDIOPacket
#include <mdiopacket.h>

Public Members

uint16_t PHY_ADDR
uint16_t ST
uint16_t OP
uint16_t ADVANCED_MODE
uint16_t TRANSMIT
uint16_t C45_DEVTYPE
uint16_t ERR_JOB_CANCELLED
uint16_t ERR_TIMEOUT
uint16_t ERR_INVALID_BUS
uint16_t ERR_INVALID_PHYADDR
uint16_t ERR_INVALID_REGADDR
uint16_t ERR_UNSUPPORTED_CLAUSE
uint16_t ERR_UNSUPPORTED_OPCODE
uint16_t ERR_OVERFLOW
uint16_t __pad0__
uint16_t REG_ADDR
struct icsneo::HardwareMDIOPacket header
uint8_t data[8]
uint16_t stats
uint64_t timestamp
uint16_t networkID
uint16_t length

Public Static Functions

static std::shared_ptr<Message> DecodeToMessage(const std::vector<uint8_t> &bytestream)
static bool EncodeFromMessage(const MDIOMessage &message, std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)

Public Static Attributes

static const size_t mdioDataSize
struct HardwareVersionPacket
#include <versionpacket.h>

Public Static Functions

static std::shared_ptr<VersionMessage> DecodeMainToMessage(const std::vector<uint8_t> &bytestream)
static std::shared_ptr<VersionMessage> DecodeSecondaryToMessage(const std::vector<uint8_t> &bytestream)
struct I2CHeader
#include <i2cpacket.h>

Public Members

uint16_t ID
uint16_t EID
uint16_t CT
uint16_t DIR
uint16_t RESERVED_0
uint16_t TXMsg
uint16_t CBLen
uint16_t RESERVED_1
uint16_t TXTimeout
uint16_t TXNack
uint16_t TXAborted
uint16_t TXLostArb
uint16_t TXError
uint16_t RESERVED_2
struct icsneo::I2CHeader CoreMiniBitsI2C
uint8_t coreMiniMessageData[8]
uint16_t stats
uint64_t timestamp
uint16_t networkID
uint16_t length
class I2CMessage : public icsneo::Frame
#include <i2cmessage.h>

Public Types

enum class DeviceMode : uint8_t

Values:

enumerator Target
enumerator Controller
enum class Direction : uint8_t

Values:

enumerator Write
enumerator Read

Public Members

bool isExtendedID = false
bool isTXMsg = false
bool txError = false
bool txLostArb = false
bool txAborted = false
bool txNack = false
bool txTimeout = false
uint16_t stats = static_cast<uint16_t>(0x0000u)
uint16_t address
Direction direction
DeviceMode deviceMode
std::vector<uint8_t> controlBytes
std::vector<uint8_t> dataBytes
struct ICSClock
#include <vsa.h>

Struct that meets Clock format requirements from STL Chrono library. Indicates time for for the ICS Epoch (January 1, 2007) in 25 nanosecond ticks.

Public Types

using rep = uint64_t
using period = std::ratio_multiply<std::ratio<25>, std::nano>
using duration = std::chrono::duration<rep, period>
using time_point = std::chrono::time_point<ICSClock>

Public Static Functions

static inline time_point now() noexcept

Get the time_point at the current time with respect to ICSClock

Returns:

Time point at the current time with respect to ICSClock

Public Static Attributes

static constexpr bool is_steady = true
class IDeviceSettings
#include <idevicesettings.h>

Subclassed by icsneo::EtherBADGESettings, icsneo::NeoVIConnectSettings, icsneo::NeoVIFIRE2Settings, icsneo::NeoVIFIRE3FlexRaySettings, icsneo::NeoVIFIRE3Settings, icsneo::NeoVIFIRESettings, icsneo::NeoVIRED2Settings, icsneo::NullSettings, icsneo::RADA2BSettings, icsneo::RADComet3Settings, icsneo::RADCometSettings, icsneo::RADEpsilonSettings, icsneo::RADGalaxy2Settings, icsneo::RADGalaxySettings, icsneo::RADGigastar2Settings, icsneo::RADGigastarSettings, icsneo::RADJupiterSettings, icsneo::RADMarsSettings, icsneo::RADMoon2Settings, icsneo::RADMoon3Settings, icsneo::RADMoonDuoSettings, icsneo::RADMoonT1SSettings, icsneo::RADPlutoSettings, icsneo::RADStar2Settings, icsneo::RADSupermoonSettings, icsneo::ValueCAN3Settings, icsneo::ValueCAN4IndustrialSettings, icsneo::ValueCAN4_1_2Settings, icsneo::ValueCAN4_4_2ELSettings, icsneo::VividCANSettings

Public Types

using TerminationGroup = std::vector<Network>

Public Functions

inline IDeviceSettings(std::shared_ptr<Communication> com, size_t size)
inline virtual ~IDeviceSettings()
inline bool ok()
virtual bool refresh(bool ignoreChecksum = false)
virtual bool apply(bool temporary = false)
bool applyDefaults(bool temporary = false)
virtual int64_t getBaudrateFor(Network net) const
virtual bool setBaudrateFor(Network net, int64_t baudrate)
virtual int64_t getFDBaudrateFor(Network net) const
virtual bool setFDBaudrateFor(Network net, int64_t baudrate)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const
inline CAN_SETTINGS *getMutableCANSettingsFor(Network net)
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const
inline CANFD_SETTINGS *getMutableCANFDSettingsFor(Network net)
inline virtual const CAN_SETTINGS *getLSFTCANSettingsFor(Network net) const
inline CAN_SETTINGS *getMutableLSFTCANSettingsFor(Network net)
inline virtual const SWCAN_SETTINGS *getSWCANSettingsFor(Network net) const
inline SWCAN_SETTINGS *getMutableSWCANSettingsFor(Network net)
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const
inline LIN_SETTINGS *getMutableLINSettingsFor(Network net)
inline virtual std::vector<TerminationGroup> getTerminationGroups() const

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

bool isTerminationSupportedFor(Network net) const

Check whether software switchable termination is supported for a given network on this device.

This does not check whether another network in the termination group has termination enabled, check canTerminationBeEnabledFor for that.

bool canTerminationBeEnabledFor(Network net) const

Check whether software switchable termination can currently be enabled for a given network. If another network in the group is already enabled, or if termination is not supported on this network, false is returned and an error will have been reported in icsneo::getLastError().

std::optional<bool> isTerminationEnabledFor(Network net) const

Check whether software switchable termination is currently enabled for a given network in the currently active device settings.

Note that if the termination status is set, but not yet applied to the device, the current device status will be reflected here rather than the pending status.

bool setTerminationFor(Network net, bool enabled)

Enable or disable software switchable termination for a given network.

All other networks in the termination group must be disabled prior to the call, but the change does not need to be applied to the device before enqueing the enable.

Returns true if the call was successful, otherwise an error will have been reported in icsneo::getLastError().

std::optional<bool> isCommanderResistorEnabledFor(Network net) const

Check whether software switchable commander resistor is currently enabled for a given network in the currently active device settings.

Returns true if the call was successful, otherwise an error will have been reported in icsneo::getLastError().

bool setCommanderResistorFor(Network net, bool resistor_on)

Enable or disable software switchable commander resistor for a given network.

Returns true if the call was successful, otherwise an error will have been reported in icsneo::getLastError().

std::optional<enum LINMode> getLINModeFor(Network net) const

Get LIN mode for a given network in the currently active device settings.

bool setLINModeFor(Network net, enum LINMode mode)

Set LIN mode for a given network.

Returns true if the call was successful, otherwise an error will have been reported in icsneo::getLastError().

std::optional<uint8_t> getLINCommanderResponseTimeFor(Network net) const

Get number of bit delays between commander ID and first responder byte for a given network in the currently active device settings.

bool setLINCommanderResponseTimeFor(Network net, uint8_t bits)

Set number of bit delays between commander ID and first responder byte for a given network

Returns true if the call was successful, otherwise an error will have been reported in icsneo::getLastError().

inline virtual bool setPhyMode(uint8_t index, AELinkMode mode)
inline virtual bool setPhyEnable(uint8_t index, bool enable)
inline virtual bool setPhySpeed(uint8_t index, EthLinkSpeed speed)
inline virtual std::optional<AELinkMode> getPhyMode(uint8_t index)
inline virtual std::optional<bool> getPhyEnable(uint8_t index)
inline virtual std::optional<EthLinkSpeed> getPhySpeed(uint8_t index)
inline const void *getRawStructurePointer() const
inline void *getMutableRawStructurePointer()
template<typename T>
inline const T *getStructurePointer() const
template<typename T>
inline T *getMutableStructurePointer()
template<typename T>
inline T getStructure() const
template<typename T>
bool applyStructure(const T &newStructure)
inline const size_t &getSize() const

Public Members

bool disabled = false
bool readonly = false
bool disableGSChecksumming = false
std::atomic<bool> applyingSettings = {false}

Public Static Functions

static std::optional<uint16_t> CalculateGSChecksum(const std::vector<uint8_t> &settings, std::optional<size_t> knownSize = std::nullopt)
static CANBaudrate GetEnumValueForBaudrate(int64_t baudrate)
static int64_t GetBaudrateValueForEnum(CANBaudrate enumValue)
static bool ValidateLINBaudrate(int64_t baudrate)

Public Static Attributes

static constexpr uint16_t GS_VERSION = 5
class ISO9141Message : public icsneo::Frame
#include <iso9141message.h>

Public Members

std::array<uint8_t, 3> header
bool isInit = false
bool isBreak = false
bool framingError = false
bool overflowError = false
bool parityError = false
bool rxTimeoutError = false
class IWAVStream
#include <streamoutput.h>

Public Functions

inline IWAVStream(std::istream &WAVInput)
inline IWAVStream(const char *filename)
inline bool initialize()
inline operator bool() const
inline bool read(char *into, std::streamsize num)
inline void reset()

Set stream immediately after WAV header

Public Members

WAVHeader header
class Lifetime
#include <lifetime.h>

Public Functions

Lifetime() = default
inline Lifetime(std::function<void(void)> onDeath)
inline ~Lifetime()
Lifetime(const Lifetime&) = delete
Lifetime &operator=(const Lifetime&) = delete
inline Lifetime(Lifetime &&moved)
inline Lifetime &operator=(Lifetime &&rhs)
inline bool empty() const
inline operator bool() const
struct LINErrorFlags
#include <linmessage.h>

Public Members

bool ErrRxBreakOnly = false
bool ErrRxBreakSyncOnly = false
bool ErrTxRxMismatch = false
bool ErrRxBreakNotZero = false
bool ErrRxBreakTooShort = false
bool ErrRxSyncNot55 = false
bool ErrRxDataLenOver8 = false
bool ErrFrameSync = false
bool ErrFrameMessageID = false
bool ErrFrameResponderData = false
bool ErrChecksumMatch = false
class LINMessage : public icsneo::Frame
#include <linmessage.h>

Public Types

enum class Type : uint8_t

Values:

enumerator NOT_SET
enumerator LIN_COMMANDER_MSG
enumerator LIN_HEADER_ONLY
enumerator LIN_BREAK_ONLY
enumerator LIN_SYNC_ONLY
enumerator LIN_UPDATE_RESPONDER
enumerator LIN_ERROR

Public Functions

uint8_t calcProtectedID(uint8_t &id)
inline LINMessage()
inline LINMessage(uint8_t id)

Public Members

uint8_t ID = 0
uint8_t protectedID = 0
uint8_t checksum = 0
LINMessage::Type linMsgType = Type::NOT_SET
bool isEnhancedChecksum = false
LINErrorFlags errFlags
LINStatusFlags statusFlags

Public Static Functions

static void calcChecksum(LINMessage &message)
struct LINStatusFlags
#include <linmessage.h>

Public Members

bool TxChecksumEnhanced = false
bool TxCommander = false
bool TxResponder = false
bool TxAborted = false
bool UpdateResponderOnce = false
bool HasUpdatedResponderOnce = false
bool BusRecovered = false
bool BreakOnly = false
struct LiveDataArgument
#include <livedata.h>

Public Members

LiveDataObjectType objectType
uint32_t objectIndex
uint32_t signalIndex
LiveDataValueType valueType
class LiveDataCommandMessage : public icsneo::LiveDataMessage
#include <livedatamessage.h>

Public Functions

inline LiveDataCommandMessage()
void appendSignalArg(LiveDataValueType valueType)

Public Members

std::chrono::milliseconds updatePeriod
std::chrono::milliseconds expirationTime
std::vector<std::shared_ptr<LiveDataArgument>> args
struct LiveDataHeader
#include <livedata.h>

Subclassed by icsneo::LiveDataStatusResponse, icsneo::LiveDataSubscribe, icsneo::LiveDataValueResponse

Public Members

uint32_t version
uint32_t cmd
uint32_t handle
class LiveDataMessage : public icsneo::RawMessage
#include <livedatamessage.h>

Subclassed by icsneo::LiveDataCommandMessage, icsneo::LiveDataStatusMessage, icsneo::LiveDataValueMessage

Public Functions

inline LiveDataMessage()

Public Members

LiveDataHandle handle
LiveDataCommand cmd
class LiveDataStatusMessage : public icsneo::LiveDataMessage
#include <livedatamessage.h>

Public Functions

inline LiveDataStatusMessage()

Public Members

LiveDataCommand requestedCommand
LiveDataStatus status
struct LiveDataStatusResponse : public icsneo::LiveDataHeader
#include <livedata.h>

Public Members

LiveDataCommand requestedCommand
LiveDataStatus status
struct LiveDataSubscribe : public icsneo::LiveDataHeader
#include <livedata.h>

Public Members

uint32_t numArgs
uint32_t freqMs
uint32_t expireMs
LiveDataArgument args[1]
struct LiveDataValue
#include <livedata.h>

Public Members

LiveDataValueHeader header
int64_t value
struct LiveDataValueHeader
#include <livedata.h>

Public Members

uint16_t length
uint8_t reserved[2]
class LiveDataValueMessage : public icsneo::LiveDataMessage
#include <livedatamessage.h>

Public Functions

inline LiveDataValueMessage()

Public Members

uint32_t numArgs
std::vector<std::shared_ptr<LiveDataValue>> values
struct LiveDataValueResponse : public icsneo::LiveDataHeader
#include <livedata.h>

Public Members

uint32_t numArgs
LiveDataValue values[1]
class LogicalDiskInfoMessage : public icsneo::Message
#include <logicaldiskinfomessage.h>

Public Functions

inline LogicalDiskInfoMessage(bool isConnected, uint32_t numSectors, uint32_t numHidden, uint32_t sectorSize)
inline uint64_t getReportedSize() const

Public Members

const bool connected
const uint32_t sectors
const uint32_t hiddenSectors
const uint32_t bytesPerSector
struct LogicalDiskInfoPacket
#include <logicaldiskinfopacket.h>

Public Members

uint16_t isConnected
uint32_t numSectors
uint32_t hiddenSectors
uint32_t bytesPerSector

Public Static Functions

static std::shared_ptr<LogicalDiskInfoMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream)
struct MACAddress
#include <ethernetmessage.h>

Public Functions

inline std::string toString() const

Public Members

uint8_t data[6]

Friends

inline friend std::ostream &operator<<(std::ostream &os, const MACAddress &mac)
struct MACsecConfig
#include <macsecmessage.h>

Public Members

MACSecFlags flags
std::array<MACsecRule, NumRules> rule
std::array<MACsecMap, NumMaps> map
std::array<MACsecSecY, NumSecY> secy
std::array<MACsecSc, NumSc> sc
std::array<MACsecSa, NumSa> sa

Public Static Attributes

static constexpr int NumFlags = 1
static constexpr int NumRules = 2
static constexpr int NumMaps = 2
static constexpr int NumSecY = 2
static constexpr int NumSc = 2
static constexpr int NumSa = 4
struct MACSecFlags
#include <macsecmessage.h>

Public Members

bool en
struct MACSecGlobalFlags
#include <macsecmessage.h>

Public Members

bool en
bool nvm
struct MACsecMap
#include <macsecmessage.h>

Public Members

uint8_t index
uint64_t secTagSci

Identifies the SecTAG SCI for this Flow.

uint8_t secYIndex

index for entry in Egress secY Policy

bool isControlPacket

Identifies all packets matching this index lookup as control packets.

uint8_t scIndex

Identifies the SC for this Flow.

uint8_t auxiliaryPlcy

Auxiliary policy bits.

uint8_t ruleId

Identifies the Rule for this Flow.

bool enable
class MACsecMessage : public icsneo::Message
#include <macsecmessage.h>

Public Functions

inline MACsecMessage(void)
bool EncodeFromMessage(std::vector<uint8_t> &bytestream, const device_eventhandler_t &report) const

Public Static Functions

static std::shared_ptr<MACsecMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream, const device_eventhandler_t &report)
struct MACsecMPLSOuter
#include <macsecmessage.h>

Public Members

uint32_t mplsLabel

20 bits

uint8_t exp

3 bits

struct MACsecRule
#include <macsecmessage.h>

Public Members

uint8_t index
std::array<uint8_t, 6> keyMacDa

MAC DA field extracted from the packet

std::array<uint8_t, 6> maskMacDa

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

std::array<uint8_t, 6> keyMacSa

MAC SA field extracted from the packet

std::array<uint8_t, 6> maskMacSa

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

uint16_t keyEthertype

First E-Type found in the packet that doesn’t match one of the preconfigured custom tag.

uint16_t maskEthertype

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

MACsecVLANTag keyVlanTagOuter1

outermost/1st VLAN ID {8’d0, VLAN_ID[11:0]}, or 20-bit MPLS label.

MACsecMPLSOuter keyMplsOuter1
MACsecVLANTag maskVlanTagOuter1

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

MACsecMPLSOuter maskMplsOuter1
MACsecVLANTag keyVlanTagOuter2

2nd outermost VLAN ID {8’d0, VLAN_ID[11:0]}, or 20-bit MPLS label.

MACsecMPLSOuter keyMplsOuter2
MACsecVLANTag maskVlanTagOuter2

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

MACsecMPLSOuter maskMplsOuter2
uint16_t keyBonusData

2 bytes of additional bonus data extracted from one of the custom tags.

uint16_t maskBonusData

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

uint8_t keyTagMatchBitmap

8 bits total. Maps 1 to 1 bitwise with the set of custom tags. (set bit[N]=1 if check Nth custom tag)

uint8_t maskTagMatchBitmap

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

MACsecPacketType keyPacketType

Encoded Packet Type, see MACSEC_PACKET_TYPE

uint8_t maskPacketType

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

uint16_t keyInnerVlanType

3 bits total. Encoded value indicating which VLAN TPID value matched for the second outermost VLAN Tag.

uint16_t maskInnerVlanType

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

uint16_t keyOuterVlanType

3 bits total. Encoded value indicating which VLAN TPID value matched for the outermost VLAN Tag.

uint16_t maskOuterVlanType

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

uint8_t keyNumTags

7 bits total. Number of VLAN/custom tags or MPLS lables detected. Ingress: before SecTag; Egress: total detected. Exclude MCS header tags. i.e. Bit 2: 2 tags/labels before SecTAG…Bit 6: 6 or more tags/labels before SecTAG.

uint8_t maskNumTags

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

bool keyExpress

1 bits. Express packet.

uint8_t maskExpress

Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare

bool isMpls
bool enable
struct MACsecSa
#include <macsecmessage.h>

Public Members

uint8_t index

SA index

std::array<uint8_t, 32> sak

256b SAK: Define the encryption key to be used to encrypte this packet. The lower 128 bits are used for 128-bit ciphers.

std::array<uint8_t, 16> hashKey

128b Hash Key: Key used for authentication.

std::array<uint8_t, 12> salt

96b Salt value: Salt value used in XPN ciphers.

uint32_t ssci

32b SSCI value: Short Secure Channel Identifier, used in XPN ciphers.

uint8_t an

2b SecTag Association Number (AN)

uint64_t nextPn

64b next_pn value: Next packet number to insert into outgoing packet on a particular SA.

bool enable
struct MACsecSc
#include <macsecmessage.h>

Public Members

uint8_t index

SC index.

uint8_t secYIndex

SecY associated with this packet.

uint64_t sci

The Secure Channel Identifier.

uint8_t saIndex0

Define the 1st SA to use

uint8_t saIndex1

Define the 2nd SA to use

bool saIndex0InUse

Specifies whether 1st SA is in use or not.

bool saIndex1InUse

Specifies whether 2nd SA is in use or not.

bool enableAutoRekey

If enabled, then once the pn_threshold is reached, auto rekey will happen.

bool isActiveSa1

If set, then sa_index1 is the currently active SA index. If cleared, the sa_index0 is the currently active SA index).

bool enable
struct MACsecSecY
#include <macsecmessage.h>

Public Members

uint8_t index

Identifies the SecY for this Flow.

bool controlledPortEnabled

Enable (or disable) operation of the Controlled port associated with this SecY

MACsecValidateFrameType frameValidationType

see MACSEC_VALIDATEFRAME

MACsecSecTagIcvStripType secTagIcvStripType

see MACSEC_STRIP_SECTAG_ICV

MACsecCipherSuiteType cipher

Define the cipher suite to use for this SecY see MACSEC_CIPHER_SUITE

uint8_t confidentialOffset

Define the number of bytes that are unencrypted following the SecTag.

bool icvIncludesDaSa

When set, the outer DA/SA bytes are included in the authentication GHASH calculation

bool replayProtect

Enables Anti-Replay protection

uint32_t replayWindow

Unsigned value indicating the size of the anti-replay window.

bool protectFrames

0 = do not encrypt or authenticate this packet; 1 = always Authenticate frame and if SecTag.TCI.E = 1 encrypt the packet as well.

uint8_t secTagOffset

Define the offset in bytes from either the start of the packet or a matching Etype depending on SecTag_Insertion_Mode.

uint8_t secTagTci

Tag Control Information excluding the AN field which originates from the SA Policy table

uint16_t mtu

Specifies the outgoing MTU for this SecY

bool enable
struct MACsecVLANTag
#include <macsecmessage.h>

Public Members

uint16_t vid

12 bits

uint8_t priCfi

PRI - 3 bits, CFI - 1bit

class Main51Message : public icsneo::RawMessage
#include <main51message.h>

Subclassed by icsneo::SerialNumberMessage

Public Functions

inline Main51Message()

Public Members

Command command = Command(0)
bool forceShortFormat = false
class Main51MessageCallback : public icsneo::MessageCallback
#include <main51messagecallback.h>

Public Functions

inline Main51MessageCallback(fn_messageCallback cb, std::shared_ptr<Main51MessageFilter> f)
inline Main51MessageCallback(fn_messageCallback cb, Main51MessageFilter f = Main51MessageFilter())
inline Main51MessageCallback(std::shared_ptr<Main51MessageFilter> f, fn_messageCallback cb)
inline Main51MessageCallback(Main51MessageFilter f, fn_messageCallback cb)
class Main51MessageFilter : public icsneo::MessageFilter
#include <main51messagefilter.h>

Public Functions

inline Main51MessageFilter()
inline Main51MessageFilter(Command command)
inline virtual bool match(const std::shared_ptr<Message> &message) const override
class MDIOMessage : public icsneo::Frame
#include <mdiomessage.h>

Public Types

enum class Clause : uint8_t

Values:

enumerator Clause45
enumerator Clause22
enum class Direction : uint8_t

Values:

enumerator Write
enumerator Read

Public Members

bool isTXMsg = false
bool txTimeout = false
bool txAborted = false
bool txInvalidBus = false
bool txInvalidPhyAddr = false
bool txInvalidRegAddr = false
bool txInvalidClause = false
bool txInvalidOpcode = false
uint8_t phyAddress
uint8_t devAddress
uint16_t regAddress
Direction direction
Clause clause
class Message
#include <message.h>

Subclassed by icsneo::CANErrorMessage, icsneo::ComponentVersionsMessage, icsneo::EthPhyMessage, icsneo::EthernetStatusMessage, icsneo::ExtendedResponseMessage, icsneo::FlexRayControlMessage, icsneo::GPTPStatus, icsneo::GenericBinaryStatusMessage, icsneo::HardwareInfo, icsneo::LogicalDiskInfoMessage, icsneo::MACsecMessage, icsneo::RawMessage, icsneo::ResetStatusMessage, icsneo::ScriptStatusMessage, icsneo::SupportedFeaturesMessage, icsneo::TC10StatusMessage, icsneo::VersionMessage, icsneo::WiVI::ResponseMessage

Public Types

enum class Type : neomessagetype_t

Values:

enumerator Frame
enumerator CANErrorCount
enumerator CANError
enumerator LINHeaderOnly
enumerator LINBreak
enumerator Invalid
enumerator RawMessage
enumerator ReadSettings
enumerator ResetStatus
enumerator DeviceVersion
enumerator Main51
enumerator FlexRayControl
enumerator EthernetPhyRegister
enumerator LogicalDiskInfo
enumerator ExtendedResponse
enumerator WiVICommandResponse
enumerator ScriptStatus
enumerator ComponentVersions
enumerator SupportedFeatures
enumerator GenericBinaryStatus
enumerator LiveData
enumerator HardwareInfo
enumerator TC10Status
enumerator AppError
enumerator GPTPStatus
enumerator EthernetStatus

Public Functions

inline Message(Type t)
virtual ~Message() = default

Public Members

const Type type
uint64_t timestamp = 0
class MessageCallback
#include <messagecallback.h>

Subclassed by icsneo::CANMessageCallback, icsneo::Main51MessageCallback, icsneo::StreamOutput

Public Types

typedef std::function<void(std::shared_ptr<Message>)> fn_messageCallback

Public Functions

inline MessageCallback(fn_messageCallback cb, std::shared_ptr<MessageFilter> f)
inline MessageCallback(fn_messageCallback cb, MessageFilter f = MessageFilter())
inline MessageCallback(std::shared_ptr<MessageFilter> f, fn_messageCallback cb)
inline MessageCallback(MessageFilter f, fn_messageCallback cb)
virtual ~MessageCallback() = default
inline virtual bool callIfMatch(const std::shared_ptr<Message> &message) const
inline const MessageFilter &getFilter() const
inline const fn_messageCallback &getCallback() const
class MessageFilter
#include <messagefilter.h>

Subclassed by icsneo::CANMessageFilter, icsneo::Main51MessageFilter

Public Functions

inline MessageFilter()
inline MessageFilter(Message::Type type)
inline MessageFilter(Network::NetID netid)
inline MessageFilter(Network::Type type, Network::NetID net = Network::NetID::Any)
virtual ~MessageFilter() = default
inline virtual bool match(const std::shared_ptr<Message> &message) const

Public Members

bool includeInternalInAny = false
class MultiChannelCommunication : public icsneo::Communication
#include <multichannelcommunication.h>

Public Types

enum class CommandType : uint8_t

Values:

enumerator PlasmaReadRequest
enumerator PlasmaStatusResponse
enumerator HostPC_to_Vnet1
enumerator Vnet1_to_HostPC
enumerator HostPC_to_Vnet2
enumerator Vnet2_to_HostPC
enumerator HostPC_to_Vnet3
enumerator Vnet3_to_HostPC
enumerator HostPC_to_SDCC1
enumerator HostPC_from_SDCC1
enumerator SDCC1_to_HostPC
enumerator HostPC_to_SDCC2
enumerator HostPC_from_SDCC2
enumerator SDCC2_to_HostPC
enumerator PC_to_LSOC
enumerator LSOCC_to_PC
enumerator HostPC_to_Microblaze
enumerator Microblaze_to_HostPC

Public Functions

MultiChannelCommunication(device_eventhandler_t err, std::unique_ptr<Driver> com, std::function<std::unique_ptr<Packetizer>()> makeConfiguredPacketizer, std::unique_ptr<Encoder> e, std::unique_ptr<Decoder> md, size_t vnetCount)
virtual void spawnThreads() override
virtual void joinThreads() override
virtual bool sendPacket(std::vector<uint8_t> &bytes) override
class NeoOBD2PRO : public icsneo::Device
#include <neoobd2pro.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoOBD2PRO, DeviceType::OBD2_PRO, "NP")

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class NeoOBD2SIM : public icsneo::Device
#include <neoobd2sim.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoOBD2SIM, DeviceType::OBD2_SIM, "OS")

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class NeoReadMemorySDMessage : public icsneo::RawMessage
#include <neoreadmemorysdmessage.h>

Public Functions

inline NeoReadMemorySDMessage()

Public Members

uint32_t startAddress = 0
class NeoVIConnect : public icsneo::Device
#include <neoviconnect.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoVIConnect, DeviceType::Connect, "DM")

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct neoviconnect_settings_t
#include <neoviconnectsettings.h>

Public Members

uint16_t perf_en
uint16_t network_enabled_on_boot
uint16_t misc_io_on_report_events
uint16_t pwr_man_enable
int16_t iso15765_separation_time_offset
uint16_t reservedA
uint32_t pwr_man_timeout
uint64_t network_enables
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
LIN_SETTINGS lin1
LIN_SETTINGS lin2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
uint16_t iso_parity
uint16_t iso_msg_termination
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
uint16_t iso_msg_termination_2
ETHERNET_SETTINGS ethernet_1
ETHERNET_SETTINGS2 ethernet2_1
ETHERNET_SETTINGS ethernet_2
ETHERNET_SETTINGS2 ethernet2_2
STextAPISettings text_api
DISK_SETTINGS disk
uint16_t misc_io_report_period
uint16_t ain_threshold
uint16_t misc_io_analog_enable
uint16_t digitalIoThresholdTicks
uint16_t digitalIoThresholdEnable
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
Fire3LinuxSettings os_settings
RAD_GPTP_SETTINGS gPTP
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t enableDefaultLogger
uint32_t enableDefaultUpload
uint32_t reserved3
struct icsneo::neoviconnect_settings_t flags
struct neoviconnect_status_t
#include <neoviconnectsettings.h>
class NeoVIConnectSettings : public icsneo::IDeviceSettings
#include <neoviconnectsettings.h>

Public Functions

inline NeoVIConnectSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class NeoVIFIRE : public icsneo::Device
#include <neovifire.h>

Public Types

enum class Mode : char

Values:

enumerator Application
enumerator Bootloader

Public Functions

ICSNEO_FINDABLE_DEVICE_BY_PID (NeoVIFIRE, DeviceType::FIRE, 0x0701)
inline virtual bool afterCommunicationOpen() override
inline bool enterMode(Mode mode)

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class NeoVIFIRE2 : public icsneo::Device
#include <neovifire2.h>

Public Types

enum class SKU

Values:

enumerator Standard
enumerator AP1200A

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoVIFIRE2, DeviceType::FIRE2, "CY")
inline SKU getSKU() const
inline virtual std::string getProductName() const override
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual size_t getUSBHostPowerCount() const override

Retrieve the number of power-controlled USB Host ports present on this device.

inline virtual bool getBackupPowerSupported() const override

Tell whether the current device supports controlling a backup power source through the API.

inline virtual std::vector<MiscIO> getMiscIO() const override

Retrieve the information about the misc IOs present on this device.

inline virtual std::vector<MiscIO> getEMiscIO() const override

Retrieve the information about the emisc IOs present on this device.

inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct neovifire2_settings_t
#include <neovifire2settings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
SWCAN_SETTINGS swcan1
uint16_t network_enables
SWCAN_SETTINGS swcan2
uint16_t network_enables_2
CAN_SETTINGS lsftcan1
CAN_SETTINGS lsftcan2
LIN_SETTINGS lin1
uint16_t misc_io_initial_ddr
LIN_SETTINGS lin2
uint16_t misc_io_initial_latch
LIN_SETTINGS lin3
uint16_t misc_io_report_period
LIN_SETTINGS lin4
uint16_t misc_io_on_report_events
LIN_SETTINGS lin5
uint16_t misc_io_analog_enable
uint16_t ain_sample_period
uint16_t ain_threshold
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3
uint16_t iso_parity_3
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4
uint16_t iso_parity_4
uint16_t iso_msg_termination_1
uint16_t iso_msg_termination_2
uint16_t iso_msg_termination_3
uint16_t iso_msg_termination_4
uint16_t idle_wakeup_network_enables_1
uint16_t idle_wakeup_network_enables_2
uint16_t network_enables_3
uint16_t idle_wakeup_network_enables_3
uint16_t can_switch_mode
STextAPISettings text_api
uint64_t termination_enables
LIN_SETTINGS lin6
ETHERNET_SETTINGS ethernet
uint16_t slaveVnetA
uint16_t slaveVnetB
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t busMessagesToAndroid
uint32_t enablePcEthernetComm
uint32_t enableDefaultLogger
uint32_t enableDefaultUpload
uint32_t reserved
struct icsneo::neovifire2_settings_t flags
uint16_t digitalIoThresholdTicks
uint16_t digitalIoThresholdEnable
TIMESYNC_ICSHARDWARE_SETTINGS timeSync
DISK_SETTINGS disk
struct neovifire2_status_t
#include <neovifire2settings.h>

Public Members

uint8_t backupPowerGood
uint8_t backupPowerEnabled
uint8_t usbHostPowerEnabled
uint8_t ethernetActivationLineEnabled
EthernetNetworkStatus ethernetStatus
class NeoVIFIRE2Settings : public icsneo::IDeviceSettings
#include <neovifire2settings.h>

Public Functions

inline NeoVIFIRE2Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const CAN_SETTINGS *getLSFTCANSettingsFor(Network net) const override
inline virtual const SWCAN_SETTINGS *getSWCANSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class NeoVIFIRE3 : public icsneo::Device
#include <neovifire3.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoVIFIRE3, DeviceType::FIRE3, "ON")
inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct neovifire3_settings_t
#include <neovifire3settings.h>

Public Members

uint16_t perf_en
uint16_t network_enabled_on_boot
uint16_t misc_io_on_report_events
uint16_t pwr_man_enable
int16_t iso15765_separation_time_offset
uint16_t slaveVnetA
uint32_t reserved
uint64_t termination_enables
uint64_t word
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
uint16_t network_enables_4
union icsneo::neovifire3_settings_t network_enables
uint32_t pwr_man_timeout
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
LIN_SETTINGS lin1
LIN_SETTINGS lin2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
uint16_t iso_msg_termination_2
ETHERNET_SETTINGS ethernet_1
TIMESYNC_ICSHARDWARE_SETTINGS timeSync
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t busMessagesToAndroid
uint32_t reserved1
uint32_t enableDefaultLogger
uint32_t enableDefaultUpload
struct icsneo::neovifire3_settings_t flags
DISK_SETTINGS disk
uint16_t misc_io_report_period
uint16_t ain_threshold
uint16_t misc_io_analog_enable
uint16_t digitalIoThresholdTicks
uint16_t digitalIoThresholdEnable
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
ETHERNET_SETTINGS2 ethernet2_1
ETHERNET_SETTINGS ethernet_2
ETHERNET_SETTINGS2 ethernet2_2
Fire3LinuxSettings os_settings
RAD_GPTP_SETTINGS gPTP
CAN_SETTINGS can9
CANFD_SETTINGS canfd9
CAN_SETTINGS can10
CANFD_SETTINGS canfd10
CAN_SETTINGS can11
CANFD_SETTINGS canfd11
CAN_SETTINGS can12
CANFD_SETTINGS canfd12
CAN_SETTINGS can13
CANFD_SETTINGS canfd13
CAN_SETTINGS can14
CANFD_SETTINGS canfd14
CAN_SETTINGS can15
CANFD_SETTINGS canfd15
CAN_SETTINGS can16
CANFD_SETTINGS canfd16
SWCAN_SETTINGS swcan1
SWCAN_SETTINGS swcan2
CAN_SETTINGS lsftcan1
CAN_SETTINGS lsftcan2
ETHERNET_SETTINGS ethernet_3
ETHERNET_SETTINGS2 ethernet2_3
LIN_SETTINGS lin3
LIN_SETTINGS lin4
LIN_SETTINGS lin5
LIN_SETTINGS lin6
LIN_SETTINGS lin7
LIN_SETTINGS lin8
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3
uint16_t iso_parity_3
uint16_t iso_msg_termination_3
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4
uint16_t iso_parity_4
uint16_t iso_msg_termination_4
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5
uint16_t iso_parity_5
uint16_t iso_msg_termination_5
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6
uint16_t iso_parity_6
uint16_t iso_msg_termination_6
uint16_t selectable_network_1
uint16_t selectable_network_2
uint64_t network_enables_2
uint64_t termination_enables_2
struct neovifire3_status_t
#include <neovifire3settings.h>

Public Members

uint8_t backupPowerGood
uint8_t backupPowerEnabled
uint8_t usbHostPowerEnabled
uint8_t ethernetActivationLineEnabled
EthernetNetworkStatus ethernetStatus
class NeoVIFIRE3FlexRay : public icsneo::Device
#include <neovifire3flexray.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoVIFIRE3FlexRay, DeviceType::FIRE3_FlexRay, "FF")
inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct neovifire3flexray_settings_t
#include <neovifire3flexraysettings.h>

Public Members

uint16_t perf_en
uint16_t network_enabled_on_boot
uint16_t misc_io_on_report_events
uint16_t pwr_man_enable
int16_t iso15765_separation_time_offset
uint16_t slaveVnetA
uint32_t reserved
uint64_t termination_enables
uint64_t word
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
uint16_t network_enables_4
union icsneo::neovifire3flexray_settings_t network_enables
uint32_t pwr_man_timeout
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
LIN_SETTINGS lin1
LIN_SETTINGS lin2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
uint16_t iso_msg_termination_2
ETHERNET_SETTINGS ethernet_1
TIMESYNC_ICSHARDWARE_SETTINGS timeSync
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t busMessagesToAndroid
uint32_t reserved1
uint32_t enableDefaultLogger
uint32_t enableDefaultUpload
struct icsneo::neovifire3flexray_settings_t flags
DISK_SETTINGS disk
uint16_t misc_io_report_period
uint16_t ain_threshold
uint16_t misc_io_analog_enable
uint16_t digitalIoThresholdTicks
uint16_t digitalIoThresholdEnable
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
ETHERNET_SETTINGS2 ethernet2_1
ETHERNET_SETTINGS ethernet_2
ETHERNET_SETTINGS2 ethernet2_2
Fire3LinuxSettings os_settings
RAD_GPTP_SETTINGS gPTP
CAN_SETTINGS can9
CANFD_SETTINGS canfd9
CAN_SETTINGS can10
CANFD_SETTINGS canfd10
CAN_SETTINGS can11
CANFD_SETTINGS canfd11
CAN_SETTINGS can12
CANFD_SETTINGS canfd12
CAN_SETTINGS can13
CANFD_SETTINGS canfd13
CAN_SETTINGS can14
CANFD_SETTINGS canfd14
CAN_SETTINGS can15
CANFD_SETTINGS canfd15
ETHERNET_SETTINGS ethernet_3
ETHERNET_SETTINGS2 ethernet2_3
LIN_SETTINGS lin3
LIN_SETTINGS lin4
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3
uint16_t iso_parity_3
uint16_t iso_msg_termination_3
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4
uint16_t iso_parity_4
uint16_t iso_msg_termination_4
uint64_t network_enables_2
uint64_t termination_enables_2
uint16_t flex_mode
uint16_t flex_termination
struct neovifire3flexray_status_t
#include <neovifire3flexraysettings.h>

Public Members

uint8_t backupPowerGood
uint8_t backupPowerEnabled
uint8_t usbHostPowerEnabled
uint8_t ethernetActivationLineEnabled
EthernetNetworkStatus ethernetStatus
class NeoVIFIRE3FlexRaySettings : public icsneo::IDeviceSettings
#include <neovifire3flexraysettings.h>

Public Functions

inline NeoVIFIRE3FlexRaySettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class NeoVIFIRE3Settings : public icsneo::IDeviceSettings
#include <neovifire3settings.h>

Public Functions

inline NeoVIFIRE3Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
struct neovifire_settings_t
#include <neovifiresettings.h>

Public Members

CAN_SETTINGS can1
CAN_SETTINGS can2
CAN_SETTINGS can3
CAN_SETTINGS can4
SWCAN_SETTINGS swcan
CAN_SETTINGS lsftcan
LIN_SETTINGS lin1
LIN_SETTINGS lin2
LIN_SETTINGS lin3
LIN_SETTINGS lin4
uint16_t cgi_enable_reserved
uint16_t cgi_baud
uint16_t cgi_tx_ifs_bit_times
uint16_t cgi_rx_ifs_bit_times
uint16_t cgi_chksum_enable
uint16_t network_enables
uint16_t network_enabled_on_boot
uint32_t pwm_man_timeout
uint16_t pwr_man_enable
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
uint16_t misc_io_analog_enable
uint16_t misc_io_report_period
uint16_t misc_io_on_report_events
uint16_t ain_sample_period
uint16_t ain_threshold
uint16_t iso15765_separation_time_offset
uint16_t iso9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
uint16_t perf_en
uint16_t iso_parity
uint16_t iso_msg_termination
uint16_t iso_tester_pullup_enable
uint16_t network_enables_2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
uint16_t iso_msg_termination_2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3
uint16_t iso_parity_3
uint16_t iso_msg_termination_3
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4
uint16_t iso_parity_4
uint16_t iso_msg_termination_4
uint16_t fast_init_network_enables_1
uint16_t fast_init_network_enables_2
UART_SETTINGS uart
UART_SETTINGS uart2
STextAPISettings text_api
SNeoMostGatewaySettings neoMostGateway
uint16_t vnetBits
class NeoVIFIRESettings : public icsneo::IDeviceSettings
#include <neovifiresettings.h>

Public Functions

inline NeoVIFIRESettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CAN_SETTINGS *getLSFTCANSettingsFor(Network net) const override
inline virtual const SWCAN_SETTINGS *getSWCANSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class NeoVIION : public icsneo::Plasion
#include <neoviion.h>

Public Functions

ICSNEO_FINDABLE_DEVICE_BY_PID (NeoVIION, DeviceType::ION, 0x0901)
inline virtual bool supportsComponentVersions() const override
class NeoVIPLASMA : public icsneo::Plasion
#include <neoviplasma.h>

Public Functions

ICSNEO_FINDABLE_DEVICE_BY_PID (NeoVIPLASMA, DeviceType::PLASMA, 0x0801)
class NeoVIRED2 : public icsneo::Device
#include <neovired2.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (NeoVIRED2, DeviceType::RED2, "D2")
inline virtual bool supportsComponentVersions() const override
inline virtual bool supportsGPTP() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct neovired2_settings_t
#include <neovired2settings.h>

Public Members

uint16_t perf_en
uint16_t network_enabled_on_boot
uint16_t misc_io_on_report_events
uint16_t pwr_man_enable
int16_t iso15765_separation_time_offset
uint16_t slaveVnetA
uint32_t reserved
uint64_t termination_enables
uint64_t word
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
union icsneo::neovired2_settings_t network_enables
uint32_t pwr_man_timeout
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
LIN_SETTINGS lin1
LIN_SETTINGS lin2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
uint16_t iso_msg_termination_2
ETHERNET_SETTINGS ethernet
TIMESYNC_ICSHARDWARE_SETTINGS timeSync
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t busMessagesToAndroid
uint32_t enablePcEthernetComm
uint32_t enableDefaultLogger
uint32_t enableDefaultUpload
struct icsneo::neovired2_settings_t flags
DISK_SETTINGS disk
uint16_t misc_io_report_period
uint16_t ain_threshold
uint16_t misc_io_analog_enable
uint16_t digitalIoThresholdTicks
uint16_t digitalIoThresholdEnable
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
ETHERNET_SETTINGS2 ethernet2
struct neovired2_status_t
#include <neovired2settings.h>

Public Members

uint8_t backupPowerGood
uint8_t backupPowerEnabled
uint8_t usbHostPowerEnabled
uint8_t ethernetActivationLineEnabled
EthernetNetworkStatus ethernetStatus
class NeoVIRED2Settings : public icsneo::IDeviceSettings
#include <neovired2settings.h>

Public Functions

inline NeoVIRED2Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class Network
#include <network.h>

Public Types

enum class NetID : neonetid_t

Values:

enumerator Device
enumerator DWCAN_01
enumerator DWCAN_08
enumerator SWCAN_01
enumerator LSFTCAN_01
enumerator FordSCP
enumerator J1708
enumerator Aux
enumerator J1850VPW
enumerator ISO9141_01
enumerator DiskData
enumerator Main51
enumerator RED
enumerator SCI
enumerator ISO9141_02
enumerator ISO14230
enumerator LIN_01
enumerator AE_01
enumerator AE_02
enumerator AE_03
enumerator RED_EXT_MEMORYREAD
enumerator RED_INT_MEMORYREAD
enumerator RED_DFLASH_READ
enumerator NeoMemorySDRead
enumerator CAN_ERRBITS
enumerator NeoMemoryWriteDone
enumerator RED_WAVE_CAN1_LOGICAL
enumerator RED_WAVE_CAN2_LOGICAL
enumerator RED_WAVE_LIN1_LOGICAL
enumerator RED_WAVE_LIN2_LOGICAL
enumerator RED_WAVE_LIN1_ANALOG
enumerator RED_WAVE_LIN2_ANALOG
enumerator RED_WAVE_MISC_ANALOG
enumerator RED_WAVE_MISCDIO2_LOGICAL
enumerator RED_NETWORK_COM_ENABLE_EX
enumerator RED_NEOVI_NETWORK
enumerator RED_READ_BAUD_SETTINGS
enumerator RED_OLDFORMAT
enumerator RED_SCOPE_CAPTURE
enumerator RED_HARDWARE_EXCEP
enumerator RED_GET_RTC
enumerator ISO9141_03
enumerator DWCAN_02
enumerator DWCAN_03
enumerator AE_04
enumerator AE_05
enumerator ISO9141_04
enumerator LIN_02
enumerator LIN_03
enumerator LIN_04
enumerator RED_App_Error
enumerator CGI
enumerator Reset_Status
enumerator FB_Status
enumerator App_Signal_Status
enumerator Logging_Overflow
enumerator ReadSettings
enumerator DWCAN_04
enumerator DWCAN_05
enumerator RS232
enumerator UART_01
enumerator UART_02
enumerator UART_03
enumerator UART_04
enumerator SWCAN_02
enumerator ETHERNET_DAQ
enumerator Data_To_Host
enumerator TextAPI_To_Host
enumerator SPI_01
enumerator AE_06
enumerator Red_VBat
enumerator AE_07
enumerator AE_08
enumerator AE_09
enumerator AE_10
enumerator AE_11
enumerator FLEXRAY_01A
enumerator FLEXRAY_01B
enumerator FLEXRAY_02A
enumerator FLEXRAY_02B
enumerator LIN_05
enumerator FLEXRAY_01
enumerator FLEXRAY_02
enumerator AE_12
enumerator I2C_01
enumerator MOST_25
enumerator MOST_50
enumerator MOST_150
enumerator ETHERNET_01
enumerator GMFSA
enumerator TCP
enumerator DWCAN_06
enumerator DWCAN_07
enumerator LIN_06
enumerator LSFTCAN_02
enumerator LogicalDiskInfo
enumerator WiVICommand
enumerator ScriptStatus
enumerator EthPHYControl
enumerator ExtendedCommand
enumerator ExtendedData
enumerator FlexRayControl
enumerator CoreMiniPreLoad
enumerator HW_COM_Latency_Test
enumerator DeviceStatus
enumerator UDP
enumerator ForwardedMessage
enumerator I2C_02
enumerator I2C_03
enumerator I2C_04
enumerator ETHERNET_02
enumerator A2B_01
enumerator A2B_02
enumerator ETHERNET_03
enumerator WBMS_01
enumerator DWCAN_09
enumerator DWCAN_10
enumerator DWCAN_11
enumerator DWCAN_12
enumerator DWCAN_13
enumerator DWCAN_14
enumerator DWCAN_15
enumerator DWCAN_16
enumerator LIN_07
enumerator LIN_08
enumerator SPI_02
enumerator MDIO_01
enumerator MDIO_02
enumerator MDIO_03
enumerator MDIO_04
enumerator MDIO_05
enumerator MDIO_06
enumerator MDIO_07
enumerator MDIO_08
enumerator AE_13
enumerator AE_14
enumerator AE_15
enumerator AE_16
enumerator SPI_03
enumerator SPI_04
enumerator SPI_05
enumerator SPI_06
enumerator SPI_07
enumerator SPI_08
enumerator LIN_09
enumerator LIN_10
enumerator LIN_11
enumerator LIN_12
enumerator LIN_13
enumerator LIN_14
enumerator LIN_15
enumerator LIN_16
enumerator Any
enumerator Invalid
enum class Type : neonettype_t

Values:

enumerator Invalid
enumerator Internal
enumerator CAN
enumerator LIN
enumerator FlexRay
enumerator MOST
enumerator Ethernet
enumerator LSFTCAN
enumerator SWCAN
enumerator ISO9141
enumerator I2C
enumerator A2B
enumerator SPI
enumerator MDIO
enumerator Any
enumerator Other
enum class CoreMini : uint8_t

Values:

enumerator DWCAN_01
enumerator DWCAN_08
enumerator LIN_01
enumerator LIN_02
enumerator Virtual
enumerator DWCAN_02
enumerator LSFTCAN_01
enumerator SWCAN_01
enumerator DWCAN_03
enumerator CGI
enumerator J1850VPW
enumerator LIN_03
enumerator LIN_04
enumerator J1708
enumerator DWCAN_04
enumerator DWCAN_05
enumerator ISO9141_01
enumerator ISO9141_02
enumerator ISO9141_03
enumerator ISO9141_04
enumerator FLEXRAY_01A
enumerator UART_01
enumerator UART_02
enumerator LIN_05
enumerator MOST_25
enumerator MOST_50
enumerator FLEXRAY_01B
enumerator SWCAN_02
enumerator ETHERNET_DAQ
enumerator ETHERNET_01
enumerator FLEXRAY_02A
enumerator FLEXRAY_02B
enumerator DWCAN_06
enumerator DWCAN_07
enumerator LIN_06
enumerator LSFTCAN_02
enumerator AE_01
enumerator AE_02
enumerator AE_03
enumerator AE_04
enumerator AE_05
enumerator AE_06
enumerator AE_07
enumerator AE_08
enumerator AE_09
enumerator AE_10
enumerator AE_11
enumerator AE_12
enumerator TCPVirtual
enumerator UDPVirtual
enumerator FLEXRAY_01
enumerator FLEXRAY_02
enumerator ForwardedMessage
enumerator I2C_01
enumerator I2C_02
enumerator I2C_03
enumerator I2C_04
enumerator ETHERNET_02
enumerator A2B_01
enumerator A2B_02
enumerator ETHERNET_03
enumerator WBMS_01
enumerator DWCAN_09
enumerator DWCAN_10
enumerator DWCAN_11
enumerator DWCAN_12
enumerator DWCAN_13
enumerator DWCAN_14
enumerator DWCAN_15
enumerator DWCAN_16
enumerator LIN_07
enumerator LIN_08
enumerator SPI_01
enumerator SPI_02
enumerator MDIO_01
enumerator MDIO_02
enumerator MDIO_03
enumerator MDIO_04
enumerator MDIO_05
enumerator MDIO_06
enumerator MDIO_07
enumerator MDIO_08
enumerator AE_13
enumerator AE_14
enumerator AE_15
enumerator AE_16
enumerator SPI_03
enumerator SPI_04
enumerator SPI_05
enumerator SPI_06
enumerator SPI_07
enumerator SPI_08
enumerator LIN_09
enumerator LIN_10
enumerator LIN_11
enumerator LIN_12
enumerator LIN_13
enumerator LIN_14
enumerator LIN_15
enumerator LIN_16
enum class VnetId : uint8_t

Values:

enumerator None
enumerator VNET_A
enumerator VNET_B

Public Functions

inline Network()
inline Network(neonetid_t netid, bool expand = true)
inline Network(NetID netid)
inline Network(CoreMini cm)
inline NetID getNetID() const
inline Type getType() const
inline VnetId getVnetId() const
inline std::optional<CoreMini> getCoreMini() const

Public Static Functions

static inline const char *GetTypeString(Type type)
static inline NetID OffsetToSimpleNetworkId(uint16_t offset)

So if you are passing in the offset from OFFSET_PLASMA_SLAVE1 or the offset from OFFSET_PLASMA_SLAVE2, return the vnet agnostic netid so caller can commonize handlers without caring about WHICH slave.

static inline bool Within(neonetid_t value, neonetid_t min, neonetid_t max)
static inline bool IdIsSlaveARange1(neonetid_t fullNetid)
static inline bool IdIsSlaveARange2(neonetid_t fullNetid)
static inline bool IdIsSlaveBRange1(neonetid_t fullNetid)
static inline bool IdIsSlaveBRange2(neonetid_t fullNetid)
static inline std::pair<VnetId, NetID> GetVnetAgnosticNetid(neonetid_t fullNetid)
static inline const char *GetVnetIdString(VnetId vnetId)
static inline Type GetTypeOfNetID(NetID netid, bool expand = true)
static inline const char *GetNetIDString(NetID netid, bool expand = true)
static inline std::optional<CoreMini> GetCoreMiniNetworkFromNetID(NetID netid)
static inline NetID GetNetIDFromCoreMiniNetwork(CoreMini cm)

Friends

inline friend std::ostream &operator<<(std::ostream &os, const Network &network)
inline friend bool operator==(const Network &net1, const Network &net2)
inline friend bool operator!=(const Network &net1, const Network &net2)
class NullSettings : public icsneo::IDeviceSettings
#include <nullsettings.h>

Public Functions

inline NullSettings(std::shared_ptr<Communication> com)
class Packet
#include <packet.h>

Public Members

Network network
std::vector<uint8_t> data
class Packetizer
#include <packetizer.h>

Public Functions

inline Packetizer(device_eventhandler_t report)
std::vector<uint8_t> &packetWrap(std::vector<uint8_t> &data, bool shortFormat) const
bool input(RingBuffer &bytes)
std::vector<std::shared_ptr<Packet>> output()

Public Members

bool disableChecksum = false
bool align16bit = true

Public Static Functions

static uint8_t ICSChecksum(const std::vector<uint8_t> &data)
class PCAP : public icsneo::Driver, public icsneo::Driver
#include <pcap.h>

Public Functions

PCAP(device_eventhandler_t err, neodevice_t &forDevice)
virtual bool open() override
virtual bool isOpen() override
virtual bool close() override
inline virtual bool isEthernet() const override
PCAP(const device_eventhandler_t &err, neodevice_t &forDevice)
virtual bool open() override
virtual bool isOpen() override
virtual bool close() override
inline virtual bool isEthernet() const override

Public Static Functions

static void Find(std::vector<FoundDevice> &foundDevices)
static std::string GetEthDevSerialFromMacAddress(uint8_t product, uint16_t macSerial)
static bool IsHandleValid(neodevice_handle_t handle)
static void Find(std::vector<FoundDevice> &foundDevices)
static std::string GetEthDevSerialFromMacAddress(uint8_t product, uint16_t macSerial)
static bool IsHandleValid(neodevice_handle_t handle)
class PCAPDLL
#include <pcapdll.h>

Public Types

int(__cdecl * PCAPFINDDEVICE )(char *source, struct pcap_rmtauth *auth, pcap_if_t **alldevs, char *errbuf)
pcap_t *(__cdecl * PCAPOPEN )(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf)
void(__cdecl * PCAPFREEDEVS )(pcap_if_t *alldevsp)
void(__cdecl * PCAPCLOSE )(pcap_t *p)
int(__cdecl * PCAPSTATS )(pcap_t *p, struct pcap_stat *ps)
int(__cdecl * PCAPNEXTEX )(pcap_t *p, struct pcap_pkthdr **pkt_header, const unsigned char **pkt_data)
int(__cdecl * PCAPSENDPACKET )(pcap_t *p, const unsigned char *buf, int size)
pcap_send_queue *(__cdecl * PCAPSENDQUEUEALLOC )(unsigned int memsize)
int(__cdecl * PCAPSENDQUEUEQUEUE )(pcap_send_queue *queue, const struct pcap_pkthdr *pkt_header, const unsigned char *pkt_data)
void(__cdecl * PCAPSENDQUEUEDESTROY )(pcap_send_queue *queue)
unsigned int(__cdecl * PCAPSENDQUEUETRANSMIT )(pcap_t *p, pcap_send_queue *queue, int sync)
int(__cdecl * PCAPDATALINK )(pcap_t *p)
int(__cdecl * PCAPCREATESRCSTR )(char *source, int type, const char *host, const char *port, const char *name, char *errbuf)
int(__cdecl * PCAPSETBUFF )(pcap_t *p, int dim)

Public Functions

~PCAPDLL()
bool ok() const

Public Members

PCAPFINDDEVICE findalldevs_ex
PCAPOPEN open
PCAPFREEDEVS freealldevs
PCAPCLOSE close
PCAPSTATS stats
PCAPNEXTEX next_ex
PCAPSENDPACKET sendpacket
PCAPSENDQUEUEALLOC sendqueue_alloc
PCAPSENDQUEUEQUEUE sendqueue_queue
PCAPSENDQUEUEDESTROY sendqueue_destroy
PCAPSENDQUEUETRANSMIT sendqueue_transmit
PCAPDATALINK datalink
PCAPCREATESRCSTR createsrcstr
PCAPSETBUFF setbuff

Public Static Functions

static const PCAPDLL &getInstance()
struct PhyMessage
#include <ethphymessage.h>

Public Members

bool Enabled
bool WriteEnable
bool Clause45Enable
uint8_t version
Clause22Message clause22
Clause45Message clause45
union icsneo::PhyMessage
struct PhyRegisterHeader_t
#include <ethphyregpacket.h>

Public Members

uint16_t numEntries
uint8_t version
uint8_t entryBytes
struct PhyRegisterPacket_t
#include <ethphyregpacket.h>

Public Members

uint16_t Enabled
uint16_t WriteEnable
uint16_t Clause45Enable
uint16_t reserved
uint16_t version
uint16_t flags
union icsneo::PhyRegisterPacket_t
Clause22Message clause22
Clause45Message clause45
union icsneo::PhyRegisterPacket_t
class Plasion : public icsneo::Device
#include <plasion.h>

Subclassed by icsneo::NeoVIION, icsneo::NeoVIPLASMA

Public Functions

inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class RADA2B : public icsneo::Device
#include <rada2b.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADA2B, DeviceType::RAD_A2B, "AB")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool supportsGPTP() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct rada2b_monitor_settings_t
#include <rada2bsettings.h>

Public Members

uint8_t tdmMode
uint8_t upstreamChannelOffset
uint8_t downstreamChannelOffset
uint8_t nodeType
uint8_t flags
uint8_t reserved[15]
struct rada2b_settings_t
#include <rada2bsettings.h>

Public Members

uint16_t perf_en
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t __pad0__
struct icsneo::rada2b_settings_t flags
uint16_t network_enabled_on_boot
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
LIN_SETTINGS lin1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint64_t network_enables
uint64_t termination_enables
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
RAD_REPORTING_SETTINGS reporting
DISK_SETTINGS disk
LOGGER_SETTINGS logger
int16_t iso15765_separation_time_offset
rada2b_monitor_settings_t a2b_monitor
rada2b_monitor_settings_t a2b_node
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
ETHERNET_SETTINGS2 ethernet
RAD_GPTP_SETTINGS gPTP
uint64_t network_enables_5
class RADA2BSettings : public icsneo::IDeviceSettings
#include <rada2bsettings.h>

Public Types

enum class NodeType : uint8_t

Values:

enumerator Monitor
enumerator Master
enumerator Subnode
enum class TDMMode : uint8_t

Values:

enumerator TDM2
enumerator TDM4
enumerator TDM8
enumerator TDM12
enumerator TDM16
enumerator TDM20
enumerator TDM24
enumerator TDM32
enum class ChannelSize : uint8_t

Values:

enumerator chSize32
enumerator chSize16
enum class RADA2BDevice : uint8_t

Values:

enumerator Monitor
enumerator Node

Public Functions

inline RADA2BSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
inline TDMMode getTDMMode(RADA2BDevice device) const
inline uint8_t getNumChannels(RADA2BDevice device) const
inline ChannelSize getChannelSize(RADA2BDevice device) const
inline uint8_t getChannelOffset(RADA2BDevice device, A2BMessage::Direction dir) const
inline NodeType getNodeType(RADA2BDevice device) const
inline void setNodeType(RADA2BDevice device, NodeType newType)
inline void setTDMMode(RADA2BDevice device, TDMMode newMode)
inline void setChannelOffset(RADA2BDevice device, A2BMessage::Direction dir, uint8_t newOffset)
inline void setChannelSize(RADA2BDevice device, ChannelSize newChannelSize)

Public Static Functions

static inline uint8_t tdmModeToChannelNum(TDMMode mode)

Public Static Attributes

static constexpr uint8_t a2bSettingsFlag16bit = 0x01
class RADComet : public icsneo::RADCometBase
#include <radcomet.h>

Public Functions

ICSNEO_FINDABLE_DEVICE_BY_SERIAL_RANGE (RADComet, DeviceType::RADComet, "RC0000", "RC0299")
inline virtual std::string getProductName() const override
class RADComet2 : public icsneo::RADCometBase
#include <radcomet2.h>

Public Functions

ICSNEO_FINDABLE_DEVICE_BY_SERIAL_RANGE (RADComet2, DeviceType::RADComet, "RC0300", "RCZZZZ")
inline virtual std::string getProductName() const override
inline virtual const std::vector<Network> &GetSupportedNetworks() override
inline virtual bool supportsTC10() const override
class RADComet3 : public icsneo::Device
#include <radcomet3.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADComet3, DeviceType::RADComet3, "C3")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsTC10() const override
inline virtual bool supportsGPTP() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radcomet3_settings_t
#include <radcomet3settings.h>

Public Members

uint32_t ecu_id
uint16_t perf_en
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t reserved
struct icsneo::radcomet3_settings_t flags
uint16_t network_enabled_on_boot
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint64_t network_enables
uint64_t network_enables_2
uint64_t termination_enables
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
RAD_REPORTING_SETTINGS reporting
int16_t iso15765_separation_time_offset
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
RAD_GPTP_SETTINGS gPTP
STextAPISettings text_api
ETHERNET_SETTINGS2 ethernet
AE_GENERAL_SETTINGS aeGen
ETHERNET_SETTINGS2 ethT1
AE_SETTINGS ae_01
ETHERNET_SETTINGS2 ethT1s1
ETHERNET10T1S_SETTINGS t1s1
ETHERNET_SETTINGS2 ethT1s2
ETHERNET10T1S_SETTINGS t1s2
ETHERNET_SETTINGS2 ethT1s3
ETHERNET10T1S_SETTINGS t1s3
ETHERNET_SETTINGS2 ethT1s4
ETHERNET10T1S_SETTINGS t1s4
ETHERNET_SETTINGS2 ethT1s5
ETHERNET10T1S_SETTINGS t1s5
ETHERNET_SETTINGS2 ethT1s6
ETHERNET10T1S_SETTINGS t1s6
LIN_SETTINGS lin1
ETHERNET10T1S_SETTINGS_EXT t1s1Ext
ETHERNET10T1S_SETTINGS_EXT t1s2Ext
ETHERNET10T1S_SETTINGS_EXT t1s3Ext
ETHERNET10T1S_SETTINGS_EXT t1s4Ext
ETHERNET10T1S_SETTINGS_EXT t1s5Ext
ETHERNET10T1S_SETTINGS_EXT t1s6Ext
class RADComet3Settings : public icsneo::IDeviceSettings
#include <radcomet3settings.h>

Public Functions

inline RADComet3Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
struct radcomet_settings_t
#include <radcometsettings.h>

Public Members

uint32_t ecu_id
uint16_t perf_en
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t reserved
struct icsneo::radcomet_settings_t flags
uint16_t network_enabled_on_boot
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint64_t word
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
uint16_t network_enables_4
union icsneo::radcomet_settings_t network_enables
uint64_t termination_enables
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
RAD_REPORTING_SETTINGS reporting
int16_t iso15765_separation_time_offset
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
RAD_GPTP_SETTINGS gPTP
STextAPISettings text_api
ETHERNET_SETTINGS2 ethernet
AE_GENERAL_SETTINGS aeGen
ETHERNET_SETTINGS2 ethT1
AE_SETTINGS ae_01
ETHERNET_SETTINGS2 ethT1s1
ETHERNET10T1S_SETTINGS t1s1
ETHERNET_SETTINGS2 ethT1s2
ETHERNET10T1S_SETTINGS t1s2
uint64_t network_enables_5
LIN_SETTINGS lin1
ETHERNET10T1S_SETTINGS_EXT t1s1Ext
ETHERNET10T1S_SETTINGS_EXT t1s2Ext
class RADCometBase : public icsneo::Device
#include <radcometbase.h>

Subclassed by icsneo::RADComet, icsneo::RADComet2

Public Functions

inline virtual const std::vector<Network> &GetSupportedNetworks()
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsGPTP() const override
class RADCometSettings : public icsneo::IDeviceSettings
#include <radcometsettings.h>

Public Functions

inline RADCometSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
class RADEpsilon : public icsneo::Device
#include <radepsilon.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADEpsilon, DeviceType::RADEpsilon, "RE")
inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radepsilon_settings_t
#include <radepsilonsettings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
LIN_SETTINGS lin1
uint16_t network_enables[3]
uint64_t termination_enables
uint16_t misc_io_analog_enable
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
int16_t iso15765_separation_time_offset
uint16_t iso9141_kwp_enable_reserved
uint16_t iso_tester_pullup_enable
uint16_t iso_parity
uint16_t iso_msg_termination
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
ETHERNET_SETTINGS ethernet
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t enablePcEthernetComm
uint32_t reserved
struct icsneo::radepsilon_settings_t flags
radepsilon_switch_settings_t switchSettings
ETHERNET_SETTINGS2 ethernet2
uint16_t misc_io_on_report_events
DISK_SETTINGS disk
struct radepsilon_switch_settings_t
#include <radepsilonsettings.h>

Public Members

uint8_t phyMode[RADEPSILON_MAX_PHY]
uint8_t enablePhy[RADEPSILON_MAX_PHY]
uint8_t speed[RADEPSILON_MAX_PHY]
uint8_t legacy[RADEPSILON_MAX_PHY]
uint8_t spoofedMac[6]
uint8_t spoofMacFlag
uint8_t pad
class RADEpsilonSettings : public icsneo::IDeviceSettings
#include <radepsilonsettings.h>

Public Functions

inline RADEpsilonSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
inline virtual bool setPhyMode(uint8_t index, AELinkMode mode) override
inline virtual bool setPhyEnable(uint8_t index, bool enable) override
inline virtual bool setPhySpeed(uint8_t index, EthLinkSpeed speed) override
inline virtual std::optional<AELinkMode> getPhyMode(uint8_t index) override
inline virtual std::optional<bool> getPhyEnable(uint8_t index) override
inline virtual std::optional<EthLinkSpeed> getPhySpeed(uint8_t index) override
class RADEpsilonXL : public icsneo::Device
#include <radepsilonxl.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADEpsilonXL, DeviceType::RADEpsilonXL, "PX")
inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class RADGalaxy : public icsneo::Device
#include <radgalaxy.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADGalaxy, DeviceType::RADGalaxy, "RG")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool supportsGPTP() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class RADGalaxy2 : public icsneo::Device
#include <radgalaxy2.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADGalaxy2, DeviceType::RADGalaxy2, "G2")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool supportsTC10() const override
inline virtual bool supportsGPTP() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radgalaxy2_settings_t
#include <radgalaxy2settings.h>

Public Members

uint32_t ecu_id
uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
uint16_t network_enables
uint16_t network_enables_2
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint16_t idle_wakeup_network_enables_1
uint16_t idle_wakeup_network_enables_2
uint16_t network_enables_3
uint16_t idle_wakeup_network_enables_3
STextAPISettings text_api
uint64_t termination_enables
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
uint16_t reserved
struct icsneo::radgalaxy2_settings_t flags
LIN_SETTINGS lin1
AE_GENERAL_SETTINGS aeGen
AE_SETTINGS ae_01
AE_SETTINGS ae_02
AE_SETTINGS ae_03
AE_SETTINGS ae_04
AE_SETTINGS ae_05
AE_SETTINGS ae_06
AE_SETTINGS ae_07
AE_SETTINGS ae_08
AE_SETTINGS ae_09
AE_SETTINGS ae_10
AE_SETTINGS ae_11
AE_SETTINGS ae_12
AE_SETTINGS ae_13
AE_SETTINGS ae_14
AE_SETTINGS ae_15
AE_SETTINGS ae_16
ETHERNET10G_SETTINGS ethernet10g
ETHERNET10G_SETTINGS ethernet10g_2
ETHERNET10G_SETTINGS ethernet10g_3
uint16_t network_enables_4
RAD_REPORTING_SETTINGS reporting
RAD_GPTP_SETTINGS gPTP
uint64_t network_enables_5
LIN_SETTINGS lin2
struct radgalaxy2_status_t
#include <radgalaxy2settings.h>

Public Members

uint8_t unused[3]
uint8_t ethernetActivationLineEnabled
class RADGalaxy2Settings : public icsneo::IDeviceSettings
#include <radgalaxy2settings.h>

Public Functions

inline RADGalaxy2Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
struct radgalaxy_settings_t
#include <radgalaxysettings.h>

Public Members

uint16_t perf_en
AE_GENERAL_SETTINGS aeGen
AE_SETTINGS ae_01
AE_SETTINGS ae_02
AE_SETTINGS ae_03
AE_SETTINGS ae_04
AE_SETTINGS ae_05
AE_SETTINGS ae_06
AE_SETTINGS ae_07
AE_SETTINGS ae_08
AE_SETTINGS ae_09
AE_SETTINGS ae_10
AE_SETTINGS ae_11
AE_SETTINGS ae_12
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
SWCAN_SETTINGS swcan1
uint16_t network_enables
SWCAN_SETTINGS swcan2
uint16_t network_enables_2
LIN_SETTINGS lin1
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
uint16_t misc_io_report_period
uint16_t misc_io_on_report_events
uint16_t misc_io_analog_enable
uint16_t ain_sample_period
uint16_t ain_threshold
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint16_t idle_wakeup_network_enables_1
uint16_t idle_wakeup_network_enables_2
uint16_t network_enables_3
uint16_t idle_wakeup_network_enables_3
uint16_t can_switch_mode
STextAPISettings text_api
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
RAD_REPORTING_SETTINGS reporting
DISK_SETTINGS disk
LOGGER_SETTINGS logger
ETHERNET_SETTINGS2 ethernet1
ETHERNET_SETTINGS2 ethernet2
uint16_t network_enables_4
RAD_GPTP_SETTINGS gPTP
struct radgalaxy_status_t
#include <radgalaxysettings.h>

Public Members

uint8_t unused[3]
uint8_t ethernetActivationLineEnabled
class RADGalaxySettings : public icsneo::IDeviceSettings
#include <radgalaxysettings.h>

Public Functions

inline RADGalaxySettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const SWCAN_SETTINGS *getSWCANSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class RADGigastar : public icsneo::Device
#include <radgigastar.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADGigastar, DeviceType::RADGigastar, "GS")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsTC10() const override
inline virtual bool supportsGPTP() const override
class RADGigastar2 : public icsneo::Device
#include <radgigastar2.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADGigastar2, DeviceType::RADGigastar2, "GT")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsTC10() const override
inline virtual bool supportsGPTP() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radgigastar2_settings_t
#include <radgigastar2settings.h>

Public Members

uint32_t ecu_id
uint16_t perf_en
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t reserved
struct icsneo::radgigastar2_settings_t flags
uint16_t network_enabled_on_boot
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2
uint16_t iso_parity_2
uint16_t iso_msg_termination_2
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3
uint16_t iso_parity_3
uint16_t iso_msg_termination_3
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4
uint16_t iso_parity_4
uint16_t iso_msg_termination_4
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5
uint16_t iso_parity_5
uint16_t iso_msg_termination_5
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6
uint16_t iso_parity_6
uint16_t iso_msg_termination_6
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_7
uint16_t iso_parity_7
uint16_t iso_msg_termination_7
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_8
uint16_t iso_parity_8
uint16_t iso_msg_termination_8
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_9
uint16_t iso_parity_9
uint16_t iso_msg_termination_9
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_10
uint16_t iso_parity_10
uint16_t iso_msg_termination_10
uint64_t network_enables
uint64_t network_enables_2
uint64_t termination_enables
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
RAD_REPORTING_SETTINGS reporting
int16_t iso15765_separation_time_offset
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
RAD_GPTP_SETTINGS gPTP
STextAPISettings text_api
DISK_SETTINGS disk
LOGGER_SETTINGS logger
LIN_SETTINGS lin1
LIN_SETTINGS lin2
LIN_SETTINGS lin3
LIN_SETTINGS lin4
LIN_SETTINGS lin5
LIN_SETTINGS lin6
LIN_SETTINGS lin7
LIN_SETTINGS lin8
LIN_SETTINGS lin9
LIN_SETTINGS lin10
ETHERNET_SETTINGS2 ethernet1
ETHERNET_SETTINGS2 ethernet2
AE_GENERAL_SETTINGS aeGen
ETHERNET_SETTINGS2 ethT1
AE_SETTINGS ae_01
ETHERNET_SETTINGS2 ethT12
AE_SETTINGS ae_02
ETHERNET_SETTINGS2 ethT1s1
ETHERNET10T1S_SETTINGS t1s1
ETHERNET10T1S_SETTINGS_EXT t1s1Ext
ETHERNET_SETTINGS2 ethT1s2
ETHERNET10T1S_SETTINGS t1s2
ETHERNET10T1S_SETTINGS_EXT t1s2Ext
ETHERNET_SETTINGS2 ethT1s3
ETHERNET10T1S_SETTINGS t1s3
ETHERNET10T1S_SETTINGS_EXT t1s3Ext
ETHERNET_SETTINGS2 ethT1s4
ETHERNET10T1S_SETTINGS t1s4
ETHERNET10T1S_SETTINGS_EXT t1s4Ext
ETHERNET_SETTINGS2 ethT1s5
ETHERNET10T1S_SETTINGS t1s5
ETHERNET10T1S_SETTINGS_EXT t1s5Ext
ETHERNET_SETTINGS2 ethT1s6
ETHERNET10T1S_SETTINGS t1s6
ETHERNET10T1S_SETTINGS_EXT t1s6Ext
ETHERNET_SETTINGS2 ethT1s7
ETHERNET10T1S_SETTINGS t1s7
ETHERNET10T1S_SETTINGS_EXT t1s7Ext
ETHERNET_SETTINGS2 ethT1s8
ETHERNET10T1S_SETTINGS t1s8
ETHERNET10T1S_SETTINGS_EXT t1s8Ext
struct radgigastar2_status_t
#include <radgigastar2settings.h>

Public Members

uint8_t unused[3]
uint8_t ethernetActivationLineEnabled
class RADGigastar2Settings : public icsneo::IDeviceSettings
#include <radgigastar2settings.h>

Public Functions

inline RADGigastar2Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
struct radgigastar_settings_t
#include <radgigastarsettings.h>

Public Members

uint32_t ecu_id
uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
uint16_t network_enables
uint16_t network_enables_2
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint16_t idle_wakeup_network_enables_1
uint16_t idle_wakeup_network_enables_2
uint16_t network_enables_3
uint16_t idle_wakeup_network_enables_3
STextAPISettings text_api
uint64_t termination_enables
DISK_SETTINGS disk
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t reserved
struct icsneo::radgigastar_settings_t flags
ETHERNET_SETTINGS2 ethernet1
ETHERNET_SETTINGS2 ethernet2
LIN_SETTINGS lin1
AE_GENERAL_SETTINGS aeGen
AE_SETTINGS ae_01
AE_SETTINGS ae_02
SERDESCAM_SETTINGS serdescam1
SERDESPOC_SETTINGS serdespoc
LOGGER_SETTINGS logger
SERDESCAM_SETTINGS serdescam2
SERDESCAM_SETTINGS serdescam3
SERDESCAM_SETTINGS serdescam4
RAD_REPORTING_SETTINGS reporting
uint16_t network_enables_4
SERDESGEN_SETTINGS serdesgen
RAD_GPTP_SETTINGS gPTP
uint64_t network_enables_5
struct radgigastar_status_t
#include <radgigastarsettings.h>

Public Members

uint8_t unused[3]
uint8_t ethernetActivationLineEnabled
class RADGigastarSettings : public icsneo::IDeviceSettings
#include <radgigastarsettings.h>

Public Functions

inline RADGigastarSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class RADJupiter : public icsneo::Device
#include <radjupiter.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADJupiter, DeviceType::RADJupiter, "RJ")
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radjupiter_ptp_params_t
#include <radjupitersettings.h>

Public Members

uint32_t neighborPropDelay
int8_t initLogPDelayReqInterval
int8_t initLogSyncInterval
int8_t operationLogPDelayReqInterval
int8_t operationLogSyncInterval
uint8_t gPTPportRole[RADJUPITER_NUM_PORTS]
struct radjupiter_settings_t
#include <radjupitersettings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
LIN_SETTINGS lin1
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
uint64_t termination_enables
uint16_t misc_io_analog_enable
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
int16_t iso15765_separation_time_offset
uint16_t iso9141_kwp_enable_reserved
uint16_t iso_tester_pullup_enable
uint16_t iso_parity
uint16_t iso_msg_termination
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
ETHERNET_SETTINGS ethernet
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t enablePcEthernetComm
uint32_t reserved
struct icsneo::radjupiter_settings_t flags
radjupiter_switch_settings_t switchSettings
ETHERNET_SETTINGS2 ethernet2
struct radjupiter_switch_settings_t
#include <radjupitersettings.h>

Public Members

uint8_t phyMode[RADJUPITER_NUM_PORTS]
uint8_t enablePhy[RADJUPITER_NUM_PORTS]
uint8_t port7Select
uint8_t port8Select
uint8_t port8Speed
uint8_t port8Legacy
uint8_t spoofMacFlag
uint8_t spoofedMac[6]
uint8_t pad
radjupiter_ptp_params_t ptpParams
class RADJupiterSettings : public icsneo::IDeviceSettings
#include <radjupitersettings.h>

Public Functions

inline RADJupiterSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class RADMars : public icsneo::Device
#include <radmars.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADMars, DeviceType::RADMars, "GL")
inline virtual size_t getEthernetActivationLineCount() const override

Retrieve the number of Ethernet (DoIP) Activation lines present on this device.

inline virtual bool supportsGPTP() const override
struct radmars_settings_t
#include <radmarssettings.h>

Public Members

uint32_t ecu_id
uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
CAN_SETTINGS can5
CANFD_SETTINGS canfd5
CAN_SETTINGS can6
CANFD_SETTINGS canfd6
CAN_SETTINGS can7
CANFD_SETTINGS canfd7
CAN_SETTINGS can8
CANFD_SETTINGS canfd8
uint16_t network_enables
uint16_t network_enables_2
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint16_t idle_wakeup_network_enables_1
uint16_t idle_wakeup_network_enables_2
uint16_t network_enables_3
uint16_t idle_wakeup_network_enables_3
STextAPISettings text_api
uint64_t termination_enables
uint8_t rsvd1[8]
uint8_t rsvd2[8]
DISK_SETTINGS disk
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t reserved
struct icsneo::radmars_settings_t flags
ETHERNET_SETTINGS2 ethernet
SERDESCAM_SETTINGS serdescam1
ETHERNET10G_SETTINGS ethernet10g
LIN_SETTINGS lin1
SERDESPOC_SETTINGS serdespoc
LOGGER_SETTINGS logger
SERDESCAM_SETTINGS serdescam2
SERDESCAM_SETTINGS serdescam3
SERDESCAM_SETTINGS serdescam4
ETHERNET_SETTINGS2 ethernet2
uint16_t network_enables_4
RAD_REPORTING_SETTINGS reporting
struct radmars_status_t
#include <radmarssettings.h>

Public Members

uint8_t unused[3]
uint8_t ethernetActivationLineEnabled
class RADMarsSettings : public icsneo::IDeviceSettings
#include <radmarssettings.h>

Public Functions

inline RADMarsSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class RADMoon2 : public icsneo::RADMoon2Base
#include <radmoon2.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADMoon2, DeviceType::RADMoon2, "RM")
inline virtual uint8_t getPhyAddrOrPort() const override
struct radmoon2_settings_t
#include <radmoon2settings.h>

Public Members

uint16_t perf_en
AE_GENERAL_SETTINGS aeGen
AE_SETTINGS ae_01
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enabled_on_boot
uint16_t network_enables_3
STextAPISettings text_api
uint16_t pc_com_mode
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
RAD_GPTP_SETTINGS gPTP
uint64_t network_enables_5
class RADMoon2Base : public icsneo::Device
#include <radmoon2base.h>

Subclassed by icsneo::RADMoon2, icsneo::RADMoon2ZL

Public Types

enum class SKU

Values:

enumerator Standard
enumerator APM1000E
enumerator APM1000E_CLK

Public Functions

inline SKU getSKU() const
inline virtual std::string getProductName() const override
inline virtual bool goOnline() override
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

virtual uint8_t getPhyAddrOrPort() const = 0

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class RADMoon2Settings : public icsneo::IDeviceSettings
#include <radmoon2settings.h>

Public Functions

inline RADMoon2Settings(std::shared_ptr<Communication> com)
class RADMoon2ZL : public icsneo::RADMoon2Base
#include <radmoon2zl.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADMoon2ZL, DeviceType::RADMoon2, "RN")
inline virtual uint8_t getPhyAddrOrPort() const override
inline virtual bool supportsComponentVersions() const override
inline virtual bool supportsTC10() const override
class RADMoon3 : public icsneo::Device
#include <radmoon3.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADMoon3, DeviceType::RADMoon3, "R3")
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool isOnlineSupported() const override
inline virtual bool supportsComponentVersions() const override
inline virtual bool supportsTC10() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radmoon3_settings_t
#include <radmoon3settings.h>

Public Members

uint16_t perf_en
ETHERNET10G_SETTINGS autoEth10g
ETHERNET10G_SETTINGS eth10g
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enabled_on_boot
uint16_t network_enables_3
uint16_t enableLatencyTest
uint16_t reserved
struct icsneo::radmoon3_settings_t flags
uint64_t network_enables_5
class RADMoon3Settings : public icsneo::IDeviceSettings
#include <radmoon3settings.h>

Public Functions

inline RADMoon3Settings(std::shared_ptr<Communication> com)
class RADMoonDuo : public icsneo::Device
#include <radmoonduo.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADMoonDuo, DeviceType::RADMoonDuo, "MD")
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radmoonduo_settings_t
#include <radmoonduosettings.h>

Public Members

uint16_t perf_en
uint16_t network_enabled_on_boot
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
RadMoonDuoConverterSettings converter
uint64_t network_enables
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t reserved
struct icsneo::radmoonduo_settings_t flags
struct RadMoonDuoConverterSettings
#include <radmoonduosettings.h>

Public Members

uint8_t linkMode0
uint8_t linkMode1
uint8_t converter1Mode
uint8_t reserved
uint32_t ipAddress
uint32_t ipMask
uint32_t ipGateway
class RADMoonDuoSettings : public icsneo::IDeviceSettings
#include <radmoonduosettings.h>

Public Functions

inline RADMoonDuoSettings(std::shared_ptr<Communication> com)
class RADMoonT1S : public icsneo::Device
#include <radmoont1s.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADMoonT1S, DeviceType::RADMoonT1S, "MS")
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsTC10() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radmoont1s_settings_t
#include <radmoont1ssettings.h>

Public Members

uint16_t perf_en
uint16_t hwComLatencyTestEn
uint16_t disableUsbCheckOnBoot
uint16_t reserved
struct icsneo::radmoont1s_settings_t flags
uint16_t network_enabled_on_boot
uint64_t network_enables
uint64_t network_enables_2
RAD_REPORTING_SETTINGS reporting
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
ETHERNET_SETTINGS2 ethernet
AE_GENERAL_SETTINGS aeGen
ETHERNET_SETTINGS2 ethT1s
ETHERNET10T1S_SETTINGS t1s
class RADMoonT1SSettings : public icsneo::IDeviceSettings
#include <radmoont1ssettings.h>

Public Functions

inline RADMoonT1SSettings(std::shared_ptr<Communication> com)
class RADPluto : public icsneo::Device
#include <radpluto.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADPluto, DeviceType::RADPluto, "PL")
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radpluto_settings_t
#include <radplutosettings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
LIN_SETTINGS lin1
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
uint64_t termination_enables
uint16_t misc_io_analog_enable
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
int16_t iso15765_separation_time_offset
uint16_t iso9141_kwp_enable_reserved
uint16_t iso_tester_pullup_enable
uint16_t iso_parity
uint16_t iso_msg_termination
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
ETHERNET_SETTINGS ethernet
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t enablePcEthernetComm
uint32_t reserved
struct icsneo::radpluto_settings_t flags
uint8_t mode[PLUTO_MAX_MAC_CONFIG_ENTRIES]
uint8_t speed[PLUTO_MAX_MAC_CONFIG_ENTRIES]
uint8_t enablePhy[PLUTO_MAX_MAC_CONFIG_ENTRIES]
uint8_t ae1Select
uint8_t usbSelect
uint8_t pad
struct icsneo::radpluto_settings_t custom
ETHERNET_SETTINGS2 ethernet2
class RADPlutoSettings : public icsneo::IDeviceSettings
#include <radplutosettings.h>

Public Functions

inline RADPlutoSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class RADStar2 : public icsneo::Device
#include <radstar2.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (RADStar2, DeviceType::RADStar2, "RS")

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radstar2_settings_t
#include <radstar2settings.h>

Public Members

uint16_t perf_en
AE_GENERAL_SETTINGS aeGen
AE_SETTINGS ae_01
AE_SETTINGS ae_02
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
uint16_t network_enables
uint16_t network_enables_2
LIN_SETTINGS lin1
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
uint16_t misc_io_report_period
uint16_t misc_io_on_report_events
uint16_t misc_io_analog_enable
uint16_t ain_sample_period
uint16_t ain_threshold
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint16_t idle_wakeup_network_enables_1
uint16_t idle_wakeup_network_enables_2
uint16_t network_enables_3
uint16_t idle_wakeup_network_enables_3
uint16_t can_switch_mode
STextAPISettings text_api
uint16_t pc_com_mode
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
RAD_REPORTING_SETTINGS reporting
class RADStar2Settings : public icsneo::IDeviceSettings
#include <radstar2settings.h>

Public Functions

inline RADStar2Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class RADSupermoon : public icsneo::Device
#include <radsupermoon.h>

Public Types

enum class SKU

Values:

enumerator Standard
enumerator APM1000ET

Public Functions

ICSNEO_FINDABLE_DEVICE (RADSupermoon, DeviceType::RADSupermoon, "SM")
inline SKU getSKU() const
inline virtual std::string getProductName() const override
inline virtual bool getEthPhyRegControlSupported() const override

Tell whether the current device supports reading and writing Ethernet PHY registers through MDIO.

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct radsupermoon_settings_t
#include <radsupermoonsettings.h>

Public Members

uint16_t perf_en
AE_GENERAL_SETTINGS aeGen
AE_SETTINGS ae_01
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enabled_on_boot
uint16_t network_enables_3
STextAPISettings text_api
uint16_t pc_com_mode
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings
uint16_t hwComLatencyTestEn
ETHERNET_SETTINGS2 eth2
class RADSupermoonSettings : public icsneo::IDeviceSettings
#include <radsupermoonsettings.h>

Public Functions

inline RADSupermoonSettings(std::shared_ptr<Communication> com)
class RawMessage : public icsneo::Message
#include <message.h>

Subclassed by icsneo::AppErrorMessage, icsneo::DiskDataMessage, icsneo::FlashMemoryMessage, icsneo::Frame, icsneo::LiveDataMessage, icsneo::Main51Message, icsneo::NeoReadMemorySDMessage, icsneo::ReadSettingsMessage

Public Functions

inline RawMessage(Message::Type type = Message::Type::RawMessage)
inline RawMessage(Message::Type type, Network net)
inline RawMessage(Network net)
inline RawMessage(Network net, std::vector<uint8_t> d)

Public Members

Network network
std::vector<uint8_t> data
class ReadSettingsMessage : public icsneo::RawMessage
#include <readsettingsmessage.h>

Public Types

enum class Response : uint8_t

Values:

enumerator OK
enumerator GeneralFailure
enumerator InvalidSubcommand
enumerator InvalidSubversion
enumerator NotEnoughMemory
enumerator APIFailure
enumerator APIUnsupported
enumerator OKDefaultsUsed

Public Functions

inline ReadSettingsMessage()

Public Members

Response response
class Registry
#include <registry.h>

Public Static Functions

static bool EnumerateSubkeys(std::wstring path, std::vector<std::wstring> &subkeys)
static bool Get(std::wstring path, std::wstring key, std::wstring &value)
static bool Get(std::string path, std::string key, std::string &value)
static bool Get(std::wstring path, std::wstring key, uint32_t &value)
static bool Get(std::string path, std::string key, uint32_t &value)
class ResetStatusMessage : public icsneo::Message
#include <resetstatusmessage.h>

Public Functions

inline ResetStatusMessage()

Public Members

uint16_t mainLoopTime
uint16_t maxMainLoopTime
bool justReset
bool comEnabled
bool cmRunning
bool cmChecksumFailed
bool cmLicenseFailed
bool cmVersionMismatch
bool cmBootOff
bool hardwareFailure
bool usbComEnabled
bool linuxComEnabled
bool cmTooBig
bool hidUsbState
bool fpgaUsbState
std::optional<uint16_t> busVoltage
std::optional<uint16_t> deviceTemperature
class RingBuffer
#include <ringbuffer.h>

Public Functions

RingBuffer(size_t bufferSize)
~RingBuffer()
const uint8_t &operator[](size_t offset) const
size_t size() const
void pop_front()
void pop(size_t count)
const uint8_t &get(size_t offset) const
bool write(const uint8_t *addr, size_t count)
bool write(const std::vector<uint8_t> &source)
bool read(uint8_t *dest, size_t startIndex, size_t length) const
void clear()
inline constexpr size_t capacity() const

Public Static Attributes

static constexpr auto MaxSize = 1ull << ((8 * sizeof(size_t)) - 1)
struct ScriptStatus
#include <scriptstatuspacket.h>

Public Members

CoreMiniStatus status
uint32_t sectorOverflows
uint32_t numRemainingSectorBuffers
int32_t lastSector
int32_t readBinSize
int32_t minSector
int32_t maxSector
int32_t currentSector
uint32_t coreminiCreateTimeMsb
uint32_t coreminiCreateTimeLsb
uint16_t zero2
uint16_t zero3
uint16_t fileChecksum
uint16_t coreminiVersion
uint16_t coreminiHeaderSize
uint16_t coreminiEngineMinVersion
uint16_t coreminiScriptMinEngineVers
uint8_t eolResults1
uint8_t eolResults2
uint8_t eolResults3
uint8_t zero6
uint8_t diagErrCode
uint8_t diagErrCodeCount
uint8_t spiFpgaVers1
uint8_t spiFpgaVers2
uint16_t maxCoreminiSizeKB
uint16_t maxCoreminiFlashSizeKB

Public Static Functions

static std::shared_ptr<ScriptStatusMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream)
class ScriptStatusMessage : public icsneo::Message
#include <scriptstatusmessage.h>

Public Functions

inline ScriptStatusMessage()

Public Members

bool isEncrypted = false
bool isCoreminiRunning = false
uint32_t sectorOverflows = 0
uint32_t numRemainingSectorBuffers = 0
int32_t lastSector = 0
int32_t readBinSize = 0
int32_t minSector = 0
int32_t maxSector = 0
int32_t currentSector = 0
uint64_t coreminiCreateTime = 0
uint16_t fileChecksum = 0
uint16_t coreminiVersion = 0
uint16_t coreminiHeaderSize = 0
uint8_t diagnosticErrorCode = 0
uint8_t diagnosticErrorCodeCount = 0
uint16_t maxCoreminiSizeKB = 0
class SerialNumberMessage : public icsneo::Main51Message
#include <serialnumbermessage.h>

Public Functions

inline SerialNumberMessage()
virtual ~SerialNumberMessage() = default

Public Members

std::string deviceSerial
uint8_t macAddress[6]
bool hasMacAddress = false
uint8_t pcbSerial[16]
bool hasPCBSerial = false
struct SNeoMostGatewaySettings
#include <neovifiresettings.h>

Public Members

uint16_t netId
uint8_t zero0
uint8_t Config
class StreamOutput : public icsneo::MessageCallback
#include <streamoutput.h>

Subclassed by icsneo::A2BWAVOutput

Public Functions

inline StreamOutput(std::ostream &os, fn_messageCallback cb, std::shared_ptr<MessageFilter> f)
inline StreamOutput(const char *filename, fn_messageCallback cb, std::shared_ptr<MessageFilter> f)
inline StreamOutput(const char *filename)
inline StreamOutput(std::ostream &os)
class SupportedFeaturesMessage : public icsneo::Message
#include <supportedfeaturesmessage.h>

Public Functions

inline SupportedFeaturesMessage()

Public Members

std::set<SupportedFeature> features
struct SupportedFeaturesPacket
#include <supportedfeaturespacket.h>

Public Static Functions

static std::shared_ptr<SupportedFeaturesMessage> DecodeToMessage(const std::vector<uint8_t> &bytes)
class TC10StatusMessage : public icsneo::Message
#include <tc10statusmessage.h>

Public Functions

inline TC10StatusMessage(const TC10WakeStatus &wakeStatus, const TC10SleepStatus &sleepStatus)

Public Members

const TC10WakeStatus wakeStatus
const TC10SleepStatus sleepStatus

Public Static Functions

static std::shared_ptr<TC10StatusMessage> DecodeToMessage(const std::vector<uint8_t> &bytestream)
class TCP : public icsneo::Driver
#include <tcp.h>

Public Functions

TCP(const device_eventhandler_t &err, NetworkInterface on, uint32_t dstIP, uint16_t dstPort)
inline ~TCP() override
virtual bool open() override
virtual bool isOpen() override
virtual bool close() override
inline virtual bool isEthernet() const override

Public Static Functions

static void Find(std::vector<FoundDevice> &foundDevices)
struct NetworkInterface
#include <tcp.h>

Public Members

const std::string name
const uint32_t ip
class ValueCAN3 : public icsneo::Device
#include <valuecan3.h>

Public Functions

ICSNEO_FINDABLE_DEVICE_BY_PID (ValueCAN3, DeviceType::VCAN3, 0x0601)
inline virtual bool supportsComponentVersions() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct valuecan3_settings_t
#include <valuecan3settings.h>

Public Members

CAN_SETTINGS can1
CAN_SETTINGS can2
uint16_t network_enables
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t perf_en
uint16_t misc_io_initial_ddr
uint16_t misc_io_initial_latch
uint16_t misc_io_report_period
uint16_t misc_io_on_report_events
class ValueCAN3Settings : public icsneo::IDeviceSettings
#include <valuecan3settings.h>

Public Functions

inline ValueCAN3Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
class ValueCAN4 : public icsneo::Device
#include <valuecan4.h>

Subclassed by icsneo::ValueCAN4Industrial, icsneo::ValueCAN4_1, icsneo::ValueCAN4_2, icsneo::ValueCAN4_2EL, icsneo::ValueCAN4_4

Public Functions

inline virtual bool supportsComponentVersions() const override
class ValueCAN4_1 : public icsneo::ValueCAN4
#include <valuecan4-1.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (ValueCAN4_1, DeviceType::VCAN4_1, "V1")

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct valuecan4_1_2_settings_t
#include <valuecan4settings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
uint64_t network_enables
uint64_t termination_enables
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t network_enabled_on_boot
int16_t iso15765_separation_time_offset
STextAPISettings text_api
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t reserved
struct icsneo::valuecan4_1_2_settings_t flags
class ValueCAN4_1_2Settings : public icsneo::IDeviceSettings
#include <valuecan4-1-2settings.h>

Subclassed by icsneo::ValueCAN4_1Settings, icsneo::ValueCAN4_2Settings

Public Functions

inline ValueCAN4_1_2Settings(std::shared_ptr<Communication> com)
class ValueCAN4_1Settings : public icsneo::ValueCAN4_1_2Settings
#include <valuecan4-1settings.h>

Public Functions

inline ValueCAN4_1Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
class ValueCAN4_2 : public icsneo::ValueCAN4
#include <valuecan4-2.h>

Public Types

enum class SKU

Values:

enumerator Standard
enumerator AP0200A

Public Functions

ICSNEO_FINDABLE_DEVICE (ValueCAN4_2, DeviceType::VCAN4_2, "V2")
inline SKU getSKU() const
inline virtual std::string getProductName() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class ValueCAN4_2EL : public icsneo::ValueCAN4
#include <valuecan4-2el.h>

Public Types

enum class SKU

Values:

enumerator Standard
enumerator AP04E0A_D26
enumerator AP04E0A_MUL
enumerator AP04E0A_OBD

Public Functions

ICSNEO_FINDABLE_DEVICE (ValueCAN4_2EL, DeviceType::VCAN4_2EL, "VE")
inline SKU getSKU() const
inline virtual std::string getProductName() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class ValueCAN4_2ELSettings : public icsneo::ValueCAN4_4_2ELSettings
#include <valuecan4-2elsettings.h>

Public Functions

inline ValueCAN4_2ELSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class ValueCAN4_2Settings : public icsneo::ValueCAN4_1_2Settings
#include <valuecan4-2settings.h>

Public Functions

inline ValueCAN4_2Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

class ValueCAN4_4 : public icsneo::ValueCAN4
#include <valuecan4-4.h>

Public Types

enum class SKU

Values:

enumerator Standard
enumerator AP0400A_D26
enumerator AP0400A_DB9
enumerator AP0400A_OBD

Public Functions

ICSNEO_FINDABLE_DEVICE (ValueCAN4_4, DeviceType::VCAN4_4, "V4")
inline SKU getSKU() const
inline virtual std::string getProductName() const override

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
struct valuecan4_4_2el_settings_t
#include <valuecan4settings.h>

Public Members

uint16_t perf_en
CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
CAN_SETTINGS can3
CANFD_SETTINGS canfd3
CAN_SETTINGS can4
CANFD_SETTINGS canfd4
uint16_t network_enables
uint16_t network_enables_2
LIN_SETTINGS lin1
uint16_t network_enabled_on_boot
int16_t iso15765_separation_time_offset
uint16_t iso_9141_kwp_enable_reserved
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1
uint16_t iso_parity_1
uint16_t iso_msg_termination_1
uint16_t network_enables_3
STextAPISettings text_api
uint64_t termination_enables
ETHERNET_SETTINGS ethernet
uint32_t enableLatencyTest
uint32_t enablePcEthernetComm
uint32_t reserved
struct icsneo::valuecan4_4_2el_settings_t flags
uint16_t pwr_man_enable
uint16_t pwr_man_timeout
ETHERNET_SETTINGS2 ethernet2
struct valuecan4_4_2el_status_t
#include <valuecan4settings.h>

Public Members

uint8_t ethernetActivationLineEnabled
uint8_t unused
class ValueCAN4_4_2ELSettings : public icsneo::IDeviceSettings
#include <valuecan4-4-2elsettings.h>

Subclassed by icsneo::ValueCAN4_2ELSettings, icsneo::ValueCAN4_4Settings

Public Functions

inline ValueCAN4_4_2ELSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
class ValueCAN4_4Settings : public icsneo::ValueCAN4_4_2ELSettings
#include <valuecan4-4settings.h>

Public Functions

inline ValueCAN4_4Settings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual const LIN_SETTINGS *getLINSettingsFor(Network net) const override
struct valuecan4_industrial_settings_t
#include <valuecan4settings.h>

Public Members

CAN_SETTINGS can1
CANFD_SETTINGS canfd1
CAN_SETTINGS can2
CANFD_SETTINGS canfd2
ETHERNET_SETTINGS ethernet
LIN_SETTINGS lin1
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings
uint16_t iso_parity
uint16_t iso_msg_termination
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t perf_en
int16_t iso15765_separation_time_offset
uint16_t network_enabled_on_boot
uint64_t word
uint16_t network_enables
uint16_t network_enables_2
uint16_t network_enables_3
union icsneo::valuecan4_industrial_settings_t network_enables
uint64_t termination_enables
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t busMessagesToAndroid
uint32_t enablePcEthernetComm
uint32_t reserved
struct icsneo::valuecan4_industrial_settings_t flags
ETHERNET_SETTINGS2 ethernet2
class ValueCAN4Industrial : public icsneo::ValueCAN4
#include <valuecan4industrial.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (ValueCAN4Industrial, DeviceType::VCAN4_IND, "IV")

Public Static Functions

static inline const std::vector<Network> &GetSupportedNetworks()
class ValueCAN4IndustrialSettings : public icsneo::IDeviceSettings
#include <valuecan4industrialsettings.h>

Public Functions

inline ValueCAN4IndustrialSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CANFD_SETTINGS *getCANFDSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

class VCP : public icsneo::Driver
#include <vcp.h>

Subclassed by icsneo::CDCACM, icsneo::FTDI

Public Types

typedef void (*fn_boolCallback)(bool success)

Public Functions

VCP(const device_eventhandler_t &err, neodevice_t &forDevice)
virtual ~VCP()
inline virtual bool open()
void openAsync(fn_boolCallback callback)
virtual bool close()
virtual bool isOpen()

Public Static Functions

static void Find(std::vector<FoundDevice> &found, std::vector<std::wstring> driverName)
static bool IsHandleValid(neodevice_handle_t handle)
class VersionMessage : public icsneo::Message
#include <versionmessage.h>

Public Types

enum Chip

Values:

enumerator MainChip
enumerator SecondaryChips

Public Functions

inline VersionMessage(Chip chip)

Public Members

std::vector<std::optional<DeviceAppVersion>> Versions
const Chip ForChip
class VividCAN : public icsneo::Device
#include <vividcan.h>

Public Functions

ICSNEO_FINDABLE_DEVICE (VividCAN, DeviceType::VividCAN, "VV")
inline virtual bool goOnline() override
inline virtual bool goOffline() override
inline virtual bool isOnlineSupported() const override
inline virtual bool supportsComponentVersions() const override
struct vividcan_settings_t
#include <vividcansettings.h>

Public Members

uint32_t ecu_id
CAN_SETTINGS can1
SWCAN_SETTINGS swcan1
CAN_SETTINGS lsftcan1
uint16_t network_enables
uint16_t network_enabled_on_boot
uint16_t iso15765_separation_time_offset
uint16_t perf_en
uint32_t pwr_man_timeout
uint16_t pwr_man_enable
uint16_t can_switch_mode
uint16_t termination_enables
uint32_t disableUsbCheckOnBoot
uint32_t enableLatencyTest
uint32_t reserved
struct icsneo::vividcan_settings_t flags
class VividCANSettings : public icsneo::IDeviceSettings
#include <vividcansettings.h>

Public Functions

inline VividCANSettings(std::shared_ptr<Communication> com)
inline virtual const CAN_SETTINGS *getCANSettingsFor(Network net) const override
inline virtual const CAN_SETTINGS *getLSFTCANSettingsFor(Network net) const override
inline virtual const SWCAN_SETTINGS *getSWCANSettingsFor(Network net) const override
inline virtual std::vector<TerminationGroup> getTerminationGroups() const override

Some devices have groupings of networks, where software switchable termination can only be applied to one network in the group at a time. This function returns those groups for the given device.

If a device does not support CAN Termination, an empty vector is returned.

inline virtual bool refresh(bool ignoreChecksum = false) override
inline virtual bool apply(bool permanent = true) override
class VSA
#include <vsa.h>

Abstract VSA base class to store VSA record data read from VSA log file on disk

Subclassed by icsneo::VSA02, icsneo::VSA03, icsneo::VSA04, icsneo::VSA05, icsneo::VSA06, icsneo::VSA07, icsneo::VSA08, icsneo::VSA09, icsneo::VSA0C, icsneo::VSA6A, icsneo::VSAMessage

Public Types

enum class Type : uint16_t

Enum to determine what type of record is underlying VSA parent class

Values:

enumerator AA00
enumerator AA01
enumerator AA02
enumerator AA03
enumerator AA04
enumerator AA05
enumerator AA06
enumerator AA07
enumerator AA08
enumerator AA09
enumerator AA0A
enumerator AA0B
enumerator AA0C
enumerator AA0D
enumerator AA0E
enumerator AA0F
enumerator AA6A
enumerator Invalid

Public Functions

virtual ~VSA() = default
inline Type getType() const

Get the record type

Returns:

Type of record

virtual uint64_t getTimestamp() = 0

Get the timestamp stored in this record

Returns:

The record’s timestamp in 25 nanosecond ticks since January 1, 2007

inline bool isTimestampValid()

Determine whether this record has a valid timestamp. All invalid timestamps are set to the maximum value for a uint64_t.

Returns:

True if the timestamp is set to a valid number

inline bool getChecksumFailed()

Determine if the checksum for this record failed

Returns:

True if the checksum does not pass

inline Timestamp getTimestampICSClock()

Get the timestamp of this record in C++ native std::chrono::time_point

Returns:

Timestamp of record as an std::chrono::time_point

Public Static Functions

static inline uint64_t getICSTimestampFromTimepoint(const Timestamp &point) noexcept

Convert the given time_point object to a timestamp in 25 nanosecond ticks since January 1, 2007

Returns:

Timestamp of the given time_point in 25 nanosecond ticks since January 1, 2007

Public Static Attributes

static constexpr size_t StandardRecordSize = 32
static constexpr uint64_t RecordStartOffset = 0x06000000u
class VSA02 : public icsneo::VSA
#include <vsa02.h>

Class that contains data for Logdata records

Public Functions

VSA02(uint8_t *const bytes)

Constructor that parses the given bytestream

Parameters:

bytes – Bystream that contains data for Logdata VSA records

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA03 : public icsneo::VSA
#include <vsa03.h>

Class used to store event

Public Functions

VSA03(uint8_t *const bytes)

Constructor that extracts data from the given bytestream

Parameters:

bytes – Bytestream to extract VSA record data from

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA04 : public icsneo::VSA
#include <vsa04.h>

Class that contains a partition info record

Public Functions

VSA04(uint8_t *const bytes)

Constructor that created partition info record from bytestream

Parameters:

bytes – Bytestream to create this record from

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record in 25 nanosecond ticks since January 1, 2007

Returns:

Timestamp of this record in 25 nanosecond ticks since January 1, 2007

class VSA05 : public icsneo::VSA
#include <vsa05.h>

Class that holds data for application error records

Public Functions

VSA05(uint8_t *const bytes)

Constructor to convert bytestream into application error record

Parameters:

bytes – The bytestream containing the record data

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA06 : public icsneo::VSA
#include <vsa06.h>

Class that holds data for an internal/debug VSA record

Public Functions

VSA06(uint8_t *const bytes)

Constructor to convert bytestream into internal/debug record

Parameters:

bytes – Bytestream to parse into internal/debug record

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA07 : public icsneo::VSA
#include <vsa07.h>

Class that holds data for an internal/debug VSA record

Public Functions

VSA07(uint8_t *const bytes)

Constructor to convert bytestream into internal/debug record

Parameters:

bytes – Bytestream to parse into internal/debug record

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA08 : public icsneo::VSA
#include <vsa08.h>

Class to store data for a buffer information record

Public Functions

VSA08(uint8_t *const bytes)

Constructor to convert a bytestream to a buffer info record

Parameters:

bytes – Bytestream to convert into a buffer record

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA09 : public icsneo::VSA
#include <vsa09.h>

Class used to store data for a Device Information VSA Record

Public Functions

VSA09(uint8_t *const bytes)

Constructor to convert bytestream to Device Information VSA Record

Parameters:

bytes – Bytestream to convert into Device Information Record

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA0B : public icsneo::VSAMessage
#include <vsa0b.h>

Class that holds single-record message records

Public Functions

VSA0B(uint8_t *const bytes)

Constructor that reads message record data from bytestream

Parameters:

bytes – Bytestream to read message record data from

virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record

Parameters:

filter – The filter to check this record against

Returns:

True if this record has passed the filter (i.e., is not being filtered out)

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record in 25 nanosecond ticks since January 1, 2007

Returns:

Timestamp of this record in 25 nanosecond ticks since January 1, 2007

class VSA0C : public icsneo::VSA
#include <vsa0c.h>

Class used to hold data for a PCM Audio VSA Record

Public Functions

VSA0C(uint8_t *const bytes)

Constructor to convert bytestream to PCM Audio Record

Parameters:

bytes – Bytestream to parse

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSA0D : public icsneo::VSAExtendedMessage
#include <vsa0d.h>

Base class for VSA0D extended message record types

Subclassed by icsneo::VSA0DConsecutive, icsneo::VSA0DFirst

Public Functions

VSA0D(uint8_t *const bytes, uint8_t *const messageBytes, size_t numBytes, uint32_t &runningChecksum, Network::CoreMini networkId = static_cast<Network::CoreMini>(0xFFFFu))

Constructor for VSA0D parent class. Passes most information to VSAExtendedMessage constructor.

Parameters:
  • bytes – Bytestream to read record data from

  • messageBytes – Bytestream starting at the payload of this message record

  • numBytes – The length of the payload of this message record

  • runningChecksum – Checksum for the payload bytes of this sequence of extended message records

  • networkId – The CoreMini Network ID for this record

class VSA0DConsecutive : public icsneo::VSA0D
#include <vsa0d.h>

Class holding data for subsequent records in series of VSA0D extended message records

Public Functions

VSA0DConsecutive(uint8_t *const bytes, uint32_t &runningChecksum, std::shared_ptr<VSA0DFirst> first, bool isLastRecord = false)

Constructor that parses first 32 bytes of VSA0D record

Parameters:
  • bytes – Bytestream to read VSA record data from

  • first – The first record in this series of VSA0D records

  • isLastRecord – Determines if this record is the last record in this series of extended message records

inline virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record. Utilizes the filter from the first record.

Parameters:

filter – The filter to check this record against

Returns:

True if this record passes the filter

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record in 25 nanosecond ticks since January 1, 2007.

Returns:

Timestamp in 25 nanosecond ticks since January 1, 2007.

class VSA0DFirst : public icsneo::VSA0D
#include <vsa0d.h>

Class holding data for the first record in a series of VSA0D extended message records

Public Functions

VSA0DFirst(uint8_t *const bytes, uint32_t &runningChecksum)

Constructor that parses first 32 bytes of bytestream into readable data.

Parameters:

bytes – Bytestream to parse VSA record from

virtual void reservePacketData(std::shared_ptr<Packet> &packet) const override

Reserve memory in the packet data vector to store message data from this record and subsequent consecutive records.

Parameters:

packet – The packet to reserve memory in

virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record

Parameters:

filter – The filter to check this record against

Returns:

True if the record passes the filter

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record. Timestamp indicates number of 25 nanosecond ticks since January 1, 2007.

Returns:

The timestamp of this record

void reorderPayload(std::vector<uint8_t> &secondPayload)

Reorder bytes in the payload between this record and the second record in the sequence. The bytes are reordered to allow simple concatenation of payload bytes from records before creating and dispatching a packet.

Parameters:

secondPayload – Reference to the payload from the second record in the sequence

class VSA0E : public icsneo::VSAExtendedMessage
#include <vsa0e.h>

Base class for VSA0E extended message record types

Subclassed by icsneo::VSA0EConsecutive, icsneo::VSA0EFirst

Public Functions

VSA0E(uint8_t *const bytes, uint8_t *const messageBytes, size_t numBytes, uint32_t &runningChecksum, Network::CoreMini networkId = static_cast<Network::CoreMini>(0xFFFFu))

Constructor for VSA0E parent class. Passes most information to VSAExtendedMessage constructor.

Parameters:
  • bytes – Bytestream to read record data from

  • messageBytes – Bytestream starting at the payload of this message record

  • numBytes – The length of the payload of this message record

  • runningChecksum – Checksum for the payload bytes of this sequence of extended message records

  • networkId – The CoreMini Network ID for this record

class VSA0EConsecutive : public icsneo::VSA0E
#include <vsa0e.h>

Class holding data for subsequent records in series of VSA0E extended message records

Public Functions

VSA0EConsecutive(uint8_t *const bytes, uint32_t &runningChecksum, std::shared_ptr<VSA0EFirst> first, bool isLastRecord = false)

Constructor that parses first 32 bytes of VSA0E record

Parameters:
  • bytes – Bytestream to read VSA record data from

  • first – The first record in this series of VSA0E records

  • isLastRecord – Determines if this record is the last record in this series of extended message records

inline virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record. Utilizes the filter from the first record.

Parameters:

filter – The filter to check this record against

Returns:

True if this record passes the filter

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record in 25 nanosecond ticks since January 1, 2007.

Returns:

Timestamp in 25 nanosecond ticks since January 1, 2007.

class VSA0EFirst : public icsneo::VSA0E
#include <vsa0e.h>

Class holding data for the first record in a series of VSA0E extended message records

Public Functions

VSA0EFirst(uint8_t *const bytes, uint32_t &runningChecksum)

Constructor that parses first 32 bytes of bytestream into readable data.

Parameters:

bytes – Bytestream to parse VSA record from

virtual void reservePacketData(std::shared_ptr<Packet> &packet) const override

Reserve memory in the packet data vector to store message data from this record and subsequent consecutive records.

Parameters:

packet – The packet to reserve memory in

virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record

Parameters:

filter – The filter to check this record against

Returns:

True if the record passes the filter

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record. Timestamp indicates number of 25 nanosecond ticks since January 1, 2007.

Returns:

The timestamp of this record

void reorderPayload(std::vector<uint8_t> &secondPayload)

Reorder bytes in the payload between this record and the second record in the sequence. The bytes are reordered to allow simple concatenation of payload bytes from records before creating and dispatching a packet.

Parameters:

secondPayload – Reference to the payload from the second record in the sequence

class VSA0F : public icsneo::VSAExtendedMessage
#include <vsa0f.h>

Base class for VSA0F extended message record types

Subclassed by icsneo::VSA0FConsecutive, icsneo::VSA0FFirst

Public Functions

VSA0F(uint8_t *const bytes, uint8_t *const messageBytes, size_t numBytes, uint32_t &runningChecksum, Network::CoreMini networkId = static_cast<Network::CoreMini>(0xFFFFu))

Standard constructor for VSA0F parent class. Passes most information to VSAExtendedMessage constructor.

Parameters:
  • bytes – Bytestream to read record data from

  • messageBytes – Bytestream starting at the payload of this message record

  • numBytes – The length of the payload of this message record

  • runningChecksum – Checksum for the payload bytes of this sequence of extended message records

  • networkId – The CoreMini Network ID for this record

class VSA0FConsecutive : public icsneo::VSA0F
#include <vsa0f.h>

Class holding data for subsequent records in series of VSA0D extended message records

Public Functions

VSA0FConsecutive(uint8_t *const bytes, uint32_t &runningChecksum, std::shared_ptr<VSA0FFirst> first, bool isLastRecord = false)

Constructor that parses first 32 bytes of VSA0F record

Parameters:
  • bytes – Bytestream to read VSA record data from

  • first – The first record in this series of VSA0F records

  • isLastRecord – Determines if this record is the last record in this series of extended message records

inline virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record. Utilizes the filter from the first record.

Parameters:

filter – The filter to check this record against

Returns:

True if this record passes the filter

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record in 25 nanosecond ticks since January 1, 2007.

Returns:

Timestamp in 25 nanosecond ticks since January 1, 2007.

class VSA0FFirst : public icsneo::VSA0F
#include <vsa0f.h>

Class holding data for the first record in a series of VSA0F extended message records

Public Functions

VSA0FFirst(uint8_t *const bytes, uint32_t &runningChecksum)

Constructor that parses first 32 bytes of bytestream into readable data.

Parameters:

bytes – Bytestream to parse VSA record from

virtual void reservePacketData(std::shared_ptr<Packet> &packet) const override

Reserve memory in the packet data vector to store message data from this record and subsequent consecutive records.

Parameters:

packet – The packet to reserve memory in

virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override

Determine whether to filter out this message record

Parameters:

filter – The filter to check this record against

Returns:

True if the record passes the filter

inline virtual uint64_t getTimestamp() override

Get the timestamp of this record. Timestamp indicates number of 25 nanosecond ticks since January 1, 2007.

Returns:

The timestamp of this record

class VSA6A : public icsneo::VSA
#include <vsa6a.h>

Class that contains data for a Logger Configuration Backup Record

Public Functions

VSA6A(uint8_t *const bytes)

Constructor to convert a bytestream to a Logger Configuration Backup Record

Parameters:

bytes – Bytestream to convert to Logger Configuration Backup Record

inline virtual uint64_t getTimestamp() override

Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007

Returns:

The timestamp for this record in 25 nanosecond ticks since January 1, 2007

class VSAExtendedMessage : public icsneo::VSAMessage
#include <vsa.h>

Interface class for handling common functionality of VSA Extended Message records (AA0D, AA0E, AA0F)

Subclassed by icsneo::VSA0D, icsneo::VSA0E, icsneo::VSA0F

Public Functions

void appendPacket(std::shared_ptr<Packet> packet) const

Appends the payload for this message to the given packet. Also sets the network of the packet if unset (used primarily for AA0F records which do not contain the network in the first extended message record).

Parameters:

packet – The packet to append this record’s payload to

inline uint32_t getRecordCount() const

Get the total number of records for this extended message

Returns:

Total number of records that this message spans

inline uint16_t getIndex()

Get the index of this record in the extended message sequence

Returns:

The index of this record

inline uint16_t getSequenceNum()

Get the numerical id of the sequence of extended message records this record is a part of

Returns:

The sequence number of this extended message record

Public Static Functions

static void truncatePacket(std::shared_ptr<Packet> packet)
struct VSAExtractionSettings
#include <vsa.h>

Public Members

bool parseOldRecords = false
bool stopCoreMini = true
std::vector<VSAMessageReadFilter> filters
class VSAMessage : public icsneo::VSA
#include <vsa.h>

Interface class for handling common functionality of VSAMessage record types (AA0B, AA0D, AA0E, AA0F)

Subclassed by icsneo::VSA0B, icsneo::VSAExtendedMessage

Public Functions

std::shared_ptr<Packet> getPacket() const

Construct a packet from the message payload and network

Returns:

Packet constructed from payload and network

inline virtual void reservePacketData(std::shared_ptr<Packet> &packet) const

Reserve enough memory to store a CoreMini message in the given packet

Parameters:

packet – The packet in which we are reserving memory for a message

virtual bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) = 0

Determine whether to filter out this VSAMessage record during parsing

Parameters:

filter – The filter struct to check this message record against

Returns:

True if this message passes the given filter

Public Static Attributes

static constexpr size_t CoreMiniPayloadSize = 24
struct VSAMessageReadFilter
#include <vsa.h>

Struct used to exclude VSA message records from parse

Public Members

CaptureBitfield captureBitfield = UINT16_MAX
std::pair<Timestamp, Timestamp> readRange = std::make_pair(Timestamp(ICSClock::duration(0x0ull)), Timestamp(ICSClock::duration(UINT64_MAX)))

Public Static Attributes

static constexpr Timestamp MinTimestamp = Timestamp(ICSClock::duration(0x0ull))
static constexpr Timestamp MaxTimestamp = Timestamp(ICSClock::duration(UINT64_MAX))
struct VSAMetadata
#include <vsa.h>

Holds metadata for the VSA log file

Public Members

uint64_t firstRecordLocation = UINT64_MAX
std::shared_ptr<VSA> firstRecord = nullptr
uint64_t lastRecordLocation = UINT64_MAX
std::shared_ptr<VSA> lastRecord = nullptr
uint64_t bufferEnd = UINT64_MAX
uint64_t diskSize = 0
bool isOverlapped = false
uint64_t coreMiniTimestamp = UINT64_MAX
class VSAParser
#include <vsaparser.h>

Class used to parse VSA records from bytestreams

Public Types

enum class RecordParseStatus : uint8_t

Enumerated values to determine status of attempt to parse out-of-context record from bytestream

Values:

enumerator NotARecordStart
enumerator Pad
enumerator Deprecated
enumerator ConsecutiveExtended
enumerator FilteredOut
enumerator UnknownRecordType
enumerator InsufficientData
enumerator Success

Public Functions

inline VSAParser(const device_eventhandler_t &report)

Constructor with default settings

Parameters:

report – Handler to report APIEvents

inline VSAParser(const device_eventhandler_t &report, const Settings &settings)

Constructor with non-default settings

Parameters:
  • report – Handler to report APIEvents

  • settings – The settings to use for this parser

bool parseBytes(uint8_t *const bytes, uint64_t arrLen)

Parse the given bytestream into VSA records and store them in vsaRecords. Non-terminated extended message record sequences are stored in a temporary buffer until they terminate.

Parameters:
  • bytes – Bytestream to parse VSA records from

  • arrLen – The number of bytes in the bytestream

Returns:

True if there was no failure or unhandled behavior during parse, else false

inline std::shared_ptr<VSA> &back()

Get the last fully-parsed record in the parser

inline size_t size()

Get the number of records contained within the parser

Returns:

Size of the vector of VSA records

inline bool empty()

Determine if number of records contained within the parser is 0

Returns:

True if the parser record container is empty

inline void clearRecords()

Clear all fully-parsed records from the parser. Does not affect non-terminated extended message records stored in buffers.

RecordParseStatus getRecordFromBytes(uint8_t *const bytes, size_t arrLen, std::shared_ptr<VSA> &record)

Parse first record from the given bytestream.

Parameters:
  • bytes – The bytestream to read from

  • arrLen – Length of the bytestream

  • record – Variable to pass out the record if able to parse

Returns:

The status of the record parse

inline void setMessageFilter(const VSAMessageReadFilter &filter)

Set a message filter for the Settings for this VSAParser

Parameters:

filter – The message filter to set for this VSAParser

inline void clearMessageFilter()

Remove the message filter for the Settings from this parser

void clearParseState()

Clear all extended message buffers and parse states

bool extractMessagePackets(std::vector<std::shared_ptr<Packet>> &packets)

Extract all packets from fully-parsed VSA records and store them in the given buffer

Parameters:

packets – The vector in which to store the packets from fully-parsed records

Returns:

True if packets were successfully extracted

struct Settings
#include <vsaparser.h>

Struct that determines which types of VSA records to extract from disk

Public Functions

inline bool operator==(const Settings &s)

Operator overload for equivalency of VSAParser::Settings struct

Parameters:

s – The settings object to test against this settings object

Returns:

True if the extraction settings are the same. Does not check the filter

inline bool operator!=(const Settings &s)

Operator overload for non-equivalency of VSAParser::Settings struct

Parameters:

s – The settings object to test against this settings object

Returns:

True if the extraction settings are not the same. Does not check the filter

Public Members

bool extractAA02 = true
bool extractAA03 = true
bool extractAA04 = true
bool extractAA05 = true
bool extractAA06 = true
bool extractAA07 = true
bool extractAA08 = true
bool extractAA09 = true
bool extractAA0B = true
bool extractAA0C = true
bool extractAA0D = true
bool extractAA0E = true
bool extractAA0F = true
bool extractAA6A = true
std::shared_ptr<VSAMessageReadFilter> messageFilter = nullptr

Public Static Functions

static inline Settings messageRecords()

Static constructor for VSAParser::Settings that only extracts message records (AA0B, AA0D, AA0E, AA0F)

struct WAVHeader
#include <streamoutput.h>

Public Functions

WAVHeader() = default
inline WAVHeader(uint16_t nChannels, uint32_t sRate, uint16_t bps, uint32_t nSamples = 0)
inline void setHeader(uint16_t newNumChannels, uint32_t newSampleRate, uint16_t newBitsPerSample, uint32_t numSamples = 0)
inline void setNumSamples(uint32_t numSamples)

Public Members

uint32_t chunkId = WAV_CHUNK_ID
uint32_t chunkSize = WAV_DEFAULT_SIZE
uint32_t format = WAV_FORMAT
uint32_t subchunk1Id = WAV_SUBCHUNK1_ID
uint32_t subchunk1Size = WAV_SUBCHUNK1_SIZE
uint16_t audioFormat = WAV_AUDIO_FORMAT_PCM
uint16_t numChannels
uint32_t sampleRate
uint32_t byteRate
uint16_t blockAlign
uint16_t bitsPerSample
uint32_t subchunk2Id = WAV_SUBCHUNK2_ID
uint32_t subchunk2Size = WAV_DEFAULT_SIZE

Public Static Attributes

static constexpr uint32_t WAV_CHUNK_ID = 0x46464952
static constexpr uint32_t WAV_FORMAT = 0x45564157
static constexpr uint32_t WAV_SUBCHUNK1_ID = 0x20746d66
static constexpr uint32_t WAV_SUBCHUNK2_ID = 0x61746164
static constexpr uint16_t WAV_SUBCHUNK1_SIZE = 16
static constexpr uint16_t WAV_AUDIO_FORMAT_PCM = 1
static constexpr uint32_t WAV_DEFAULT_SIZE = 0