Device: Update tree structs and add size checks to non-deprecated devices

pull/76/merge
Max Brombach 2025-11-04 19:29:37 +00:00 committed by Kyle Schwarz
parent 39b54d8c4e
commit 51e4fdc6d9
22 changed files with 88 additions and 5 deletions

View File

@ -409,6 +409,14 @@ typedef struct ETHERNET10T1S_SETTINGS_EXT_t
} ETHERNET10T1S_SETTINGS_EXT; } ETHERNET10T1S_SETTINGS_EXT;
#define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 #define ETHERNET10T1S_SETTINGS_EXT_SIZE 16
typedef struct ETHERNET10T1L_SETTINGS_t
{
uint8_t tx_mode;
uint8_t rsvd[7];
} ETHERNET10T1L_SETTINGS;
#define ETHERNET10T1L_SETTINGS_SIZE 8
#define ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX 0x01 #define ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX 0x01
#define ETHERNET_SETTINGS10G_FLAG_AUTO_NEG 0x02 #define ETHERNET_SETTINGS10G_FLAG_AUTO_NEG 0x02
#define ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE 0x04 #define ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE 0x04

View File

@ -56,11 +56,15 @@ typedef struct {
uint32_t enablePcEthernetComm : 1; uint32_t enablePcEthernetComm : 1;
uint32_t reserved : 29; uint32_t reserved : 29;
} flags;//4 } flags;//4
ETHERNET_SETTINGS2 ethernet2; //16
} etherbadge_settings_t; } etherbadge_settings_t;
#pragma pack(pop) #pragma pack(pop)
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(etherbadge_settings_t) == 316, "EtherBadge settings size mismatch");
#include <iostream> #include <iostream>
class EtherBADGESettings : public IDeviceSettings { class EtherBADGESettings : public IDeviceSettings {

View File

@ -51,8 +51,6 @@ typedef struct {
uint16_t iso_msg_termination_2; uint16_t iso_msg_termination_2;
ETHERNET_SETTINGS ethernet_1; ETHERNET_SETTINGS ethernet_1;
ETHERNET_SETTINGS2 ethernet2_1; ETHERNET_SETTINGS2 ethernet2_1;
ETHERNET_SETTINGS ethernet_2;
ETHERNET_SETTINGS2 ethernet2_2;
STextAPISettings text_api; STextAPISettings text_api;
DISK_SETTINGS disk; DISK_SETTINGS disk;
uint16_t misc_io_report_period; uint16_t misc_io_report_period;
@ -84,6 +82,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neoviconnect_settings_t) == 628, "NeoVIConnect settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIConnectSettings : public IDeviceSettings { class NeoVIConnectSettings : public IDeviceSettings {

View File

@ -95,6 +95,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neovifire_settings_t) == 744, "NeoVIFire settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIFIRESettings : public IDeviceSettings { class NeoVIFIRESettings : public IDeviceSettings {

View File

@ -105,6 +105,7 @@ typedef struct {
uint16_t digitalIoThresholdEnable; uint16_t digitalIoThresholdEnable;
TIMESYNC_ICSHARDWARE_SETTINGS timeSync; TIMESYNC_ICSHARDWARE_SETTINGS timeSync;
DISK_SETTINGS disk; DISK_SETTINGS disk;
ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings
} neovifire2_settings_t; } neovifire2_settings_t;
typedef struct { typedef struct {
@ -118,6 +119,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neovifire2_settings_t) == 936, "NeoVIFire2 settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIFIRE2Settings : public IDeviceSettings { class NeoVIFIRE2Settings : public IDeviceSettings {

View File

@ -160,6 +160,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neovifire3_settings_t) == 1722, "NeoVIFire3 settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIFIRE3Settings : public IDeviceSettings { class NeoVIFIRE3Settings : public IDeviceSettings {

View File

@ -143,6 +143,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neovifire3flexray_settings_t) == 1372, "NeoVIFire3Flexray settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIFIRE3FlexRaySettings : public IDeviceSettings { class NeoVIFIRE3FlexRaySettings : public IDeviceSettings {

View File

@ -152,6 +152,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neovifire3t1slin_settings_t) == 1594, "NeoVIFire3T1SLIN settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIFIRE3T1SLINSettings : public IDeviceSettings { class NeoVIFIRE3T1SLINSettings : public IDeviceSettings {

View File

@ -105,6 +105,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(neovired2_settings_t) == 918, "NeoVIRED2 settings size mismatch");
#include <iostream> #include <iostream>
class NeoVIRED2Settings : public IDeviceSettings { class NeoVIRED2Settings : public IDeviceSettings {

View File

@ -59,12 +59,14 @@ typedef struct {
ETHERNET_SETTINGS2 ethernet; ETHERNET_SETTINGS2 ethernet;
RAD_GPTP_SETTINGS gPTP; RAD_GPTP_SETTINGS gPTP;
uint64_t network_enables_5; uint64_t network_enables_5;
CMP_GLOBAL_DATA cmp_global_data;
CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_A2B];
} rada2b_settings_t; } rada2b_settings_t;
#pragma pack(pop) #pragma pack(pop)
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(rada2b_settings_t) == 340, "RAD-A2B settings size mismatch"); static_assert(sizeof(rada2b_settings_t) == 416, "RAD-A2B settings size mismatch");
#include <iostream> #include <iostream>

View File

@ -80,6 +80,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radepsilon_settings_t) == 400, "RADEpsilon settings size mismatch");
#include <iostream> #include <iostream>
class RADEpsilonSettings : public IDeviceSettings { class RADEpsilonSettings : public IDeviceSettings {

View File

@ -92,6 +92,7 @@ typedef struct {
uint16_t network_enables_4; uint16_t network_enables_4;
RAD_GPTP_SETTINGS gPTP; RAD_GPTP_SETTINGS gPTP;
uint64_t network_enables_5;
} radgalaxy_settings_t; } radgalaxy_settings_t;
typedef struct { typedef struct {
@ -102,6 +103,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radgalaxy_settings_t) == 776, "RADGalaxy settings size mismatch");
#include <iostream> #include <iostream>
class RADGalaxySettings : public IDeviceSettings { class RADGalaxySettings : public IDeviceSettings {

View File

@ -103,6 +103,11 @@ typedef struct {
uint64_t network_enables_5; uint64_t network_enables_5;
LIN_SETTINGS lin2; LIN_SETTINGS lin2;
uint16_t iso_9141_kwp_enable_reserved_2;
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2;
uint16_t iso_parity_2;
uint16_t iso_msg_termination_2;
} radgalaxy2_settings_t; } radgalaxy2_settings_t;
typedef struct { typedef struct {
@ -114,6 +119,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radgalaxy2_settings_t) == 960, "RADGalaxy2 settings size mismatch");
#include <iostream> #include <iostream>
class RADGalaxy2Settings : public IDeviceSettings { class RADGalaxy2Settings : public IDeviceSettings {

View File

@ -36,6 +36,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radgemini_settings_t) == 86, "RADGemini settings size mismatch");
#include <iostream> #include <iostream>
class RADGeminiSettings : public IDeviceSettings { class RADGeminiSettings : public IDeviceSettings {

View File

@ -84,12 +84,24 @@ typedef struct {
RAD_GPTP_SETTINGS gPTP; RAD_GPTP_SETTINGS gPTP;
uint64_t network_enables_5; uint64_t network_enables_5;
// SFP T1S
ETHERNET10T1S_SETTINGS sfp_t1s_1;
ETHERNET10T1S_SETTINGS_EXT sfp_t1s_ext_1;
ETHERNET10T1S_SETTINGS sfp_t1s_2;
ETHERNET10T1S_SETTINGS_EXT sfp_t1s_ext_2;
CMP_GLOBAL_DATA cmp_global_data;
CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_GIGASTAR];
// SFP T1L
ETHERNET10T1L_SETTINGS sfp_t1l_1;
ETHERNET10T1L_SETTINGS sfp_t1l_2;
} radgigastar_settings_t; } radgigastar_settings_t;
#pragma pack(pop) #pragma pack(pop)
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radgigastar_settings_t) == 710, "RADGigastar settings size mismatch"); static_assert(sizeof(radgigastar_settings_t) == 1026, "RADGigastar settings size mismatch");
#include <iostream> #include <iostream>

View File

@ -127,18 +127,29 @@ namespace icsneo
ETHERNET_SETTINGS2 ethT1s8; ETHERNET_SETTINGS2 ethT1s8;
ETHERNET10T1S_SETTINGS t1s8; ETHERNET10T1S_SETTINGS t1s8;
ETHERNET10T1S_SETTINGS_EXT t1s8Ext; ETHERNET10T1S_SETTINGS_EXT t1s8Ext;
// SFP T1S
ETHERNET10T1S_SETTINGS sfp_t1s_1;
ETHERNET10T1S_SETTINGS_EXT sfp_t1s_ext_1;
ETHERNET10T1S_SETTINGS sfp_t1s_2;
ETHERNET10T1S_SETTINGS_EXT sfp_t1s_ext_2;
LIN_SETTINGS lin11; LIN_SETTINGS lin11;
LIN_SETTINGS lin12; LIN_SETTINGS lin12;
LIN_SETTINGS lin13; LIN_SETTINGS lin13;
LIN_SETTINGS lin14; LIN_SETTINGS lin14;
LIN_SETTINGS lin15; LIN_SETTINGS lin15;
LIN_SETTINGS lin16; LIN_SETTINGS lin16;
// SFP T1L
ETHERNET10T1L_SETTINGS sfp_t1l_1;
ETHERNET10T1L_SETTINGS sfp_t1l_2;
} radgigastar2_settings_t; } radgigastar2_settings_t;
#pragma pack(pop) #pragma pack(pop)
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radgigastar2_settings_t) == 2084, "RADGigastar2 settings size mismatch"); static_assert(sizeof(radgigastar2_settings_t) == 2156, "RADGigastar2 settings size mismatch");
#include <iostream> #include <iostream>

View File

@ -36,6 +36,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radmoon2_settings_t) == 170, "RADMoon2 settings size mismatch");
#include <iostream> #include <iostream>
class RADMoon2Settings : public IDeviceSettings { class RADMoon2Settings : public IDeviceSettings {

View File

@ -33,6 +33,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radmoon3_settings_t) == 68, "RADMoon3 settings size mismatch");
#include <iostream> #include <iostream>
class RADMoon3Settings : public IDeviceSettings { class RADMoon3Settings : public IDeviceSettings {

View File

@ -32,11 +32,16 @@ typedef struct {
// 10T1S // 10T1S
ETHERNET_SETTINGS2 ethT1s; ETHERNET_SETTINGS2 ethT1s;
ETHERNET10T1S_SETTINGS t1s; ETHERNET10T1S_SETTINGS t1s;
// 10T1S Extended Settings
ETHERNET10T1S_SETTINGS_EXT t1sExt;
RAD_GPTP_SETTINGS gPTP;
} radmoont1s_settings_t; } radmoont1s_settings_t;
#pragma pack(pop) #pragma pack(pop)
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radmoont1s_settings_t) == 160, "RADMoonT1S settings size mismatch");
#include <iostream> #include <iostream>
class RADMoonT1SSettings : public IDeviceSettings { class RADMoonT1SSettings : public IDeviceSettings {

View File

@ -60,11 +60,17 @@ typedef struct {
TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings;
uint16_t hwComLatencyTestEn; uint16_t hwComLatencyTestEn;
RAD_REPORTING_SETTINGS reporting; RAD_REPORTING_SETTINGS reporting;
ETHERNET_SETTINGS2 ethernet;
RAD_GPTP_SETTINGS gPTP;
uint64_t network_enables_5;
} radstar2_settings_t; } radstar2_settings_t;
#pragma pack(pop) #pragma pack(pop)
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(radstar2_settings_t) == 422, "RADStar2 settings size mismatch");
#include <iostream> #include <iostream>
class RADStar2Settings : public IDeviceSettings { class RADStar2Settings : public IDeviceSettings {

View File

@ -31,6 +31,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(valuecan3_settings_t) == 40, "ValueCAN3 settings size mismatch");
#include <iostream> #include <iostream>
class ValueCAN3Settings : public IDeviceSettings { class ValueCAN3Settings : public IDeviceSettings {

View File

@ -42,6 +42,8 @@ typedef struct {
#ifdef __cplusplus #ifdef __cplusplus
static_assert(sizeof(vividcan_settings_t) == 64, "VividCAN settings size mismatch");
#include <iostream> #include <iostream>
class VividCANSettings : public IDeviceSettings { class VividCANSettings : public IDeviceSettings {