Files
libicsneo/include/icsneo/disk/vsa/vsa0b.h
T
Max Brombach 02f1b4592e Device/Disk: Add VSA read and parse functionality
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.
2023-11-15 16:02:47 +00:00

57 lines
1.4 KiB
C++

#ifndef __VSA0B_H__
#define __VSA0B_H__
#ifdef __cplusplus
#include <vector>
#include "icsneo/disk/vsa/vsa.h"
namespace icsneo {
/**
* Class that holds single-record message records
*/
class VSA0B : public VSAMessage {
public:
/**
* Constructor that reads message record data from bytestream
*
* @param bytes Bytestream to read message record data from
*/
VSA0B(uint8_t* const bytes);
/**
* Determine whether to filter out this message record
*
* @param filter The filter to check this record against
*
* @return True if this record has passed the filter (i.e., is not being filtered out)
*/
bool filter(const std::shared_ptr<VSAMessageReadFilter> filter) override;
/**
* Get the timestamp of this record in 25 nanosecond ticks since January 1, 2007
*
* @return Timestamp of this record in 25 nanosecond ticks since January 1, 2007
*/
uint64_t getTimestamp() override { return timestamp; }
private:
/**
* Perform a checksum on this record
*
* @param bytes Bytestream to test against the checksum
*/
void doChecksum(uint8_t* bytes) override;
uint16_t captureBitfield; // The capture that this record is a part of
uint8_t reserved; // Unused bytes
uint16_t checksum; // Sum of the previous 15 half words
uint64_t timestamp; // Timestamp of this record in 25 nanosecond ticks since January 1, 2007 (extracted from CoreMini message payload)
};
} // namespace icsneo
#endif // __cplusplus
#endif // __VSA0B_H__