From 51e4fdc6d915a96a392cd2f090cd7d4734c59e16 Mon Sep 17 00:00:00 2001 From: Max Brombach Date: Tue, 4 Nov 2025 19:29:37 +0000 Subject: [PATCH] Device: Update tree structs and add size checks to non-deprecated devices --- include/icsneo/device/idevicesettings.h | 8 ++++++++ .../device/tree/etherbadge/etherbadgesettings.h | 4 ++++ .../tree/neoviconnect/neoviconnectsettings.h | 4 ++-- .../device/tree/neovifire/neovifiresettings.h | 2 ++ .../device/tree/neovifire2/neovifire2settings.h | 3 +++ .../device/tree/neovifire3/neovifire3settings.h | 2 ++ .../neovifire3flexray/neovifire3flexraysettings.h | 2 ++ .../neovifire3t1slin/neovifire3t1slinsettings.h | 2 ++ .../device/tree/neovired2/neovired2settings.h | 2 ++ include/icsneo/device/tree/rada2b/rada2bsettings.h | 4 +++- .../device/tree/radepsilon/radepsilonsettings.h | 2 ++ .../device/tree/radgalaxy/radgalaxysettings.h | 3 +++ .../device/tree/radgalaxy2/radgalaxy2settings.h | 7 +++++++ .../device/tree/radgemini/radgeminisettings.h | 2 ++ .../device/tree/radgigastar/radgigastarsettings.h | 14 +++++++++++++- .../tree/radgigastar2/radgigastar2settings.h | 13 ++++++++++++- .../icsneo/device/tree/radmoon2/radmoon2settings.h | 2 ++ .../icsneo/device/tree/radmoon3/radmoon3settings.h | 2 ++ .../device/tree/radmoont1s/radmoont1ssettings.h | 5 +++++ .../icsneo/device/tree/radstar2/radstar2settings.h | 6 ++++++ .../device/tree/valuecan3/valuecan3settings.h | 2 ++ .../icsneo/device/tree/vividcan/vividcansettings.h | 2 ++ 22 files changed, 88 insertions(+), 5 deletions(-) diff --git a/include/icsneo/device/idevicesettings.h b/include/icsneo/device/idevicesettings.h index 4f53b75..8998b7e 100644 --- a/include/icsneo/device/idevicesettings.h +++ b/include/icsneo/device/idevicesettings.h @@ -409,6 +409,14 @@ typedef struct ETHERNET10T1S_SETTINGS_EXT_t } ETHERNET10T1S_SETTINGS_EXT; #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_AUTO_NEG 0x02 #define ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE 0x04 diff --git a/include/icsneo/device/tree/etherbadge/etherbadgesettings.h b/include/icsneo/device/tree/etherbadge/etherbadgesettings.h index f1a4de3..f39ef24 100644 --- a/include/icsneo/device/tree/etherbadge/etherbadgesettings.h +++ b/include/icsneo/device/tree/etherbadge/etherbadgesettings.h @@ -56,11 +56,15 @@ typedef struct { uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags;//4 + + ETHERNET_SETTINGS2 ethernet2; //16 } etherbadge_settings_t; #pragma pack(pop) #ifdef __cplusplus +static_assert(sizeof(etherbadge_settings_t) == 316, "EtherBadge settings size mismatch"); + #include class EtherBADGESettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h b/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h index e84b392..af61ac2 100644 --- a/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h +++ b/include/icsneo/device/tree/neoviconnect/neoviconnectsettings.h @@ -51,8 +51,6 @@ typedef struct { 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; @@ -84,6 +82,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neoviconnect_settings_t) == 628, "NeoVIConnect settings size mismatch"); + #include class NeoVIConnectSettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neovifire/neovifiresettings.h b/include/icsneo/device/tree/neovifire/neovifiresettings.h index 0c37c6e..10c402b 100644 --- a/include/icsneo/device/tree/neovifire/neovifiresettings.h +++ b/include/icsneo/device/tree/neovifire/neovifiresettings.h @@ -95,6 +95,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neovifire_settings_t) == 744, "NeoVIFire settings size mismatch"); + #include class NeoVIFIRESettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neovifire2/neovifire2settings.h b/include/icsneo/device/tree/neovifire2/neovifire2settings.h index 69c7ec0..fa52b72 100644 --- a/include/icsneo/device/tree/neovifire2/neovifire2settings.h +++ b/include/icsneo/device/tree/neovifire2/neovifire2settings.h @@ -105,6 +105,7 @@ typedef struct { uint16_t digitalIoThresholdEnable; TIMESYNC_ICSHARDWARE_SETTINGS timeSync; DISK_SETTINGS disk; + ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings } neovifire2_settings_t; typedef struct { @@ -118,6 +119,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neovifire2_settings_t) == 936, "NeoVIFire2 settings size mismatch"); + #include class NeoVIFIRE2Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neovifire3/neovifire3settings.h b/include/icsneo/device/tree/neovifire3/neovifire3settings.h index 8a7e127..a5f1477 100644 --- a/include/icsneo/device/tree/neovifire3/neovifire3settings.h +++ b/include/icsneo/device/tree/neovifire3/neovifire3settings.h @@ -160,6 +160,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neovifire3_settings_t) == 1722, "NeoVIFire3 settings size mismatch"); + #include class NeoVIFIRE3Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h index d43bd23..43b448e 100644 --- a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h +++ b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h @@ -143,6 +143,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neovifire3flexray_settings_t) == 1372, "NeoVIFire3Flexray settings size mismatch"); + #include class NeoVIFIRE3FlexRaySettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h b/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h index 53c6df6..fc8eb73 100644 --- a/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h +++ b/include/icsneo/device/tree/neovifire3t1slin/neovifire3t1slinsettings.h @@ -152,6 +152,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neovifire3t1slin_settings_t) == 1594, "NeoVIFire3T1SLIN settings size mismatch"); + #include class NeoVIFIRE3T1SLINSettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/neovired2/neovired2settings.h b/include/icsneo/device/tree/neovired2/neovired2settings.h index 95ef847..0a6fe41 100644 --- a/include/icsneo/device/tree/neovired2/neovired2settings.h +++ b/include/icsneo/device/tree/neovired2/neovired2settings.h @@ -105,6 +105,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(neovired2_settings_t) == 918, "NeoVIRED2 settings size mismatch"); + #include class NeoVIRED2Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/rada2b/rada2bsettings.h b/include/icsneo/device/tree/rada2b/rada2bsettings.h index c23927f..47ff89d 100644 --- a/include/icsneo/device/tree/rada2b/rada2bsettings.h +++ b/include/icsneo/device/tree/rada2b/rada2bsettings.h @@ -59,12 +59,14 @@ typedef struct { ETHERNET_SETTINGS2 ethernet; RAD_GPTP_SETTINGS gPTP; uint64_t network_enables_5; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_A2B]; } rada2b_settings_t; #pragma pack(pop) #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 diff --git a/include/icsneo/device/tree/radepsilon/radepsilonsettings.h b/include/icsneo/device/tree/radepsilon/radepsilonsettings.h index 3422f8a..dc564c5 100644 --- a/include/icsneo/device/tree/radepsilon/radepsilonsettings.h +++ b/include/icsneo/device/tree/radepsilon/radepsilonsettings.h @@ -80,6 +80,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(radepsilon_settings_t) == 400, "RADEpsilon settings size mismatch"); + #include class RADEpsilonSettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h b/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h index b5c70d6..1e43178 100644 --- a/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h +++ b/include/icsneo/device/tree/radgalaxy/radgalaxysettings.h @@ -92,6 +92,7 @@ typedef struct { uint16_t network_enables_4; RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } radgalaxy_settings_t; typedef struct { @@ -102,6 +103,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(radgalaxy_settings_t) == 776, "RADGalaxy settings size mismatch"); + #include class RADGalaxySettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h b/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h index d75a57e..3d38ea8 100644 --- a/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h +++ b/include/icsneo/device/tree/radgalaxy2/radgalaxy2settings.h @@ -103,6 +103,11 @@ typedef struct { uint64_t network_enables_5; 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; typedef struct { @@ -114,6 +119,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(radgalaxy2_settings_t) == 960, "RADGalaxy2 settings size mismatch"); + #include class RADGalaxy2Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radgemini/radgeminisettings.h b/include/icsneo/device/tree/radgemini/radgeminisettings.h index d83a119..7d3c54a 100644 --- a/include/icsneo/device/tree/radgemini/radgeminisettings.h +++ b/include/icsneo/device/tree/radgemini/radgeminisettings.h @@ -36,6 +36,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(radgemini_settings_t) == 86, "RADGemini settings size mismatch"); + #include class RADGeminiSettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radgigastar/radgigastarsettings.h b/include/icsneo/device/tree/radgigastar/radgigastarsettings.h index c7eab20..d959539 100644 --- a/include/icsneo/device/tree/radgigastar/radgigastarsettings.h +++ b/include/icsneo/device/tree/radgigastar/radgigastarsettings.h @@ -84,12 +84,24 @@ typedef struct { RAD_GPTP_SETTINGS gPTP; 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; #pragma pack(pop) #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 diff --git a/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h b/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h index d08d0f5..cc4e4d6 100644 --- a/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h +++ b/include/icsneo/device/tree/radgigastar2/radgigastar2settings.h @@ -127,18 +127,29 @@ namespace icsneo ETHERNET_SETTINGS2 ethT1s8; ETHERNET10T1S_SETTINGS t1s8; 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 lin12; LIN_SETTINGS lin13; LIN_SETTINGS lin14; LIN_SETTINGS lin15; LIN_SETTINGS lin16; + + // SFP T1L + ETHERNET10T1L_SETTINGS sfp_t1l_1; + ETHERNET10T1L_SETTINGS sfp_t1l_2; } radgigastar2_settings_t; #pragma pack(pop) #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 diff --git a/include/icsneo/device/tree/radmoon2/radmoon2settings.h b/include/icsneo/device/tree/radmoon2/radmoon2settings.h index ed68bc0..8b6162f 100644 --- a/include/icsneo/device/tree/radmoon2/radmoon2settings.h +++ b/include/icsneo/device/tree/radmoon2/radmoon2settings.h @@ -36,6 +36,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(radmoon2_settings_t) == 170, "RADMoon2 settings size mismatch"); + #include class RADMoon2Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radmoon3/radmoon3settings.h b/include/icsneo/device/tree/radmoon3/radmoon3settings.h index 9b7bc2d..ae6b250 100644 --- a/include/icsneo/device/tree/radmoon3/radmoon3settings.h +++ b/include/icsneo/device/tree/radmoon3/radmoon3settings.h @@ -33,6 +33,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(radmoon3_settings_t) == 68, "RADMoon3 settings size mismatch"); + #include class RADMoon3Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h b/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h index 6b5af84..d71c022 100644 --- a/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h +++ b/include/icsneo/device/tree/radmoont1s/radmoont1ssettings.h @@ -32,11 +32,16 @@ typedef struct { // 10T1S ETHERNET_SETTINGS2 ethT1s; ETHERNET10T1S_SETTINGS t1s; + // 10T1S Extended Settings + ETHERNET10T1S_SETTINGS_EXT t1sExt; + RAD_GPTP_SETTINGS gPTP; } radmoont1s_settings_t; #pragma pack(pop) #ifdef __cplusplus +static_assert(sizeof(radmoont1s_settings_t) == 160, "RADMoonT1S settings size mismatch"); + #include class RADMoonT1SSettings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/radstar2/radstar2settings.h b/include/icsneo/device/tree/radstar2/radstar2settings.h index cbd12de..71762b5 100644 --- a/include/icsneo/device/tree/radstar2/radstar2settings.h +++ b/include/icsneo/device/tree/radstar2/radstar2settings.h @@ -60,11 +60,17 @@ typedef struct { TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; uint16_t hwComLatencyTestEn; RAD_REPORTING_SETTINGS reporting; + ETHERNET_SETTINGS2 ethernet; + + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } radstar2_settings_t; #pragma pack(pop) #ifdef __cplusplus +static_assert(sizeof(radstar2_settings_t) == 422, "RADStar2 settings size mismatch"); + #include class RADStar2Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/valuecan3/valuecan3settings.h b/include/icsneo/device/tree/valuecan3/valuecan3settings.h index 9661929..48b4a84 100644 --- a/include/icsneo/device/tree/valuecan3/valuecan3settings.h +++ b/include/icsneo/device/tree/valuecan3/valuecan3settings.h @@ -31,6 +31,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(valuecan3_settings_t) == 40, "ValueCAN3 settings size mismatch"); + #include class ValueCAN3Settings : public IDeviceSettings { diff --git a/include/icsneo/device/tree/vividcan/vividcansettings.h b/include/icsneo/device/tree/vividcan/vividcansettings.h index ab97f54..b261d19 100644 --- a/include/icsneo/device/tree/vividcan/vividcansettings.h +++ b/include/icsneo/device/tree/vividcan/vividcansettings.h @@ -42,6 +42,8 @@ typedef struct { #ifdef __cplusplus +static_assert(sizeof(vividcan_settings_t) == 64, "VividCAN settings size mismatch"); + #include class VividCANSettings : public IDeviceSettings {