Device: Add device hardware info retrieval support

This commit is contained in:
Yasser Yassine
2024-05-14 19:52:00 +00:00
parent 3782e12ef6
commit 9a1cd1124d
10 changed files with 170 additions and 2 deletions
@@ -9,6 +9,20 @@ class ComponentVersion {
public:
ComponentVersion(uint8_t valid, uint8_t componentInfo, uint32_t identifier, uint32_t dotVersion, uint32_t commitHash) :
valid(valid), componentInfo(componentInfo), identifier(identifier), dotVersion(dotVersion), commitHash(commitHash) {}
static ComponentVersion FromAppVersion(uint32_t identifier, uint8_t appMajor, uint8_t appMinor) {
uint32_t dotVersion = (appMajor << 24) | (appMinor << 16);
return ComponentVersion(
static_cast<uint8_t>(1u),
static_cast<uint8_t>(0u),
identifier,
dotVersion,
static_cast<uint8_t>(0u)
);
}
const bool valid;
const uint8_t componentInfo;
const uint32_t identifier;
@@ -0,0 +1,32 @@
#ifndef _HARDWARE_INFO_MESSAGE_H_
#define _HARDWARE_INFO_MESSAGE_H_
#ifdef __cplusplus
#include "icsneo/communication/message/message.h"
namespace icsneo {
class HardwareInfo : public Message {
public:
HardwareInfo() : Message(Message::Type::HardwareInfo) {}
struct Version {
uint8_t major;
uint8_t minor;
};
struct Date {
uint8_t day;
uint8_t month;
uint16_t year;
};
Date manufactureDate;
Version hardwareRevision;
Version bootloaderVersion;
};
}
#endif // __cplusplus
#endif
@@ -38,6 +38,7 @@ public:
SupportedFeatures = 0x800d,
GenericBinaryStatus = 0x800e,
LiveData = 0x800f,
HardwareInfo = 0x8010
};
Message(Type t) : type(t) {}