mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Implement ability to extract network traffic (CAN, LIN, Ethernet, etc.) from VSA message records on disk. Add a method to Device class that uses the VSAParser and the individual record types to extract messages from the VSA message records and pass them back to the communication system. This routes messages such that it appears as if they were discovered live instead of read from disk. The parse process (in Device) requires determination of metadata about the VSA file system on a device before it can begin extracting messages. This currently only handles data captured from the current coremini script on a device.
63 lines
1.9 KiB
C++
63 lines
1.9 KiB
C++
#ifndef __VSA09_H__
|
|
#define __VSA09_H__
|
|
|
|
#ifdef __cplusplus
|
|
|
|
#include "icsneo/disk/vsa/vsa.h"
|
|
|
|
namespace icsneo {
|
|
|
|
/**
|
|
* Class used to store data for a Device Information VSA Record
|
|
*/
|
|
class VSA09 : public VSA {
|
|
public:
|
|
/**
|
|
* Constructor to convert bytestream to Device Information VSA Record
|
|
*
|
|
* @param bytes Bytestream to convert into Device Information Record
|
|
*/
|
|
VSA09(uint8_t* const bytes);
|
|
|
|
/**
|
|
* Get the timestamp for this record in 25 nanosecond ticks since January 1, 2007
|
|
*
|
|
* @return The timestamp for this record in 25 nanosecond ticks since January 1, 2007
|
|
*/
|
|
uint64_t getTimestamp() override { return timestamp; }
|
|
|
|
private:
|
|
/**
|
|
* Perform the checksum on this record
|
|
*
|
|
* @param bytes Bytestream to test against the checksum
|
|
*/
|
|
void doChecksum(uint8_t* bytes) override;
|
|
|
|
uint32_t serialNumber; // Decimal representation of Base-36 serial number
|
|
uint8_t firmwareMajorVersion; // Major version of firmware (A for A.B version)
|
|
uint8_t firmwareMinorVersion; // Minor version of firmware (B for A.B version)
|
|
uint8_t manufactureMajorRevision; // Major version of manufacture revision (A for A.B revision)
|
|
uint8_t manufactureMinorRevision; // Minor version of manufacture revision (B for A.B revision)
|
|
uint8_t bootloaderMajorVersion; // Major version of bootloader (A for A.B version)
|
|
uint8_t bootloaderMinorVersion; // Minor version of bootloader (B for A.B version)
|
|
std::vector<uint8_t> reserved0; // Unused bytes (6 bytes)
|
|
enum class HardwareID : uint8_t {
|
|
NeoVIRED = 0,
|
|
NeoVIFIRE = 1,
|
|
NeoVIION = 11,
|
|
RADGalaxy = 19,
|
|
RADMars = 29,
|
|
ValueLOG = 31,
|
|
NeoVIRED2FIRE3 = 33,
|
|
RADGigastar = 36
|
|
} hardwareID; // Identifier for specific hardware device type
|
|
std::vector<uint8_t> reserved1; // Unused bytes (3 bytes)
|
|
uint64_t timestamp; // Timestamp for this record in 25 nanosecond ticks since January 1, 2007
|
|
uint16_t checksum; // Sum of the previous 15 words
|
|
};
|
|
|
|
} // namespace icsneo
|
|
|
|
#endif // __cplusplus
|
|
#endif // __VSA09_H__
|