From bce5b0d27bdb776ccd2bc86d1609ce339eefae06 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 4 Oct 2024 10:34:45 -0400 Subject: [PATCH 01/38] update header to 3.9.17 --- gen/ics/structures/accessory_error_type.py | 32 - gen/ics/structures/epsilon10_gphyfw.py | 18 - gen/ics/structures/epsilon_10_g_phy_select.py | 18 - .../flash_accessory_firmware_params.py | 20 - gen/ics/structures/flash_accessory_index.py | 22 - icsnVC40.h.enums.json | 388 +-- icsnVC40.h.json | 2866 +++++++++++----- icsnVC40_processed.h | 3055 +++++++++++------ include/ics/icsnVC40.h | 393 ++- src/methods.cpp | 12 +- src/setup_module_auto_defines.cpp | 80 +- 11 files changed, 4575 insertions(+), 2329 deletions(-) delete mode 100644 gen/ics/structures/accessory_error_type.py delete mode 100644 gen/ics/structures/epsilon10_gphyfw.py delete mode 100644 gen/ics/structures/epsilon_10_g_phy_select.py delete mode 100644 gen/ics/structures/flash_accessory_firmware_params.py delete mode 100644 gen/ics/structures/flash_accessory_index.py diff --git a/gen/ics/structures/accessory_error_type.py b/gen/ics/structures/accessory_error_type.py deleted file mode 100644 index b017c6722..000000000 --- a/gen/ics/structures/accessory_error_type.py +++ /dev/null @@ -1,32 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class accessory_error_type(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - AccessoryOperationError = 0 - AccessoryOperationSuccess = 1 - AccessoryFlashingInitError = 2 - AccessoryFlashingEraseError = 3 - AccessoryFlashingWriteError = 4 - AccessoryFlashingReadError = 5 - AccessoryFlashingVerifyError = 6 - AccessoryFlashingDeinitError = 7 - AccessoryFlashingInvalidHardware = 8 - AccessoryFlashingInvalidDataFile = 9 - AccessoryGetVersionError = 10 - AccessoryIndexError = 11 - AccessoryParamApiVersionError = 12 - AccessoryParamSizeMismatchError = 13 - AccessoryParameterNull = 14 - - -AccessoryErrorType = accessory_error_type -AccessoryOperationErrorType = accessory_error_type - diff --git a/gen/ics/structures/epsilon10_gphyfw.py b/gen/ics/structures/epsilon10_gphyfw.py deleted file mode 100644 index 924698785..000000000 --- a/gen/ics/structures/epsilon10_gphyfw.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class epsilon10_gphyfw(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0 = 0 - - -_epsilon10GPHYFW = epsilon10_gphyfw -epsilon10GPHYFW = epsilon10_gphyfw - diff --git a/gen/ics/structures/epsilon_10_g_phy_select.py b/gen/ics/structures/epsilon_10_g_phy_select.py deleted file mode 100644 index 34cedbcb7..000000000 --- a/gen/ics/structures/epsilon_10_g_phy_select.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class epsilon_10_g_phy_select(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - EPSILON_10G_PHY1 = (1<<0) - EPSILON_10G_PHY2 = (1<<1) - - -Epsilon_10G_PHY_select = epsilon_10_g_phy_select - diff --git a/gen/ics/structures/flash_accessory_firmware_params.py b/gen/ics/structures/flash_accessory_firmware_params.py deleted file mode 100644 index b569c2595..000000000 --- a/gen/ics/structures/flash_accessory_firmware_params.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class flash_accessory_firmware_params(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('apiVersion', ctypes.c_uint32), - ('size', ctypes.c_uint32), - ('index', ctypes.c_uint8), - ('data', ctypes.POINTER(ctypes.c_uint8)), - ('dataSize', ctypes.c_uint32), - ] - - -_FlashAccessoryFirmwareParams = flash_accessory_firmware_params -FlashAccessoryFirmwareParams = flash_accessory_firmware_params - diff --git a/gen/ics/structures/flash_accessory_index.py b/gen/ics/structures/flash_accessory_index.py deleted file mode 100644 index c4b26bc22..000000000 --- a/gen/ics/structures/flash_accessory_index.py +++ /dev/null @@ -1,22 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class flash_accessory_index(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - FLASH_ACCESSORY_EPSILON_SWITCH_A = 0 - FLASH_ACCESSORY_EPSILON_SWITCH_B = enum.auto() - FLASH_ACCESSORY_EPSILON_10G_PHY1 = enum.auto() - FLASH_ACCESSORY_EPSILON_10G_PHY2 = enum.auto() - FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2 = enum.auto() - - -_flashAccessoryIndex = flash_accessory_index -flashAccessoryIndex = flash_accessory_index - diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index 9926965f0..890081169 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -2196,6 +2196,14 @@ "bitfield_size": 0, "is_enum": true, "enum_value": 14 + }, + { + "name": "ePortStdEth3 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": 15 } ] }, @@ -2400,32 +2408,6 @@ } ] }, - { - "names": [ - "Epsilon_10G_PHY_select" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "EPSILON_10G_PHY1 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "(1<<0)" - }, - { - "name": "EPSILON_10G_PHY2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "(1<<1)" - } - ] - }, { "names": [], "data_type": "Enum", @@ -2883,6 +2865,22 @@ "is_enum": false, "enum_value": null }, + { + "name": "DeviceRADComet3SettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "DeviceRADGalaxy2SettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "DeviceSettingsTypeMax", "data_type": "int", @@ -3341,6 +3339,30 @@ "is_enum": false, "enum_value": null }, + { + "name": "rtcCalibration", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "rtcClosedLoopCalibration", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cmp", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "NUM_VALID_DEVICE_FEATURES", "data_type": "int", @@ -3361,15 +3383,15 @@ }, { "names": [ - "AccessoryErrorType", - "AccessoryOperationErrorType" + "PhyErrorType", + "PhyErrorType" ], "data_type": "Enum", "packing": 0, "is_anonymous": false, "members": [ { - "name": "AccessoryOperationError ", + "name": "PhyOperationError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3377,7 +3399,7 @@ "enum_value": 0 }, { - "name": "AccessoryOperationSuccess ", + "name": "PhyOperationSuccess ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3385,7 +3407,7 @@ "enum_value": 1 }, { - "name": "AccessoryFlashingInitError ", + "name": "PhyFlashingInitError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3393,7 +3415,7 @@ "enum_value": 2 }, { - "name": "AccessoryFlashingEraseError ", + "name": "PhyFlashingEraseError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3401,7 +3423,7 @@ "enum_value": 3 }, { - "name": "AccessoryFlashingWriteError ", + "name": "PhyFlashingWriteError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3409,7 +3431,7 @@ "enum_value": 4 }, { - "name": "AccessoryFlashingReadError ", + "name": "PhyFlashingReadError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3417,7 +3439,7 @@ "enum_value": 5 }, { - "name": "AccessoryFlashingVerifyError ", + "name": "PhyFlashingVerifyError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3425,7 +3447,7 @@ "enum_value": 6 }, { - "name": "AccessoryFlashingDeinitError ", + "name": "PhyFlashingDeinitError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3433,7 +3455,7 @@ "enum_value": 7 }, { - "name": "AccessoryFlashingInvalidHardware ", + "name": "PhyFlashingInvalidHardware ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3441,7 +3463,7 @@ "enum_value": 8 }, { - "name": "AccessoryFlashingInvalidDataFile ", + "name": "PhyFlashingInvalidDataFile ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3449,7 +3471,7 @@ "enum_value": 9 }, { - "name": "AccessoryGetVersionError ", + "name": "PhyGetVersionError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3457,106 +3479,12 @@ "enum_value": 10 }, { - "name": "AccessoryIndexError ", + "name": "PhyIndexError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, "is_enum": true, "enum_value": 11 - }, - { - "name": "AccessoryParamApiVersionError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 12 - }, - { - "name": "AccessoryParamSizeMismatchError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 13 - }, - { - "name": "AccessoryParameterNull ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 14 - } - ] - }, - { - "names": [ - "_flashAccessoryIndex", - "flashAccessoryIndex" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "FLASH_ACCESSORY_EPSILON_SWITCH_A", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FLASH_ACCESSORY_EPSILON_SWITCH_B", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FLASH_ACCESSORY_EPSILON_10G_PHY1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FLASH_ACCESSORY_EPSILON_10G_PHY2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_epsilon10GPHYFW", - "epsilon10GPHYFW" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null } ] }, @@ -3567,7 +3495,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5747 ", + "name": "assert_line_5969 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3583,7 +3511,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5748 ", + "name": "assert_line_5970 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3599,7 +3527,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5749 ", + "name": "assert_line_5971 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3615,7 +3543,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5750 ", + "name": "assert_line_5972 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3631,7 +3559,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5751 ", + "name": "assert_line_5973 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3647,7 +3575,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5752 ", + "name": "assert_line_5974 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3663,7 +3591,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5753 ", + "name": "assert_line_5975 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3679,7 +3607,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5754 ", + "name": "assert_line_5976 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3695,7 +3623,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5755 ", + "name": "assert_line_5977 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3711,7 +3639,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5756 ", + "name": "assert_line_5978 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3727,7 +3655,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5757 ", + "name": "assert_line_5979 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3743,7 +3671,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5758 ", + "name": "assert_line_5980 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3759,7 +3687,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5759 ", + "name": "assert_line_5981 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3775,7 +3703,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5760 ", + "name": "assert_line_5982 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3791,7 +3719,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5761 ", + "name": "assert_line_5983 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3807,7 +3735,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5762 ", + "name": "assert_line_5984 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3823,7 +3751,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5763 ", + "name": "assert_line_5985 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3839,7 +3767,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5764 ", + "name": "assert_line_5986 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3855,7 +3783,23 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5765 ", + "name": "assert_line_5987 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(ETHERNET10T1S_SETTINGS_EXT)" + } + ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_5988 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3871,7 +3815,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5766 ", + "name": "assert_line_5989 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3887,7 +3831,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5767 ", + "name": "assert_line_5990 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3903,7 +3847,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5768 ", + "name": "assert_line_5991 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3919,7 +3863,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5769 ", + "name": "assert_line_5992 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3935,7 +3879,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5770 ", + "name": "assert_line_5993 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3951,7 +3895,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5771 ", + "name": "assert_line_5994 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3967,7 +3911,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5772 ", + "name": "assert_line_5995 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3983,7 +3927,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5773 ", + "name": "assert_line_5996 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3999,7 +3943,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5774 ", + "name": "assert_line_5997 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4015,7 +3959,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5775 ", + "name": "assert_line_5998 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4031,7 +3975,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5776 ", + "name": "assert_line_5999 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4047,7 +3991,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5777 ", + "name": "assert_line_6000 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4063,7 +4007,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5778 ", + "name": "assert_line_6001 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4079,7 +4023,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5779 ", + "name": "assert_line_6002 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4095,7 +4039,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5780 ", + "name": "assert_line_6003 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4111,7 +4055,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5781 ", + "name": "assert_line_6004 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4127,7 +4071,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5782 ", + "name": "assert_line_6005 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4143,7 +4087,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5783 ", + "name": "assert_line_6006 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4159,7 +4103,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5784 ", + "name": "assert_line_6007 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4175,7 +4119,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5785 ", + "name": "assert_line_6008 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4191,7 +4135,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5786 ", + "name": "assert_line_6009 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4207,7 +4151,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5787 ", + "name": "assert_line_6010 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4223,7 +4167,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5788 ", + "name": "assert_line_6011 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4239,7 +4183,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5789 ", + "name": "assert_line_6012 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4255,7 +4199,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5790 ", + "name": "assert_line_6013 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4271,7 +4215,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5791 ", + "name": "assert_line_6014 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4287,7 +4231,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5792 ", + "name": "assert_line_6015 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4303,7 +4247,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5793 ", + "name": "assert_line_6016 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4319,7 +4263,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5794 ", + "name": "assert_line_6017 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4335,7 +4279,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5795 ", + "name": "assert_line_6018 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4351,7 +4295,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5796 ", + "name": "assert_line_6019 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4367,7 +4311,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5797 ", + "name": "assert_line_6020 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4383,7 +4327,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5798 ", + "name": "assert_line_6021 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4399,7 +4343,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5799 ", + "name": "assert_line_6022 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4415,7 +4359,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5800 ", + "name": "assert_line_6023 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4431,7 +4375,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5801 ", + "name": "assert_line_6024 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4447,7 +4391,23 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5802 ", + "name": "assert_line_6025 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(SRADGalaxy2Settings)" + } + ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_6026 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4463,7 +4423,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5803 ", + "name": "assert_line_6027 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4479,7 +4439,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5804 ", + "name": "assert_line_6028 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4495,7 +4455,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5805 ", + "name": "assert_line_6029 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4511,7 +4471,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5806 ", + "name": "assert_line_6030 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4527,7 +4487,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5807 ", + "name": "assert_line_6031 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4543,7 +4503,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5808 ", + "name": "assert_line_6032 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4559,7 +4519,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5809 ", + "name": "assert_line_6033 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4575,7 +4535,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5810 ", + "name": "assert_line_6034 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4591,7 +4551,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5811 ", + "name": "assert_line_6035 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4607,7 +4567,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5812 ", + "name": "assert_line_6036 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4623,7 +4583,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5813 ", + "name": "assert_line_6037 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4639,7 +4599,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5814 ", + "name": "assert_line_6038 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4655,7 +4615,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5815 ", + "name": "assert_line_6039 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4671,7 +4631,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5816 ", + "name": "assert_line_6040 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4687,7 +4647,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5817 ", + "name": "assert_line_6041 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4703,7 +4663,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5818 ", + "name": "assert_line_6042 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4719,7 +4679,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5819 ", + "name": "assert_line_6043 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4735,7 +4695,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5820 ", + "name": "assert_line_6044 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4751,7 +4711,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5821 ", + "name": "assert_line_6045 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4767,7 +4727,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5822 ", + "name": "assert_line_6046 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4783,7 +4743,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5823 ", + "name": "assert_line_6047 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4799,7 +4759,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5824 ", + "name": "assert_line_6048 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4815,12 +4775,12 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5825 ", + "name": "assert_line_6049 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(FlashAccessoryFirmwareParams)" + "enum_value": "1/(int)(!!(sizeof(SRADComet3Settings)" } ] } diff --git a/icsnVC40.h.json b/icsnVC40.h.json index 8fdc1d18d..ae37a443a 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -1,23 +1,4 @@ [ - { - "names": [ - "__fsid_t", - "fsid_t__" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "__val", - "data_type": "int", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, { "names": [ "SExtendedDataFlashHeader", @@ -2152,6 +2133,32 @@ } ] }, + { + "names": [ + "radGalaxy2_versions" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "zynq_core_major", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "zynq_core_minor", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [ "obd2lc_versions" @@ -2607,6 +2614,32 @@ "enum_value": null } ] + }, + { + "names": [ + "rad_comet3_versions" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "zynq_core_major", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "zynq_core_minor", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] } ] }, @@ -2662,10 +2695,98 @@ "is_enum": false, "enum_value": null }, + { + "names": [], + "data_type": "Union", + "packing": 2, + "is_anonymous": true, + "members": [ + { + "name": "tapPairOpt", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [], + "data_type": "Struct", + "packing": 2, + "is_anonymous": true, + "members": [ + { + "name": "tap1ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap2ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap3ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap4ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap5ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap6ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap7ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "tap8ToVspy", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + } + ] + } + ] + }, { "name": "reserved0", "data_type": "uint8_t", - "array_length": 3, + "array_length": 2, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -3237,10 +3358,18 @@ "is_enum": false, "enum_value": null }, + { + "name": "compliance_mode", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "rsvd2", "data_type": "uint8_t", - "array_length": 7, + "array_length": 6, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -3322,6 +3451,41 @@ } ] }, + { + "names": [ + "ETHERNET10T1S_SETTINGS_EXT_t", + "ETHERNET10T1S_SETTINGS_EXT" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "enable_multi_id", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "multi_id", + "data_type": "uint8_t", + "array_length": 7, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "rsvd", + "data_type": "uint8_t", + "array_length": 8, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [ "MACSEC_VLANTAG_t" @@ -3377,8 +3541,7 @@ { "names": [ "_MACSecRule", - "MACSecRule_t", - "MACSecRule_" + "MACSecRule_t" ], "data_type": "Union", "packing": 1, @@ -3661,8 +3824,7 @@ { "names": [ "_MACSecMap", - "MACSecMap_t", - "MACSecMap_" + "MACSecMap_t" ], "data_type": "Union", "packing": 1, @@ -3761,8 +3923,7 @@ { "names": [ "_MACSecSecY", - "MACSecSecY_t", - "MACSecSecY_" + "MACSecSecY_t" ], "data_type": "Union", "packing": 1, @@ -3909,8 +4070,7 @@ { "names": [ "_MACSecSc", - "MACSecSc_t", - "MACSecSc_" + "MACSecSc_t" ], "data_type": "Union", "packing": 1, @@ -4025,8 +4185,7 @@ { "names": [ "_MACSecSa", - "MACSecSa_t", - "MACSecSa_" + "MACSecSa_t" ], "data_type": "Union", "packing": 1, @@ -4125,8 +4284,7 @@ { "names": [ "_MACSecFlags", - "MACSecFlags_t", - "MACSecFlags_" + "MACSecFlags_t" ], "data_type": "Union", "packing": 1, @@ -4228,8 +4386,7 @@ { "names": [ "_MACSecGlobalFlags", - "MACSecGlobalFlags_t", - "MACSecGlobalFlags_" + "MACSecGlobalFlags_t" ], "data_type": "Union", "packing": 1, @@ -9642,12 +9799,38 @@ "enum_value": null }, { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "hwComLatencyTestEn", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 14, + "is_enum": false, + "enum_value": null + } + ] }, { "name": "reporting", @@ -11217,8 +11400,8 @@ }, { "names": [ - "_SVividCANSettings", - "SVividCANSettings" + "_SRADGalaxy2Settings", + "SRADGalaxy2Settings" ], "data_type": "Struct", "packing": 2, @@ -11233,140 +11416,95 @@ "enum_value": null }, { - "name": "can1", - "data_type": "CAN_SETTINGS", + "name": "perf_en", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", + "name": "can1", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "lsftcan1", - "data_type": "CAN_SETTINGS", + "name": "canfd1", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables", - "data_type": "uint16_t", + "name": "can2", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", + "name": "canfd2", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", + "name": "can3", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "perf_en", - "data_type": "uint16_t", + "name": "canfd3", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_timeout", - "data_type": "uint32_t", + "name": "can4", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_enable", - "data_type": "uint16_t", + "name": "canfd4", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can_switch_mode", - "data_type": "uint16_t", + "name": "can5", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "termination_enables", - "data_type": "uint16_t", + "name": "canfd5", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_SOBD2SimSettings", - "SOBD2SimSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", + "name": "can6", "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11374,7 +11512,15 @@ "enum_value": null }, { - "name": "can2", + "name": "canfd6", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can7", "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11382,7 +11528,7 @@ "enum_value": null }, { - "name": "canfd1", + "name": "canfd7", "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11390,7 +11536,15 @@ "enum_value": null }, { - "name": "canfd2", + "name": "can8", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd8", "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11399,7 +11553,31 @@ }, { "name": "network_enables", - "data_type": "uint64_t", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_timeout", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_enable", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -11415,14 +11593,14 @@ }, { "name": "iso15765_separation_time_offset", - "data_type": "int16_t", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "perf_en", + "name": "iso_9141_kwp_enable_reserved", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11430,15 +11608,15 @@ "enum_value": null }, { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", + "name": "iso9141_kwp_settings_1", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "misc_io_initial_latch", + "name": "iso_parity_1", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11446,7 +11624,7 @@ "enum_value": null }, { - "name": "misc_io_report_period", + "name": "iso_msg_termination_1", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11454,7 +11632,7 @@ "enum_value": null }, { - "name": "misc_io_on_report_events", + "name": "idle_wakeup_network_enables_1", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11462,7 +11640,7 @@ "enum_value": null }, { - "name": "misc_io_analog_enable", + "name": "idle_wakeup_network_enables_2", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11470,7 +11648,7 @@ "enum_value": null }, { - "name": "ain_sample_period", + "name": "network_enables_3", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11478,13 +11656,37 @@ "enum_value": null }, { - "name": "ain_threshold", + "name": "idle_wakeup_network_enables_3", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, + { + "name": "text_api", + "data_type": "STextAPISettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "termination_enables", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "timeSyncSettings", + "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "names": [ "flags" @@ -11494,16 +11696,8 @@ "is_anonymous": false, "members": [ { - "name": "", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", + "name": "hwComLatencyTestEn", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 1, "is_enum": false, @@ -11511,298 +11705,184 @@ }, { "name": "reserved", - "data_type": "uint32_t", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 30, + "bitfield_size": 15, "is_enum": false, "enum_value": null } ] }, { - "name": "text_api", - "data_type": "STextAPISettings", + "name": "lin1", + "data_type": "LIN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "_CmProbeSettings", - "CmProbeSettings", - "SCmProbeSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "network_enables", - "data_type": "uint16_t", + "name": "opEthGen", + "data_type": "OP_ETH_GENERAL_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", + "name": "opEth1", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "_OBD2ProSettings", - "OBD2ProSettings", - "SOBD2ProSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "perf_en", - "data_type": "uint16_t", + "name": "opEth2", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can1", - "data_type": "CAN_SETTINGS", + "name": "opEth3", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", + "name": "opEth4", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can2", - "data_type": "CAN_SETTINGS", + "name": "opEth5", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", + "name": "opEth6", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can3", - "data_type": "CAN_SETTINGS", + "name": "opEth7", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", + "name": "opEth8", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can4", - "data_type": "CAN_SETTINGS", + "name": "opEth9", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", + "name": "opEth10", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", + "name": "opEth11", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "lin1", - "data_type": "LIN_SETTINGS", + "name": "opEth12", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", + "name": "opEth13", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables", - "data_type": "uint64_t", + "name": "opEth14", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_timeout", - "data_type": "uint32_t", + "name": "opEth15", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_enable", - "data_type": "uint16_t", + "name": "opEth16", + "data_type": "OP_ETH_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", + "name": "ethernet10g", + "data_type": "ETHERNET10G_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", + "name": "ethernet10g_2", + "data_type": "ETHERNET10G_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "text_api", - "data_type": "STextAPISettings", + "name": "ethernet10g_3", + "data_type": "ETHERNET10G_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "can_switch_mode", + "name": "network_enables_4", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11810,16 +11890,16 @@ "enum_value": null }, { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", + "name": "reporting", + "data_type": "RAD_REPORTING_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", + "name": "gPTP", + "data_type": "RAD_GPTP_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -11829,17 +11909,16 @@ }, { "names": [ - "_VCAN412Settings", - "VCAN412Settings", - "SVCAN412Settings" + "_SVividCANSettings", + "SVividCANSettings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "perf_en", - "data_type": "uint16_t", + "name": "ecu_id", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -11854,15 +11933,15 @@ "enum_value": null }, { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", + "name": "swcan1", + "data_type": "SWCAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can2", + "name": "lsftcan1", "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11870,47 +11949,47 @@ "enum_value": null }, { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", + "name": "network_enables", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables", - "data_type": "uint64_t", + "name": "network_enabled_on_boot", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "termination_enables", - "data_type": "uint64_t", + "name": "iso15765_separation_time_offset", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_timeout", - "data_type": "uint32_t", + "name": "perf_en", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_enable", - "data_type": "uint16_t", + "name": "pwr_man_timeout", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enabled_on_boot", + "name": "pwr_man_enable", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -11918,16 +11997,16 @@ "enum_value": null }, { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", + "name": "can_switch_mode", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "text_api", - "data_type": "STextAPISettings", + "name": "termination_enables", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -11971,24 +12050,23 @@ }, { "names": [ - "_neoECU_AVBSettings", - "ECU_AVBSettings", - "SECU_AVBSettings" + "_SOBD2SimSettings", + "SOBD2SimSettings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "perf_en", - "data_type": "uint16_t", + "name": "can1", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can1", + "name": "can2", "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -12004,47 +12082,47 @@ "enum_value": null }, { - "name": "can2", - "data_type": "CAN_SETTINGS", + "name": "canfd2", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", + "name": "network_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables", - "data_type": "uint64_t", + "name": "network_enabled_on_boot", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "termination_enables", - "data_type": "uint64_t", + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_timeout", - "data_type": "uint32_t", + "name": "perf_en", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_enable", + "name": "misc_io_initial_ddr", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12052,7 +12130,7 @@ "enum_value": null }, { - "name": "network_enabled_on_boot", + "name": "misc_io_initial_latch", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12060,16 +12138,40 @@ "enum_value": null }, { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", + "name": "misc_io_report_period", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "text_api", - "data_type": "STextAPISettings", + "name": "misc_io_on_report_events", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "misc_io_analog_enable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ain_sample_period", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ain_threshold", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -12084,7 +12186,7 @@ "is_anonymous": false, "members": [ { - "name": "disableUsbCheckOnBoot", + "name": "", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 1, @@ -12108,20 +12210,29 @@ "enum_value": null } ] + }, + { + "name": "text_api", + "data_type": "STextAPISettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] }, { "names": [ - "SPluto_L2AddressLookupEntry_s", - "SPluto_L2AddressLookupEntry" + "_CmProbeSettings", + "CmProbeSettings", + "SCmProbeSettings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "index", + "name": "network_enables", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12129,235 +12240,203 @@ "enum_value": null }, { - "name": "vlanID", + "name": "network_enabled_on_boot", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - }, - { - "name": "macaddr", - "data_type": "uint8_t", - "array_length": 6, + } + ] + }, + { + "names": [ + "_OBD2ProSettings", + "OBD2ProSettings", + "SOBD2ProSettings" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "perf_en", + "data_type": "uint16_t", + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "destports", - "data_type": "uint8_t", + "name": "can1", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "enfport", - "data_type": "uint8_t", + "name": "canfd1", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "learnedEntry", - "data_type": "uint8_t", + "name": "can2", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad1", - "data_type": "uint8_t", + "name": "canfd2", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad2", - "data_type": "uint8_t", + "name": "can3", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad3", - "data_type": "uint8_t", + "name": "canfd3", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2AddressLookupParams_s", - "SPluto_L2AddressLookupParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "maxage", - "data_type": "uint16_t", + "name": "can4", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "dyn_tbsz", - "data_type": "uint8_t", + "name": "canfd4", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "poly", - "data_type": "uint8_t", + "name": "swcan1", + "data_type": "SWCAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "shared_learn", - "data_type": "uint8_t", + "name": "lin1", + "data_type": "LIN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "no_enf_hostprt", - "data_type": "uint8_t", + "name": "lin2", + "data_type": "LIN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "no_mgmt_learn", - "data_type": "uint8_t", + "name": "ethernet", + "data_type": "ETHERNET_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad", - "data_type": "uint8_t", + "name": "iso9141_kwp_settings_1", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2ForwardingParams_s", - "SPluto_L2ForwardingParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "part_spc", + "name": "iso_parity_1", "data_type": "uint16_t", - "array_length": 8, + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "max_dynp", - "data_type": "uint8_t", + "name": "iso_msg_termination_1", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad", - "data_type": "uint8_t", + "name": "iso9141_kwp_settings_2", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2ForwardingEntry_s", - "SPluto_L2ForwardingEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "vlan_pmap", - "data_type": "uint8_t", - "array_length": 8, + "name": "iso_parity_2", + "data_type": "uint16_t", + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "bc_domain", - "data_type": "uint8_t", + "name": "iso_msg_termination_2", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "reach_port", - "data_type": "uint8_t", + "name": "network_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "fl_domain", - "data_type": "uint8_t", + "name": "pwr_man_timeout", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad", - "data_type": "uint8_t", + "name": "pwr_man_enable", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2Policing_s", - "SPluto_L2Policing" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "smax", + "name": "network_enabled_on_boot", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12365,15 +12444,57 @@ "enum_value": null }, { - "name": "rate", - "data_type": "uint16_t", + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "maxlen", + "name": "text_api", + "data_type": "STextAPISettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableLatencyTest", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 30, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "name": "can_switch_mode", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12381,16 +12502,16 @@ "enum_value": null }, { - "name": "sharindx", - "data_type": "uint8_t", + "name": "misc_io_analog_enable", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "partition", - "data_type": "uint8_t", + "name": "ethernet2", + "data_type": "ETHERNET_SETTINGS2", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -12400,15 +12521,16 @@ }, { "names": [ - "SPluto_VlanLookup_s", - "SPluto_VlanLookup" + "_VCAN412Settings", + "VCAN412Settings", + "SVCAN412Settings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "vlanid", + "name": "perf_en", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12416,90 +12538,63 @@ "enum_value": null }, { - "name": "ving_mirr", - "data_type": "uint8_t", + "name": "can1", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "vegr_mirr", - "data_type": "uint8_t", + "name": "canfd1", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "vmemb_port", - "data_type": "uint8_t", + "name": "can2", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "vlan_bc", - "data_type": "uint8_t", + "name": "canfd2", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "tag_port", - "data_type": "uint8_t", + "name": "network_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad", - "data_type": "uint8_t", + "name": "termination_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_MacConfig_s", - "SPluto_MacConfig" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "top", - "data_type": "uint16_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "base", - "data_type": "uint16_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null }, { - "name": "tp_delin", - "data_type": "uint16_t", + "name": "pwr_man_timeout", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "tp_delout", + "name": "pwr_man_enable", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12507,7 +12602,7 @@ "enum_value": null }, { - "name": "vlanid", + "name": "network_enabled_on_boot", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12515,138 +12610,210 @@ "enum_value": null }, { - "name": "enabled", - "data_type": "uint8_t", - "array_length": 8, + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ifg", - "data_type": "uint8_t", + "name": "text_api", + "data_type": "STextAPISettings", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "speed", - "data_type": "uint8_t", + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableLatencyTest", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 30, + "is_enum": false, + "enum_value": null + } + ] + } + ] + }, + { + "names": [ + "_neoECU_AVBSettings", + "ECU_AVBSettings", + "SECU_AVBSettings" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "perf_en", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "maxage", - "data_type": "uint8_t", + "name": "can1", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "vlanprio", - "data_type": "uint8_t", + "name": "canfd1", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ing_mirr", - "data_type": "uint8_t", + "name": "can2", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "egr_mirr", - "data_type": "uint8_t", + "name": "canfd2", + "data_type": "CANFD_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "drpnona664", - "data_type": "uint8_t", + "name": "network_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "drpdtag", - "data_type": "uint8_t", + "name": "termination_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "drpuntag", - "data_type": "uint8_t", + "name": "pwr_man_timeout", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "retag", - "data_type": "uint8_t", + "name": "pwr_man_enable", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "dyn_learn", - "data_type": "uint8_t", + "name": "network_enabled_on_boot", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "egress", - "data_type": "uint8_t", + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ingress", - "data_type": "uint8_t", + "name": "text_api", + "data_type": "STextAPISettings", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableLatencyTest", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 30, + "is_enum": false, + "enum_value": null + } + ] } ] }, { "names": [ - "SPluto_RetaggingEntry_s", - "SPluto_RetaggingEntry" + "SPluto_L2AddressLookupEntry_s", + "SPluto_L2AddressLookupEntry" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "vlan_egr", + "name": "index", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12654,7 +12821,7 @@ "enum_value": null }, { - "name": "vlan_ing", + "name": "vlanID", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -12662,7 +12829,15 @@ "enum_value": null }, { - "name": "egr_port", + "name": "macaddr", + "data_type": "uint8_t", + "array_length": 6, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "destports", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12670,7 +12845,7 @@ "enum_value": null }, { - "name": "ing_port", + "name": "enfport", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12678,7 +12853,7 @@ "enum_value": null }, { - "name": "do_not_learn", + "name": "learnedEntry", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12686,7 +12861,7 @@ "enum_value": null }, { - "name": "use_dest_ports", + "name": "pad1", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12694,7 +12869,7 @@ "enum_value": null }, { - "name": "destports", + "name": "pad2", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12702,7 +12877,7 @@ "enum_value": null }, { - "name": "pad", + "name": "pad3", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12713,87 +12888,90 @@ }, { "names": [ - "SPluto_GeneralParams_s", - "SPluto_GeneralParams" + "SPluto_L2AddressLookupParams_s", + "SPluto_L2AddressLookupParams" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "mac_fltres1", - "data_type": "uint64_t", + "name": "maxage", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "mac_fltres0", - "data_type": "uint64_t", + "name": "dyn_tbsz", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "mac_flt1", - "data_type": "uint64_t", + "name": "poly", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "mac_flt0", - "data_type": "uint64_t", + "name": "shared_learn", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "vlmarker", - "data_type": "uint32_t", + "name": "no_enf_hostprt", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "vlmask", - "data_type": "uint32_t", + "name": "no_mgmt_learn", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "tpid", - "data_type": "uint16_t", + "name": "pad", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - }, + } + ] + }, + { + "names": [ + "SPluto_L2ForwardingParams_s", + "SPluto_L2ForwardingParams" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ { - "name": "tpid2", + "name": "part_spc", "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vllupformat", - "data_type": "uint8_t", - "array_length": 0, + "array_length": 8, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "mirr_ptacu", + "name": "max_dynp", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -12801,14 +12979,528 @@ "enum_value": null }, { - "name": "switchid", + "name": "pad", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - }, - { + } + ] + }, + { + "names": [ + "SPluto_L2ForwardingEntry_s", + "SPluto_L2ForwardingEntry" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "vlan_pmap", + "data_type": "uint8_t", + "array_length": 8, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "bc_domain", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "reach_port", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "fl_domain", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pad", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "SPluto_L2Policing_s", + "SPluto_L2Policing" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "smax", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "rate", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "maxlen", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "sharindx", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "partition", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "SPluto_VlanLookup_s", + "SPluto_VlanLookup" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "vlanid", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ving_mirr", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vegr_mirr", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vmemb_port", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vlan_bc", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "tag_port", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pad", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "SPluto_MacConfig_s", + "SPluto_MacConfig" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "top", + "data_type": "uint16_t", + "array_length": 8, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "base", + "data_type": "uint16_t", + "array_length": 8, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "tp_delin", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "tp_delout", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vlanid", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "enabled", + "data_type": "uint8_t", + "array_length": 8, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ifg", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "speed", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "maxage", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vlanprio", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ing_mirr", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "egr_mirr", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "drpnona664", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "drpdtag", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "drpuntag", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "retag", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "dyn_learn", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "egress", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ingress", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pad", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "SPluto_RetaggingEntry_s", + "SPluto_RetaggingEntry" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "vlan_egr", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vlan_ing", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "egr_port", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ing_port", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "do_not_learn", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "use_dest_ports", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "destports", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pad", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "SPluto_GeneralParams_s", + "SPluto_GeneralParams" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "mac_fltres1", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mac_fltres0", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mac_flt1", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mac_flt0", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vlmarker", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vlmask", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "tpid", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "tpid2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vllupformat", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mirr_ptacu", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "switchid", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { "name": "hostprio", "data_type": "uint8_t", "array_length": 0, @@ -15854,6 +16546,172 @@ } ] }, + { + "names": [ + "CMP_NETWORK_DATA" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "bStreamEnabled", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "EthModule", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 2, + "is_enum": false, + "enum_value": null + }, + { + "name": "bControlEnabled", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "spare", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 4, + "is_enum": false, + "enum_value": null + }, + { + "name": "streamId", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "dstMac", + "data_type": "uint8_t", + "array_length": 6, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "network_enables" + ], + "data_type": "Union", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "word", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [], + "data_type": "Struct", + "packing": 2, + "is_anonymous": true, + "members": [ + { + "name": "network_enables", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_3", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_4", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + } + ] + }, + { + "name": "network_enables_2", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "CMP_GLOBAL_DATA" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "cmp_enabled", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "sparebits", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 7, + "is_enum": false, + "enum_value": null + }, + { + "name": "spare", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cmp_device_id", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [ "_SRed2Settings", @@ -16386,6 +17244,22 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "cmp_global_data", + "data_type": "CMP_GLOBAL_DATA", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cmp_stream_data", + "data_type": "CMP_NETWORK_DATA", + "array_length": 10, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] }, @@ -17223,6 +18097,22 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "cmp_global_data", + "data_type": "CMP_GLOBAL_DATA", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cmp_stream_data", + "data_type": "CMP_NETWORK_DATA", + "array_length": 10, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] }, @@ -17910,7 +18800,23 @@ "enum_value": null }, { - "name": "flex_mode", + "name": "flex_mode", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "flex_termination", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_tester_pullup_enable", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -17918,17 +18824,17 @@ "enum_value": null }, { - "name": "flex_termination", - "data_type": "uint16_t", + "name": "cmp_global_data", + "data_type": "CMP_GLOBAL_DATA", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, + "name": "cmp_stream_data", + "data_type": "CMP_NETWORK_DATA", + "array_length": 10, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -18865,67 +19771,312 @@ "is_anonymous": false, "members": [ { - "name": "port_a", - "data_type": "sSPI_PORT_SETTING", + "name": "port_a", + "data_type": "sSPI_PORT_SETTING", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "port_b", + "data_type": "sSPI_PORT_SETTING", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "WBMSGatewaySettings" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "wbms1_network", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "wbms1_canfd_enable", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "wbms2_network", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "wbms2_canfd_enable", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint16_t", + "array_length": 6, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "_SRADBMSSettings", + "SRADBMSSettings" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "perf_en", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "termination_enables", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can1", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd1", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can2", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd2", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_3", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableLatencyTest", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enablePcEthernetComm", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 29, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "name": "ethernet", + "data_type": "ETHERNET_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethernet2", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_timeout", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_enable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enabled_on_boot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "rsvd", + "data_type": "uint8_t", + "array_length": 10, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "spi_config", + "data_type": "sSPI_PORT_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "port_b", - "data_type": "sSPI_PORT_SETTING", + "name": "wbms_wil_1", + "data_type": "sWIL_CONNECTION_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, - { - "names": [ - "WBMSGatewaySettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ + }, { - "name": "wbms1_network", - "data_type": "uint8_t", + "name": "wbms_wil_2", + "data_type": "sWIL_CONNECTION_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wbms1_canfd_enable", - "data_type": "uint8_t", + "name": "wil1_nwk_metadata_buff_count", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wbms2_network", - "data_type": "uint8_t", + "name": "wil2_nwk_metadata_buff_count", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wbms2_canfd_enable", - "data_type": "uint8_t", + "name": "gateway", + "data_type": "WBMSGatewaySettings", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "reserved", + "name": "network_enables_4", "data_type": "uint16_t", - "array_length": 6, + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_5", + "data_type": "uint64_t", + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -18934,13 +20085,21 @@ }, { "names": [ - "_SRADBMSSettings", - "SRADBMSSettings" + "_SRADCometSettings", + "SRADCometSettings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ + { + "name": "ecu_id", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "perf_en", "data_type": "uint16_t", @@ -18950,8 +20109,42 @@ "enum_value": null }, { - "name": "termination_enables", - "data_type": "uint64_t", + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "hwComLatencyTestEn", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 14, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "name": "network_enabled_on_boot", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -18990,15 +20183,15 @@ "enum_value": null }, { - "name": "network_enables", - "data_type": "uint16_t", + "name": "iso9141_kwp_settings_1", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables_2", + "name": "iso_parity_1", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -19006,74 +20199,98 @@ "enum_value": null }, { - "name": "network_enables_3", + "name": "iso_msg_termination_1", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, { "names": [ - "flags" + "network_enables" ], - "data_type": "Struct", + "data_type": "Union", "packing": 2, "is_anonymous": false, "members": [ { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", + "name": "word", + "data_type": "uint64_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null + "names": [], + "data_type": "Struct", + "packing": 2, + "is_anonymous": true, + "members": [ + { + "name": "network_enables", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_3", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_4", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] } ] }, { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", + "name": "termination_enables", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", + "name": "timeSyncSettings", + "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "reporting", + "data_type": "RAD_REPORTING_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -19096,80 +20313,112 @@ "enum_value": null }, { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", + "name": "gPTP", + "data_type": "RAD_GPTP_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 10, + "name": "text_api", + "data_type": "STextAPISettings", + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "spi_config", - "data_type": "sSPI_PORT_SETTINGS", + "name": "ethernet", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "opEthGen", + "data_type": "OP_ETH_GENERAL_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "opEth1", + "data_type": "OP_ETH_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s1", + "data_type": "ETHERNET_SETTINGS2", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wbms_wil_1", - "data_type": "sWIL_CONNECTION_SETTINGS", + "name": "t1s1", + "data_type": "ETHERNET10T1S_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wbms_wil_2", - "data_type": "sWIL_CONNECTION_SETTINGS", + "name": "ethT1s2", + "data_type": "ETHERNET_SETTINGS2", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wil1_nwk_metadata_buff_count", - "data_type": "uint16_t", + "name": "t1s2", + "data_type": "ETHERNET10T1S_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wil2_nwk_metadata_buff_count", - "data_type": "uint16_t", + "name": "network_enables_5", + "data_type": "uint64_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "gateway", - "data_type": "WBMSGatewaySettings", + "name": "lin1", + "data_type": "LIN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables_4", - "data_type": "uint16_t", + "name": "t1s1Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "network_enables_5", - "data_type": "uint64_t", + "name": "t1s2Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -19179,8 +20428,8 @@ }, { "names": [ - "_SRADCometSettings", - "SRADCometSettings" + "_SRADComet3Settings", + "SRADComet3Settings" ], "data_type": "Struct", "packing": 2, @@ -19301,62 +20550,20 @@ "enum_value": null }, { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] + "name": "network_enables", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null }, { "name": "termination_enables", @@ -19487,8 +20694,64 @@ "enum_value": null }, { - "name": "network_enables_5", - "data_type": "uint64_t", + "name": "ethT1s3", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s3", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s4", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s4", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s5", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s5", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s6", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s6", + "data_type": "ETHERNET10T1S_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -19501,6 +20764,54 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "t1s1Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s2Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s3Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s4Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s5Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s6Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] }, @@ -19783,6 +21094,14 @@ "is_enum": false, "enum_value": null }, + { + "name": "radGalaxy2", + "data_type": "SRADGalaxy2Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "jupiter", "data_type": "SRADJupiterSettings", @@ -19870,6 +21189,14 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "radcomet3", + "data_type": "SRADComet3Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] } @@ -20148,6 +21475,14 @@ "is_enum": false, "enum_value": null }, + { + "name": "radGalaxy2", + "data_type": "SRADGalaxy2Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "jupiter", "data_type": "SRADJupiterSettings", @@ -20235,6 +21570,14 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "radcomet3", + "data_type": "SRADComet3Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] } @@ -23305,7 +24648,7 @@ { "name": "ethernetStatus", "data_type": "ethernetNetworkStatus_t", - "array_length": 19, + "array_length": 9, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -23729,56 +25072,5 @@ ] } ] - }, - { - "names": [ - "_FlashAccessoryFirmwareParams", - "FlashAccessoryFirmwareParams" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "apiVersion", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "size", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "data", - "data_type": "uint8_t*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "dataSize", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] } ] \ No newline at end of file diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index cf3238019..cf4d4672a 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -1,65 +1,547 @@ -#pragma pack(push, 8) -#pragma warning(push) -#pragma warning(disable : 4514 4820) -typedef unsigned __int64 uintptr_t; -typedef char* va_list; -void __cdecl __va_start(va_list*, ...); -#pragma warning(pop) -#pragma pack(pop) - -#pragma warning(push) -#pragma warning(disable : 4514 4820) -#pragma pack(push, 8) -typedef unsigned __int64 size_t; -typedef __int64 ptrdiff_t; -typedef __int64 intptr_t; -typedef _Bool __vcrt_bool; -typedef unsigned short wchar_t; -void __cdecl __security_init_cookie(void); -void __cdecl __security_check_cookie(uintptr_t _StackCookie); -__declspec(noreturn) void __cdecl __report_gsfailure(uintptr_t _StackCookie); - -extern uintptr_t __security_cookie; - -#pragma pack(pop) - -#pragma warning(pop) - -#pragma warning(push) -#pragma warning(disable : 4514 4820) - +/* +Copyright (c) 2016 Intrepid Control Systems, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _ICSNVC40_H +#define _ICSNVC40_H + +#if defined(_MSC_VER) && (_MSC_VER <= 1500) +// Visual studio has extremely poor support for C99 pre-2010 typedef signed char int8_t; typedef short int16_t; typedef int int32_t; -typedef long long int64_t; +typedef __int64 int64_t; + typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; -typedef unsigned long long uint64_t; - -typedef signed char int_least8_t; -typedef short int_least16_t; -typedef int int_least32_t; -typedef long long int_least64_t; -typedef unsigned char uint_least8_t; -typedef unsigned short uint_least16_t; -typedef unsigned int uint_least32_t; -typedef unsigned long long uint_least64_t; - -typedef signed char int_fast8_t; -typedef int int_fast16_t; -typedef int int_fast32_t; -typedef long long int_fast64_t; -typedef unsigned char uint_fast8_t; -typedef unsigned int uint_fast16_t; -typedef unsigned int uint_fast32_t; -typedef unsigned long long uint_fast64_t; - -typedef long long intmax_t; -typedef unsigned long long uintmax_t; -#pragma warning(pop) +typedef unsigned __int64 uint64_t; +#else +#include +#endif +#if defined(_MSC_VER) #pragma warning(disable : 4200) +#endif + +// MSVC++ 10.0 _MSC_VER == 1600 64-bit version doesn't allow multi-line #if directives... +#if defined(_WIN64) || defined(__x86_64__) || defined(__aarch64__) || defined(__x86_64__) || defined(__LP64__) || defined(_M_AMD64) || defined(_M_IA64) || defined(__PPC64__) +#define IS_64BIT_SYSTEM +#endif + +/* OpenPort "OpenType" Argument Constants -- deprecated, use OpenNeoDevice */ +#define NEOVI_COMMTYPE_RS232 0 +#define NEOVI_COMMTYPE_USB_BULK 1 +#define NEOVI_COMMTYPE_TCPIP 3 +#define NEOVI_COMMTYPE_FIRE_USB 5 + +/* Network IDs -- value of NetworkID member of icsSpyMessage */ +#define NETID_DEVICE 0 +#define NETID_HSCAN 1 +#define NETID_MSCAN 2 +#define NETID_SWCAN 3 +#define NETID_LSFTCAN 4 +#define NETID_FORDSCP 5 +#define NETID_J1708 6 +#define NETID_AUX 7 +#define NETID_JVPW 8 +#define NETID_ISO 9 +#define NETID_ISOPIC 10 +#define NETID_MAIN51 11 +#define NETID_RED 12 +#define NETID_SCI 13 +#define NETID_ISO2 14 +#define NETID_ISO14230 15 +#define NETID_LIN 16 +#define NETID_OP_ETHERNET1 17 +#define NETID_OP_ETHERNET2 18 +#define NETID_OP_ETHERNET3 19 +#define NETID_ISO3 41 +#define NETID_HSCAN2 42 +#define NETID_HSCAN3 44 +#define NETID_OP_ETHERNET4 45 +#define NETID_OP_ETHERNET5 46 +#define NETID_ISO4 47 +#define NETID_LIN2 48 +#define NETID_LIN3 49 +#define NETID_LIN4 50 +#define NETID_MOST 51 +#define NETID_RED_APP_ERROR 52 +#define NETID_CGI 53 +#define NETID_3G_RESET_STATUS 54 +#define NETID_3G_FB_STATUS 55 +#define NETID_3G_APP_SIGNAL_STATUS 56 +#define NETID_3G_READ_DATALINK_CM_TX_MSG 57 +#define NETID_3G_READ_DATALINK_CM_RX_MSG 58 +#define NETID_3G_LOGGING_OVERFLOW 59 +#define NETID_3G_READ_SETTINGS_EX 60 +#define NETID_HSCAN4 61 +#define NETID_HSCAN5 62 +#define NETID_RS232 63 +#define NETID_UART 64 +#define NETID_UART2 65 +#define NETID_UART3 66 +#define NETID_UART4 67 +#define NETID_SWCAN2 68 +#define NETID_ETHERNET_DAQ 69 +#define NETID_DATA_TO_HOST 70 +#define NETID_TEXTAPI_TO_HOST 71 +#define NETID_SPI1 72 +#define NETID_OP_ETHERNET6 73 +#define NETID_RED_VBAT 74 +#define NETID_OP_ETHERNET7 75 +#define NETID_OP_ETHERNET8 76 +#define NETID_OP_ETHERNET9 77 +#define NETID_OP_ETHERNET10 78 +#define NETID_OP_ETHERNET11 79 +#define NETID_FLEXRAY1A 80 +#define NETID_FLEXRAY1B 81 +#define NETID_FLEXRAY2A 82 +#define NETID_FLEXRAY2B 83 +#define NETID_LIN5 84 +#define NETID_FLEXRAY 85 +#define NETID_FLEXRAY2 86 +#define NETID_OP_ETHERNET12 87 +#define NETID_I2C1 88 +#define NETID_MOST25 90 +#define NETID_MOST50 91 +#define NETID_MOST150 92 +#define NETID_ETHERNET 93 +#define NETID_GMFSA 94 +#define NETID_TCP 95 +#define NETID_HSCAN6 96 +#define NETID_HSCAN7 97 +#define NETID_LIN6 98 +#define NETID_LSFTCAN2 99 +/** + * To the next person to add a network, please make it 523! + */ +#define NETID_HW_COM_LATENCY_TEST 512 +#define NETID_DEVICE_STATUS 513 +#define NETID_UDP 514 +#define NETID_AUTOSAR 515 +#define NETID_FORWARDED_MESSAGE 516 +#define NETID_I2C2 517 +#define NETID_I2C3 518 +#define NETID_I2C4 519 +#define NETID_ETHERNET2 520 +#define NETID_ETHERNET_TX_WRAP 521 +#define NETID_A2B_01 522 +#define NETID_A2B_02 523 +#define NETID_ETHERNET3 524 +#define NETID_ISM_LOGGER 525 +#define NETID_CAN_SWITCH 526 + +#define NETID_WBMS 532 +#define NETID_WBMS2 533 +#define NETID_DWCAN_09 534 +#define NETID_DWCAN_10 535 +#define NETID_DWCAN_11 536 +#define NETID_DWCAN_12 537 +#define NETID_DWCAN_13 538 +#define NETID_DWCAN_14 539 +#define NETID_DWCAN_15 540 +#define NETID_DWCAN_16 541 +#define NETID_LIN_07 542 +#define NETID_LIN_08 543 +#define NETID_SPI2 544 +#define NETID_MDIO_01 545 +#define NETID_MDIO_02 546 +#define NETID_MDIO_03 547 +#define NETID_MDIO_04 548 +#define NETID_MDIO_05 549 +#define NETID_MDIO_06 550 +#define NETID_MDIO_07 551 +#define NETID_MDIO_08 552 +#define NETID_OP_ETHERNET13 553 +#define NETID_OP_ETHERNET14 554 +#define NETID_OP_ETHERNET15 555 +#define NETID_OP_ETHERNET16 556 +#define NETID_SPI3 557 +#define NETID_SPI4 558 +#define NETID_SPI5 559 +#define NETID_SPI6 560 + +/* Upper boundry of Network IDs */ +#define NETID_MAX 100 +#define NETID_INVALID 0xffff + +/* Device types -- value of DeviceType of NeoDevice */ +/* Older devices have a value on a specific bit. Those values have not changed + * to support existing apps using the api. New devices can fill in between the + * existing ones. I know it hurts, but it's just a number! + */ +//clang-format off +#define NEODEVICE_UNKNOWN (0x00000000) +#define NEODEVICE_BLUE (0x00000001) +#define NEODEVICE_ECU_AVB (0x00000002) +#define NEODEVICE_RADSUPERMOON (0x00000003) +#define NEODEVICE_DW_VCAN (0x00000004) +#define NEODEVICE_RADMOON2 (0x00000005) +#define NEODEVICE_RADGIGALOG (0x00000006) /* AKA RADMARS */ +#define NEODEVICE_VCAN41 (0x00000007) +#define NEODEVICE_FIRE (0x00000008) +#define NEODEVICE_RADPLUTO (0x00000009) +#define NEODEVICE_VCAN42_EL (0x0000000a) +#define NEODEVICE_RADIO_CANHUB (0x0000000b) +#define NEODEVICE_NEOECU12 (0x0000000c) +#define NEODEVICE_OBD2_LC (0x0000000d) +#define NEODEVICE_RAD_MOON_DUO (0x0000000e) +#define NEODEVICE_FIRE3 (0x0000000f) +#define NEODEVICE_VCAN3 (0x00000010) +#define NEODEVICE_RADJUPITER (0x00000011) +#define NEODEVICE_VCAN4_IND (0x00000012) +#define NEODEVICE_GIGASTAR (0x00000013) +#define NEODEVICE_RED2 (0x00000014) +#define NEODEVICE_FIRE2_REDLINE (0x00000015) +#define NEODEVICE_ETHER_BADGE (0x00000016) +#define NEODEVICE_RAD_A2B (0x00000017) +#define NEODEVICE_RADEPSILON (0x00000018) +#define NEODEVICE_OBD2_SIM_DOIP (0x00000019) +#define NEODEVICE_OBD2_DEV (0x0000001a) +#define NEODEVICE_ECU22 (0x0000001b) +#define NEODEVICE_RADEPSILON_T (0x0000001c) +#define NEODEVICE_RADEPSILON_EXPRESS (0x0000001d) +#define NEODEVICE_RADPROXIMA (0x0000001e) + +// I'm not sure what was 0x20 anymore, but we'll skip it to be safe +#define NEODEVICE_RAD_GALAXY_2 (0x00000021) +#define NEODEVICE_RAD_BMS (0x00000022) +#define NEODEVICE_RADMOON3 (0x00000023) +#define NEODEVICE_RADCOMET (0x00000024) +#define NEODEVICE_FIRE3_FLEXRAY (0x00000025) +#define NEODEVICE_RED2_OEM (0x00000026) +#define NEODEVICE_RADCOMET3 (0x00000027) +#define NEODEVICE_RED (0x00000040) +#define NEODEVICE_ECU (0x00000080) +#define NEODEVICE_IEVB (0x00000100) +#define NEODEVICE_PENDANT (0x00000200) +#define NEODEVICE_OBD2_PRO (0x00000400) +#define NEODEVICE_ECUCHIP_UART (0x00000800) +#define NEODEVICE_PLASMA (0x00001000) +#define NEODEVICE_DONT_REUSE0 (0x00002000) // NEODEVICE_FIRE_VNET +#define NEODEVICE_NEOANALOG (0x00004000) +#define NEODEVICE_CT_OBD (0x00008000) +#define NEODEVICE_DONT_REUSE1 (0x00010000) // NEODEVICE_PLASMA_1_12 +#define NEODEVICE_DONT_REUSE2 (0x00020000) // NEODEVICE_PLASMA_1_13 +#define NEODEVICE_ION (0x00040000) +#define NEODEVICE_RADSTAR (0x00080000) +#define NEODEVICE_DONT_REUSE3 (0x00100000) // NEODEVICE_ION3 +#define NEODEVICE_VCAN44 (0x00200000) +#define NEODEVICE_VCAN42 (0x00400000) +#define NEODEVICE_CMPROBE (0x00800000) +#define NEODEVICE_EEVB (0x01000000) +#define NEODEVICE_VCANRF (0x02000000) +#define NEODEVICE_FIRE2 (0x04000000) +#define NEODEVICE_FLEX (0x08000000) +#define NEODEVICE_RADGALAXY (0x10000000) +#define NEODEVICE_RADSTAR2 (0x20000000) +#define NEODEVICE_VIVIDCAN (0x40000000) +#define NEODEVICE_OBD2_SIM (0x80000000) +#define NEODEVICE_ANY_PLASMA (NEODEVICE_PLASMA) +#define NEODEVICE_ANY_ION (NEODEVICE_ION) +#define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB +//clang-format on + +#define DEVICECOUNT_FOR_EXPLORER (48) // this value will be checked by the NeoViExplorer after #6453! + +#define ISO15765_2_NETWORK_HSCAN 0x01 +#define ISO15765_2_NETWORK_MSCAN 0x02 +#define ISO15765_2_NETWORK_HSCAN2 0x04 +#define ISO15765_2_NETWORK_HSCAN3 0x08 +#define ISO15765_2_NETWORK_SWCAN 0x10 +#define ISO15765_2_NETWORK_HSCAN4 0x14 +#define ISO15765_2_NETWORK_HSCAN5 0x18 +#define ISO15765_2_NETWORK_HSCAN6 0x1C +#define ISO15765_2_NETWORK_HSCAN7 0x20 +#define ISO15765_2_NETWORK_SWCAN2 0x24 + +#define PLASMA_SLAVE1_OFFSET 100 +#define PLASMA_SLAVE2_OFFSET 200 +#define PLASMA_SLAVE_NUM 51 + +#define PLASMA_SLAVE1_OFFSET_RANGE2 4608 +#define PLASMA_SLAVE2_OFFSET_RANGE2 8704 +#define PLASMA_SLAVE3_OFFSET_RANGE2 12800 + +#define SCRIPT_STATUS_STOPPED 0 +#define SCRIPT_STATUS_RUNNING 1 + +#define SCRIPT_LOCATION_FLASH_MEM 0 +#define SCRIPT_LOCATION_INTERNAL_FLASH 2 +#define SCRIPT_LOCATION_SDCARD 1 +#define SCRIPT_LOCATION_VCAN3_MEM 4 +#define SCRIPT_LOCATION_EMMC 6 + +/* Protocols -- value of Protocol member of icsSpyMessage */ +#define SPY_PROTOCOL_CUSTOM 0 +#define SPY_PROTOCOL_CAN 1 +#define SPY_PROTOCOL_GMLAN 2 +#define SPY_PROTOCOL_J1850VPW 3 +#define SPY_PROTOCOL_J1850PWM 4 +#define SPY_PROTOCOL_ISO9141 5 +#define SPY_PROTOCOL_Keyword2000 6 +#define SPY_PROTOCOL_GM_ALDL_UART 7 +#define SPY_PROTOCOL_CHRYSLER_CCD 8 +#define SPY_PROTOCOL_CHRYSLER_SCI 9 +#define SPY_PROTOCOL_FORD_UBP 10 +#define SPY_PROTOCOL_BEAN 11 +#define SPY_PROTOCOL_LIN 12 +#define SPY_PROTOCOL_J1708 13 +#define SPY_PROTOCOL_CHRYSLER_JVPW 14 +#define SPY_PROTOCOL_J1939 15 +#define SPY_PROTOCOL_FLEXRAY 16 +#define SPY_PROTOCOL_MOST 17 +#define SPY_PROTOCOL_CGI 18 +#define SPY_PROTOCOL_GME_CIM_SCL_KLINE 19 +#define SPY_PROTOCOL_SPI 20 +#define SPY_PROTOCOL_I2C 21 +#define SPY_PROTOCOL_GENERIC_UART 22 +#define SPY_PROTOCOL_JTAG 23 +#define SPY_PROTOCOL_UNIO 24 +#define SPY_PROTOCOL_DALLAS_1WIRE 25 +#define SPY_PROTOCOL_GENERIC_MANCHSESTER 26 +#define SPY_PROTOCOL_SENT_PROTOCOL 27 +#define SPY_PROTOCOL_UART 28 +#define SPY_PROTOCOL_ETHERNET 29 +#define SPY_PROTOCOL_CANFD 30 +#define SPY_PROTOCOL_GMFSA 31 +#define SPY_PROTOCOL_TCP 32 +#define SPY_PROTOCOL_UDP 33 +#define SPY_PROTOCOL_AUTOSAR 34 +#define SPY_PROTOCOL_A2B 35 +#define SPY_PROTOCOL_WBMS 36 +#define SPY_PROTOCOL_MDIO 37 + +/* Bitmasks for StatusBitField member of icsSpyMessage */ +#define SPY_STATUS_GLOBAL_ERR 0x01 +#define SPY_STATUS_TX_MSG 0x02 +#define SPY_STATUS_XTD_FRAME 0x04 +#define SPY_STATUS_REMOTE_FRAME 0x08 +#define SPY_STATUS_CRC_ERROR 0x10 +#define SPY_STATUS_CAN_ERROR_PASSIVE 0x20 +#define SPY_STATUS_HEADERCRC_ERROR 0x20 +#define SPY_STATUS_INCOMPLETE_FRAME 0x40 +#define SPY_STATUS_LOST_ARBITRATION 0x80 +#define SPY_STATUS_UNDEFINED_ERROR 0x100 +#define SPY_STATUS_CAN_BUS_OFF 0x200 +#define SPY_STATUS_BUS_RECOVERED 0x400 +#define SPY_STATUS_BUS_SHORTED_PLUS 0x800 +#define SPY_STATUS_BUS_SHORTED_GND 0x1000 +#define SPY_STATUS_CHECKSUM_ERROR 0x2000 +#define SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR 0x4000 +#define SPY_STATUS_TX_NOMATCH 0x8000 +#define SPY_STATUS_COMM_IN_OVERFLOW 0x10000 +#define SPY_STATUS_EXPECTED_LEN_MISMATCH 0x20000 +#define SPY_STATUS_MSG_NO_MATCH 0x40000 +#define SPY_STATUS_BREAK 0x80000 +#define SPY_STATUS_AVSI_REC_OVERFLOW 0x100000 +#define SPY_STATUS_TEST_TRIGGER 0x200000 +#define SPY_STATUS_AUDIO_COMMENT 0x400000 +#define SPY_STATUS_GPS_DATA 0x800000 +#define SPY_STATUS_ANALOG_DIGITAL_INPUT 0x1000000 +#define SPY_STATUS_TEXT_COMMENT 0x2000000 +#define SPY_STATUS_NETWORK_MESSAGE_TYPE 0x4000000 +#define SPY_STATUS_VSI_TX_UNDERRUN 0x8000000 +#define SPY_STATUS_VSI_IFR_CRC_BIT 0x10000000 +#define SPY_STATUS_INIT_MESSAGE 0x20000000 +#define SPY_STATUS_LIN_MASTER 0x20000000 +#define SPY_STATUS_CANFD 0x20000000 +#define SPY_STATUS_A2B_CONTROL 0x10000000 +#define SPY_STATUS_A2B_SCF_VALID_WAITING 0x08 +#define SPY_STATUS_A2B_MONITOR 0x20000000 +#define SPY_STATUS_A2B_UPSTREAM 0x40000000 +#define SPY_STATUS_PDU 0x10000000 +#define SPY_STATUS_FLEXRAY_PDU SPY_STATUS_PDU +#define SPY_STATUS_HIGH_SPEED 0x40000000 +#define SPY_STATUS_EXTENDED 0x80000000 /* if this bit is set than decode StatusBitField3 in AckBytes */ +#define SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET 0x40000000 +#define SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT 0x08 + +/* Bitmasks for StatusBitField2 member of icsSpyMessage */ +#define SPY_STATUS2_HAS_VALUE 0x1 +#define SPY_STATUS2_VALUE_IS_BOOLEAN 0x2 +#define SPY_STATUS2_HIGH_VOLTAGE 0x4 +#define SPY_STATUS2_LONG_MESSAGE 0x8 +#define SPY_STATUS2_GLOBAL_CHANGE 0x10000 +#define SPY_STATUS2_ERROR_FRAME 0x20000 +#define SPY_STATUS2_END_OF_LONG_MESSAGE 0x100000 + +/* I2C Specific - check protocol before handling */ +#define SPY_STATUS2_I2C_ERR_TIMEOUT 0x200000 +#define SPY_STATUS2_I2C_ERR_NACK 0x400000 +#define SPY_STATUS2_I2C_DIR_READ 0x800000 + +/* MDIO Specific - check protocol before handling */ +#define SPY_STATUS2_MDIO_ERR_TIMEOUT 0x200000 +#define SPY_STATUS2_MDIO_JOB_CANCELLED 0x400000 +#define SPY_STATUS2_MDIO_INVALID_BUS 0x800000 +#define SPY_STATUS2_MDIO_INVALID_PHYADDR 0x1000000 +#define SPY_STATUS2_MDIO_INVALID_REGADDR 0x2000000 +#define SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE 0x4000000 +#define SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE 0x8000000 +#define SPY_STATUS2_MDIO_OVERFLOW 0x10000000 +#define SPY_STATUS2_MDIO_CLAUSE45 0x20000000 +#define SPY_STATUS2_MDIO_READ 0x40000000 + +/* LIN/ISO Specific - check protocol before handling */ +#define SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 0x200000 +#define SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT 0x400000 +#define SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 0x800000 +#define SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 0x1000000 +#define SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH 0x2000000 +#define SPY_STATUS2_LIN_ERR_MSG_ID_PARITY 0x4000000 +#define SPY_STATUS2_ISO_FRAME_ERROR 0x8000000 +#define SPY_STATUS2_LIN_SYNC_FRAME_ERROR 0x8000000 +#define SPY_STATUS2_ISO_OVERFLOW_ERROR 0x10000000 +#define SPY_STATUS2_LIN_ID_FRAME_ERROR 0x10000000 +#define SPY_STATUS2_ISO_PARITY_ERROR 0x20000000 +#define SPY_STATUS2_LIN_SLAVE_BYTE_ERROR 0x20000000 +#define SPY_STATUS2_RX_TIMEOUT_ERROR 0x40000000 +#define SPY_STATUS2_LIN_NO_SLAVE_DATA 0x80000000 +#define SPY_STATUS3_LIN_JUST_BREAK_SYNC 0x1 +#define SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT 0x2 +#define SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE 0x4 + +/* MOST Specific - check protocol before handling */ +#define SPY_STATUS2_MOST_PACKET_DATA 0x200000 +#define SPY_STATUS2_MOST_STATUS 0x400000 /* reflects changes in light/lock/MPR/SBC/etc... */ +#define SPY_STATUS2_MOST_LOW_LEVEL 0x800000 /* MOST low level message, allocs, deallocs, remote requests...*/ +#define SPY_STATUS2_MOST_CONTROL_DATA 0x1000000 +#define SPY_STATUS2_MOST_MHP_USER_DATA 0x2000000 /* MOST HIGH User Data Frame */ +#define SPY_STATUS2_MOST_MHP_CONTROL_DATA 0x4000000 /* MOST HIGH Control Data */ +#define SPY_STATUS2_MOST_I2S_DUMP 0x8000000 +#define SPY_STATUS2_MOST_TOO_SHORT 0x10000000 +#define SPY_STATUS2_MOST_MOST50 0x20000000 /* absence of MOST50 and MOST150 implies it's MOST25 */ +#define SPY_STATUS2_MOST_MOST150 0x40000000 +#define SPY_STATUS2_MOST_CHANGED_PAR 0x80000000 /* first byte in ack reflects what changed. */ + +/* Ethernet Specific - check protocol before handling */ +#define SPY_STATUS2_ETHERNET_CRC_ERROR 0x200000 +#define SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT 0x400000 +#define SPY_STATUS2_ETHERNET_FCS_AVAILABLE 0x800000 /* This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR) */ +#define SPY_STATUS2_ETHERNET_NO_PADDING 0x1000000 +#define SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED 0x2000000 +#define SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS 0x4000000 +#define SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED 0x8000000 +#define SPY_STATUS2_ETHERNET_FCS_VERIFIED 0x10000000 +#define SPY_STATUS2_ETHERNET_T1S_SYMBOL 0x20000000 +#define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 +#define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 +#define SPY_STATUS3_ETHERNET_TX_COLLISION 0x00000001 + +/* FlexRay Specific - check protocol before handling */ +#define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_A 0x400000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_B 0x800000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH 0x1000000 +#define SPY_STATUS2_FLEXRAY_NO_CRC 0x2000000 +#define SPY_STATUS2_FLEXRAY_NO_HEADERCRC 0x4000000 + +/* CAN/CAN-FD Specific - check protocol before handling */ +#define SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME 0x200000 +#define SPY_STATUS2_CAN_HAVE_LINK_DATA 0x400000 + +/* wBMS Specific - check protocol before handling */ +#define SPY_STATUS2_WBMS_API_IS_CALLBACK 0x200000 + +/* CAN-FD Specific - check protocol before handling */ +#define SPY_STATUS3_CANFD_ESI 0x01 +#define SPY_STATUS3_CANFD_IDE 0x02 +#define SPY_STATUS3_CANFD_RTR 0x04 +#define SPY_STATUS3_CANFD_FDF 0x08 +#define SPY_STATUS3_CANFD_BRS 0x10 + +/* Configuration Array constants */ +/* HSCAN neoVI or ValueCAN */ +#define NEO_CFG_MPIC_HS_CAN_CNF1 (512 + 10) +#define NEO_CFG_MPIC_HS_CAN_CNF2 (512 + 9) +#define NEO_CFG_MPIC_HS_CAN_CNF3 (512 + 8) +#define NEO_CFG_MPIC_HS_CAN_MODE (512 + 54) + +/* med speed neoVI CAN */ +#define NEO_CFG_MPIC_MS_CAN_CNF1 (512 + 22) +#define NEO_CFG_MPIC_MS_CAN_CNF2 (512 + 21) +#define NEO_CFG_MPIC_MS_CAN_CNF3 (512 + 20) + +/* med speed neoVI CAN */ +#define NEO_CFG_MPIC_SW_CAN_CNF1 (512 + 34) +#define NEO_CFG_MPIC_SW_CAN_CNF2 (512 + 33) +#define NEO_CFG_MPIC_SW_CAN_CNF3 (512 + 32) + +/* med speed neoVI CAN */ +#define NEO_CFG_MPIC_LSFT_CAN_CNF1 (512 + 46) +#define NEO_CFG_MPIC_LSFT_CAN_CNF2 (512 + 45) +#define NEO_CFG_MPIC_LSFT_CAN_CNF3 (512 + 44) + +/* Constants used to calculate timestamps */ +#define NEOVI_TIMESTAMP_2 0.1048576 +#define NEOVI_TIMESTAMP_1 0.0000016 + +#define NEOVIPRO_VCAN_TIMESTAMP_2 0.065536 +#define NEOVIPRO_VCAN_TIMESTAMP_1 0.000001 + +#define NEOVI6_VCAN_TIMESTAMP_2 0.065536 +#define NEOVI6_VCAN_TIMESTAMP_1 0.000001 + +#define NEOVI_RED_TIMESTAMP_2_25NS 107.3741824 +#define NEOVI_RED_TIMESTAMP_1_25NS 0.000000025 + +#define NEOVI_RED_TIMESTAMP_2_10NS 429.4967296 +#define NEOVI_RED_TIMESTAMP_1_10NS 0.000000010 + +#define HARDWARE_TIMESTAMP_ID_NONE (unsigned char)0 +#define HARDWARE_TIMESTAMP_ID_VSI (unsigned char)1 +#define HARDWARE_TIMESTAMP_ID_AVT_716 (unsigned char)2 +#define HARDWARE_TIMESTAMP_ID_NI_CAN (unsigned char)3 +#define HARDWARE_TIMESTAMP_ID_NEOVI (unsigned char)4 +#define HARDWARE_TIMESTAMP_ID_AVT_717 (unsigned char)5 +#define HARDWARE_TIMESTAMP_ID_NEOv6_VCAN (unsigned char)6 +#define HARDWARE_TIMESTAMP_ID_DOUBLE_SEC (unsigned char)7 +#define HARDWARE_TIMESTAMP_ID_NEORED_10US (unsigned char)8 +#define HARDWARE_TIMESTAMP_ID_NEORED_25NS (unsigned char)9 +#define HARDWARE_TIMESTAMP_ID_NEORED_10NS (unsigned char)10 + +// flag to indicate if the timestamp is a fixed value, or if it is a timestamp referenced to a network object +// if this flag is NOT set, then the TimeStampHardwareID is a 1-based index for GetHWAt(index) +// see CMessageTimeDecoder::GetSpyTimeType() +// see cicsSpyCE::GetSpyTimeType() +#define HADRWARE_TIMESTAMP_ID_FIXED 0x80 + +#define FIRE2_REPORT_PERIODIC (0x0001) +#define FIRE2_REPORT_EMISC1_DIGITAL (0x0002) +#define FIRE2_REPORT_EMISC2_DIGITAL (0x0004) +#define FIRE2_REPORT_MISC5_DIGITAL (0x0008) +#define FIRE2_REPORT_MISC6_DIGITAL (0x0010) +#define FIRE2_REPORT_EMISC1_ANALOG (0x0020) +#define FIRE2_REPORT_EMISC2_ANALOG (0x0040) +#define FIRE2_REPORT_VBATT_ANALOG (0x0080) +#define FIRE2_REPORT_TEMP_ANALOG (0x0100) +#define FIRE2_REPORT_PWM_IN (0x0200) +#define FIRE2_REPORT_GPS (0x0400) +#define FIRE3_REPORT_ORIENTATION (0x0800) + typedef struct SExtendedDataFlashHeader { uint16_t version; @@ -84,7 +566,21 @@ typedef struct _NeoDeviceEx uint32_t FirmwareMajor; uint32_t FirmwareMinor; - uint32_t Status; +#define CANNODE_STATUS_COREMINI_IS_RUNNING (0x1) +#define CANNODE_STATUS_IN_BOOTLOADER (0x2) + uint32_t Status; // Bitfield, see defs above + +// Option bit flags +#define MAIN_VNET (0x01) +#define SLAVE_VNET_A (0x02) +#define SLAVE_VNET_B (0x04) +#define WIFI_CONNECTION (0x08) +#define REGISTER_BY_SERIAL (0x10) +#define TCP_SUPPORTED (0x20) +#define DRIVER_MASK (0xC0) +#define DRIVER_USB1 (0x40) +#define DRIVER_USB2 (0x80) +#define DRIVER_USB3 (0xC0) uint32_t Options; void* pAvailWIFINetwork; @@ -106,19 +602,19 @@ typedef union tagOptionsOpenNeoEx { struct { - int32_t iNetworkID; + int32_t iNetworkID; /* Network ID indicating which CAN network to communicate over */ } CANOptions; - uint32_t Reserved[16]; + uint32_t Reserved[16]; /* may be expanded in future revisions */ } OptionsOpenNeoEx, *POptionsOpenNeoEx; typedef union tagOptionsFindNeoEx { struct { - int32_t iNetworkID; + int32_t iNetworkID; /* Network ID indicating which CAN network to communicate over */ } CANOptions; - uint32_t Reserved[16]; + uint32_t Reserved[16]; /* may be expanded in future revisions */ } OptionsFindNeoEx, *POptionsFindNeoEx; @@ -133,8 +629,9 @@ typedef struct tagicsneoVICommand typedef struct _stAPIFirmwareInfo { - int32_t iType; + int32_t iType; /* 1,2,3 for Generation of HW */ + /* Date and Time (only valid for type 1 and 2) */ int32_t iMainFirmDateDay; int32_t iMainFirmDateMonth; int32_t iMainFirmDateYear; @@ -143,6 +640,7 @@ typedef struct _stAPIFirmwareInfo int32_t iMainFirmDateSecond; int32_t iMainFirmChkSum; + /* Version data (only valid for type 3) */ uint8_t iAppMajor; uint8_t iAppMinor; @@ -164,14 +662,17 @@ typedef struct _stAPIFirmwareInfo #pragma pack(pop) +/* Settings structures come are all packed to 2 bytes */ #pragma pack(push, 2) +/* SetBaudrate in CAN_SETTINGS */ enum { AUTO, USE_TQ }; +/* Baudrate in CAN_SETTINGS/CANFD_SETTINGS */ enum { BPS20, @@ -194,6 +695,7 @@ enum CAN_BPS10000, }; +/* Mode in CAN_SETTINGS */ enum { NORMAL = 0, @@ -217,7 +719,9 @@ typedef struct uint8_t auto_baud; uint8_t innerFrameDelay25us; } CAN_SETTINGS; +#define CAN_SETTINGS_SIZE 12 +/* FDMode in CANFD_SETTINGS */ enum { NO_CANFD, @@ -229,7 +733,7 @@ enum typedef struct _CANFD_SETTINGS { - uint8_t FDMode; + uint8_t FDMode; /* mode, secondary baudrate for canfd */ uint8_t FDBaudrate; uint8_t FDTqSeg1; uint8_t FDTqSeg2; @@ -239,7 +743,9 @@ typedef struct _CANFD_SETTINGS uint8_t FDTDC; uint8_t reserved; } CANFD_SETTINGS; +#define CANFD_SETTINGS_SIZE 10 +/* high_speed_auto_switch in SWCAN_SETTINGS */ enum { SWCAN_AUTOSWITCH_DISABLED, @@ -263,7 +769,9 @@ typedef struct uint8_t auto_baud; uint8_t RESERVED; } SWCAN_SETTINGS; +#define SWCAN_SETTINGS_SIZE 14 +/* Baudrate in LIN_SETTINGS / ISO9141_KEYWORD2000_SETTINGS / UART_SETTINGS */ enum { BPS5000, @@ -277,12 +785,14 @@ enum BPS117647 }; +/* MasterResistor in LIN_SETTINGS */ enum { RESISTOR_ON, RESISTOR_OFF }; +/* Mode in LIN_SETTINGS */ enum { SLEEP_MODE, @@ -293,13 +803,14 @@ enum typedef struct _LIN_SETTINGS { - uint32_t Baudrate; - uint16_t spbrg; - uint8_t brgh; + uint32_t Baudrate; /* New products since FIREVNETEP should rely on this only */ + uint16_t spbrg; /* Precompiled to be 40Mhz/Baudrate/16 - 1. Only used in neoVI FIRE/FIREVNET(4dw) */ + uint8_t brgh; /* Must be zero */ uint8_t numBitsDelay; uint8_t MasterResistor; uint8_t Mode; } LIN_SETTINGS; +#define LIN_SETTINGS_SIZE 10 typedef struct { @@ -307,6 +818,7 @@ typedef struct uint16_t k; uint16_t l; } ISO9141_KEYWORD2000__INIT_STEP; +#define ISO9141_KEYWORD2000__INIT_STEP_SIZE 6 typedef struct { @@ -320,6 +832,7 @@ typedef struct uint16_t p4_500us; uint16_t chksum_enabled; } ISO9141_KEYWORD2000_SETTINGS; +#define ISO9141_KEYWORD2000_SETTINGS_SIZE 114 typedef struct _UART_SETTINGS { @@ -328,7 +841,7 @@ typedef struct _UART_SETTINGS uint16_t brgh; uint16_t parity; uint16_t stop_bits; - uint8_t flow_control; + uint8_t flow_control; /* 0- off, 1 - Simple CTS RTS */ uint8_t reserved_1; union { @@ -343,11 +856,13 @@ typedef struct _UART_SETTINGS }; }; } UART_SETTINGS; +#define UART_SETTINGS_SIZE 16 typedef struct { uint16_t enable_convert_mode; } J1708_SETTINGS; +#define J1708_SETTINGS_SIZE 2 typedef struct _SRedSettings { @@ -356,6 +871,7 @@ typedef struct _SRedSettings LIN_SETTINGS lin1; LIN_SETTINGS lin2; } SRedSettings; +#define SRedSettings_SIZE 44 typedef struct _STextAPISettings { @@ -411,6 +927,7 @@ typedef struct _STextAPISettings uint32_t reserved[5]; } STextAPISettings; +#define STextAPISettings_SIZE 72 typedef union _stChipVersions { @@ -553,6 +1070,12 @@ typedef union _stChipVersions uint8_t zynq_core_minor; } radgigastar_usbz_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } radGalaxy2_versions; + struct { uint8_t mchip_major; @@ -640,15 +1163,25 @@ typedef union _stChipVersions uint8_t zynq_core_minor; } rad_comet_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } rad_comet3_versions; + } stChipVersions; +#define stChipVersions_SIZE 8 + typedef struct _SNeoMostGatewaySettings { uint16_t netId; uint8_t zero0; uint8_t Config; } SNeoMostGatewaySettings; +#define SNeoMostGatewaySettings_SIZE 4 +/* ucInterfaceType in OP_ETH_GENERAL_SETTINGS */ enum { OPETH_FUNC_TAP = 0, @@ -662,7 +1195,22 @@ enum typedef struct OP_ETH_GENERAL_SETTINGS_t { uint8_t ucInterfaceType; - uint8_t reserved0[3]; + union + { + uint8_t tapPairOpt; + struct + { + uint8_t tap1ToVspy : 1; + uint8_t tap2ToVspy : 1; + uint8_t tap3ToVspy : 1; + uint8_t tap4ToVspy : 1; + uint8_t tap5ToVspy : 1; + uint8_t tap6ToVspy : 1; + uint8_t tap7ToVspy : 1; + uint8_t tap8ToVspy : 1; + }; + }; + uint8_t reserved0[2]; uint16_t tapPair0; uint16_t tapPair1; uint16_t tapPair2; @@ -682,14 +1230,15 @@ typedef struct OP_ETH_GENERAL_SETTINGS_t uint32_t uFlags; }; } OP_ETH_GENERAL_SETTINGS; +#define OP_ETH_GENERAL_SETTINGS_SIZE 20 typedef struct SRAD_GPTP_SETTINGS_s { - uint32_t neighborPropDelayThresh; - uint32_t sys_phc_sync_interval; - int8_t logPDelayReqInterval; - int8_t logSyncInterval; - int8_t logAnnounceInterval; + uint32_t neighborPropDelayThresh; // ns + uint32_t sys_phc_sync_interval; // ns + int8_t logPDelayReqInterval; // log2ms + int8_t logSyncInterval; // log2ms + int8_t logAnnounceInterval; // log2ms uint8_t profile; uint8_t priority1; uint8_t clockclass; @@ -700,19 +1249,23 @@ typedef struct SRAD_GPTP_SETTINGS_s uint8_t gptpEnabledPort; uint8_t enableClockSyntonization; uint8_t rsvd[15]; -} RAD_GPTP_SETTINGS; +} RAD_GPTP_SETTINGS; // 36 Bytes +#define RAD_GPTP_SETTINGS_SIZE 36 typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s { RAD_GPTP_SETTINGS gPTP; OP_ETH_GENERAL_SETTINGS tap; } RAD_GPTP_AND_TAP_SETTINGS; +#define RAD_GPTP_AND_TAP_SETTINGS_SIZE 40 typedef struct HW_ETH_SETTINGS_t { OP_ETH_GENERAL_SETTINGS General_Settings; } HW_ETH_SETTINGS; +#define HW_ETH_SETTINGS_SIZE 20 +/* ucConfigMode in OP_ETH_SETTINGS */ typedef enum _opEthLinkMode { OPETH_LINK_AUTO = 0, @@ -734,9 +1287,9 @@ typedef struct OP_ETH_SETTINGS_t { struct { - - unsigned char mac_addr1[6]; - unsigned char mac_addr2[6]; + // Reuse the mac_addr for switch mode if required! + unsigned char mac_addr1[6]; // Original Addr for spoofing + unsigned char mac_addr2[6]; // Target Addr for spoofing unsigned short mac_spoofing_en : 1; unsigned short mac_spoofing_isDstOrSrc : 1; unsigned short link_spd : 2; @@ -746,15 +1299,35 @@ typedef struct OP_ETH_SETTINGS_t unsigned char reserved0[14]; }; } OP_ETH_SETTINGS; +#define OP_ETH_SETTINGS_SIZE 16 typedef struct ETHERNET_SETTINGS_t { - uint8_t duplex; + uint8_t duplex; /* 0 = half, 1 = full */ uint8_t link_speed; uint8_t auto_neg; uint8_t led_mode; uint8_t rsvd[4]; } ETHERNET_SETTINGS; +#define ETHERNET_SETTINGS_SIZE 8 + +#define ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX 0x01 +#define ETHERNET_SETTINGS2_FLAG_AUTO_NEG 0x02 +#define ETHERNET_SETTINGS2_FLAG_TCPIP_ENABLE 0x04 +#define ETHERNET_SETTINGS2_FLAG_RTSP_ENABLE 0x08 +#define ETHERNET_SETTINGS2_FLAG_DEVICE_HOSTING_ENABLE 0x10 +#define ETHERNET_SETTINGS2_FLAG_CONFIG_NOT_ALLOWED 0x20 +#define ETHERNET_SETTINGS2_FLAG_ICS_SFP 0x40 +#define ETHERNET_SETTINGS2_FLAG_COMM_IN_USE 0x80 + +#define ETHERNET_SETTINGS2_FLAG2_LINK_MODE 0x01 +#define ETHERNET_SETTINGS2_FLAG2_PHY_MODE 0x02 +#define ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO 0x04 +#define ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED 0x08 + +#define ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT 4 +#define ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK 0xF0 + typedef enum { SFP_ID_UNKNOWN = 0, @@ -763,29 +1336,86 @@ typedef enum SFP_ID_ICS_MV2112A2, SFP_ID_ICS_MV2221MB1, SFP_ID_ICS_MV3244, - + // add new entries here SFP_ID_MAX, } SfpId; typedef struct ETHERNET_SETTINGS2_t { + /* FLAGS + * bit0: 0=half duplex, 1=full duplex + * bit1: auto negot + * bit2: enable tcp/ip stack + * bit3: enable rtsp server + * bit4: enable intepid device hosting (go online and log other devices) + * bit5: config not allowed + * bit6: ICS SFP detected + * bit7: comm in use + */ uint8_t flags; - uint8_t link_speed; + uint8_t link_speed; // 0=10, 1=100, 2=1000 uint32_t ip_addr; uint32_t netmask; uint32_t gateway; + /* FLAGS2 + * bit0: Link mode - 0=master, 1=slave + * bit1: PHY mode - 0=IEEE, 1=legacy + * bit2: auto master/slave + * bit3: IP config not allowed + * bit4: SFP module ID0 + * bit5: SFP module ID1 + * bit6: SFP module ID2 + * bit7: SFP module ID3 + */ uint8_t flags2; uint8_t rsvd; } ETHERNET_SETTINGS2; +#define ETHERNET_SETTINGS2_SIZE 16 + +#define ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX 0x00000001 +#define ETHERNET_SETTINGS10G_FLAG_AUTO_NEG 0x00000002 +#define ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE 0x00000004 +#define ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE 0x00000008 +#define ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE 0x00000010 +#define ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED 0x00000020 +#define ETHERNET_SETTINGS10G_FLAG_ICS_SFP 0x00000040 +#define ETHERNET_SETTINGS10G_FLAG_LINK_MODE 0x00000080 +#define ETHERNET_SETTINGS10G_FLAG_PHY_MODE 0x00000100 +#define ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO 0x00000200 +#define ETHERNET_SETTINGS10G_FLAG_COMPL_MODE 0x00000400 +#define ETHERNET_SETTINGS10G_FLAG_PKT_CHECK 0x00000800 +#define ETHERNET_SETTINGS10G_FLAG_PKT_GEN 0x00001000 +#define ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED 0x00002000 +#define ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE 0x80000000 + typedef struct ETHERNET10G_SETTINGS_t { + /* FLAGS + * bit0: 0=half duplex, 1=full duplex + * bit1: auto negot + * bit2: enable tcp/ip stack + * bit3: enable rtsp server + * bit4: enable intepid device hosting (go online and log other devices) + * bit5: config not allowed + * bit6: ICS SFP detected + * bit7: link mode - 0=master, 1=slave + * bit8: PHY mode - 0=IEEE, 1=legacy + * bit9: auto master/slave + * bit10: enable compliance test mode (device specific) + * bit11: enable packet checker + * bit12: enable packet generator + * bit13: IP config not allowed + * bit31: comm in use + */ uint32_t flags; uint32_t ip_addr; uint32_t netmask; uint32_t gateway; - uint8_t link_speed; - uint8_t rsvd2[7]; + uint8_t link_speed; // 0=10, 1=100, 2=1000, 3=2500, 4=5000, 5=10000 + uint8_t compliance_mode; + uint8_t rsvd2[6]; } ETHERNET10G_SETTINGS; +#define ETHERNET10G_SETTINGS_SIZE 24 typedef struct ETHERNET10T1S_SETTINGS_t { @@ -798,19 +1428,50 @@ typedef struct ETHERNET10T1S_SETTINGS_t uint8_t local_id_alternate; uint8_t rsvd[5]; } ETHERNET10T1S_SETTINGS; +#define ETHERNET10T1S_SETTINGS_SIZE 12 + +#define ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA 0x01 +#define ETHERNET10T1S_SETTINGS_FLAG_TERMINATION 0x02 +#define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS 0x04 +#define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL 0x08 + +typedef struct ETHERNET10T1S_SETTINGS_EXT_t +{ + uint8_t enable_multi_id; // Mask representing whether ID at corresponding bit enabled or not + uint8_t multi_id[7]; + uint8_t rsvd[8]; +} ETHERNET10T1S_SETTINGS_EXT; +#define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 + +#define ETHERNET10T1S_SETTINGS_EXT_FLAG_ENABLE_MULTI_ID 0x01 + +/* + * START - MACsec Definitions + */ +/* MACsec Rule */ +/** + * @brief Structure of Vlan tag + * + */ #pragma pack(push, 1) typedef struct { - uint16_t VID; - uint8_t PRI_CFI; + uint16_t VID; /*!< 12 bits */ + uint8_t PRI_CFI; /*!< PRI - 3 bits, CFI - 1bit */ } MACSEC_VLANTAG_t; - +/** + * @brief Structure of MPLS + * + */ typedef struct { - uint32_t MPLS_label; - uint8_t exp; + uint32_t MPLS_label; /*!< 20 bits */ + uint8_t exp; /*!< 3 bits */ } MACSEC_MPLS_OUTER_t; - +/** + * @brief Define Encoded Packet Type from the parser + * + */ typedef enum { MACSEC_PACKET_NO_VLAN_OR_MPLS = 0, @@ -821,80 +1482,92 @@ typedef enum MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS = 5, MACSEC_PACKET_UNSUPPORTED_TYPE = 6 } MACSEC_PACKET_TYPE; - +#define MACSEC_SETTINGS_RULE_SIZE (88) typedef union _MACSecRule { struct { uint8_t index; - uint8_t key_MAC_DA[6]; - uint8_t mask_MAC_DA[6]; - uint8_t key_MAC_SA[6]; - uint8_t mask_MAC_SA[6]; - uint16_t key_Ethertype; - uint16_t mask_Ethertype; - MACSEC_VLANTAG_t key_vlantag_outer1; + uint8_t key_MAC_DA[6]; /*!< MAC DA field extracted from the packet */ + uint8_t mask_MAC_DA[6]; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint8_t key_MAC_SA[6]; /*!< MAC SA field extracted from the packet */ + uint8_t mask_MAC_SA[6]; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint16_t key_Ethertype; /*!< First E-Type found in the packet that doesn't match one of the preconfigured custom tag. */ + uint16_t mask_Ethertype; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + MACSEC_VLANTAG_t key_vlantag_outer1; /*!< outermost/1st VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ MACSEC_MPLS_OUTER_t key_MPLS_outer1; - MACSEC_VLANTAG_t mask_vlantag_outer1; + MACSEC_VLANTAG_t mask_vlantag_outer1; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ MACSEC_MPLS_OUTER_t mask_MPLS_outer1; - MACSEC_VLANTAG_t key_vlantag_outer2; + MACSEC_VLANTAG_t key_vlantag_outer2; /*!< 2nd outermost VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ MACSEC_MPLS_OUTER_t key_MPLS_outer2; - MACSEC_VLANTAG_t mask_vlantag_outer2; + MACSEC_VLANTAG_t mask_vlantag_outer2; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ MACSEC_MPLS_OUTER_t mask_MPLS_outer2; - uint16_t key_bonus_data; - uint16_t mask_bonus_data; - uint8_t key_tag_match_bitmap; - uint8_t mask_tag_match_bitmap; - uint8_t key_packet_type; - uint8_t mask_packet_type; - uint16_t key_inner_vlan_type; - uint16_t mask_inner_vlan_type; - uint16_t key_outer_vlan_type; - uint16_t mask_outer_vlan_type; - uint8_t key_num_tags; - uint8_t mask_num_tags; - uint8_t key_express; - uint8_t mask_express; + uint16_t key_bonus_data; /*!< 2 bytes of additional bonus data extracted from one of the custom tags. */ + uint16_t mask_bonus_data; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint8_t key_tag_match_bitmap; /*!< 8 bits total. Maps 1 to 1 bitwise with the set of custom tags. (set bit[N]=1 if check Nth custom tag) */ + uint8_t mask_tag_match_bitmap; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint8_t key_packet_type; /*!< Encoded Packet Type, see MACSEC_PACKET_TYPE */ + uint8_t mask_packet_type; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint16_t key_inner_vlan_type; /*!< 3 bits total. Encoded value indicating which VLAN TPID value matched for the second outermost VLAN Tag. */ + uint16_t mask_inner_vlan_type; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint16_t key_outer_vlan_type; /*!< 3 bits total. Encoded value indicating which VLAN TPID value matched for the outermost VLAN Tag. */ + uint16_t mask_outer_vlan_type; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint8_t key_num_tags; /*!< 7 bits total. Number of VLAN/custom tags or MPLS lables detected. Ingress: before SecTag; Egress: total detected. Exclude MCS header tags. i.e. Bit 2: 2 tags/labels + before SecTAG...Bit 6: 6 or more tags/labels before SecTAG. */ + uint8_t mask_num_tags; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + uint8_t key_express; /*!< 1 bits. Express packet. */ + uint8_t mask_express; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ uint8_t isMPLS; uint8_t rsvd[5]; uint8_t enable; }; - uint8_t byte[(88)]; + uint8_t byte[MACSEC_SETTINGS_RULE_SIZE]; } MACSecRule_t; - +/* MACsec Map */ +#define MACSEC_SETTINGS_MAP_SIZE (20) typedef union _MACSecMap { struct { uint8_t index; - uint64_t sectag_sci; - uint8_t secYIndex; - uint8_t isControlPacket; - uint8_t scIndex; - uint8_t auxiliary_plcy; - uint8_t ruleId; + uint64_t sectag_sci; /*!< Identifies the SecTAG SCI for this Flow. */ + uint8_t secYIndex; /*!< index for entry in Egress secY Policy */ + uint8_t isControlPacket; /*!< Identifies all packets matching this index lookup as control packets. */ + uint8_t scIndex; /*!< Identifies the SC for this Flow. */ + uint8_t auxiliary_plcy; /*!< Auxiliary policy bits. */ + uint8_t ruleId; /*!< Identifies the Rule for this Flow. */ uint8_t rsvd[5]; uint8_t enable; }; - uint8_t byte[(20)]; + uint8_t byte[MACSEC_SETTINGS_MAP_SIZE]; } MACSecMap_t; - +/* MACsec SecY */ +/** + * @brief Define the permit police for frames as defined in 802.1ae + * + */ typedef enum { - MACSEC_VF_DISABLED = 0, - MACSEC_VF_CHECK = 1, - MACSEC_VF_STRICT = 2, - MACSEC_VF_NA = 3 + MACSEC_VF_DISABLED = 0, /*!< Disable validation */ + MACSEC_VF_CHECK = 1, /*!< Enable validation, do not discard invalid frames*/ + MACSEC_VF_STRICT = 2, /*!< Enable validation and discard invalid frames */ + MACSEC_VF_NA = 3 /*!< No processing or accounting */ } MACSEC_VALIDATEFRAME; - +/** + * @brief Define SecTag and ICV configuration. + * + */ typedef enum { - MACSEC_SECTAG_ICV_BOTH_STRIP = 0, + MACSEC_SECTAG_ICV_BOTH_STRIP = 0, /*!< Strip both SecTag and ICV from packet */ MACSEC_SECTAG_ICV_RESERVED = 1, - MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2, - MACSEC_SECTAG_ICV_NO_STRIP = 3 + MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2, /*!< Preserve SecTag, Strip ICV */ + MACSEC_SECTAG_ICV_NO_STRIP = 3 /*!< Preserve both SecTag and ICV */ } MACSEC_STRIP_SECTAG_ICV; - +/** + * @brief Define the cipher suite to use for this SecY + * + */ typedef enum { MACSEC_CIPHER_GCM_AES_128 = 0, @@ -902,96 +1575,105 @@ typedef enum MACSEC_CIPHER_GCM_AES_128_XPN = 2, MACSEC_CIPHER_GCM_AES_256_XPN = 3 } MACSEC_CIPHER_SUITE; - +#define MACSEC_SETTINGS_SECY_SIZE (24) typedef union _MACSecSecY { struct { - uint8_t index; - uint8_t controlled_port_enabled; - uint8_t validate_frames; - uint8_t strip_sectag_icv; - uint8_t cipher; - uint8_t confidential_offset; - uint8_t icv_includes_da_sa; - uint8_t replay_protect; - uint32_t replay_window; - uint8_t protect_frames; - uint8_t sectag_offset; - uint8_t sectag_tci; - uint16_t mtu; + uint8_t index; /*!< Identifies the SecY for this Flow. */ + uint8_t controlled_port_enabled; /*!< Enable (or disable) operation of the Controlled port associated with this SecY */ + uint8_t validate_frames; /*!< see MACSEC_VALIDATEFRAME */ + uint8_t strip_sectag_icv; /*!< see MACSEC_STRIP_SECTAG_ICV */ + uint8_t cipher; /*!< Define the cipher suite to use for this SecY see MACSEC_CIPHER_SUITE */ + uint8_t confidential_offset; /*!< Define the number of bytes that are unencrypted following the SecTag. */ + uint8_t icv_includes_da_sa; /*!< When set, the outer DA/SA bytes are included in the authentication GHASH calculation */ + uint8_t replay_protect; /*!< Enables Anti-Replay protection */ + uint32_t replay_window; /*!< Unsigned value indicating the size of the anti-replay window. */ + uint8_t protect_frames; /*!< 0 = do not encrypt or authenticate this packet; 1 = always Authenticate frame and if SecTag.TCI.E = 1 encrypt the packet as well. */ + uint8_t sectag_offset; /*!< Define the offset in bytes from either the start of the packet or a matching Etype depending on SecTag_Insertion_Mode. */ + uint8_t sectag_tci; /*!< Tag Control Information excluding the AN field which originates from the SA Policy table */ + uint16_t mtu; /*!< Specifies the outgoing MTU for this SecY */ uint8_t rsvd[6]; uint8_t enable; }; - uint8_t byte[(24)]; + uint8_t byte[MACSEC_SETTINGS_SECY_SIZE]; } MACSecSecY_t; - +/* MACsec SC */ +#define MACSEC_SETTINGS_SC_SIZE (24) typedef union _MACSecSc { struct { - uint8_t index; - uint8_t secYIndex; - uint64_t sci; - uint8_t sa_index0; - uint8_t sa_index1; - uint8_t sa_index0_in_use; - uint8_t sa_index1_in_use; - uint8_t enable_auto_rekey; - uint8_t isActiveSA1; + uint8_t index; /*!< SC index. */ + uint8_t secYIndex; /*!< SecY associated with this packet. */ + uint64_t sci; /*!< The Secure Channel Identifier. */ + uint8_t sa_index0; /*!< Define the 1st SA to use */ + uint8_t sa_index1; /*!< Define the 2nd SA to use */ + uint8_t sa_index0_in_use; /*!< Specifies whether 1st SA is in use or not. */ + uint8_t sa_index1_in_use; /*!< Specifies whether 2nd SA is in use or not. */ + uint8_t enable_auto_rekey; /*!< If enabled, then once the pn_threshold is reached, auto rekey will happen. */ + uint8_t isActiveSA1; /*!< If set, then sa_index1 is the currently active SA index. If cleared, the sa_index0 is the currently active SA index). */ uint8_t rsvd[7]; uint8_t enable; }; - uint8_t byte[(24)]; + uint8_t byte[MACSEC_SETTINGS_SC_SIZE]; } MACSecSc_t; - +/* MACsec SA */ +#define MACSEC_SETTINGS_SA_SIZE (80) typedef union _MACSecSa { struct { - uint8_t index; - uint8_t sak[32]; - uint8_t hashKey[16]; - uint8_t salt[12]; - uint32_t ssci; - uint8_t AN; - uint64_t nextPN; + uint8_t index; /*!< SA index */ + uint8_t sak[32]; /*!< 256b SAK: Define the encryption key to be used to encrypte this packet. The lower 128 bits are used for 128-bit ciphers. */ + uint8_t hashKey[16]; /*!< 128b Hash Key: Key used for authentication. */ + uint8_t salt[12]; /*!< 96b Salt value: Salt value used in XPN ciphers. */ + uint32_t ssci; /*!< 32b SSCI value: Short Secure Channel Identifier, used in XPN ciphers. */ + uint8_t AN; /*!< 2b SecTag Association Number (AN) */ + uint64_t nextPN; /*!< 64b next_pn value: Next packet number to insert into outgoing packet on a particular SA. */ uint8_t rsvd[5]; uint8_t enable; }; - uint8_t byte[(80)]; + uint8_t byte[MACSEC_SETTINGS_SA_SIZE]; } MACSecSa_t; - +/* MACsec Flags */ +#define MACSEC_SETTINGS_FLAGS_SIZE (4) typedef union _MACSecFlags { struct { - uint32_t en : 1; + uint32_t en : 1; // '1' = enable; '0' = disable uint32_t reserved : 31; }; uint32_t flags_32b; } MACSecFlags_t; - +/* MACSec Settings for 1 port/phy */ +#define MACSEC_NUM_FLAGS_PER_CONFIG (1) +#define MACSEC_NUM_RULES_PER_CONFIG (2) +#define MACSEC_NUM_MAPS_PER_CONFIG (2) +#define MACSEC_NUM_SECY_PER_CONFIG (2) +#define MACSEC_NUM_SC_PER_CONFIG (2) +#define MACSEC_NUM_SA_PER_CONFIG (4) typedef struct MACSEC_CONFIG_t { MACSecFlags_t flags; - MACSecRule_t rule[(2)]; - MACSecMap_t map[(2)]; - MACSecSecY_t secy[(2)]; - MACSecSc_t sc[(2)]; - MACSecSa_t sa[(4)]; + MACSecRule_t rule[MACSEC_NUM_RULES_PER_CONFIG]; + MACSecMap_t map[MACSEC_NUM_MAPS_PER_CONFIG]; + MACSecSecY_t secy[MACSEC_NUM_SECY_PER_CONFIG]; + MACSecSc_t sc[MACSEC_NUM_SC_PER_CONFIG]; + MACSecSa_t sa[MACSEC_NUM_SA_PER_CONFIG]; } MACSEC_CONFIG; typedef union _MACSecGlobalFlags { struct { - uint32_t en : 1; - uint32_t nvm : 1; + uint32_t en : 1; // '1' = enable; '0' = disable + uint32_t nvm : 1; // store macsec config in non-volatile memory uint32_t reserved : 30; }; uint32_t flags_32b; } MACSecGlobalFlags_t; - +#define MACSEC_SETTINGS_SIZE (2040) // leave space for expansion and keep nicely aligned for flashing typedef union _MACSEC_SETTINGS { struct @@ -1000,24 +1682,31 @@ typedef union _MACSEC_SETTINGS MACSEC_CONFIG rx; MACSEC_CONFIG tx; }; - uint8_t byte[(2040)]; + uint8_t byte[MACSEC_SETTINGS_SIZE]; } MACSEC_SETTINGS; #pragma pack(pop) +/* + * END - MACsec Definitions + */ typedef struct LOGGER_SETTINGS_t { - + /* bit6-0: timeout in seconds + * bit7: 1=disable coremini/logging during extraction for timeout + */ uint8_t extraction_timeout; uint8_t rsvd[3]; } LOGGER_SETTINGS; +#define LOGGER_SETTINGS_SIZE 4 typedef struct DISK_SETTINGS_t { - uint8_t disk_layout; - uint8_t disk_format; - uint32_t disk_enables; + uint8_t disk_layout; // RAID0, spanned, etc + uint8_t disk_format; // FAT32 + uint32_t disk_enables; // mask of enabled disks in this layout uint8_t rsvd[8]; } DISK_SETTINGS; +#define DISK_SETTINGS_SIZE 14 typedef struct { @@ -1025,6 +1714,7 @@ typedef struct uint8_t term_network; uint16_t reserved[2]; } CANTERM_SETTINGS; +#define CANTERM_SETTINGS_SIZE 6 typedef struct { @@ -1033,6 +1723,7 @@ typedef struct uint8_t MasterNetwork; uint8_t SlaveNetwork; } TIMESYNC_ICSHARDWARE_SETTINGS; +#define TIMESYNC_ICSHARDWARE_SETTINGS_SIZE 4 typedef enum _EDiskFormat { @@ -1050,66 +1741,76 @@ typedef enum _EDiskLayout DiskLayoutIndividual, } EDiskLayout; +// Extended Comm structures +#define DISK_STATUS_FLAG_PRESENT 0x01 +#define DISK_STATUS_FLAG_INITIALIZED 0x02 + typedef struct _SDiskStatus { - uint16_t status; + uint16_t status; // 0x1 = present, 0x2 = initialized uint8_t sectors[8]; uint8_t bytesPerSector[4]; } SDiskStatus; +#define SDiskStatus_SIZE 14 + +#define DISK_STRUCTURE_FLAG_FULL_FORMAT 0x01 typedef struct _SDiskStructure { DISK_SETTINGS settings; - uint16_t options; + uint16_t options; // 0x01 full format } SDiskStructure; +#define SDiskStructure_SIZE 16 typedef struct _SDiskDetails { SDiskStructure structure; SDiskStatus status[12]; } SDiskDetails; +#define SDiskDetails_SIZE 184 typedef struct _SDiskFormatProgress { - uint16_t state; + uint16_t state; // state of formatting (not started, writing file system, formatting, writing VSAs, finished) uint8_t sectorsRemaining[8]; } SDiskFormatProgress; +#define SDiskFormatProgress_SIZE 10 typedef struct _StartDHCPServerCommand { - uint16_t networkId; - uint32_t serverIpAddress; - uint32_t subnetMask; - uint32_t gatewayAddress; - uint32_t startAddress; - uint32_t endAddress; - uint32_t leaseTime; - uint32_t overwrite; + uint16_t networkId; // NETID_ of the physical ethernet network on which to start the server + uint32_t serverIpAddress; // Set as our IP address using LWIP_SetIPAddress + uint32_t subnetMask; // Subnet mask to advertise - set our subnet to match using LWIP_SetNetmask + uint32_t gatewayAddress; // Gateway address to advertise on DHCP server offers + uint32_t startAddress; // Start of IP address range available for the server to offer + uint32_t endAddress; // End of IP address range available for the server to offer + uint32_t leaseTime; // Lease time setting for the DHCP server in seconds + uint32_t overwrite; // flag - set to nonzero if we want to overwrite an already running DHCP server } StartDHCPServerCommand; typedef struct _StopDHCPServerCommand { - uint16_t networkId; + uint16_t networkId; // NETID_ of the network on which to attempt to stop the DHCP server } StopDHCPServerCommand; typedef enum _ExtendedResponseCode { EXTENDED_RESPONSE_OK = 0, - + // Unsupported sub command EXTENDED_RESPONSE_INVALID_COMMAND = -1, - + // Device is not in the correct state to accept this command EXTENDED_RESPONSE_INVALID_STATE = -2, - + // Operation failed EXTENDED_RESPONSE_OPERATION_FAILED = -3, - + // Response code for a non-blocking command that is successfully queued but still in progress EXTENDED_RESPONSE_OPERATION_PENDING = -4, - + // One or more invalid parameters were supplied EXTENDED_RESPONSE_INVALID_PARAMETER = -5, } ExtendedResponseCode; typedef struct _ExtendedResponseGeneric { - uint16_t commandType; + uint16_t commandType; // command type we're responding to int32_t returnCode; } ExtendedResponseGeneric; @@ -1128,17 +1829,19 @@ typedef struct _GenericAPIStatus uint8_t finishedProcessing; } GenericAPIStatus; +#define GENERIC_API_DATA_BUFFER_SIZE 513 + typedef struct _GenericAPIData { uint16_t length; GenericAPISelector api; - uint8_t bData[513]; + uint8_t bData[GENERIC_API_DATA_BUFFER_SIZE]; } GenericAPIData; typedef struct _GenericAPIData_OLD { GenericAPISelector api; - uint8_t bData[513]; + uint8_t bData[GENERIC_API_DATA_BUFFER_SIZE]; uint16_t length; } GenericAPIData_OLD; @@ -1174,6 +1877,7 @@ typedef struct _UartPortConfig uint8_t reserve[7]; } UartPortConfig; +#define GET_SUPPORTED_FEATURES_COMMAND_VERSION (1) typedef struct { uint16_t cmdVersion; @@ -1184,11 +1888,11 @@ typedef struct typedef struct _VersionReport { uint8_t valid; - uint8_t expansionSlot; - uint8_t componentInfo; + uint8_t expansionSlot; // aka vnet slot + uint8_t componentInfo; // used for any component specific data (e.g. Linux: boot device) uint8_t reserved; uint32_t identifier; - uint32_t dotVersion; + uint32_t dotVersion; // major.minor.release.build uint32_t commitHash; } VersionReport; @@ -1197,10 +1901,12 @@ typedef struct _GetComponentVersions uint32_t reserved[2]; } GetComponentVersions; +#define MAX_REPORTED_VERSIONS (16) +#define EXT_GET_VERSIONS_RESPONSE_SIZE(numVers) (((numVers) * sizeof(VersionReport)) + sizeof(SExtSubCmdHdr) + sizeof(uint16_t)) typedef struct _ExtendedGetVersionsResponse { uint16_t numVersions; - VersionReport versions[(16)]; + VersionReport versions[MAX_REPORTED_VERSIONS]; } GetComponentVersionsResponse; enum @@ -1218,11 +1924,11 @@ enum typedef struct { - uint32_t componentIdentifier; - uint8_t commandType; + uint32_t componentIdentifier; // unique id for the software component - analogous to what used to be "chip id" + uint8_t commandType; // See enum uint32_t offset; - uint32_t commandSizeOrProgress; - uint8_t commandData[0]; + uint32_t commandSizeOrProgress; // size + uint8_t commandData[0]; // max size TBD or per-device } SoftwareUpdateCommand; typedef struct _SExtSubCmdHdr @@ -1230,7 +1936,7 @@ typedef struct _SExtSubCmdHdr uint16_t command; uint16_t length; } SExtSubCmdHdr; - +#define SExtSubCmdHdr_SIZE 4 #pragma pack(push, 1) struct _timestamp @@ -1291,17 +1997,36 @@ typedef struct _GenericBinaryStatus uint8_t reserved[8]; } GenericBinaryStatus; +#define GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY 0x0001 +#define GENERIC_BINARY_STATUS_ERROR_OVERSIZE 0x0002 +#define GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY 0x0004 +#define GENERIC_BINARY_STATUS_ERROR_ANY_MASK (GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY | GENERIC_BINARY_STATUS_ERROR_OVERSIZE | GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY) + #pragma pack(pop) + +#define SERDESCAM_SETTINGS_FLAG_ENABLE 0x0001 +#define SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE 0x0002 +#define SERDESCAM_SETTINGS_FLAG_AUTO_DET_RES_ENABLE 0x0004 +#define SERDESCAM_SETTINGS_FLAG_CONFIG_ENABLE 0x0008 +#define SERDESCAM_SETTINGS_FLAG_LOGGING_ENABLE 0x0010 +#define SERDESCAM_SETTINGS_FLAG_TX0_ENABLE 0x0020 +#define SERDESCAM_SETTINGS_FLAG_TX1_ENABLE 0x0040 +#define SERDESCAM_SETTINGS_FLAG_TX2_ENABLE 0x0080 +#define SERDESCAM_SETTINGS_FLAG_TX3_ENABLE 0x0100 + +/* mode in SERDESCAM_SETTINGS */ enum { SERDESCAM_MODE_TAP_REPEATER = 0, SERDESCAM_MODE_SPLITTER, SERDESCAM_MODE_LOG_ONLY, SERDESCAM_MODE_CUSTOM, - + // NOTE: new entries must be appended to maintain backwards compatibility + // insert new entries here SERDESCAM_MODE_COUNT, }; +/* bitPos in SERDESCAM_SETTINGS */ enum { SERDESCAM_PIXEL_BIT_POS_0 = 0, @@ -1310,126 +2035,147 @@ enum SERDESCAM_PIXEL_BIT_POS_3, }; +/* videoFormat in SERDESCAM_SETTINGS */ enum { SERDESCAM_VIDEO_FORMAT_NONE = -1, - SERDESCAM_VIDEO_FORMAT_UYVY_422_8 = 0, - SERDESCAM_VIDEO_FORMAT_YUYV_422_8, - SERDESCAM_VIDEO_FORMAT_YVYU_422_8, - SERDESCAM_VIDEO_FORMAT_VYUY_422_8, + SERDESCAM_VIDEO_FORMAT_UYVY_422_8 = 0, // packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 + SERDESCAM_VIDEO_FORMAT_YUYV_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr + SERDESCAM_VIDEO_FORMAT_YVYU_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb + SERDESCAM_VIDEO_FORMAT_VYUY_422_8, // packed YUV 4:2:2, 16bpp, Cr Y0 Cb Y1 SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_8, - SERDESCAM_VIDEO_FORMAT_RAW_8, - SERDESCAM_VIDEO_FORMAT_RAW_10, + SERDESCAM_VIDEO_FORMAT_RAW_8, // e.g. bayer 8 bit, gray 8 bit + SERDESCAM_VIDEO_FORMAT_RAW_10, // e.g. bayer 10 bit, gray 10 bit SERDESCAM_VIDEO_FORMAT_RAW_12, - SERDESCAM_VIDEO_FORMAT_RAW_16, - SERDESCAM_VIDEO_FORMAT_RAW_20, - SERDESCAM_VIDEO_FORMAT_RAW_24, - SERDESCAM_VIDEO_FORMAT_RAW_30, - SERDESCAM_VIDEO_FORMAT_RAW_32, + SERDESCAM_VIDEO_FORMAT_RAW_16, // e.g. planar YUV 4:2:2, 16bpp, 8 bit samples + SERDESCAM_VIDEO_FORMAT_RAW_20, // e.g. planar YUV 4:2:2, 20bpp, 10 bit samples + SERDESCAM_VIDEO_FORMAT_RAW_24, // e.g. packed RGB 8:8:8 24bpp, 8 bit samples + SERDESCAM_VIDEO_FORMAT_RAW_30, // e.g. planar YUV 4:4:4, 30bpp, 10 bit samples + SERDESCAM_VIDEO_FORMAT_RAW_32, // e.g. packed ARGB 8:8:8:8, 32bpp, 8 bit samples SERDESCAM_VIDEO_FORMAT_RAW_36, - SERDESCAM_VIDEO_FORMAT_RGB888, - SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE, - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE, + SERDESCAM_VIDEO_FORMAT_RGB888, // packed RGB 8:8:8, 24bpp, RGBRGB... + SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cb Y0 Cr Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cb Y1 Cr, FOURCC Y210 bitpacked + SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cr Y1 Cb, bitpacked + SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cr Y0 Cb Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE, // 16-bit samples little endian + SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE, // 16-bit samples big endian SERDESCAM_VIDEO_FORMAT_JPEG, - SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR, - SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR, - SERDESCAM_VIDEO_FORMAT_RGB565, - SERDESCAM_VIDEO_FORMAT_RGB666, + SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cb Y0 Cr Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cb Y1 Cr, bitpacked + SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cr Y1 Cb, bitpacked + SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cr Y0 Cb Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR, // planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR, // planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + SERDESCAM_VIDEO_FORMAT_RGB565, // packed RGB 5:6:5, 16bpp, RGBRGB... + SERDESCAM_VIDEO_FORMAT_RGB666, // packed RGB 6:6:6, 18bpp, RGBRGB... SERDESCAM_VIDEO_FORMAT_RAW_11x2, SERDESCAM_VIDEO_FORMAT_RAW_12x2, SERDESCAM_VIDEO_FORMAT_RAW_14, - - SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8, - SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8, - SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8, - SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8, - SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_RGB565, - SERDESCAM_VIDEO_FORMAT_CSI2_RGB666, - SERDESCAM_VIDEO_FORMAT_CSI2_RGB888, + // NOTE: CSI2 formats are only used internal to VSPY + // Firmware should flag video as CSI2 source types + // Vspy will then convert formats into the proper CSI2 version + SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8, // packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 + SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr + SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb + SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8, // packed YUV 4:2:2, 16bpp, Cr Y0 Cb Y1 + SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cb Y0 Cr Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cb Y1 Cr, FOURCC Y210 bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cr Y1 Cb, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cr Y0 Cb Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cb Y0 Cr Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cb Y1 Cr, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cr Y1 Cb, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cr Y0 Cb Y1, bitpacked + SERDESCAM_VIDEO_FORMAT_CSI2_RGB565, // packed RGB 5:6:5, 16bpp, BGRBGR... + SERDESCAM_VIDEO_FORMAT_CSI2_RGB666, // packed RGB 6:6:6, 18bpp, BGRBGR... + SERDESCAM_VIDEO_FORMAT_CSI2_RGB888, // packed RGB 8:8:8, 24bpp, BGRBGR... SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED, // 12-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8, // e.g. bayer 8 bit, gray 8 bit + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10, // e.g. bayer 10 bit, gray 10 bit SERDESCAM_VIDEO_FORMAT_CSI2_RAW_11x2, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12x2, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_14, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32, + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16, // e.g. planar YUV 4:2:2, 16bpp, 8 bit samples + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20, // e.g. planar YUV 4:2:2, 20bpp, 10 bit samples + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24, // e.g. packed RGB 8:8:8 24bpp, 8 bit samples + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30, // e.g. planar YUV 4:4:4, 30bpp, 10 bit samples + SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32, // e.g. packed ARGB 8:8:8:8, 32bpp, 8 bit samples SERDESCAM_VIDEO_FORMAT_CSI2_RAW_36, SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_8, - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE, - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE, + SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE, // 16-bit samples little endian + SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE, // 16-bit samples big endian SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_8, - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE, - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE, + SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE, // 16-bit samples little endian + SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE, // 16-bit samples big endian SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_8, - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE, - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE, + SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian + SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE, // 16-bit samples little endian + SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE, // 16-bit samples big endian SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, - + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian + // NOTE: new entries must be appended to maintain backwards compatibility + // insert new entries before this SERDESCAM_VIDEO_FORMAT_COUNT, }; typedef struct SERDESCAM_SETTINGS_t { + /* + * bit0: enable + * bit1: RTSP stream enable + * bit2: auto detect resolution + * bit3: enable configuration + * bit4: enable logging + * bit5: forward on port 0 + * bit6: forward on port 1 + * bit7: forward on port 2 + * bit8: forward on port 3 + */ uint32_t flags; - uint8_t mode; + uint8_t mode; // passthrough, tap, etc uint8_t rsvd1; uint8_t bitPos; - uint8_t videoFormat; + uint8_t videoFormat; // bytes per pixel uint16_t resWidth; uint16_t resHeight; - uint8_t frameSkip; + uint8_t frameSkip; // skip every nth frame uint8_t rsvd2[19]; } SERDESCAM_SETTINGS; +#define SERDESCAM_SETTINGS_SIZE 32 + +#define SERDESPOC_SETTINGS_MODE_DISABLED 0x00 +#define SERDESPOC_SETTINGS_MODE_SUPPLY 0x01 +#define SERDESPOC_SETTINGS_MODE_SERIALIZER 0x02 typedef struct SERDESPOC_SETTINGS_t { - uint8_t mode; + uint8_t mode; // no poc, generated supply, serializer passthrough uint8_t rsvd[6]; - uint8_t voltage; - uint16_t chksum; + uint8_t voltage; // generated voltage + uint16_t chksum; // checksum to protect settings structure (don't want corrupt voltage settings) } SERDESPOC_SETTINGS; +#define SERDESPOC_SETTINGS_SIZE 10 enum { @@ -1438,34 +2184,57 @@ enum SERDESGEN_MOD_ID_GMSL2_2x2 = 2, SERDESGEN_MOD_ID_GMSL1_4x4 = 3, SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2 = 4, - + // new modules go above this line SERDESGEN_MOD_ID_UNKNOWN = -1, }; +#define SERDESGEN_SETTINGS_FLAG_TX_PATGEN_ENABLE 0x0001 + typedef struct SERDESGEN_SETTINGS_t { - + /* + * bit0: enable pattern generator + */ uint16_t flags; uint8_t rsvd1; - uint8_t mod_id; - uint16_t tx_speed; - uint16_t rx_speed; - + uint8_t mod_id; // connected module passed back from device + uint16_t tx_speed; // Mbps per lane, all tx ports + uint16_t rx_speed; // Mbps per lane, all rx ports + // reserved space for the future + // maybe pattern generator settings uint8_t rsvd2[24]; } SERDESGEN_SETTINGS; +#define SERDESGEN_SETTINGS_SIZE 32 typedef struct _RadMoonDuoConverterSettings { - + // OPETH_LINK_AUTO/MASTER/SLAVE uint8_t linkMode0; uint8_t linkMode1; - + // USB/CM or RJ45 selection uint8_t converter1Mode; - + // IP Settings if converter is hooked up to Coremini uint32_t ipAddress; uint32_t ipMask; uint32_t ipGateway; } RadMoonDuoConverterSettings; +#define RADMOONDUO_CONVERTER_SETTINGS_SIZE (16) + +// clang-format off +#define RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE 0x00000001 +#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE 0x00000002 // USB port 1 +#define RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE 0x00000004 +#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2 0x00000008 // USB port 2 +#define RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN 0x00000010 +#define RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN 0x00000020 +#define RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN 0x00000040 +#define RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN 0x00000080 +#define RAD_REPORTING_SETTINGS_FLAG_AIN1 0x00000100 +#define RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE 0x00000200 +#define RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE 0x00000400 +#define RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE 0x00000800 +// clang-format on + typedef struct RAD_REPORTING_SETTINGS_t { uint32_t flags; @@ -1476,7 +2245,9 @@ typedef struct RAD_REPORTING_SETTINGS_t uint16_t fan_speed_interval_ms; uint8_t rsvd[2]; } RAD_REPORTING_SETTINGS; +#define RAD_REPORTING_SETTINGS_SIZE 16 +/* These are bit positions for misc_io_on_report_eventsin SFireSettings */ enum { REPORT_ON_PERIODIC, @@ -1493,8 +2264,8 @@ enum REPORT_ON_MISC4_AIN, REPORT_ON_MISC5_AIN, REPORT_ON_MISC6_AIN, - REPORT_ON_PWM_IN1, - REPORT_ON_GPS, + REPORT_ON_PWM_IN1, /* send PWM 0x101 on change */ + REPORT_ON_GPS, /* send GPS 0x110-0x116 on change */ }; typedef struct _SFireSettings @@ -1540,6 +2311,8 @@ typedef struct _SFireSettings uint16_t perf_en; + /* ISO9141: iso_parity 0 - no parity, 1 - event, 2 - odd; iso_msg_termination 0 - use inner frame time, 1 - GME CIM-SCL */ + uint16_t iso_parity; uint16_t iso_msg_termination; uint16_t iso_tester_pullup_enable; @@ -1567,8 +2340,21 @@ typedef struct _SFireSettings STextAPISettings text_api; SNeoMostGatewaySettings neoMostGateway; + +#define VNETBITS_FEATURE_ANDROID_MSGS (1) + /** + * Unfortuntely I haven't gone thru the trouble + * of splitting the FIRE VNET and FIRE settings + * structures. So until I can do so and reserve + * some time to test it, add a member that only + * VNET looks at for VNET features (like + * Android CoreMiniMsg pump). + * Defaults to zero. + * @see VNETBITS_FEATURE_ANDROID_MSGS + */ uint16_t vnetBits; } SFireSettings; +#define SFireSettings_SIZE 744 typedef struct _SFireVnetSettings { @@ -1595,7 +2381,7 @@ typedef struct _SFireVnetSettings uint16_t network_enabled_on_boot; uint32_t pwm_man_timeout; - uint16_t pwr_man_enable; + uint16_t pwr_man_enable; /* 0 - off, 1 - sleep enabled, 2- idle enabled (fast wakeup) */ uint16_t misc_io_initial_ddr; uint16_t misc_io_initial_latch; @@ -1612,6 +2398,8 @@ typedef struct _SFireVnetSettings uint16_t perf_en; + /* ISO9141: iso_parity 0 - no parity, 1 - event, 2 - odd; iso_msg_termination 0 - use inner frame time, 1 - GME CIM-SCL */ + uint16_t iso_parity; uint16_t iso_msg_termination; uint16_t iso_tester_pullup_enable; @@ -1639,6 +2427,14 @@ typedef struct _SFireVnetSettings STextAPISettings text_api; SNeoMostGatewaySettings neoMostGateway; + +#define VNETBITS_FEATURE_ANDROID_MSGS (1) +#define VNETBITS_FEATURE_DISABLE_USB_CHECK (2) + /** + * VNET options bitfield. + * Defaults to zero. + * @see VNETBITS_FEATURE_ANDROID_MSGS + */ uint16_t vnetBits; CAN_SETTINGS can5; @@ -1646,6 +2442,7 @@ typedef struct _SFireVnetSettings LIN_SETTINGS lin5; SWCAN_SETTINGS swcan2; } SFireVnetSettings; +#define SFireVnetSettings_SIZE 792 typedef struct _SCyanSettings { @@ -1668,6 +2465,7 @@ typedef struct _SCyanSettings CAN_SETTINGS can8; CANFD_SETTINGS canfd8; + /* Native CAN are either LS1/LS2 or SW1/SW2 */ SWCAN_SETTINGS swcan1; uint16_t network_enables; SWCAN_SETTINGS swcan2; @@ -1717,6 +2515,7 @@ typedef struct _SCyanSettings uint16_t idle_wakeup_network_enables_1; uint16_t idle_wakeup_network_enables_2; + /* reserved for HSCAN6/7, LSFT2, etc.. */ uint16_t network_enables_3; uint16_t idle_wakeup_network_enables_3; @@ -1741,8 +2540,9 @@ typedef struct _SCyanSettings uint16_t digitalIoThresholdEnable; TIMESYNC_ICSHARDWARE_SETTINGS timeSync; DISK_SETTINGS disk; - ETHERNET_SETTINGS2 ethernet2; + ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings } SCyanSettings; +#define SCyanSettings_SIZE 936 typedef SCyanSettings SFire2Settings; @@ -1763,6 +2563,7 @@ typedef struct _SVCAN3Settings uint16_t misc_io_report_period; uint16_t misc_io_on_report_events; } SVCAN3Settings; +#define SVCAN3Settings_SIZE 40 typedef struct _SVCAN4Settings { @@ -1798,6 +2599,7 @@ typedef struct _SVCAN4Settings uint16_t pwr_man_timeout; ETHERNET_SETTINGS2 ethernet2; } SVCAN4Settings; +#define SVCAN4Settings_SIZE 342 typedef struct _SVCANRFSettings { @@ -1843,13 +2645,18 @@ typedef struct _SVCANRFSettings uint16_t disableFwLEDs : 1; uint16_t reservedZero : 15; } SVCANRFSettings; +#define SVCANRFSettings_SIZE 340 typedef struct _SECUSettings { - + /* ECU ID used in CAN communications. + * TX ID = ECU ID with bit28 cleared, + * RX ID = ECUID with bit28 set, + * ECU ID = 0 implies ECU ID = serial no with bit 27 set\ + */ uint32_t ecu_id; - uint16_t selected_network; + uint16_t selected_network; // not supported yet - default to HSCAN CAN_SETTINGS can1; CAN_SETTINGS can2; @@ -1892,13 +2699,14 @@ typedef struct _SECUSettings STextAPISettings text_api; } SECUSettings; +#define SECUSettings_SIZE 470 typedef struct _SPendantSettings { - + /* see SECUSettings */ uint32_t ecu_id; - uint16_t selected_network; + uint16_t selected_network; /* not supported yet - default to HSCAN */ CAN_SETTINGS can1; CAN_SETTINGS can2; @@ -1941,13 +2749,14 @@ typedef struct _SPendantSettings STextAPISettings text_api; } SPendantSettings; +#define SPendantSettings_SIZE 470 typedef struct _SIEVBSettings { - + /* see SECUSettings */ uint32_t ecu_id; - uint16_t selected_network; + uint16_t selected_network; /* not supported yet - default to HSCAN */ CAN_SETTINGS can1; LIN_SETTINGS lin1; @@ -1995,6 +2804,7 @@ typedef struct _SIEVBSettings uint16_t iso_msg_termination_2; } SIEVBSettings; +#define SIEVBSettings_SIZE 434 typedef struct _SEEVBSettings { @@ -2014,7 +2824,9 @@ typedef struct _SEEVBSettings uint32_t rsvd; } SEEVBSettings; +#define SEEVBSettings_SIZE 32 +/* GPTP portEnable options */ enum eGPTPPort { ePortDisabled = 0, @@ -2032,8 +2844,10 @@ enum eGPTPPort ePortOpEth12 = 12, ePortStdEth1 = 13, ePortStdEth2 = 14, + ePortStdEth3 = 15, }; +/* GPTP port role options */ enum eGPTPRole { eRoleDisabled = 0, @@ -2077,6 +2891,7 @@ typedef struct _SRADGalaxySettings CAN_SETTINGS can8; CANFD_SETTINGS canfd8; + /* Native CAN are either LS1/LS2 or SW1/SW2 */ SWCAN_SETTINGS swcan1; uint16_t network_enables; SWCAN_SETTINGS swcan2; @@ -2118,13 +2933,14 @@ typedef struct _SRADGalaxySettings DISK_SETTINGS disk; LOGGER_SETTINGS logger; - ETHERNET_SETTINGS2 ethernet1; - ETHERNET_SETTINGS2 ethernet2; + ETHERNET_SETTINGS2 ethernet1; // DAQ port on label, NETID_ETHERNET + ETHERNET_SETTINGS2 ethernet2; // LAN port on label, NETID_ETHERNET2 uint16_t network_enables_4; RAD_GPTP_SETTINGS gPTP; uint64_t network_enables_5; } SRADGalaxySettings; +#define SRADGalaxySettings_SIZE 776 typedef struct _SRADStar2Settings { @@ -2174,7 +2990,12 @@ typedef struct _SRADStar2Settings STextAPISettings text_api; uint16_t pc_com_mode; TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - uint16_t hwComLatencyTestEn; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; RAD_REPORTING_SETTINGS reporting; ETHERNET_SETTINGS2 ethernet; @@ -2182,6 +3003,8 @@ typedef struct _SRADStar2Settings uint64_t network_enables_5; } SRADStar2Settings; +#define SRADStar2Settings_SIZE 422 + typedef struct _SRADSuperMoonSettings { uint16_t perf_en; @@ -2206,6 +3029,8 @@ typedef struct _SRADSuperMoonSettings uint64_t network_enables_5; } SRADSuperMoonSettings; +#define SRADSuperMoonSettings_SIZE 186 + typedef enum { tdmModeTDM2 = 0, @@ -2225,16 +3050,21 @@ typedef enum a2bNodeTypeSlave, } A2BNodeType; +#define A2B_SETTINGS_FLAG_16BIT 0x01 + typedef struct { - uint8_t tdmMode; + uint8_t tdmMode; // see enum A2BTDMMode uint8_t upstreamChannelOffset; uint8_t downstreamChannelOffset; - uint8_t nodeType; - + uint8_t nodeType; // see enum A2BNodeType + /* + * bit0: 16-bit channel width + */ uint8_t flags; uint8_t reserved[15]; } A2BMonitorSettings; +#define A2BMonitorSettings_SIZE 20 typedef struct _SRADA2BSettings { @@ -2270,6 +3100,8 @@ typedef struct _SRADA2BSettings uint64_t network_enables_5; } SRADA2BSettings; +#define SRADA2BSettings_SIZE 340 + typedef struct _SRADMoon2Settings { uint16_t perf_en; @@ -2292,26 +3124,30 @@ typedef struct _SRADMoon2Settings uint64_t network_enables_5; } SRADMoon2Settings; +#define SRADMoon2Settings_SIZE 170 + typedef struct _SRADMoon3Settings { - uint16_t perf_en; + uint16_t perf_en; // 2 - ETHERNET10G_SETTINGS autoEth10g; - ETHERNET10G_SETTINGS eth10g; + ETHERNET10G_SETTINGS autoEth10g; // 24 + ETHERNET10G_SETTINGS eth10g; // 24 - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - uint16_t network_enables_3; + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enabled_on_boot; // 2 + uint16_t network_enables_3; // 2 struct { uint16_t enableLatencyTest : 1; uint16_t reserved : 15; - } flags; + } flags; // 2 uint64_t network_enables_5; } SRADMoon3Settings; +#define SRADMoon3Settings_SIZE 68 + typedef struct _SRADGigalogSettings { uint32_t ecu_id; @@ -2359,8 +3195,8 @@ typedef struct _SRADGigalogSettings STextAPISettings text_api; uint64_t termination_enables; - uint8_t rsvd1[8]; - uint8_t rsvd2[8]; + uint8_t rsvd1[8]; // previously ETHERNET_SETTINGS + uint8_t rsvd2[8]; // previously ETHERNET10G_SETTINGS DISK_SETTINGS disk; @@ -2391,6 +3227,8 @@ typedef struct _SRADGigalogSettings uint64_t network_enables_5; } SRADGigalogSettings; +#define SRADGigalogSettings_SIZE 706 + typedef struct _SRADGigastarSettings { uint32_t ecu_id; @@ -2467,13 +3305,106 @@ typedef struct _SRADGigastarSettings uint64_t network_enables_5; } SRADGigastarSettings; -typedef struct _SVividCANSettings +#define SRADGigastarSettings_SIZE 710 + +typedef struct _SRADGalaxy2Settings { uint32_t ecu_id; + uint16_t perf_en; + /* CAN */ CAN_SETTINGS can1; - SWCAN_SETTINGS swcan1; - CAN_SETTINGS lsftcan1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + + // SWCAN_SETTINGS swcan1; G2 does not have SWCAN. + uint16_t network_enables; + // SWCAN_SETTINGS swcan2; G2 does not have SWCAN. + uint16_t network_enables_2; + + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + + uint16_t network_enabled_on_boot; + + /* ISO15765-2 Transport Layer */ + uint16_t iso15765_separation_time_offset; + + /* ISO9141 - Keyword */ + uint16_t iso_9141_kwp_enable_reserved; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + + uint16_t iso_msg_termination_1; + + uint16_t idle_wakeup_network_enables_1; + uint16_t idle_wakeup_network_enables_2; + + /* reserved for T1 networks such as BR1, BR2, etc.. */ + uint16_t network_enables_3; + uint16_t idle_wakeup_network_enables_3; + + STextAPISettings text_api; + + uint64_t termination_enables; // New feature unlike Galaxy. + + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t reserved : 15; + } flags; + + LIN_SETTINGS lin1; + + OP_ETH_GENERAL_SETTINGS opEthGen; + OP_ETH_SETTINGS opEth1; + OP_ETH_SETTINGS opEth2; + OP_ETH_SETTINGS opEth3; + OP_ETH_SETTINGS opEth4; + OP_ETH_SETTINGS opEth5; + OP_ETH_SETTINGS opEth6; + OP_ETH_SETTINGS opEth7; + OP_ETH_SETTINGS opEth8; + OP_ETH_SETTINGS opEth9; + OP_ETH_SETTINGS opEth10; + OP_ETH_SETTINGS opEth11; + OP_ETH_SETTINGS opEth12; + OP_ETH_SETTINGS opEth13; + OP_ETH_SETTINGS opEth14; + OP_ETH_SETTINGS opEth15; + OP_ETH_SETTINGS opEth16; + + ETHERNET10G_SETTINGS ethernet10g; + ETHERNET10G_SETTINGS ethernet10g_2; + ETHERNET10G_SETTINGS ethernet10g_3; + + uint16_t network_enables_4; + RAD_REPORTING_SETTINGS reporting; + RAD_GPTP_SETTINGS gPTP; +} SRADGalaxy2Settings; +#define SRADGalaxy2Settings_SIZE 822 + +typedef struct _SVividCANSettings +{ + uint32_t ecu_id; + + CAN_SETTINGS can1; // 12 bytes + SWCAN_SETTINGS swcan1; // 14 bytes + CAN_SETTINGS lsftcan1; // 12 bytes uint16_t network_enables; uint16_t network_enabled_on_boot; @@ -2495,6 +3426,7 @@ typedef struct _SVividCANSettings uint32_t reserved : 30; } flags; } SVividCANSettings; +#define SVividCANSettings_SIZE 64 typedef struct _SOBD2SimSettings { @@ -2527,18 +3459,38 @@ typedef struct _SOBD2SimSettings STextAPISettings text_api; } SOBD2SimSettings; +#define SOBD2SimSettings_SIZE 148 typedef struct _CmProbeSettings { + // uint16_t perf_en; + + // ETHERNET_SETTINGS eth1; // 16 bytes + // OP_ETH_SETTINGS opEth1; uint16_t network_enables; + + // uint16_t misc_io_initial_ddr; + // uint16_t misc_io_initial_latch; + // uint16_t misc_io_report_period; + // uint16_t misc_io_on_report_events; + // uint16_t misc_io_analog_enable; + // uint16_t ain_sample_period; + // uint16_t ain_threshold; + // + // uint32_t pwr_man_timeout; + // uint16_t pwr_man_enable; + // uint16_t network_enabled_on_boot; + // + // uint16_t idle_wakeup_network_enables_1; } CmProbeSettings, SCmProbeSettings; +#define CmProbeSettings_SIZE 4 typedef struct _OBD2ProSettings { - + /* Performance Test */ uint16_t perf_en; CAN_SETTINGS can1; @@ -2557,6 +3509,7 @@ typedef struct _OBD2ProSettings ETHERNET_SETTINGS ethernet; + /* ISO9141 - Keyword */ ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; uint16_t iso_parity_1; uint16_t iso_msg_termination_1; @@ -2572,6 +3525,7 @@ typedef struct _OBD2ProSettings uint16_t network_enabled_on_boot; + /* ISO15765-2 Transport Layer */ int16_t iso15765_separation_time_offset; STextAPISettings text_api; @@ -2586,10 +3540,11 @@ typedef struct _OBD2ProSettings uint16_t misc_io_analog_enable; ETHERNET_SETTINGS2 ethernet2; } OBD2ProSettings, SOBD2ProSettings; +#define OBD2ProSettings_SIZE 482 typedef struct _VCAN412Settings { - + /* Performance Test */ uint16_t perf_en; CAN_SETTINGS can1; @@ -2605,6 +3560,7 @@ typedef struct _VCAN412Settings uint16_t network_enabled_on_boot; + /* ISO15765-2 Transport Layer */ int16_t iso15765_separation_time_offset; STextAPISettings text_api; @@ -2615,10 +3571,12 @@ typedef struct _VCAN412Settings uint32_t reserved : 30; } flags; } VCAN412Settings, SVCAN412Settings; +#define VCAN412Settings_SIZE 148 +#define SVCAN412Settings_SIZE VCAN412Settings_SIZE typedef struct _neoECU_AVBSettings { - + /* Performance Test */ uint16_t perf_en; CAN_SETTINGS can1; @@ -2634,6 +3592,7 @@ typedef struct _neoECU_AVBSettings uint16_t network_enabled_on_boot; + /* ISO15765-2 Transport Layer */ int16_t iso15765_separation_time_offset; STextAPISettings text_api; @@ -2644,6 +3603,19 @@ typedef struct _neoECU_AVBSettings uint32_t reserved : 30; } flags; } ECU_AVBSettings, SECU_AVBSettings; +#define ECU_AVBSettings_SIZE 148 + +#define PLUTO_NUM_PORTS 5 +#define PLUTO_NUM_PRIORITY 8 +#define PLUTO_MAX_L2_POLICING 45 +#define PLUTO_MAX_L2_ADDRESS_LOOKUP 1024 +#define PLUTO_MAX_VLAN_LOOKUP 4096 +#define PLUTO_MAX_FORWARDING_ENTRIES 13 +#define PLUTO_MAX_MAC_CONFIG_ENTRIES 5 +#define PLUTO_MAX_RETAGGING_ENTRIES 32 +#define MAX_VL_POLICING_ENTRIES 1024 +#define MAX_VL_FORWARDING_ENTRIES 1024 + typedef struct SPluto_L2AddressLookupEntry_s { uint16_t index; @@ -2655,7 +3627,7 @@ typedef struct SPluto_L2AddressLookupEntry_s uint8_t pad1; uint8_t pad2; uint8_t pad3; -} SPluto_L2AddressLookupEntry; +} SPluto_L2AddressLookupEntry; // 16 typedef struct SPluto_L2AddressLookupParams_s { @@ -2666,23 +3638,23 @@ typedef struct SPluto_L2AddressLookupParams_s uint8_t no_enf_hostprt; uint8_t no_mgmt_learn; uint8_t pad; -} SPluto_L2AddressLookupParams; +} SPluto_L2AddressLookupParams; // 8 typedef struct SPluto_L2ForwardingParams_s { - uint16_t part_spc[8]; + uint16_t part_spc[PLUTO_NUM_PRIORITY]; uint8_t max_dynp; uint8_t pad; -} SPluto_L2ForwardingParams; +} SPluto_L2ForwardingParams; // 18 typedef struct SPluto_L2ForwardingEntry_s { - uint8_t vlan_pmap[8]; + uint8_t vlan_pmap[PLUTO_NUM_PRIORITY]; uint8_t bc_domain; uint8_t reach_port; uint8_t fl_domain; uint8_t pad; -} SPluto_L2ForwardingEntry; +} SPluto_L2ForwardingEntry; // 12 typedef struct SPluto_L2Policing_s { @@ -2691,7 +3663,7 @@ typedef struct SPluto_L2Policing_s uint16_t maxlen; uint8_t sharindx; uint8_t partition; -} SPluto_L2Policing; +} SPluto_L2Policing; // 8 typedef struct SPluto_VlanLookup_s { @@ -2702,16 +3674,16 @@ typedef struct SPluto_VlanLookup_s uint8_t vlan_bc; uint8_t tag_port; uint8_t pad; -} SPluto_VlanLookup; +} SPluto_VlanLookup; // 8 typedef struct SPluto_MacConfig_s { - uint16_t top[8]; - uint16_t base[8]; + uint16_t top[PLUTO_NUM_PRIORITY]; + uint16_t base[PLUTO_NUM_PRIORITY]; uint16_t tp_delin; uint16_t tp_delout; uint16_t vlanid; - uint8_t enabled[8]; + uint8_t enabled[PLUTO_NUM_PRIORITY]; uint8_t ifg; uint8_t speed; uint8_t maxage; @@ -2726,7 +3698,7 @@ typedef struct SPluto_MacConfig_s uint8_t egress; uint8_t ingress; uint8_t pad; -} SPluto_MacConfig; +} SPluto_MacConfig; // 60 typedef struct SPluto_RetaggingEntry_s { @@ -2738,7 +3710,7 @@ typedef struct SPluto_RetaggingEntry_s uint8_t use_dest_ports; uint8_t destports; uint8_t pad; -} SPluto_RetaggingEntry; +} SPluto_RetaggingEntry; // 10 typedef struct SPluto_GeneralParams_s { @@ -2762,13 +3734,13 @@ typedef struct SPluto_GeneralParams_s uint8_t host_port; uint8_t mirr_port; uint8_t ignore2stf; -} SPluto_GeneralParams; +} SPluto_GeneralParams; // 60 typedef struct SPluto_VlLookupEntry_s { union { - + /* format == 0 */ struct { uint64_t macaddr; @@ -2777,17 +3749,17 @@ typedef struct SPluto_VlLookupEntry_s uint8_t iscritical; uint8_t port; uint8_t vlanprior; - } vllupformat0; - + } vllupformat0; // 14 + /* format == 1 */ struct { uint16_t vlid; uint8_t egrmirr; uint8_t ingrmirr; uint8_t port; - } vllupformat1; + } vllupformat1; // 5 }; -} SPluto_VlLookupEntry; +} SPluto_VlLookupEntry; // 14 typedef struct SPluto_VlPolicingEntry_s { @@ -2796,14 +3768,14 @@ typedef struct SPluto_VlPolicingEntry_s uint64_t sharindx; uint64_t bag; uint64_t jitter; -} SPluto_VlPolicingEntry; +} SPluto_VlPolicingEntry; // 40 typedef struct SPluto_VlForwardingParams_s { - uint16_t partspc[8]; + uint16_t partspc[PLUTO_NUM_PRIORITY]; uint8_t debugen; uint8_t pad; -} SPluto_VlForwardingParams; +} SPluto_VlForwardingParams; // 18 typedef struct SPluto_VlForwardingEntry_s { @@ -2811,13 +3783,13 @@ typedef struct SPluto_VlForwardingEntry_s uint8_t priority; uint8_t partition; uint8_t destports; -} SPluto_VlForwardingEntry; +} SPluto_VlForwardingEntry; // 4 typedef struct SPluto_AVBParams_s { uint64_t destmeta; uint64_t srcmeta; -} SPluto_AVBParams; +} SPluto_AVBParams; // 16 typedef struct SPluto_ClockSyncParams_s { @@ -2866,92 +3838,113 @@ typedef struct SPluto_ClockSyncParams_s uint8_t pad1; uint8_t pad2; uint8_t pad3; -} SPluto_ClockSyncParams; +} SPluto_ClockSyncParams; // 80 + +#define gPTP_ROLE_DISABLED 0 +#define gPTP_ROLE_PASSIVE 1 +#define gPTP_ROLE_MASTER 2 +#define gPTP_ROLE_SLAVE 3 + +#define gPTP_PROFILE_STANDARD 0 +#define gPTP_PROFILE_AUTOMOTIVE 1 + +#define gPTP_PORT_DISABLED 0 +#define gPTP_PORT_ENABLED 1 + typedef struct SPlutoPtpParams_s { - uint32_t neighborPropDelayThresh; - uint32_t sys_phc_sync_interval; - int8_t logPDelayReqInterval; - int8_t logSyncInterval; - int8_t logAnnounceInterval; + uint32_t neighborPropDelayThresh; // ns + uint32_t sys_phc_sync_interval; // ns + int8_t logPDelayReqInterval; // log2ms + int8_t logSyncInterval; // log2ms + int8_t logAnnounceInterval; // log2ms uint8_t profile; uint8_t priority1; uint8_t clockclass; uint8_t clockaccuracy; uint8_t priority2; uint16_t offset_scaled_log_variance; - uint8_t gPTPportRole[5 - 1]; - uint8_t portEnable[5 - 1]; -} PlutoPtpParams_t; + uint8_t gPTPportRole[PLUTO_NUM_PORTS - 1]; // the 5th port is used for SAM + uint8_t portEnable[PLUTO_NUM_PORTS - 1]; // the 5th port is used for SAM +} PlutoPtpParams_t; // 26 typedef struct SPluto_CustomParams_s { - uint8_t mode[5]; - uint8_t speed[5]; - uint8_t enablePhy[5]; + uint8_t mode[PLUTO_MAX_MAC_CONFIG_ENTRIES]; + uint8_t speed[PLUTO_MAX_MAC_CONFIG_ENTRIES]; + uint8_t enablePhy[PLUTO_MAX_MAC_CONFIG_ENTRIES]; uint8_t ae1Select; uint8_t usbSelect; uint8_t pad; PlutoPtpParams_t ptpParams; -} SPluto_CustomParams; +} SPluto_CustomParams; // 44 typedef struct SPlutoSwitchSettings_s { - ExtendedDataFlashHeader_t flashHeader; - SPluto_L2AddressLookupParams l2_addressLookupParams; - SPluto_L2AddressLookupEntry l2_addressLookupEntries[1024]; - SPluto_L2Policing l2_policing[45]; - SPluto_L2ForwardingParams l2_forwardingParams; - SPluto_L2ForwardingEntry l2_ForwardingEntries[13]; - SPluto_VlanLookup vlan_LookupEntries[4096]; - SPluto_MacConfig macConfig[5]; - SPluto_GeneralParams generalParams; - SPluto_RetaggingEntry retagging[32]; - + ExtendedDataFlashHeader_t flashHeader; // all extended data must start with this header //8 + SPluto_L2AddressLookupParams l2_addressLookupParams; // 8 + SPluto_L2AddressLookupEntry l2_addressLookupEntries[PLUTO_MAX_L2_ADDRESS_LOOKUP]; // 16 * 1024 + SPluto_L2Policing l2_policing[PLUTO_MAX_L2_POLICING]; // 8 * 45 + SPluto_L2ForwardingParams l2_forwardingParams; // 18 + SPluto_L2ForwardingEntry l2_ForwardingEntries[PLUTO_MAX_FORWARDING_ENTRIES]; // 12 * 13 + SPluto_VlanLookup vlan_LookupEntries[PLUTO_MAX_VLAN_LOOKUP]; // 8 * 4096 + SPluto_MacConfig macConfig[PLUTO_MAX_MAC_CONFIG_ENTRIES]; // 60 * 5 + SPluto_GeneralParams generalParams; // 60 + SPluto_RetaggingEntry retagging[PLUTO_MAX_RETAGGING_ENTRIES]; // 10 * 32 +#if 0 + SPluto_VlPolicingEntry vl_policing[MAX_VL_POLICING_ENTRIES]; + SPluto_VlForwardingParams vl_forwardingParams; + SPluto_VlForwardingEntry vl_forwardingEntries[MAX_VL_FORWARDING_ENTRIES]; + SPluto_AVBParams avbParams; + SPluto_ClockSyncParams clkSyncParams; +#endif } SPlutoSwitchSettings; +#define SPlutoSwitchSettings_SIZE 50378 typedef struct _RADPlutoSettings { + /* Performance Test */ + uint16_t perf_en; // 2 - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; + CAN_SETTINGS can1; // 12 + CANFD_SETTINGS canfd1; // 10 + CAN_SETTINGS can2; // 12 + CANFD_SETTINGS canfd2; // 10 + LIN_SETTINGS lin1; // 10 - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint64_t termination_enables; - uint16_t misc_io_analog_enable; + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 + uint64_t termination_enables; // 8 + uint16_t misc_io_analog_enable; // 2 - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; + uint32_t pwr_man_timeout; // 4 + uint16_t pwr_man_enable; // 2 - uint16_t network_enabled_on_boot; + uint16_t network_enabled_on_boot; // 2 - int16_t iso15765_separation_time_offset; - uint16_t iso9141_kwp_enable_reserved; - uint16_t iso_tester_pullup_enable; - uint16_t iso_parity; - uint16_t iso_msg_termination; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - ETHERNET_SETTINGS ethernet; + /* ISO15765-2 Transport Layer */ + int16_t iso15765_separation_time_offset; // 2 + uint16_t iso9141_kwp_enable_reserved; // 2 + uint16_t iso_tester_pullup_enable; // 2 + uint16_t iso_parity; // 2 + uint16_t iso_msg_termination; // 2 + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 + ETHERNET_SETTINGS ethernet; // 8 - STextAPISettings text_api; + STextAPISettings text_api; // 72 struct { uint32_t disableUsbCheckOnBoot : 1; uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags; + } flags; // 4 - SPluto_CustomParams custom; - ETHERNET_SETTINGS2 ethernet2; + SPluto_CustomParams custom; // 44 + ETHERNET_SETTINGS2 ethernet2; // 16 } SRADPlutoSettings; +#define SRADPlutoSettings_SIZE 348 typedef union { @@ -2976,6 +3969,7 @@ typedef struct uint32_t ecu_id; SCANSleepID sleep_id; } CANHubSettings, SCANHubSettings; +#define CANHubSettings_SIZE 56 typedef struct _SFlexVnetzSettings { @@ -3030,6 +4024,7 @@ typedef struct _SFlexVnetzSettings DISK_SETTINGS disk; ETHERNET_SETTINGS2 ethernet2; } SFlexVnetzSettings; +#define SFlexVnetzSettings_Size (310) typedef enum _flexVnetMode { @@ -3059,6 +4054,7 @@ typedef struct _NeoECU12Settings uint64_t termination_enables; uint16_t can_switch_mode; + /* ISO9141 - Keyword */ uint16_t iso_9141_kwp_enable_reserved; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; uint16_t iso_parity; @@ -3082,8 +4078,9 @@ typedef struct _NeoECU12Settings uint32_t enableLatencyTest : 1; uint32_t reserved : 30; } flags; - uint32_t reserved_field[2]; + uint32_t reserved_field[2]; // #3166 reserved field for downgrade support } SNeoECU12Settings; +#define SNeoECU12Settings_SIZE 358 typedef struct _VCAN4IndSettings { @@ -3124,10 +4121,11 @@ typedef struct _VCAN4IndSettings } flags; ETHERNET_SETTINGS2 ethernet2; } VCAN4IndSettings, SVCAN4IndSettings; +#define VCAN4IndSettings_SIZE (228) typedef struct _SOBD2LCSettings { - + /* Performance Test */ uint16_t perf_en; CAN_SETTINGS can1; CANFD_SETTINGS canfd1; @@ -3139,7 +4137,7 @@ typedef struct _SOBD2LCSettings CANFD_SETTINGS canfd4; SWCAN_SETTINGS swcan1; LIN_SETTINGS lin1; - + /* ISO9141 - Keyword */ ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; uint16_t iso_parity; uint16_t iso_msg_termination; @@ -3156,7 +4154,7 @@ typedef struct _SOBD2LCSettings uint32_t pwr_man_timeout; uint16_t pwr_man_enable; uint16_t network_enabled_on_boot; - + /* ISO15765-2 Transport Layer */ int16_t iso15765_separation_time_offset; STextAPISettings text_api; struct @@ -3173,65 +4171,69 @@ typedef struct _SOBD2LCSettings uint16_t misc_io_on_report_events; DISK_SETTINGS disk; ETHERNET_SETTINGS ethernet; - ETHERNET_SETTINGS2 ethernet2; + ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings uint16_t iso_tester_pullup_enable; } OBD2LCSettings, SOBD2LCSettings; +#define OBD2LCSettings_SIZE 370 + +#define RADJUPITER_NUM_PORTS 8 typedef struct SJupiterPtpParams_s { - uint32_t neighborPropDelay; - int8_t initLogPDelayReqInterval; - int8_t initLogSyncInterval; - int8_t operationLogPDelayReqInterval; - int8_t operationLogSyncInterval; - uint8_t gPTPportRole[8]; -} JupiterPtpParams_t; + uint32_t neighborPropDelay; // ns + int8_t initLogPDelayReqInterval; // log2ms + int8_t initLogSyncInterval; // log2ms + int8_t operationLogPDelayReqInterval; // log2ms + int8_t operationLogSyncInterval; // log2ms + uint8_t gPTPportRole[RADJUPITER_NUM_PORTS]; // the 6th port is used for SAM +} JupiterPtpParams_t; // 16 typedef struct _SRADJupiterSwitchSettings { - uint8_t phyMode[8]; - uint8_t enablePhy[8]; - uint8_t port7Select; - uint8_t port8Select; + uint8_t phyMode[RADJUPITER_NUM_PORTS]; // 8 + uint8_t enablePhy[RADJUPITER_NUM_PORTS]; // 8 + uint8_t port7Select; // 1 + uint8_t port8Select; // 1 uint8_t port8Speed; uint8_t port8Legacy; uint8_t spoofMacFlag; uint8_t spoofedMac[6]; uint8_t pad; - JupiterPtpParams_t ptpParams_unused; -} SRADJupiterSwitchSettings; + JupiterPtpParams_t ptpParams_unused; // 16 +} SRADJupiterSwitchSettings; // 44 typedef struct _SRADJupiterSettings { + /* Performance Test */ + uint16_t perf_en; // 2 - uint16_t perf_en; + CAN_SETTINGS can1; // 12 + CANFD_SETTINGS canfd1; // 10 + CAN_SETTINGS can2; // 12 + CANFD_SETTINGS canfd2; // 10 + LIN_SETTINGS lin1; // 10 - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 + uint64_t termination_enables; // 8 + uint16_t misc_io_analog_enable; // 2 - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint64_t termination_enables; - uint16_t misc_io_analog_enable; + uint32_t pwr_man_timeout; // 4 + uint16_t pwr_man_enable; // 2 - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; + uint16_t network_enabled_on_boot; // 2 - uint16_t network_enabled_on_boot; + /* ISO15765-2 Transport Layer */ + int16_t iso15765_separation_time_offset; // 2 + uint16_t iso9141_kwp_enable_reserved; // 2 + uint16_t iso_tester_pullup_enable; // 2 + uint16_t iso_parity; // 2 + uint16_t iso_msg_termination; // 2 + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 + ETHERNET_SETTINGS ethernet; // 8 - int16_t iso15765_separation_time_offset; - uint16_t iso9141_kwp_enable_reserved; - uint16_t iso_tester_pullup_enable; - uint16_t iso_parity; - uint16_t iso_msg_termination; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - ETHERNET_SETTINGS ethernet; - - STextAPISettings text_api; + STextAPISettings text_api; // 72 struct { @@ -3239,19 +4241,64 @@ typedef struct _SRADJupiterSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags; + } flags; // 4 - SRADJupiterSwitchSettings switchSettings; + SRADJupiterSwitchSettings switchSettings; // 44 ETHERNET_SETTINGS2 ethernet2; -} SRADJupiterSettings; +} SRADJupiterSettings; // 348 + +#define SRADJupiterSettings_SIZE 348 + +#define LINUX_BOOT_ALLOWED (1) + +#define WIFI_ANTENNA_INTERNAL (0) +#define WIFI_ANTENNA_EXTERNAL (1) + +#define LINUX_CONFIG_PORT_NONE (0) +#define LINUX_CONFIG_PORT_ETH_01 (1) +#define LINUX_CONFIG_PORT_ETH_02 (2) typedef struct { - uint8_t allowBoot; - uint8_t useExternalWifiAntenna; - uint8_t ethConfigurationPort; + uint8_t allowBoot; // 0 - disable booting Linux, 1 - enable booting Linux, Others - Disable booting linux + uint8_t useExternalWifiAntenna; // 0 for internal, 1 for external, Others - Internal + uint8_t ethConfigurationPort; // 0 - both ports used by logger, 1 - ETH 01 for Linux Configuration, 2 - ETH 02 for Linux Configuration, Others - both ports used by logger uint8_t reserved[5]; } Fire3LinuxSettings; +#define CMP_STREAMS_FIRE3 (10) +#define CMP_STREAMS_FIRE3FR (10) +#define CMP_STREAMS_RED2 (10) + +typedef struct +{ + uint8_t bStreamEnabled : 1; + uint8_t EthModule : 2; + uint8_t bControlEnabled : 1; + uint8_t spare : 4; + uint8_t streamId; + uint8_t dstMac[6]; + union + { + uint64_t word; + struct + { + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + uint16_t network_enables_4; + }; + } network_enables; + uint64_t network_enables_2; +} CMP_NETWORK_DATA; + +typedef struct +{ + uint8_t cmp_enabled : 1; + uint8_t sparebits : 7; + uint8_t spare; + uint16_t cmp_device_id; +} CMP_GLOBAL_DATA; + typedef struct _SRed2Settings { uint16_t perf_en; @@ -3325,7 +4372,10 @@ typedef struct _SRed2Settings Fire3LinuxSettings os_settings; RAD_GPTP_SETTINGS gPTP; uint16_t iso_tester_pullup_enable; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_RED2]; } SRed2Settings; +#define SRed2Settings_SIZE (914) typedef struct _SFire3Settings { @@ -3434,7 +4484,10 @@ typedef struct _SFire3Settings uint64_t network_enables_2; uint64_t termination_enables_2; uint16_t iso_tester_pullup_enable; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3]; } SFire3Settings; +#define SFire3Settings_SIZE (1718) typedef struct _SFire3FlexraySettings { @@ -3527,7 +4580,10 @@ typedef struct _SFire3FlexraySettings uint16_t flex_mode; uint16_t flex_termination; uint16_t iso_tester_pullup_enable; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3FR]; } SFire3FlexraySettings; +#define SFire3FlexraySettings_SIZE (1368) typedef struct { @@ -3544,45 +4600,47 @@ typedef struct uint32_t reserved : 30; } flags; } RadMoonDuoSettings, SRadMoonDuoSettings; +#define RadMoonDuoSettings_SIZE 38 typedef struct _SEtherBadgeSettings { + /* Performance Test */ + uint16_t perf_en; // 2 - uint16_t perf_en; + CAN_SETTINGS can1; // 12 + CANFD_SETTINGS canfd1; // 10 + CAN_SETTINGS can2; // 12 + CANFD_SETTINGS canfd2; // 10 + LIN_SETTINGS lin1; // 10 - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 + uint64_t termination_enables; // 8 - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint64_t termination_enables; + uint32_t pwr_man_timeout; // 4 + uint16_t pwr_man_enable; // 2 - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; + uint16_t network_enabled_on_boot; // 2 - uint16_t network_enabled_on_boot; + /* ISO15765-2 Transport Layer */ + int16_t iso15765_separation_time_offset; // 2 + uint16_t iso9141_kwp_enable_reserved; // 2 + uint16_t iso_tester_pullup_enable; // 2 + uint16_t iso_parity; // 2 + uint16_t iso_msg_termination; // 2 + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 + ETHERNET_SETTINGS ethernet; // 8 - int16_t iso15765_separation_time_offset; - uint16_t iso9141_kwp_enable_reserved; - uint16_t iso_tester_pullup_enable; - uint16_t iso_parity; - uint16_t iso_msg_termination; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - ETHERNET_SETTINGS ethernet; + uint16_t misc_io_initial_ddr; // 2 + uint16_t misc_io_initial_latch; // 2 + uint16_t misc_io_report_period; // 2 + uint16_t misc_io_on_report_events; // 2 + uint16_t misc_io_analog_enable; // 2 + uint16_t ain_sample_period; // 2 + uint16_t ain_threshold; // 2 - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t misc_io_analog_enable; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - STextAPISettings text_api; + STextAPISettings text_api; // 72 struct { @@ -3590,58 +4648,59 @@ typedef struct _SEtherBadgeSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags; + } flags; // 4 - ETHERNET_SETTINGS2 ethernet2; -} SEtherBadgeSettings; -typedef enum -{ - EPSILON_10G_PHY1 = (1 << 0), - EPSILON_10G_PHY2 = (1 << 1), -} Epsilon_10G_PHY_select; + ETHERNET_SETTINGS2 ethernet2; // 16 +} SEtherBadgeSettings; // 316 + +#define SEtherBadgeSettings_SIZE 316 + +#define RADEPSILON_NUM_PORTS 9 // ATSAM + PHYs +#define RADEPSILON_MAX_PHY 18 typedef struct _SRADEpsilonSwitchSettings { - uint8_t phyMode[18]; - uint8_t enablePhy[18]; - uint8_t speed[18]; - uint8_t legacy[18]; + uint8_t phyMode[RADEPSILON_MAX_PHY]; + uint8_t enablePhy[RADEPSILON_MAX_PHY]; + uint8_t speed[RADEPSILON_MAX_PHY]; + uint8_t legacy[RADEPSILON_MAX_PHY]; uint8_t spoofedMac[6]; uint8_t spoofMacFlag; uint8_t pad; -} SRADEpsilonSwitchSettings; +} SRADEpsilonSwitchSettings; // 80 typedef struct _SRADEpsilonSettings { + /* Performance Test */ + uint16_t perf_en; // 2 - uint16_t perf_en; + CAN_SETTINGS can1; // 12 + CANFD_SETTINGS canfd1; // 10 + CAN_SETTINGS can2; // 12 + CANFD_SETTINGS canfd2; // 10 + LIN_SETTINGS lin1; // 10 - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 + uint64_t termination_enables; // 8 + uint16_t misc_io_analog_enable; // 2 - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint64_t termination_enables; - uint16_t misc_io_analog_enable; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; + uint32_t pwr_man_timeout; // 4 + uint16_t pwr_man_enable; // 2 - uint16_t network_enabled_on_boot; + uint16_t network_enabled_on_boot; // 2 - int16_t iso15765_separation_time_offset; - uint16_t iso9141_kwp_enable_reserved; - uint16_t iso_tester_pullup_enable; - uint16_t iso_parity; - uint16_t iso_msg_termination; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - ETHERNET_SETTINGS ethernet; + /* ISO15765-2 Transport Layer */ + int16_t iso15765_separation_time_offset; // 2 + uint16_t iso9141_kwp_enable_reserved; // 2 + uint16_t iso_tester_pullup_enable; // 2 + uint16_t iso_parity; // 2 + uint16_t iso_msg_termination; // 2 + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 + ETHERNET_SETTINGS ethernet; // 8 - STextAPISettings text_api; + STextAPISettings text_api; // 72 struct { @@ -3649,32 +4708,33 @@ typedef struct _SRADEpsilonSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags; + } flags; // 4 - SRADEpsilonSwitchSettings switchSettings; - ETHERNET_SETTINGS2 ethernet2; - uint16_t misc_io_on_report_events; -} SRADEpsilonSettings; + SRADEpsilonSwitchSettings switchSettings; // 80 + ETHERNET_SETTINGS2 ethernet2; // 16 + uint16_t misc_io_on_report_events; // 2 +} SRADEpsilonSettings; // 386 +#define SRADEpsilonSettings_SIZE 386 typedef struct { uint8_t wBMSDeviceID; uint8_t enabled; -} sWIL_FAULT_SERVICING_SETTINGS; +} sWIL_FAULT_SERVICING_SETTINGS; // 2 typedef struct { uint8_t enabled; -} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; +} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; // 1 typedef struct _sWIL_CONNECTION_SETTINGS { - uint8_t using_port_a; - uint8_t using_port_b; - uint8_t attemptConnect; - sWIL_FAULT_SERVICING_SETTINGS fault_servicing_config; - sWIL_NETWORK_DATA_CAPTURE_SETTINGS network_data_capture_config; - uint16_t sensor_buffer_size; + uint8_t using_port_a; // 1 + uint8_t using_port_b; // 1 + uint8_t attemptConnect; // 1 + sWIL_FAULT_SERVICING_SETTINGS fault_servicing_config; // 2 + sWIL_NETWORK_DATA_CAPTURE_SETTINGS network_data_capture_config; // 1 + uint16_t sensor_buffer_size; // 2 } sWIL_CONNECTION_SETTINGS; enum @@ -3731,9 +4791,17 @@ typedef union typedef struct { - sSPI_PORT_SETTING port_a; - sSPI_PORT_SETTING port_b; + sSPI_PORT_SETTING port_a; // 1 + sSPI_PORT_SETTING port_b; // 1 } sSPI_PORT_SETTINGS; + +// clang-format off +#define WBMS_GATEWAY_NETWORK_NONE (0) +#define WBMS_GATEWAY_NETWORK_DWCAN_01 (1) +#define WBMS_GATEWAY_NETWORK_DWCAN_02 (2) +#define WBMS_GATEWAY_NETWORK_UDP_MULTICAST (3) +// clang-format on + typedef struct { uint8_t wbms1_network; @@ -3741,26 +4809,27 @@ typedef struct uint8_t wbms2_network; uint8_t wbms2_canfd_enable; uint16_t reserved[6]; -} WBMSGatewaySettings; +} WBMSGatewaySettings; // 16 typedef struct _SRADBMSSettings { + /* Performance Test */ + uint16_t perf_en; // 2 - uint16_t perf_en; + uint64_t termination_enables; // 8 - uint64_t termination_enables; + CAN_SETTINGS can1; // 12 + CANFD_SETTINGS canfd1; // 10 - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; // 12 + CANFD_SETTINGS canfd2; // 10 - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 - int16_t iso15765_separation_time_offset; + /* ISO15765-2 Transport Layer */ + int16_t iso15765_separation_time_offset; // 2 struct { @@ -3768,34 +4837,38 @@ typedef struct _SRADBMSSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags; + } flags; // 4 - ETHERNET_SETTINGS ethernet; - ETHERNET_SETTINGS2 ethernet2; + ETHERNET_SETTINGS ethernet; // 8 + ETHERNET_SETTINGS2 ethernet2; // 16 - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t network_enabled_on_boot; + uint32_t pwr_man_timeout; // 4 + uint16_t pwr_man_enable; // 2 + uint16_t network_enabled_on_boot; // 2 - uint8_t rsvd[10]; + uint8_t rsvd[10]; // Was sWILBridgeConfig - sSPI_PORT_SETTINGS spi_config; + sSPI_PORT_SETTINGS spi_config; // 2 - sWIL_CONNECTION_SETTINGS wbms_wil_1; - sWIL_CONNECTION_SETTINGS wbms_wil_2; + sWIL_CONNECTION_SETTINGS wbms_wil_1; // 8 + sWIL_CONNECTION_SETTINGS wbms_wil_2; // 8 - uint16_t wil1_nwk_metadata_buff_count; - uint16_t wil2_nwk_metadata_buff_count; + uint16_t wil1_nwk_metadata_buff_count; // 2 + uint16_t wil2_nwk_metadata_buff_count; // 2 - WBMSGatewaySettings gateway; + WBMSGatewaySettings gateway; // 16 - uint16_t network_enables_4; - uint64_t network_enables_5; + uint16_t network_enables_4; // 2 + uint64_t network_enables_5; // 8 } SRADBMSSettings; +#define SRADBMSSettings_SIZE 156 typedef struct _SRADCometSettings { - + // ECU ID used in CAN communications. + // TX ID = ECU ID with bit28 cleared, + // RX ID = ECUID with bit28 set, + // ECU ID = 0 implies ECU ID = serial no with bit 27 set uint32_t ecu_id; uint16_t perf_en; struct @@ -3831,23 +4904,96 @@ typedef struct _SRADCometSettings uint16_t pwr_man_enable; RAD_GPTP_SETTINGS gPTP; STextAPISettings text_api; - + // Ethernet 10/100/1000 ETHERNET_SETTINGS2 ethernet; - + // Ethernet General OP_ETH_GENERAL_SETTINGS opEthGen; - + // 100/1000T1 ETHERNET_SETTINGS2 ethT1; OP_ETH_SETTINGS opEth1; - + // 10T1S ETHERNET_SETTINGS2 ethT1s1; ETHERNET10T1S_SETTINGS t1s1; - + // 10T1S ETHERNET_SETTINGS2 ethT1s2; ETHERNET10T1S_SETTINGS t1s2; uint64_t network_enables_5; LIN_SETTINGS lin1; + // 10T1S Extended settings + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; } SRADCometSettings; +#define SRADCometSettings_SIZE 498 +typedef struct _SRADComet3Settings +{ + // ECU ID used in CAN communications. + // TX ID = ECU ID with bit28 cleared, + // RX ID = ECUID with bit28 set, + // ECU ID = 0 implies ECU ID = serial no with bit 27 set + uint32_t ecu_id; + uint16_t perf_en; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; + uint16_t network_enabled_on_boot; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + uint64_t network_enables; + uint64_t network_enables_2; + uint64_t termination_enables; + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; + RAD_REPORTING_SETTINGS reporting; + int16_t iso15765_separation_time_offset; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + RAD_GPTP_SETTINGS gPTP; + STextAPISettings text_api; + // Ethernet 10/100/1000 + ETHERNET_SETTINGS2 ethernet; + // Ethernet General + OP_ETH_GENERAL_SETTINGS opEthGen; + // 100/1000T1 + ETHERNET_SETTINGS2 ethT1; + OP_ETH_SETTINGS opEth1; + // 10T1S + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + // 10T1S + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + // 10T1S + ETHERNET_SETTINGS2 ethT1s3; + ETHERNET10T1S_SETTINGS t1s3; + // 10T1S + ETHERNET_SETTINGS2 ethT1s4; + ETHERNET10T1S_SETTINGS t1s4; + // 10T1S + ETHERNET_SETTINGS2 ethT1s5; + ETHERNET10T1S_SETTINGS t1s5; + // 10T1S + ETHERNET_SETTINGS2 ethT1s6; + ETHERNET10T1S_SETTINGS t1s6; + LIN_SETTINGS lin1; + // 10T1S Extended Settings + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + ETHERNET10T1S_SETTINGS_EXT t1s3Ext; + ETHERNET10T1S_SETTINGS_EXT t1s4Ext; + ETHERNET10T1S_SETTINGS_EXT t1s5Ext; + ETHERNET10T1S_SETTINGS_EXT t1s6Ext; +} SRADComet3Settings; +#define SRADComet3Settings_SIZE 674 + +#define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS { uint16_t version; @@ -3870,7 +5016,7 @@ typedef struct _GLOBAL_SETTINGS SCmProbeSettings cmprobe; SOBD2ProSettings obd2pro; SVCAN412Settings vcan412; - SVCAN412Settings vcan4_12; + SVCAN412Settings vcan4_12; // backwards compatibility with older code SECU_AVBSettings neoecu_avb; SRADSuperMoonSettings radsupermoon; SRADMoon2Settings radmoon2; @@ -3885,6 +5031,7 @@ typedef struct _GLOBAL_SETTINGS SVCAN4IndSettings vcan4_ind; SOBD2LCSettings obd2lc; SRADGigastarSettings radgigastar; + SRADGalaxy2Settings radGalaxy2; SRADJupiterSettings jupiter; SRed2Settings red2; SFire3Settings fire3; @@ -3896,8 +5043,13 @@ typedef struct _GLOBAL_SETTINGS SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; SRADCometSettings radcomet; + SRADComet3Settings radcomet3; + // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; +#define GLOBAL_SETTINGS_SIZE (SFire3Settings_SIZE + 6) + +#define NEOVI_3G_MAX_SETTINGS_SIZE sizeof(GLOBAL_SETTINGS) typedef enum _EDeviceSettingsType { @@ -3941,9 +5093,12 @@ typedef enum _EDeviceSettingsType DeviceFire3FlexraySettingsType, DeviceRADCometSettingsType, DeviceRed2OemSettingsType, - + DeviceRADComet3SettingsType, + DeviceRADGalaxy2SettingsType, + // add new settings type here + // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, - DeviceSettingsNone = 0xFFFFFFFF + DeviceSettingsNone = 0xFFFFFFFF // just wanted to reserve this } EDeviceSettingsType; typedef struct _SDeviceSettings @@ -3966,7 +5121,7 @@ typedef struct _SDeviceSettings SCmProbeSettings cmprobe; SOBD2ProSettings obd2pro; SVCAN412Settings vcan412; - SVCAN412Settings vcan4_12; + SVCAN412Settings vcan4_12; // backwards compatibility with older code SECU_AVBSettings neoecu_avb; SRADSuperMoonSettings radsupermoon; SRADMoon2Settings radmoon2; @@ -3982,6 +5137,7 @@ typedef struct _SDeviceSettings SVCAN4IndSettings vcan4_ind; SOBD2LCSettings obd2lc; SRADGigastarSettings radgigastar; + SRADGalaxy2Settings radGalaxy2; SRADJupiterSettings jupiter; SFire3Settings fire3; SRed2Settings red2; @@ -3993,15 +5149,17 @@ typedef struct _SDeviceSettings SRADMoon3Settings radmoon3; SFire3FlexraySettings fire3Flexray; SRADCometSettings radcomet; - + SRADComet3Settings radcomet3; + // Make sure GLOBAL_SETTINGS matches this + // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; } SDeviceSettings; typedef enum _EPlasmaIonVnetChannel_t { - PlasmaIonVnetChannelMain, - PlasmaIonVnetChannelA, - PlasmaIonVnetChannelB, + PlasmaIonVnetChannelMain, // PLASMA = SLOT 2, ION = VNET2 + PlasmaIonVnetChannelA, // PLASMA = SLOT 1, ION = VNET1 + PlasmaIonVnetChannelB, // PLASMA = SLOT 3, ION = NA eSoftCore, eFpgaStatusResp, } EPlasmaIonVnetChannel_t; @@ -4038,40 +5196,41 @@ typedef enum _EwBMSInstance_t typedef struct _stCM_ISO157652_TxMessage { - uint16_t vs_netid; - - uint8_t padding; + uint16_t vs_netid; /* The netid of the message (determines which network to transmit on), not supported */ + uint8_t padding; /* The padding byte to use to fill the unused portion of + * transmitted CAN frames (single frame, first frame, consecutive frame) */ uint8_t tx_index; - uint32_t id; - uint32_t fc_id; - uint32_t fc_id_mask; + uint32_t id; /* arbId of transmitted frames (CAN id to transmit to) */ + uint32_t fc_id; /* flow control arb id filter value (response id from receiver) */ + uint32_t fc_id_mask; /* The flow control arb filter mask (response id from receiver) */ - uint8_t stMin; - uint8_t blockSize; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; + uint8_t stMin; /* Overrides the stMin that the receiver reports, see overrideSTmin. Set to J2534's STMIN_TX if <= 0xFF */ + uint8_t blockSize; /* Overrides the block size that the receiver reports, see overrideBlockSize. Set to J2534's BS_TX if <= 0xFF */ + uint8_t flowControlExtendedAddress; /* Expected Extended Address byte of response from receiver. see fc_ext_address_enable, not supported */ + uint8_t extendedAddress; /* Extended Address byte of transmitter. see ext_address_enable, not supported */ - uint16_t fs_timeout; - uint16_t fs_wait; + uint16_t fs_timeout; /* max timeout (ms) for waiting on flow control respons. Set this to N_BS_MAX's value if J2534 */ + uint16_t fs_wait; /* max timeout (ms) for waiting on flow control response after receiving flow control + * with flow status set to WAIT. Set this to N_BS_MAX's value if J2534. */ - uint8_t data[4 * 1024]; + uint8_t data[4 * 1024]; /* The data */ - uint32_t num_bytes; + uint32_t num_bytes; /* Number of data bytes */ union { struct { - unsigned id_29_bit_enable : 1; - unsigned fc_id_29_bit_enable : 1; - unsigned ext_address_enable : 1; - unsigned fc_ext_address_enable : 1; - - unsigned overrideSTmin : 1; - unsigned overrideBlockSize : 1; - unsigned paddingEnable : 1; + unsigned id_29_bit_enable : 1; /* Enables 29 bit arbId for transmitted frames. Set to 1 so transmitted frames use 29 bit ids, not supported */ + unsigned fc_id_29_bit_enable : 1; /* Enables 29 bit arbId for Flow Control filter. Set to 1 if receiver response uses 29 bit ids, not supported */ + unsigned ext_address_enable : 1; /* Enables Extended Addressing, Set to 1 if transmitted frames should have extended addres byte, not supported */ + unsigned fc_ext_address_enable : 1; /* Enables Extended Addressing for Flow Control filter. Set to 1 if receiver responds with extended address byte, not supported */ + + unsigned overrideSTmin : 1; /* Uses member stMin and not receiver's flow control's stMin */ + unsigned overrideBlockSize : 1; /* Uses member BlockSize and not receiver's flow control's BlockSize */ + unsigned paddingEnable : 1; /* Enables padding */ unsigned iscanFD : 1; unsigned isBRSEnabled : 1; unsigned : 15; @@ -4080,31 +5239,32 @@ typedef struct _stCM_ISO157652_TxMessage uint32_t flags; }; } stCM_ISO157652_TxMessage; +#define stCM_ISO157652_TxMessage_SIZE 4128 typedef struct { - uint16_t vs_netid; - uint8_t padding; + uint16_t vs_netid; /* network id for transmitted/received frames */ + uint8_t padding; /* if paddingEnable is set, frames will be padded to full length (see tx_dl) with this byte */ - uint8_t tx_index; + uint8_t tx_index; /* identifier for this transmit message */ - uint32_t id; - uint32_t fc_id; - uint32_t fc_id_mask; + uint32_t id; /* ArbID of transmitted frames, see id_29_bit_enable */ + uint32_t fc_id; /* Flow control response ArbID Value, see fc_id_29_bit_enable */ + uint32_t fc_id_mask; /* Flow control response ArbID mask */ - uint8_t stMin; - uint8_t blockSize; + uint8_t stMin; /* If overrideSTmin is set, this value supercedes the value in the flow control responses */ + uint8_t blockSize; /* if overrideBlockSize is ser, this value supercedes the value in the flow control responses */ - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; + uint8_t flowControlExtendedAddress; /* Expected EA from the receiver, see fc_ext_address_enable */ + uint8_t extendedAddress; /* EA for transmitted frames, see ext_address_enable */ - uint16_t fs_timeout; - uint16_t fs_wait; + uint16_t fs_timeout; /* timeout in milliseconds for waiting on flow control response */ + uint16_t fs_wait; /* timeout in milliseconds for waiting on another flow control response after receiving flow control with status set to WAIT */ - uint8_t* data; - uint32_t num_bytes; + uint8_t* data; /* pointer to the data bytes, this needs to by dynamically allocated in the application */ + uint32_t num_bytes; /* number of data bytes, 0-4294967295. As of 06-22-2017, the embedded side has about 60MB of memory available to hold this data */ - uint8_t tx_dl; + uint8_t tx_dl; /* Maximum CAN(FD) protocol length for transmitted frames. Valid values are 8, 12, 16, 20, 24, 32, 48, 64 */ union { @@ -4124,35 +5284,37 @@ typedef struct uint16_t flags; }; } ISO15765_2015_TxMessage; +#define ISO15765_2015_TxMessage_SIZE (32 + sizeof(uint8_t*)) typedef struct _stCM_ISO157652_RxMessage { - uint16_t vs_netid; + uint16_t vs_netid; /* The netid of the message (determines which network to decode receives), not supported */ - uint8_t padding; + uint8_t padding; /* The padding byte to use to fill the unused portion of + * transmitted CAN frames (flow control), see paddingEnable. */ - uint32_t id; - uint32_t id_mask; - uint32_t fc_id; + uint32_t id; /* ArbId filter value for frames from transmitter (from ECU to neoVI) */ + uint32_t id_mask; /* ArbId filter mask for frames from transmitter (from ECU to neoVI) */ + uint32_t fc_id; /* flow control arbId to transmit in flow control (from neoVI to ECU) */ - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; + uint8_t flowControlExtendedAddress; /* Extended Address byte used in flow control (from neoVI to ECU). see fc_ext_address_enable */ + uint8_t extendedAddress; /* Expected Extended Address byte of frames sent by transmitter (from ECU to neoVI). see ext_address_enable */ - uint8_t blockSize; - uint8_t stMin; + uint8_t blockSize; /* Block Size to report in flow control response */ + uint8_t stMin; /* Minimum seperation time (between consecutive frames) to report in flow control response */ - uint16_t cf_timeout; + uint16_t cf_timeout; /* max timeout (ms) for waiting on consecutive frame. Set this to N_CR_MAX's value in J2534 */ union { struct { - unsigned id_29_bit_enable : 1; - unsigned fc_id_29_bit_enable : 1; - unsigned ext_address_enable : 1; - unsigned fc_ext_address_enable : 1; - unsigned enableFlowControlTransmission : 1; - unsigned paddingEnable : 1; + unsigned id_29_bit_enable : 1; /* Enables 29 bit arbId filter for frames (from ECU to neoVI) */ + unsigned fc_id_29_bit_enable : 1; /* Enables 29 bit arbId for Flow Control (from neoVI to ECU) */ + unsigned ext_address_enable : 1; /* Enables Extended Addressing (from ECU to neoVI) */ + unsigned fc_ext_address_enable : 1; /* Enables Extended Addressing (from neoVI to ECU) */ + unsigned enableFlowControlTransmission : 1; /*< Enables Flow Control frame transmission (from neoVI to ECU) */ + unsigned paddingEnable : 1; /* Enables padding */ unsigned iscanFD : 1; unsigned isBRSEnabled : 1; }; @@ -4160,6 +5322,7 @@ typedef struct _stCM_ISO157652_RxMessage }; uint8_t reserved[16]; } stCM_ISO157652_RxMessage; +#define stCM_ISO157652_RxMessage_SIZE 42 #pragma pack(pop) @@ -4186,8 +5349,13 @@ typedef struct uint32_t ExpectedLength; uint32_t NodeID; } spyFilterLong; +#define spyFilterLong_SIZE 72 +#if !defined(VSPY3_GUI) && !defined(WIVI_EXPORT) && !defined(VS4A) && !defined(CORELIB_CMAKE) && !defined(NEOVI3GEXPLORER) typedef int16_t descIdType; +#else +typedef uint32_t descIdType; +#endif typedef struct _icsSpyMessage { @@ -4384,6 +5552,21 @@ typedef struct _icsSpyMessagewBMS uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessagewBMS; + +#if defined(VSPY3_GUI) || defined(WIVI_EXPORT) || defined(VS4A) || defined(CORELIB_CMAKE) || defined(NEOVI3GEXPLORER) +#if defined(IS_64BIT_SYSTEM) +#define icsSpyMessage_SIZE 80 +#else +#define icsSpyMessage_SIZE 68 +#endif +#else +#if defined(IS_64BIT_SYSTEM) +#define icsSpyMessage_SIZE 72 +#else +#define icsSpyMessage_SIZE 64 +#endif +#endif + typedef struct _icsSpyMessageLong { uint32_t StatusBitField; @@ -4419,6 +5602,7 @@ typedef struct _icsSpyMessageLong uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageLong; +#define icsSpyMessageLong_SIZE icsSpyMessage_SIZE typedef struct _icsSpyMessageJ1850 { @@ -4454,6 +5638,7 @@ typedef struct _icsSpyMessageJ1850 uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageJ1850; +#define icsSpyMessageJ1850_SIZE icsSpyMessage_SIZE typedef struct _icsSpyMessageVSB { @@ -4489,6 +5674,20 @@ typedef struct _icsSpyMessageVSB uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageVSB; +#define icsSpyMessageVSB_SIZE 64 + +/** + * The network of a message is a combination of both NetworkID and NetworkID2. + * Be sure to use ICS_GET_NETWORKID and ICS_SET_NETWORKID, especially for slave VNETs. + */ + +#define ICS_GET_NETWORKID(m) ((((unsigned int)m.NetworkID2) << 8) | m.NetworkID) +#define ICS_SET_NETWORKID(m, X) \ + do { \ + m.NetworkID = X; \ + m.NetworkID2 = X >> 8; \ + } while (0) + #pragma pack(push) #pragma pack(1) typedef struct _ethernetNetworkStatus_t @@ -4496,8 +5695,8 @@ typedef struct _ethernetNetworkStatus_t uint16_t networkId; uint8_t linkStatus; uint8_t linkFullDuplex; - uint8_t linkSpeed; - uint8_t linkMode; + uint8_t linkSpeed; // see ethLinkSpeed + uint8_t linkMode; // for automotive networks - see opEthLinkMode } ethernetNetworkStatus_t; #pragma pack(pop) @@ -4545,7 +5744,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus[8 - 1]; + ethernetNetworkStatus_t ethernetStatus[RADJUPITER_NUM_PORTS - 1]; } icsRadJupiterDeviceStatus; typedef struct @@ -4565,7 +5764,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus[19]; + ethernetNetworkStatus_t ethernetStatus[RADEPSILON_NUM_PORTS]; } icsRadEpsilonDeviceStatus; typedef struct @@ -4595,15 +5794,18 @@ typedef union typedef struct { - char szName[128]; - char szDeviceName[64]; - unsigned long Status; - unsigned char bMAC_Address[6]; - unsigned char bIPV6_Address[16]; - unsigned char bIPV4_Address[4]; + char szName[128]; // Adaptor name - ASCII Null terminated + char szDeviceName[64]; // Device name - ASCII Null terminated + unsigned long Status; // Adaptor Status, 0 for disabled, 1 for enabled + unsigned char bMAC_Address[6]; // The Media Access Control (MAC) Address of the Network interface in the PC that is to be connected to the vehicle. + unsigned char + bIPV6_Address[16]; // The Ipv6 address assigned to the Network interface. No compressed or short form notation// If not available, all bytes are set to zero to imply the absence of an address. + unsigned char bIPV4_Address[4]; // The Ipv4 address assigned to the Network interface. If not available, all bytes are set to zero. unsigned long EthernetPinConfig; } NDIS_ADAPTER_INFORMATION; +#define MAX_PHY_REG_PKT_ENTRIES 128 +#define PHY_REG_PKT_VERSION 1 typedef struct SPhyRegPktHdr { uint16_t numEntries; @@ -4611,21 +5813,24 @@ typedef struct SPhyRegPktHdr uint8_t entryBytes; } PhyRegPktHdr_t; +#define MAX_PHY_SETTINGS_STRUCT 128 +#define MAX_NUMBYTES_PHYSETTINGS MAX_PHY_SETTINGS_STRUCT * sizeof(PhyRegPktHdr_t) + typedef struct SPhyRegPktClause22Mess { - uint8_t phyAddr; - uint8_t page; - uint16_t regAddr; + uint8_t phyAddr; // 5 bits + uint8_t page; // 8 bits + uint16_t regAddr; // 5 bits uint16_t regVal; -} PhyRegPktClause22Mess_t; +} PhyRegPktClause22Mess_t; // 6 bytes typedef struct SPhyRegPktClause45Mess { - uint8_t port; - uint8_t device; + uint8_t port; // 5 bits uint8_t device; //5 bits + uint8_t device; // 5 bits uint16_t regAddr; uint16_t regVal; -} PhyRegPktClause45Mess_t; +} PhyRegPktClause45Mess_t; // 6 bytes typedef enum SPhyRegPktStatus { @@ -4689,449 +5894,131 @@ typedef enum networkTerminationDWCAN07, networkTerminationDWCAN08, enhancedFlashDriver, + rtcCalibration, + rtcClosedLoopCalibration, + cmp, NUM_VALID_DEVICE_FEATURES, supportedFeatureMax = 0xFFFF, } DeviceFeature; -typedef enum AccessoryErrorType -{ - AccessoryOperationError = 0, - AccessoryOperationSuccess = 1, - AccessoryFlashingInitError = 2, - AccessoryFlashingEraseError = 3, - AccessoryFlashingWriteError = 4, - AccessoryFlashingReadError = 5, - AccessoryFlashingVerifyError = 6, - AccessoryFlashingDeinitError = 7, - AccessoryFlashingInvalidHardware = 8, - AccessoryFlashingInvalidDataFile = 9, - AccessoryGetVersionError = 10, - AccessoryIndexError = 11, - AccessoryParamApiVersionError = 12, - AccessoryParamSizeMismatchError = 13, - AccessoryParameterNull = 14, -} AccessoryOperationErrorType; - -#pragma pack(push, 1) -typedef struct _FlashAccessoryFirmwareParams -{ - - uint32_t apiVersion; - - uint32_t size; - - uint8_t index; - - uint8_t* data; - - uint32_t dataSize; -} FlashAccessoryFirmwareParams; -#pragma pack(pop) - -typedef enum _flashAccessoryIndex -{ - FLASH_ACCESSORY_EPSILON_SWITCH_A, - FLASH_ACCESSORY_EPSILON_SWITCH_B, - FLASH_ACCESSORY_EPSILON_10G_PHY1, - FLASH_ACCESSORY_EPSILON_10G_PHY2, - FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2, -} flashAccessoryIndex; - -typedef enum _epsilon10GPHYFW -{ - FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0 -} epsilon10GPHYFW; -enum -{ - assert_line_5747 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) -}; -; -enum -{ - assert_line_5748 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) -}; -; -enum -{ - assert_line_5749 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) -}; -; -enum -{ - assert_line_5750 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) -}; -; -enum -{ - assert_line_5751 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) -}; -; -enum -{ - assert_line_5752 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) -}; -; -enum -{ - assert_line_5753 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) -}; -; -enum -{ - assert_line_5754 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) -}; -; -enum -{ - assert_line_5755 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) -}; -; -enum -{ - assert_line_5756 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) -}; -; -enum -{ - assert_line_5757 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) -}; -; -enum -{ - assert_line_5758 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) -}; -; -enum -{ - assert_line_5759 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) -}; -; -enum -{ - assert_line_5760 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) -}; -; -enum -{ - assert_line_5761 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) -}; -; -enum -{ - assert_line_5762 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) -}; -; -enum -{ - assert_line_5763 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) -}; -; -enum -{ - assert_line_5764 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) -}; -; -enum -{ - assert_line_5765 = 1 / (int)(!!(sizeof(MACSEC_SETTINGS) == (2040))) -}; -; -enum -{ - assert_line_5766 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) -}; -; -enum -{ - assert_line_5767 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) -}; -; -enum -{ - assert_line_5768 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) -}; -; -enum -{ - assert_line_5769 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) -}; -; -enum -{ - assert_line_5770 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) -}; -; -enum -{ - assert_line_5771 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) -}; -; -enum -{ - assert_line_5772 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) -}; -; -enum -{ - assert_line_5773 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) -}; -; -enum -{ - assert_line_5774 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) -}; -; -enum -{ - assert_line_5775 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) -}; -; -enum -{ - assert_line_5776 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) -}; -; -enum -{ - assert_line_5777 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) -}; -; -enum -{ - assert_line_5778 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) -}; -; -enum -{ - assert_line_5779 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) -}; -; -enum -{ - assert_line_5780 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) -}; -; -enum -{ - assert_line_5781 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) -}; -; -enum -{ - assert_line_5782 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) -}; -; -enum -{ - assert_line_5783 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) -}; -; -enum -{ - assert_line_5784 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) -}; -; -enum -{ - assert_line_5785 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) -}; -enum -{ - assert_line_5786 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) -}; -; -enum -{ - assert_line_5787 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1474) + 6))) -}; -; -enum -{ - assert_line_5788 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) -}; -; -enum -{ - assert_line_5789 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) -}; -; -enum -{ - assert_line_5790 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) -}; -; -enum -{ - assert_line_5791 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) -}; -; -enum -{ - assert_line_5792 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) -}; -; -enum -{ - assert_line_5793 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) -}; -; -enum -{ - assert_line_5794 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) -}; -; -enum -{ - assert_line_5795 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) -}; -; -enum -{ - assert_line_5796 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) -}; -; -enum -{ - assert_line_5797 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) -}; -; -enum -{ - assert_line_5798 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) -}; -; -enum -{ - assert_line_5799 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) -}; -; -enum -{ - assert_line_5800 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) -}; -; -enum -{ - assert_line_5801 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) -}; -; -enum -{ - assert_line_5802 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) -}; -; -enum -{ - assert_line_5803 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) -}; -; -enum -{ - assert_line_5804 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) -}; -; -enum -{ - assert_line_5805 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) -}; -; -enum -{ - assert_line_5806 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) -}; -; -enum -{ - assert_line_5807 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) -}; -; -enum -{ - assert_line_5808 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) -}; -; -enum -{ - assert_line_5809 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) -}; -; -enum -{ - assert_line_5810 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) -}; -; -enum -{ - assert_line_5811 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) -}; -; -enum -{ - assert_line_5812 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) -}; -; -enum -{ - assert_line_5813 = 1 / (int)(!!(sizeof(SFire3Settings) == (1474))) -}; -; -enum -{ - assert_line_5814 = 1 / (int)(!!(sizeof(SRed2Settings) == (670))) -}; -; -enum -{ - assert_line_5815 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) -}; -; -enum -{ - assert_line_5816 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) -}; -; -enum -{ - assert_line_5817 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) -}; -; -enum -{ - assert_line_5818 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) -}; -; -enum -{ - assert_line_5819 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) -}; -; -enum -{ - assert_line_5820 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) -}; -; -enum -{ - assert_line_5821 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) -}; -; -enum -{ - assert_line_5822 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1124))) -}; -; -enum -{ - assert_line_5823 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) -}; -; -enum -{ - assert_line_5824 = 1 / (int)(!!(sizeof(SRADCometSettings) == 466)) -}; -; -enum -{ - assert_line_5825 = 1 / (int)(!!(sizeof(FlashAccessoryFirmwareParams) == (21))) -}; -; +typedef enum PhyErrorType +{ + PhyOperationError = 0, + PhyOperationSuccess = 1, + PhyFlashingInitError = 2, + PhyFlashingEraseError = 3, + PhyFlashingWriteError = 4, + PhyFlashingReadError = 5, + PhyFlashingVerifyError = 6, + PhyFlashingDeinitError = 7, + PhyFlashingInvalidHardware = 8, + PhyFlashingInvalidDataFile = 9, + PhyGetVersionError = 10, + PhyIndexError = 11, +} PhyErrorType; + +// Update this assert when we add features to this enum +// static_assert(NUM_VALID_DEVICE_FEATURES == (networkTerminationDWCAN08 + 1)); +// static_assert(NUM_VALID_DEVICE_FEATURES <= supportedFeatureMax); +#define NUM_DEVICE_FEATURE_BITFIELDS ((NUM_VALID_DEVICE_FEATURES + 31) / 32) + +#if !defined(INTREPID_NO_CHECK_STRUCT_SIZE) && !defined(ics_static_assert) + +#if (defined(__cplusplus) && (__cplusplus > 199711L)) +#define ics_static_assert(e, msg) static_assert(e, msg) +#define CHECK_STRUCT_SIZE(X) ics_static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); +#else +#define ASSERT_CONCAT_(a, b) a##b +#define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b) +#define ics_static_assert(e, msg) \ + enum \ + { \ + ASSERT_CONCAT(assert_line_, __LINE__) = 1 / (int)(!!(e)) \ + } +#define CHECK_STRUCT_SIZE(X) ics_static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); +#endif + +CHECK_STRUCT_SIZE(CAN_SETTINGS); +CHECK_STRUCT_SIZE(CANFD_SETTINGS); +CHECK_STRUCT_SIZE(SWCAN_SETTINGS); +CHECK_STRUCT_SIZE(LIN_SETTINGS); +CHECK_STRUCT_SIZE(ISO9141_KEYWORD2000__INIT_STEP); +CHECK_STRUCT_SIZE(ISO9141_KEYWORD2000_SETTINGS); +CHECK_STRUCT_SIZE(UART_SETTINGS); +CHECK_STRUCT_SIZE(J1708_SETTINGS); +CHECK_STRUCT_SIZE(SRedSettings); +CHECK_STRUCT_SIZE(STextAPISettings); +CHECK_STRUCT_SIZE(stChipVersions); +CHECK_STRUCT_SIZE(SNeoMostGatewaySettings); +CHECK_STRUCT_SIZE(OP_ETH_GENERAL_SETTINGS); +CHECK_STRUCT_SIZE(OP_ETH_SETTINGS); +CHECK_STRUCT_SIZE(ETHERNET_SETTINGS); +CHECK_STRUCT_SIZE(ETHERNET_SETTINGS2); +CHECK_STRUCT_SIZE(ETHERNET10G_SETTINGS); +CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS); +CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS_EXT); +CHECK_STRUCT_SIZE(MACSEC_SETTINGS); +CHECK_STRUCT_SIZE(LOGGER_SETTINGS); +CHECK_STRUCT_SIZE(DISK_SETTINGS); +CHECK_STRUCT_SIZE(SERDESCAM_SETTINGS); +CHECK_STRUCT_SIZE(SERDESPOC_SETTINGS); +CHECK_STRUCT_SIZE(SERDESGEN_SETTINGS); +CHECK_STRUCT_SIZE(RAD_REPORTING_SETTINGS); +CHECK_STRUCT_SIZE(CANTERM_SETTINGS); +CHECK_STRUCT_SIZE(SFireSettings); +CHECK_STRUCT_SIZE(SFireVnetSettings); +CHECK_STRUCT_SIZE(SCyanSettings); +CHECK_STRUCT_SIZE(SVCAN3Settings); +CHECK_STRUCT_SIZE(SVCAN4Settings); +CHECK_STRUCT_SIZE(SVCANRFSettings); +CHECK_STRUCT_SIZE(SECUSettings); +CHECK_STRUCT_SIZE(SPendantSettings); +CHECK_STRUCT_SIZE(SIEVBSettings); +CHECK_STRUCT_SIZE(SEEVBSettings); +CHECK_STRUCT_SIZE(SRADGalaxySettings); +CHECK_STRUCT_SIZE(SRADStar2Settings); +CHECK_STRUCT_SIZE(SOBD2SimSettings) +CHECK_STRUCT_SIZE(CmProbeSettings); +CHECK_STRUCT_SIZE(GLOBAL_SETTINGS); +CHECK_STRUCT_SIZE(stCM_ISO157652_TxMessage); +CHECK_STRUCT_SIZE(stCM_ISO157652_RxMessage); +CHECK_STRUCT_SIZE(spyFilterLong); +CHECK_STRUCT_SIZE(icsSpyMessage); +CHECK_STRUCT_SIZE(icsSpyMessageLong); +CHECK_STRUCT_SIZE(icsSpyMessageJ1850); +CHECK_STRUCT_SIZE(icsSpyMessageVSB); +CHECK_STRUCT_SIZE(OBD2ProSettings); +CHECK_STRUCT_SIZE(ISO15765_2015_TxMessage); +CHECK_STRUCT_SIZE(TIMESYNC_ICSHARDWARE_SETTINGS); +CHECK_STRUCT_SIZE(SRADSuperMoonSettings); +CHECK_STRUCT_SIZE(SRADMoon2Settings); +CHECK_STRUCT_SIZE(SRADGigalogSettings); +CHECK_STRUCT_SIZE(SRADGigastarSettings); +CHECK_STRUCT_SIZE(SRADGalaxy2Settings); +CHECK_STRUCT_SIZE(SExtSubCmdHdr); +CHECK_STRUCT_SIZE(SDiskStructure); +CHECK_STRUCT_SIZE(SDiskFormatProgress); +CHECK_STRUCT_SIZE(SDiskStatus); +CHECK_STRUCT_SIZE(SRADPlutoSettings); +CHECK_STRUCT_SIZE(CANHubSettings); +CHECK_STRUCT_SIZE(SNeoECU12Settings); +CHECK_STRUCT_SIZE(SPlutoSwitchSettings); +CHECK_STRUCT_SIZE(VCAN4IndSettings); +CHECK_STRUCT_SIZE(SRADJupiterSettings); +CHECK_STRUCT_SIZE(RadMoonDuoSettings); +CHECK_STRUCT_SIZE(SFire3Settings); +CHECK_STRUCT_SIZE(SRed2Settings); +CHECK_STRUCT_SIZE(SEtherBadgeSettings); +CHECK_STRUCT_SIZE(SRADA2BSettings); +CHECK_STRUCT_SIZE(A2BMonitorSettings); +CHECK_STRUCT_SIZE(SRADEpsilonSettings); +CHECK_STRUCT_SIZE(RAD_GPTP_SETTINGS); +CHECK_STRUCT_SIZE(SRADBMSSettings); +CHECK_STRUCT_SIZE(SRADMoon3Settings); +CHECK_STRUCT_SIZE(SFire3FlexraySettings); +CHECK_STRUCT_SIZE(CANHubSettings); +CHECK_STRUCT_SIZE(SRADCometSettings); +CHECK_STRUCT_SIZE(SRADComet3Settings); +#endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ + +#endif /* _ICSNVC40_H */ diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index f96623b95..34f262b9b 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -175,11 +175,14 @@ typedef unsigned __int64 uint64_t; #define NETID_MDIO_06 550 #define NETID_MDIO_07 551 #define NETID_MDIO_08 552 - #define NETID_OP_ETHERNET13 553 #define NETID_OP_ETHERNET14 554 #define NETID_OP_ETHERNET15 555 #define NETID_OP_ETHERNET16 556 +#define NETID_SPI3 557 +#define NETID_SPI4 558 +#define NETID_SPI5 559 +#define NETID_SPI6 560 /* Upper boundry of Network IDs */ #define NETID_MAX 100 @@ -222,15 +225,15 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RADEPSILON_T (0x0000001c) #define NEODEVICE_RADEPSILON_EXPRESS (0x0000001d) #define NEODEVICE_RADPROXIMA (0x0000001e) -#define NEODEVICE_NEW_DEVICE_58 (0x0000001f) + // I'm not sure what was 0x20 anymore, but we'll skip it to be safe -#define NEODEVICE_NEW_DEVICE_59 (0x00000021) +#define NEODEVICE_RAD_GALAXY_2 (0x00000021) #define NEODEVICE_RAD_BMS (0x00000022) #define NEODEVICE_RADMOON3 (0x00000023) #define NEODEVICE_RADCOMET (0x00000024) #define NEODEVICE_FIRE3_FLEXRAY (0x00000025) #define NEODEVICE_RED2_OEM (0x00000026) -#define NEODEVICE_NEW_DEVICE_27 (0x00000027) +#define NEODEVICE_RADCOMET3 (0x00000027) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -262,7 +265,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB //clang-format on -#define DEVICECOUNT_FOR_EXPLORER (46) //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER (48) //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -448,6 +451,7 @@ typedef unsigned __int64 uint64_t; #define SPY_STATUS2_ETHERNET_T1S_SYMBOL 0x20000000 #define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 #define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 +#define SPY_STATUS3_ETHERNET_TX_COLLISION 0x00000001 /* FlexRay Specific - check protocol before handling */ #define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 @@ -1069,6 +1073,12 @@ typedef union _stChipVersions uint8_t zynq_core_minor; } radgigastar_usbz_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } radGalaxy2_versions; + struct { uint8_t mchip_major; @@ -1156,6 +1166,12 @@ typedef union _stChipVersions uint8_t zynq_core_minor; } rad_comet_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } rad_comet3_versions; + } stChipVersions; #define stChipVersions_SIZE 8 @@ -1182,7 +1198,22 @@ enum typedef struct OP_ETH_GENERAL_SETTINGS_t { uint8_t ucInterfaceType; - uint8_t reserved0[3]; + union + { + uint8_t tapPairOpt; + struct + { + uint8_t tap1ToVspy : 1; + uint8_t tap2ToVspy : 1; + uint8_t tap3ToVspy : 1; + uint8_t tap4ToVspy : 1; + uint8_t tap5ToVspy : 1; + uint8_t tap6ToVspy : 1; + uint8_t tap7ToVspy : 1; + uint8_t tap8ToVspy : 1; + }; + }; + uint8_t reserved0[2]; uint16_t tapPair0; uint16_t tapPair1; uint16_t tapPair2; @@ -1385,7 +1416,8 @@ typedef struct ETHERNET10G_SETTINGS_t uint32_t netmask; uint32_t gateway; uint8_t link_speed; //0=10, 1=100, 2=1000, 3=2500, 4=5000, 5=10000 - uint8_t rsvd2[7]; + uint8_t compliance_mode; + uint8_t rsvd2[6]; } ETHERNET10G_SETTINGS; #define ETHERNET10G_SETTINGS_SIZE 24 @@ -1407,6 +1439,16 @@ typedef struct ETHERNET10T1S_SETTINGS_t #define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS 0x04 #define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL 0x08 +typedef struct ETHERNET10T1S_SETTINGS_EXT_t +{ + uint8_t enable_multi_id; // Mask representing whether ID at corresponding bit enabled or not + uint8_t multi_id[7]; + uint8_t rsvd[8]; +} ETHERNET10T1S_SETTINGS_EXT; +#define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 + +#define ETHERNET10T1S_SETTINGS_EXT_FLAG_ENABLE_MULTI_ID 0x01 + /* * START - MACsec Definitions */ @@ -2190,17 +2232,18 @@ typedef struct _RadMoonDuoConverterSettings #define RADMOONDUO_CONVERTER_SETTINGS_SIZE (16) // clang-format off -#define RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE 0x00000001 -#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE 0x00000002 // USB port 1 -#define RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE 0x00000004 -#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2 0x00000008 // USB port 2 -#define RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN 0x00000010 -#define RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN 0x00000020 -#define RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN 0x00000040 -#define RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN 0x00000080 -#define RAD_REPORTING_SETTINGS_FLAG_AIN1 0x00000100 -#define RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE 0x00000200 -#define RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE 0x00000400 +#define RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE 0x00000001 +#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE 0x00000002 // USB port 1 +#define RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE 0x00000004 +#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2 0x00000008 // USB port 2 +#define RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN 0x00000010 +#define RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN 0x00000020 +#define RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN 0x00000040 +#define RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN 0x00000080 +#define RAD_REPORTING_SETTINGS_FLAG_AIN1 0x00000100 +#define RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE 0x00000200 +#define RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE 0x00000400 +#define RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE 0x00000800 // clang-format on typedef struct RAD_REPORTING_SETTINGS_t @@ -2812,6 +2855,7 @@ enum eGPTPPort ePortOpEth12 = 12, ePortStdEth1 = 13, ePortStdEth2 = 14, + ePortStdEth3 = 15, }; /* GPTP port role options */ @@ -2957,7 +3001,12 @@ typedef struct _SRADStar2Settings STextAPISettings text_api; uint16_t pc_com_mode; TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - uint16_t hwComLatencyTestEn; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; RAD_REPORTING_SETTINGS reporting; ETHERNET_SETTINGS2 ethernet; @@ -3269,6 +3318,97 @@ typedef struct _SRADGigastarSettings #define SRADGigastarSettings_SIZE 710 +typedef struct _SRADGalaxy2Settings +{ + uint32_t ecu_id; + uint16_t perf_en; + + /* CAN */ + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + + // SWCAN_SETTINGS swcan1; G2 does not have SWCAN. + uint16_t network_enables; + // SWCAN_SETTINGS swcan2; G2 does not have SWCAN. + uint16_t network_enables_2; + + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + + uint16_t network_enabled_on_boot; + + /* ISO15765-2 Transport Layer */ + uint16_t iso15765_separation_time_offset; + + /* ISO9141 - Keyword */ + uint16_t iso_9141_kwp_enable_reserved; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + + uint16_t iso_msg_termination_1; + + uint16_t idle_wakeup_network_enables_1; + uint16_t idle_wakeup_network_enables_2; + + /* reserved for T1 networks such as BR1, BR2, etc.. */ + uint16_t network_enables_3; + uint16_t idle_wakeup_network_enables_3; + + STextAPISettings text_api; + + uint64_t termination_enables; // New feature unlike Galaxy. + + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t reserved : 15; + } flags; + + LIN_SETTINGS lin1; + + OP_ETH_GENERAL_SETTINGS opEthGen; + OP_ETH_SETTINGS opEth1; + OP_ETH_SETTINGS opEth2; + OP_ETH_SETTINGS opEth3; + OP_ETH_SETTINGS opEth4; + OP_ETH_SETTINGS opEth5; + OP_ETH_SETTINGS opEth6; + OP_ETH_SETTINGS opEth7; + OP_ETH_SETTINGS opEth8; + OP_ETH_SETTINGS opEth9; + OP_ETH_SETTINGS opEth10; + OP_ETH_SETTINGS opEth11; + OP_ETH_SETTINGS opEth12; + OP_ETH_SETTINGS opEth13; + OP_ETH_SETTINGS opEth14; + OP_ETH_SETTINGS opEth15; + OP_ETH_SETTINGS opEth16; + + ETHERNET10G_SETTINGS ethernet10g; + ETHERNET10G_SETTINGS ethernet10g_2; + ETHERNET10G_SETTINGS ethernet10g_3; + + uint16_t network_enables_4; + RAD_REPORTING_SETTINGS reporting; + RAD_GPTP_SETTINGS gPTP; +} SRADGalaxy2Settings; +#define SRADGalaxy2Settings_SIZE 822 + typedef struct _SVividCANSettings { uint32_t ecu_id; @@ -4137,6 +4277,40 @@ typedef struct uint8_t reserved[5]; } Fire3LinuxSettings; +#define CMP_STREAMS_FIRE3 (10) +#define CMP_STREAMS_FIRE3FR (10) +#define CMP_STREAMS_RED2 (10) + +typedef struct +{ + uint8_t bStreamEnabled : 1; + uint8_t EthModule : 2; + uint8_t bControlEnabled : 1; + uint8_t spare : 4; + uint8_t streamId; + uint8_t dstMac[6]; + union + { + uint64_t word; + struct + { + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + uint16_t network_enables_4; + }; + } network_enables; + uint64_t network_enables_2; +} CMP_NETWORK_DATA; + +typedef struct +{ + uint8_t cmp_enabled : 1; + uint8_t sparebits : 7; + uint8_t spare; + uint16_t cmp_device_id; +} CMP_GLOBAL_DATA; + typedef struct _SRed2Settings { uint16_t perf_en; @@ -4210,8 +4384,10 @@ typedef struct _SRed2Settings Fire3LinuxSettings os_settings; RAD_GPTP_SETTINGS gPTP; uint16_t iso_tester_pullup_enable; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_RED2]; } SRed2Settings; -#define SRed2Settings_SIZE (670) +#define SRed2Settings_SIZE (914) typedef struct _SFire3Settings { @@ -4320,8 +4496,11 @@ typedef struct _SFire3Settings uint64_t network_enables_2; uint64_t termination_enables_2; uint16_t iso_tester_pullup_enable; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3]; } SFire3Settings; -#define SFire3Settings_SIZE (1474) +#define SFire3Settings_SIZE (1718) + typedef struct _SFire3FlexraySettings { @@ -4414,8 +4593,10 @@ typedef struct _SFire3FlexraySettings uint16_t flex_mode; uint16_t flex_termination; uint16_t iso_tester_pullup_enable; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3FR]; } SFire3FlexraySettings; -#define SFire3FlexraySettings_SIZE (1124) +#define SFire3FlexraySettings_SIZE (1368) typedef struct { @@ -4488,18 +4669,8 @@ typedef struct _SEtherBadgeSettings #define SEtherBadgeSettings_SIZE 316 #define RADEPSILON_NUM_PORTS 9 // ATSAM + PHYs -#define PROXIMA_NUM_PORTS 19 // ATSAM + PHYs #define RADEPSILON_MAX_PHY 18 -#define EPSILON_88Q6113_SWITCH_A 1 -#define EPSILON_88Q6113_SWITCH_B 2 - -typedef enum -{ - EPSILON_10G_PHY1 = (1 << 0), - EPSILON_10G_PHY2 = (1 << 1), -} Epsilon_10G_PHY_select; - typedef struct _SRADEpsilonSwitchSettings { uint8_t phyMode[RADEPSILON_MAX_PHY]; @@ -4762,8 +4933,79 @@ typedef struct _SRADCometSettings ETHERNET10T1S_SETTINGS t1s2; uint64_t network_enables_5; LIN_SETTINGS lin1; + // 10T1S Extended settings + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; } SRADCometSettings; -#define SRADCometSettings_SIZE 466 +#define SRADCometSettings_SIZE 498 + +typedef struct _SRADComet3Settings +{ + // ECU ID used in CAN communications. + // TX ID = ECU ID with bit28 cleared, + // RX ID = ECUID with bit28 set, + // ECU ID = 0 implies ECU ID = serial no with bit 27 set + uint32_t ecu_id; + uint16_t perf_en; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; + uint16_t network_enabled_on_boot; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + uint64_t network_enables; + uint64_t network_enables_2; + uint64_t termination_enables; + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; + RAD_REPORTING_SETTINGS reporting; + int16_t iso15765_separation_time_offset; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + RAD_GPTP_SETTINGS gPTP; + STextAPISettings text_api; + // Ethernet 10/100/1000 + ETHERNET_SETTINGS2 ethernet; + // Ethernet General + OP_ETH_GENERAL_SETTINGS opEthGen; + // 100/1000T1 + ETHERNET_SETTINGS2 ethT1; + OP_ETH_SETTINGS opEth1; + // 10T1S + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + // 10T1S + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + // 10T1S + ETHERNET_SETTINGS2 ethT1s3; + ETHERNET10T1S_SETTINGS t1s3; + // 10T1S + ETHERNET_SETTINGS2 ethT1s4; + ETHERNET10T1S_SETTINGS t1s4; + // 10T1S + ETHERNET_SETTINGS2 ethT1s5; + ETHERNET10T1S_SETTINGS t1s5; + // 10T1S + ETHERNET_SETTINGS2 ethT1s6; + ETHERNET10T1S_SETTINGS t1s6; + LIN_SETTINGS lin1; + // 10T1S Extended Settings + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + ETHERNET10T1S_SETTINGS_EXT t1s3Ext; + ETHERNET10T1S_SETTINGS_EXT t1s4Ext; + ETHERNET10T1S_SETTINGS_EXT t1s5Ext; + ETHERNET10T1S_SETTINGS_EXT t1s6Ext; +} SRADComet3Settings; +#define SRADComet3Settings_SIZE 674 #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS @@ -4803,6 +5045,7 @@ typedef struct _GLOBAL_SETTINGS SVCAN4IndSettings vcan4_ind; SOBD2LCSettings obd2lc; SRADGigastarSettings radgigastar; + SRADGalaxy2Settings radGalaxy2; SRADJupiterSettings jupiter; SRed2Settings red2; SFire3Settings fire3; @@ -4814,6 +5057,7 @@ typedef struct _GLOBAL_SETTINGS SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; SRADCometSettings radcomet; + SRADComet3Settings radcomet3; // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; @@ -4863,6 +5107,8 @@ typedef enum _EDeviceSettingsType DeviceFire3FlexraySettingsType, DeviceRADCometSettingsType, DeviceRed2OemSettingsType, + DeviceRADComet3SettingsType, + DeviceRADGalaxy2SettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -4905,6 +5151,7 @@ typedef struct _SDeviceSettings SVCAN4IndSettings vcan4_ind; SOBD2LCSettings obd2lc; SRADGigastarSettings radgigastar; + SRADGalaxy2Settings radGalaxy2; SRADJupiterSettings jupiter; SFire3Settings fire3; SRed2Settings red2; @@ -4916,6 +5163,7 @@ typedef struct _SDeviceSettings SRADMoon3Settings radmoon3; SFire3FlexraySettings fire3Flexray; SRADCometSettings radcomet; + SRADComet3Settings radcomet3; // Make sure GLOBAL_SETTINGS matches this // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; @@ -5541,7 +5789,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus[PROXIMA_NUM_PORTS]; + ethernetNetworkStatus_t ethernetStatus[RADEPSILON_NUM_PORTS]; } icsRadEpsilonDeviceStatus; typedef struct @@ -5672,64 +5920,28 @@ typedef enum networkTerminationDWCAN07, networkTerminationDWCAN08, enhancedFlashDriver, + rtcCalibration, + rtcClosedLoopCalibration, + cmp, NUM_VALID_DEVICE_FEATURES, supportedFeatureMax = 0xFFFF, } DeviceFeature; -typedef enum AccessoryErrorType -{ - AccessoryOperationError = 0, - AccessoryOperationSuccess = 1, - AccessoryFlashingInitError = 2, - AccessoryFlashingEraseError = 3, - AccessoryFlashingWriteError = 4, - AccessoryFlashingReadError = 5, - AccessoryFlashingVerifyError = 6, - AccessoryFlashingDeinitError = 7, - AccessoryFlashingInvalidHardware = 8, - AccessoryFlashingInvalidDataFile = 9, - AccessoryGetVersionError = 10, - AccessoryIndexError = 11, - AccessoryParamApiVersionError = 12, - AccessoryParamSizeMismatchError = 13, - AccessoryParameterNull = 14, -} AccessoryOperationErrorType; - -#pragma pack(push, 1) -typedef struct _FlashAccessoryFirmwareParams -{ - // set to FlashAccessoryFirmwareAPIVersion - This should increment anytime there is a breakage of ABI / API. - uint32_t apiVersion; - // sizeof(FlashAccessoryFirmwareParams) - uint32_t size; - // Device specific Index - we should have an enum/preprocess define for all of these - uint8_t index; - // firmware data - uint8_t* data; - // size of firmware data - uint32_t dataSize; -} FlashAccessoryFirmwareParams; -#pragma pack(pop) -#if defined(IS_64BIT_SYSTEM) -#define FlashAccessoryFirmwareParams_SIZE (21) -#else -#define FlashAccessoryFirmwareParams_SIZE (17) -#endif - - -typedef enum _flashAccessoryIndex -{ - FLASH_ACCESSORY_EPSILON_SWITCH_A, - FLASH_ACCESSORY_EPSILON_SWITCH_B, - FLASH_ACCESSORY_EPSILON_10G_PHY1, - FLASH_ACCESSORY_EPSILON_10G_PHY2, - FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2, -} flashAccessoryIndex; - -typedef enum _epsilon10GPHYFW -{ - FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0 -} epsilon10GPHYFW; +typedef enum PhyErrorType +{ + PhyOperationError = 0, + PhyOperationSuccess = 1, + PhyFlashingInitError = 2, + PhyFlashingEraseError = 3, + PhyFlashingWriteError = 4, + PhyFlashingReadError = 5, + PhyFlashingVerifyError = 6, + PhyFlashingDeinitError = 7, + PhyFlashingInvalidHardware = 8, + PhyFlashingInvalidDataFile = 9, + PhyGetVersionError = 10, + PhyIndexError = 11, +} PhyErrorType; // Update this assert when we add features to this enum //static_assert(NUM_VALID_DEVICE_FEATURES == (networkTerminationDWCAN08 + 1)); @@ -5772,6 +5984,7 @@ CHECK_STRUCT_SIZE(ETHERNET_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET_SETTINGS2); CHECK_STRUCT_SIZE(ETHERNET10G_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS); +CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS_EXT); CHECK_STRUCT_SIZE(MACSEC_SETTINGS); CHECK_STRUCT_SIZE(LOGGER_SETTINGS); CHECK_STRUCT_SIZE(DISK_SETTINGS); @@ -5809,6 +6022,7 @@ CHECK_STRUCT_SIZE(SRADSuperMoonSettings); CHECK_STRUCT_SIZE(SRADMoon2Settings); CHECK_STRUCT_SIZE(SRADGigalogSettings); CHECK_STRUCT_SIZE(SRADGigastarSettings); +CHECK_STRUCT_SIZE(SRADGalaxy2Settings); CHECK_STRUCT_SIZE(SExtSubCmdHdr); CHECK_STRUCT_SIZE(SDiskStructure); CHECK_STRUCT_SIZE(SDiskFormatProgress); @@ -5832,8 +6046,7 @@ CHECK_STRUCT_SIZE(SRADMoon3Settings); CHECK_STRUCT_SIZE(SFire3FlexraySettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SRADCometSettings); -CHECK_STRUCT_SIZE(FlashAccessoryFirmwareParams); - +CHECK_STRUCT_SIZE(SRADComet3Settings); #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/src/methods.cpp b/src/methods.cpp index 47baddd79..33acae140 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -411,6 +411,7 @@ bool PyNeoDeviceEx_SetHandle(PyObject* object, void* handle) // Get the _name attribute of PyNeoDeviceEx. // Returns false on error and exception is set. Returns true on success. + bool PyNeoDeviceEx_GetName(PyObject* object, PyObject* name) { if (!object) { @@ -3673,9 +3674,9 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO|b:", __FUNCTION__), &obj, &parms, &check_success)) { return NULL; } - /*if (!PyArg_ParseTuple(args, arg_parse("OiO|b:", __FUNCTION__), &obj, &accessory_indx, &bytes_obj, &check_success)) { - return NULL; - }*/ +#ifndef ENABLE_ACCESSORY_API + return set_ics_exception(exception_runtime_error(), "Accessory API not enabled"); +#else if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), @@ -3769,6 +3770,7 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } +#endif // ENABLE_ACCESSORY_API } PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) @@ -3780,6 +3782,9 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) return NULL; } +#ifndef ENABLE_ACCESSORY_API + return set_ics_exception(exception_runtime_error(), "Accessory API not enabled"); +#else if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); @@ -3867,6 +3872,7 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } +#endif // ENABLE_ACCESSORY_API } PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 82a993bcf..4c6e42b44 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -133,6 +133,10 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET14); result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET15); result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET16); + result += PyModule_AddIntMacro(module, NETID_SPI3); + result += PyModule_AddIntMacro(module, NETID_SPI4); + result += PyModule_AddIntMacro(module, NETID_SPI5); + result += PyModule_AddIntMacro(module, NETID_SPI6); result += PyModule_AddIntMacro(module, NETID_MAX); result += PyModule_AddIntMacro(module, NETID_INVALID); result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); @@ -166,14 +170,13 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NEODEVICE_RADEPSILON_T); result += PyModule_AddIntMacro(module, NEODEVICE_RADEPSILON_EXPRESS); result += PyModule_AddIntMacro(module, NEODEVICE_RADPROXIMA); - result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_58); - result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); + result += PyModule_AddIntMacro(module, NEODEVICE_RAD_GALAXY_2); result += PyModule_AddIntMacro(module, NEODEVICE_RAD_BMS); result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON3); result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET); result += PyModule_AddIntMacro(module, NEODEVICE_FIRE3_FLEXRAY); result += PyModule_AddIntMacro(module, NEODEVICE_RED2_OEM); - result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_27); + result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET3); result += PyModule_AddIntMacro(module, NEODEVICE_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -365,6 +368,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_SYMBOL); result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_BURST); result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_ETHERNET); + result += PyModule_AddIntMacro(module, SPY_STATUS3_ETHERNET_TX_COLLISION); result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB); result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_A); result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_B); @@ -560,6 +564,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_LINK_MODE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_PHY_MODE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK); // enum @@ -583,6 +588,10 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_LINK_MODE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PHY_MODE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_COMPL_MODE); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PKT_CHECK); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PKT_GEN); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE); result += PyModule_AddIntMacro(module, ETHERNET10G_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_SIZE); @@ -590,6 +599,8 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_TERMINATION); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL); + result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_EXT_SIZE); + result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_EXT_FLAG_ENABLE_MULTI_ID); // enum result += PyModule_AddIntMacro(module, MACSEC_PACKET_NO_VLAN_OR_MPLS); result += PyModule_AddIntMacro(module, MACSEC_PACKET_SINGLE_VLAN); @@ -834,6 +845,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_AIN1); result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE); result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE); + result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE); result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_SIZE); // enum result += PyModule_AddIntMacro(module, REPORT_ON_PERIODIC); @@ -882,6 +894,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ePortOpEth12); result += PyModule_AddIntMacro(module, ePortStdEth1); result += PyModule_AddIntMacro(module, ePortStdEth2); + result += PyModule_AddIntMacro(module, ePortStdEth3); // end of enum - }; // enum @@ -918,6 +931,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SRADMoon3Settings_SIZE); result += PyModule_AddIntMacro(module, SRADGigalogSettings_SIZE); result += PyModule_AddIntMacro(module, SRADGigastarSettings_SIZE); + result += PyModule_AddIntMacro(module, SRADGalaxy2Settings_SIZE); result += PyModule_AddIntMacro(module, SVividCANSettings_SIZE); result += PyModule_AddIntMacro(module, SOBD2SimSettings_SIZE); result += PyModule_AddIntMacro(module, CmProbeSettings_SIZE); @@ -966,21 +980,16 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_NONE); result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_ETH_01); result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_ETH_02); + result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3); + result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3FR); + result += PyModule_AddIntMacro(module, CMP_STREAMS_RED2); result += PyModule_AddIntMacro(module, SRed2Settings_SIZE); result += PyModule_AddIntMacro(module, SFire3Settings_SIZE); result += PyModule_AddIntMacro(module, SFire3FlexraySettings_SIZE); result += PyModule_AddIntMacro(module, RadMoonDuoSettings_SIZE); result += PyModule_AddIntMacro(module, SEtherBadgeSettings_SIZE); result += PyModule_AddIntMacro(module, RADEPSILON_NUM_PORTS); - result += PyModule_AddIntMacro(module, PROXIMA_NUM_PORTS); result += PyModule_AddIntMacro(module, RADEPSILON_MAX_PHY); - result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_A); - result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_B); - // enum - result += PyModule_AddIntMacro(module, EPSILON_10G_PHY1); - result += PyModule_AddIntMacro(module, EPSILON_10G_PHY2); - // end of enum - } Epsilon_10G_PHY_select; - result += PyModule_AddIntMacro(module, SRADEpsilonSettings_SIZE); // enum result += PyModule_AddIntMacro(module, enumWILPortConfig_Single_Port_A); @@ -1012,6 +1021,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, WBMS_GATEWAY_NETWORK_UDP_MULTICAST); result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); result += PyModule_AddIntMacro(module, SRADCometSettings_SIZE); + result += PyModule_AddIntMacro(module, SRADComet3Settings_SIZE); result += PyModule_AddIntMacro(module, GS_VERSION); result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, NEOVI_3G_MAX_SETTINGS_SIZE); @@ -1056,6 +1066,8 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, DeviceFire3FlexraySettingsType); result += PyModule_AddIntMacro(module, DeviceRADCometSettingsType); result += PyModule_AddIntMacro(module, DeviceRed2OemSettingsType); + result += PyModule_AddIntMacro(module, DeviceRADComet3SettingsType); + result += PyModule_AddIntMacro(module, DeviceRADGalaxy2SettingsType); result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); result += PyModule_AddIntMacro(module, DeviceSettingsNone); // end of enum - } EDeviceSettingsType; @@ -1143,41 +1155,27 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, networkTerminationDWCAN07); result += PyModule_AddIntMacro(module, networkTerminationDWCAN08); result += PyModule_AddIntMacro(module, enhancedFlashDriver); + result += PyModule_AddIntMacro(module, rtcCalibration); + result += PyModule_AddIntMacro(module, rtcClosedLoopCalibration); + result += PyModule_AddIntMacro(module, cmp); result += PyModule_AddIntMacro(module, NUM_VALID_DEVICE_FEATURES); result += PyModule_AddIntMacro(module, supportedFeatureMax); // end of enum - } DeviceFeature; // enum - result += PyModule_AddIntMacro(module, AccessoryOperationError); - result += PyModule_AddIntMacro(module, AccessoryOperationSuccess); - result += PyModule_AddIntMacro(module, AccessoryFlashingInitError); - result += PyModule_AddIntMacro(module, AccessoryFlashingEraseError); - result += PyModule_AddIntMacro(module, AccessoryFlashingWriteError); - result += PyModule_AddIntMacro(module, AccessoryFlashingReadError); - result += PyModule_AddIntMacro(module, AccessoryFlashingVerifyError); - result += PyModule_AddIntMacro(module, AccessoryFlashingDeinitError); - result += PyModule_AddIntMacro(module, AccessoryFlashingInvalidHardware); - result += PyModule_AddIntMacro(module, AccessoryFlashingInvalidDataFile); - result += PyModule_AddIntMacro(module, AccessoryGetVersionError); - result += PyModule_AddIntMacro(module, AccessoryIndexError); - result += PyModule_AddIntMacro(module, AccessoryParamApiVersionError); - result += PyModule_AddIntMacro(module, AccessoryParamSizeMismatchError); - result += PyModule_AddIntMacro(module, AccessoryParameterNull); - // end of enum - } AccessoryOperationErrorType; - - result += PyModule_AddIntMacro(module, FlashAccessoryFirmwareParams_SIZE); - result += PyModule_AddIntMacro(module, FlashAccessoryFirmwareParams_SIZE); - // enum - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_SWITCH_A); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_SWITCH_B); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY1); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY2); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2); - // end of enum - } flashAccessoryIndex; - - // enum - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0); - // end of enum - } epsilon10GPHYFW; + result += PyModule_AddIntMacro(module, PhyOperationError); + result += PyModule_AddIntMacro(module, PhyOperationSuccess); + result += PyModule_AddIntMacro(module, PhyFlashingInitError); + result += PyModule_AddIntMacro(module, PhyFlashingEraseError); + result += PyModule_AddIntMacro(module, PhyFlashingWriteError); + result += PyModule_AddIntMacro(module, PhyFlashingReadError); + result += PyModule_AddIntMacro(module, PhyFlashingVerifyError); + result += PyModule_AddIntMacro(module, PhyFlashingDeinitError); + result += PyModule_AddIntMacro(module, PhyFlashingInvalidHardware); + result += PyModule_AddIntMacro(module, PhyFlashingInvalidDataFile); + result += PyModule_AddIntMacro(module, PhyGetVersionError); + result += PyModule_AddIntMacro(module, PhyIndexError); + // end of enum - } PhyErrorType; result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); // enum From 035e55d02d132e740a34ed281c2cb7eda689fd49 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 4 Oct 2024 10:36:37 -0400 Subject: [PATCH 02/38] Removed ValueCAN.rf define --- src/methods.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 33acae140..761e98dc5 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -162,8 +162,6 @@ char* neodevice_to_string(unsigned long type) return "CM Probe"; case NEODEVICE_EEVB: return "EEVB"; - case NEODEVICE_VCANRF: - return "ValueCAN.rf"; case NEODEVICE_FIRE2: return "neoVI FIRE 2"; case NEODEVICE_FLEX: From 5bab9549eb6bb0cf80861df5c8d37de7cad0333e Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 4 Oct 2024 10:42:01 -0400 Subject: [PATCH 03/38] fixed issue #200 --- src/ics/py_neo_device_ex.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index af0c9a0e3..4fb343958 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -89,6 +89,11 @@ def serial_number(self) -> str: return ics.base36enc(self.SerialNumber) else: raise ValueError(f"Failed to convert SerialNumber {self.SerialNumber} to a valid serial number.") + + @property + def AutoHandleClose(self) -> bool: + """Return the AutoHandleClose from the internal NeoDevice object.""" + return self._auto_handle_close def open(self, *args, **kwargs): """Open the device. Returns a reference to Self on open. See ics.open_device for details on arguments.""" @@ -480,4 +485,8 @@ def write_sdcard(self, *args, **kwargs): def set_safe_boot_mode(self, *args, **kwargs): "See ics.set_safe_boot_mode for details on arguments." - return ics.set_safe_boot_mode(self, *args, **kwargs) \ No newline at end of file + return ics.set_safe_boot_mode(self, *args, **kwargs) + + def flash_devices(self, *args, **kwargs): + "See ics.flash_devices for details on arguments. This is an internal intrepid function only." + return ics.flash_device(self, *args, **kwargs) \ No newline at end of file From b4583c8cfa7b9c4741a69ca5d458fb76bbe8f4b2 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 4 Oct 2024 13:07:36 -0400 Subject: [PATCH 04/38] v917.18 --- doc/source/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index d50d899ff..2ec683a12 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -57,7 +57,7 @@ # built documents. # # The short X.Y version. -version = "915.14" +version = "917.18" # The full version, including alpha/beta/rc tags. release = version From 25fa943202db3f3499fba583718ff806cafbacbf Mon Sep 17 00:00:00 2001 From: overheadattack <43894618+overheadattack@users.noreply.github.com> Date: Tue, 21 Jan 2025 11:58:37 -0500 Subject: [PATCH 05/38] Enable internal firmware flashing over CAN. (#198) * CANFlash function Signed-off-by: Marcel * set_context now accepts, NULL, (), NONE, False Signed-off-by: Marcel * Set_context not accepts (), NULL, 0, False to release the handle Signed-off-by: Marcel * FlashDevice2 supports NetworkID Signed-off-by: Marcel * Removing CANFlash merged with FlashDevice2 Signed-off-by: Marcel * Removed code and added network and ran clang-format Signed-off-by: Marcel * Minor chnages Signed-off-by: Marcel * Signed-off-by: Marcel * updated based on feedback Signed-off-by: Marcel * minor change Signed-off-by: Marcel * removed printf used for debug Signed-off-by: Marcel * added ioptions as a argument if provided Signed-off-by: Marcel * Small changes Signed-off-by: Marcel * oops Signed-off-by: Marcel --------- Signed-off-by: Marcel Co-authored-by: Marcel --- src/methods.cpp | 427 ++++++++++++++++++++---------------------------- 1 file changed, 179 insertions(+), 248 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 761e98dc5..f75458528 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -276,10 +276,9 @@ bool PyNeoDeviceEx_CheckExact(PyObject* object) return strncmp(type_obj->tp_name, CLASS_NAME, sizeof(CLASS_NAME) / sizeof(CLASS_NAME[0])) == 0; // This will fail on cleanup because we can't import ics anymore... - //return _isPythonModuleObject_IsInstance(object, "ics.py_neo_device_ex", "PyNeoDeviceEx") == 1; + // return _isPythonModuleObject_IsInstance(object, "ics.py_neo_device_ex", "PyNeoDeviceEx") == 1; } - // Get the NeoDeviceEx from PyNeoDeviceEx. Caller is responsible for managing the // Py_buffer and nde is UB once Py_buffer goes out of scope. // Note: Calls to PyNeoDeviceEx_GetNeoDeviceEx() must be paired with calls @@ -289,8 +288,8 @@ bool PyNeoDeviceEx_CheckExact(PyObject* object) // Example: // Py_buffer buffer = {}; // NeoDeviceEx* nde = NULL; -// if (PyNeoDeviceEx_GetNeoDeviceEx(obj, &buffer, &nde)) { -// // use nde here +// if (PyNeoDeviceEx_GetNeoDeviceEx(obj, &buffer, &nde)) { +// // use nde here // } // PyBuffer_Release(&buffer); bool PyNeoDeviceEx_GetNeoDeviceEx(PyObject* object, Py_buffer* buffer, NeoDeviceEx** nde) @@ -369,9 +368,6 @@ bool PyNeoDeviceEx_GetHandle(PyObject* object, void** handle) *handle = ptr; return true; } - - -// Set the _handle attribute of PyNeoDeviceEx. // Returns false on error and exception is set. Returns true on success. bool PyNeoDeviceEx_SetHandle(PyObject* object, void* handle) { @@ -381,7 +377,7 @@ bool PyNeoDeviceEx_SetHandle(PyObject* object, void* handle) } if (!PyNeoDeviceEx_CheckExact(object)) { set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); - return false; + return false; } PyObject* _handle = PyObject_GetAttrString(object, "_handle"); if (!_handle) { @@ -409,7 +405,6 @@ bool PyNeoDeviceEx_SetHandle(PyObject* object, void* handle) // Get the _name attribute of PyNeoDeviceEx. // Returns false on error and exception is set. Returns true on success. - bool PyNeoDeviceEx_GetName(PyObject* object, PyObject* name) { if (!object) { @@ -445,7 +440,6 @@ bool PyNeoDeviceEx_SetName(PyObject* object, PyObject* name) return PyObject_SetAttrString(object, "_name", name) == 0; } - PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) { PyObject* device_types = NULL; @@ -522,11 +516,8 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) if (!PyNeoDeviceEx_SetNeoDeviceEx(obj, &devices[i])) { return NULL; } - if (!PyNeoDeviceEx_SetName(obj, - PyUnicode_FromString( - neodevice_to_string(devices[i].neoDevice.DeviceType) - )) - ) { + if (!PyNeoDeviceEx_SetName(obj, + PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)))) { return NULL; } PyTuple_SetItem(tuple, i, obj); @@ -662,11 +653,8 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) if (!PyNeoDeviceEx_SetNeoDeviceEx(device, &devices[i])) { return NULL; } - if (!PyNeoDeviceEx_SetName(device, - PyUnicode_FromString( - neodevice_to_string(devices[i].neoDevice.DeviceType) - )) - ) { + if (!PyNeoDeviceEx_SetName( + device, PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)))) { return NULL; } break; @@ -743,12 +731,10 @@ PyObject* meth_close_device(PyObject* self, PyObject* args) return NULL; } if (obj == NULL) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx, got NULL"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type PyNeoDeviceEx, got NULL"); } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type PyNeoDeviceEx"); } try { ice::Library* lib = dll_get_library(); @@ -829,8 +815,7 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -890,8 +875,7 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -951,8 +935,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -994,8 +977,8 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) for (int i = 0; i < tuple_size; ++i) { PyObject* value = PyTuple_GET_ITEM(arg_data, i); if (!PyLong_CheckExact(value)) { - return set_ics_exception( - exception_runtime_error(), "Failed to convert tuple data. Tuple data must be integer type"); + return set_ics_exception(exception_runtime_error(), + "Failed to convert tuple data. Tuple data must be integer type"); } data[i] = (unsigned char)PyLong_AsLong(PyTuple_GET_ITEM(arg_data, i)); } @@ -1033,8 +1016,7 @@ PyObject* meth_coremini_start(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1067,8 +1049,7 @@ PyObject* meth_coremini_stop(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1102,8 +1083,7 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1137,8 +1117,7 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1175,8 +1154,7 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1254,8 +1232,7 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1271,8 +1248,7 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) } ice::Function icsneoWaitForRxMessagesWithTimeOut( lib, "icsneoWaitForRxMessagesWithTimeOut"); - ice::Function icsneoGetMessages(lib, - "icsneoGetMessages"); + ice::Function icsneoGetMessages(lib, "icsneoGetMessages"); int count = 20000; int errors = 0; union SpyMessage @@ -1308,8 +1284,7 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) if (!obj) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); - return set_ics_exception( - exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } if (use_j1850) { spy_message_j1850_object* msg = (spy_message_j1850_object*)obj; @@ -1343,8 +1318,7 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1387,8 +1361,7 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1406,8 +1379,7 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) ice::Function icsneoGetErrorMessages(lib, "icsneoGetErrorMessages"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetErrorMessages(handle, errors, &error_count)) { - Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), - "icsneoGetErrorMessages() Failed"); + Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGetErrorMessages() Failed"); } Py_END_ALLOW_THREADS; ice::Function icsneoGetErrorInfo( @@ -1467,12 +1439,13 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) PyObject* obj = NULL; PyObject* callback = NULL; PyObject* dict; - if (!PyArg_ParseTuple(args, arg_parse("OO|O:", __FUNCTION__), &obj, &dict, &callback)) { + int network_id = -1; + unsigned long iOptions = 0; + if (!PyArg_ParseTuple(args, arg_parse("OO|Oik:", __FUNCTION__), &obj, &dict, &callback, &network_id, &iOptions)) { return NULL; } if (obj && !PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "First argument must be of PyNeoDeviceEx type"); + return set_ics_exception(exception_runtime_error(), "First argument must be of PyNeoDeviceEx type"); } if (PyCallable_Check(callback) || PyObject_HasAttrString(callback, "message_callback")) { msg_callback = callback; @@ -1504,6 +1477,16 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) strcpy(rc[reflash_count].path, path); reflash_count++; } + // handle network_id if provided, otherwise 0 + OptionsFindNeoEx opts = { 0 }; + opts.CANOptions.iNetworkID = static_cast(network_id); + POptionsFindNeoEx popts = NULL; + if (network_id != -1) + popts = &opts; + // If iOptions was provided, use it. Otherwise, fall back to network_id. + if (iOptions == 0 && network_id != -1) { + iOptions = opts.CANOptions.iNetworkID; + } try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -1527,7 +1510,8 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) void (*MessageCallback)(const char* message, bool success))> FlashDevice2(lib, "FlashDevice2"); Py_BEGIN_ALLOW_THREADS; - if (!FlashDevice2(0x3835C256, &nde->neoDevice, rc, reflash_count, 0, 0, 0, &message_callback)) { + if (!FlashDevice2( + 0x3835C256, &nde->neoDevice, rc, reflash_count, network_id, iOptions, 0, &message_callback)) { Py_BLOCK_THREADS; PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "FlashDevice2() Failed"); @@ -1620,8 +1604,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) if (!PyNeoDeviceEx_CheckExact(obj)) { PyBuffer_Release(&settings_buffer); Py_DECREF(settings); - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1652,9 +1635,10 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) } // int _stdcall icsneoGetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int iNumBytes, // EPlasmaIonVnetChannel_t vnetSlot) - ice::Function - icsneoGetDeviceSettings(lib, "icsneoGetDeviceSettings"); - if (!icsneoGetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, static_cast(settings_buffer.len), vnet_slot)) { + ice::Function icsneoGetDeviceSettings( + lib, "icsneoGetDeviceSettings"); + if (!icsneoGetDeviceSettings( + handle, (SDeviceSettings*)settings_buffer.buf, static_cast(settings_buffer.len), vnet_slot)) { Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); Py_DECREF(settings); @@ -1680,8 +1664,7 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1702,8 +1685,11 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) Py_buffer settings_buffer = {}; PyObject_GetBuffer(settings, &settings_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; - if (!icsneoSetDeviceSettings( - handle, (SDeviceSettings*)settings_buffer.buf, static_cast(settings_buffer.len), save_to_eeprom, vnet_slot)) { + if (!icsneoSetDeviceSettings(handle, + (SDeviceSettings*)settings_buffer.buf, + static_cast(settings_buffer.len), + save_to_eeprom, + vnet_slot)) { Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); return set_ics_exception(exception_runtime_error(), "icsneoSetDeviceSettings() Failed"); @@ -1724,8 +1710,7 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1742,9 +1727,9 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo } ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); void* handle = NULL; - if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { - return NULL; - } + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } Py_BEGIN_ALLOW_THREADS; if (!icsneoLoadDefaultSettings(handle)) { Py_BLOCK_THREADS; @@ -1769,8 +1754,7 @@ PyObject* meth_read_sdcard(PyObject* self, return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } // We only read 512 bytes internally, x4 for future compatibility? unsigned char data[2048] = { 0 }; @@ -1783,9 +1767,9 @@ PyObject* meth_read_sdcard(PyObject* self, ice::Function icsneoReadSDCard( lib, "icsneoReadSDCard"); void* handle = NULL; - if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { - return NULL; - } + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } Py_BEGIN_ALLOW_THREADS; if (!icsneoReadSDCard(handle, index, data, &size)) { Py_BLOCK_THREADS; @@ -1819,8 +1803,7 @@ PyObject* meth_write_sdcard( return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } if (!PyByteArray_CheckExact(ba_obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be a bytearray"); @@ -1835,12 +1818,11 @@ PyObject* meth_write_sdcard( char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoWriteSDCard(lib, - "icsneoWriteSDCard"); + ice::Function icsneoWriteSDCard(lib, "icsneoWriteSDCard"); void* handle = NULL; - if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { - return NULL; - } + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } Py_BEGIN_ALLOW_THREADS; if (!icsneoWriteSDCard(handle, index, (unsigned char*)PyByteArray_AsString(ba_obj))) { Py_BLOCK_THREADS; @@ -1914,8 +1896,7 @@ PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1949,8 +1930,7 @@ PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1984,8 +1964,7 @@ PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2021,8 +2000,7 @@ PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // Scrip return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2059,8 +2037,7 @@ PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // Scri return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2096,8 +2073,7 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2109,8 +2085,8 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptReadTxMessage( - lib, "icsneoScriptReadTxMessage"); + ice::Function icsneoScriptReadTxMessage(lib, + "icsneoScriptReadTxMessage"); PyObject* msg = NULL; if (j1850) { msg = PyObject_CallObject((PyObject*)&spy_message_j1850_object_type, NULL); @@ -2156,8 +2132,7 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2235,8 +2210,7 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2291,8 +2265,7 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsn return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2352,8 +2325,7 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2412,7 +2384,8 @@ PyObject* meth_validate_hobject(PyObject* self, PyObject* args) } if (!PyLong_CheckExact(obj) && !PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx" " or Integer"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx" + " or Integer"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2445,8 +2418,7 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2516,8 +2488,7 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2551,8 +2522,7 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2564,8 +2534,7 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetHWFirmwareInfo(lib, - "icsneoGetHWFirmwareInfo"); + ice::Function icsneoGetHWFirmwareInfo(lib, "icsneoGetHWFirmwareInfo"); PyObject* info = _getPythonModuleObject("ics.structures.st_api_firmware_info", "st_api_firmware_info"); if (!info) { return NULL; @@ -2615,8 +2584,7 @@ PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2649,15 +2617,22 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); - } - void* handle = NULL; + if (!PyNeoDeviceEx_CheckExact(obj) && obj != Py_None && obj != Py_False && !(PyLong_Check(obj) && PyLong_AsLong(obj) == 0)) { + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx, or False"); + } + // Set 'handle' to NULL if 'obj' is None, False, or a zero-valued integer. + // Otherwise, attempt to retrieve the handle using 'PyNeoDeviceEx_GetHandle'. + // If handle retrieval fails, raise a runtime error exception. + if (obj == Py_None || obj == Py_False || (PyLong_Check(obj) && PyLong_AsLong(obj) == 0)){ + handle = NULL; + } else { if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { - return NULL; - } + return set_ics_exception(exception_runtime_error(), + "Failed to retrieve handle."); + } + } try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -2685,8 +2660,7 @@ PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2719,8 +2693,7 @@ PyObject* meth_firmware_update_required(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2753,8 +2726,7 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2766,8 +2738,8 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetDLLFirmwareInfo( - lib, "icsneoGetDLLFirmwareInfo"); + ice::Function icsneoGetDLLFirmwareInfo(lib, + "icsneoGetDLLFirmwareInfo"); PyObject* info = _getPythonModuleObject("ics.structures.st_api_firmware_info", "st_api_firmware_info"); if (!info) { return NULL; @@ -2795,8 +2767,7 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2808,8 +2779,8 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetBackupPowerEnabled( - lib, "icsneoGetBackupPowerEnabled"); + ice::Function icsneoGetBackupPowerEnabled(lib, + "icsneoGetBackupPowerEnabled"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBackupPowerEnabled(handle, enabled)) { Py_BLOCK_THREADS; @@ -2831,8 +2802,7 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2844,8 +2814,8 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBackupPowerEnabled( - lib, "icsneoSetBackupPowerEnabled"); + ice::Function icsneoSetBackupPowerEnabled(lib, + "icsneoSetBackupPowerEnabled"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBackupPowerEnabled(handle, enabled)) { Py_BLOCK_THREADS; @@ -2867,8 +2837,7 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2880,8 +2849,7 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetBackupPowerReady(lib, - "icsneoGetBackupPowerReady"); + ice::Function icsneoGetBackupPowerReady(lib, "icsneoGetBackupPowerReady"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBackupPowerReady(handle, enabled)) { Py_BLOCK_THREADS; @@ -2906,8 +2874,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2949,8 +2916,8 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) for (int i = 0; i < tuple_size; ++i) { PyObject* value = PyTuple_GET_ITEM(arg_data, i); if (!PyLong_CheckExact(value)) { - return set_ics_exception( - exception_runtime_error(), "Failed to convert tuple data. Tuple data must be integer type"); + return set_ics_exception(exception_runtime_error(), + "Failed to convert tuple data. Tuple data must be integer type"); } data[i] = (unsigned char)PyLong_AsLong(PyTuple_GET_ITEM(arg_data, i)); } @@ -2992,8 +2959,7 @@ PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } if (_isPythonModuleObject_IsInstance( obj_tx_msg, "ics.structures.st_cm_iso157652_tx_message", "st_cm_iso157652_tx_message") != 1) { @@ -3040,8 +3006,7 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } if (_isPythonModuleObject_IsInstance( obj_rx_msg, "ics.structures.st_cm_iso157652_rx_message", "st_cm_iso157652_rx_message") != 1) { @@ -3089,8 +3054,7 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3124,8 +3088,7 @@ PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3159,8 +3122,7 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3172,8 +3134,8 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetActiveVNETChannel( - lib, "icsneoGetActiveVNETChannel"); + ice::Function icsneoGetActiveVNETChannel(lib, + "icsneoGetActiveVNETChannel"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetActiveVNETChannel(handle, &channel)) { Py_BLOCK_THREADS; @@ -3195,8 +3157,7 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3208,8 +3169,8 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetActiveVNETChannel( - lib, "icsneoSetActiveVNETChannel"); + ice::Function icsneoSetActiveVNETChannel(lib, + "icsneoSetActiveVNETChannel"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetActiveVNETChannel(handle, channel)) { Py_BLOCK_THREADS; @@ -3232,8 +3193,7 @@ PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3268,8 +3228,7 @@ PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3305,8 +3264,7 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3340,8 +3298,7 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } if (!PySpyMessage_CheckExact(obj_msg) && !PySpyMessageJ1850_CheckExact(obj_msg)) { return set_ics_exception(exception_runtime_error(), @@ -3382,8 +3339,7 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3403,8 +3359,8 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) PyObject_GetBuffer(device_status, &device_status_buffer, PyBUF_CONTIG); size_t device_status_size = device_status_buffer.len; - ice::Function icsneoGetDeviceStatus( - lib, "icsneoGetDeviceStatus"); + ice::Function icsneoGetDeviceStatus(lib, + "icsneoGetDeviceStatus"); double timestamp = 0; Py_BEGIN_ALLOW_THREADS; if (!icsneoGetDeviceStatus(handle, (icsDeviceStatus*)device_status_buffer.buf, &device_status_size)) { @@ -3436,8 +3392,7 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3482,8 +3437,7 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3519,8 +3473,7 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3534,8 +3487,8 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // int _stdcall icsneoGetBusVoltage(void* hObject, unsigned long* pVBusVoltage, unsigned int reserved - ice::Function icsneoGetBusVoltage( - lib, "icsneoGetBusVoltage"); + ice::Function icsneoGetBusVoltage(lib, + "icsneoGetBusVoltage"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBusVoltage(handle, &mV, reserved)) { Py_BLOCK_THREADS; @@ -3568,8 +3521,7 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) // TODO: Documentation doesn't say what return value is. if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3618,8 +3570,7 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "Argument must be of Bytes type "); } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3882,8 +3833,7 @@ PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3897,8 +3847,7 @@ PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // int _stdcall icsneoSetSafeBootMode(void* hObject, const uint8_t enable) - ice::Function icsneoSetSafeBootMode( - lib, "icsneoSetSafeBootMode"); + ice::Function icsneoSetSafeBootMode(lib, "icsneoSetSafeBootMode"); unsigned int accessory_version = 0; int function_error = 0; @@ -3946,7 +3895,7 @@ PyObject* meth_get_library_path(PyObject* self) } bool okay = false; auto path = lib->getPath(&okay); - //auto isLoaded = lib->isLoaded(); + // auto isLoaded = lib->isLoaded(); return Py_BuildValue("s", path.c_str()); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3961,8 +3910,7 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3974,8 +3922,7 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestDiskDetails(lib, - "icsneoRequestDiskDetails"); + ice::Function icsneoRequestDiskDetails(lib, "icsneoRequestDiskDetails"); PyObject* details = _getPythonModuleObject("ics.structures.s_disk_details", "s_disk_details"); if (!details) { @@ -4008,8 +3955,7 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4047,8 +3993,7 @@ PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4082,8 +4027,7 @@ PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4129,8 +4073,7 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4165,8 +4108,7 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4201,8 +4143,7 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4216,8 +4157,7 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) } char pcbsn[32] = { 0 }; size_t length = sizeof pcbsn / sizeof pcbsn[0]; - ice::Function icsneoGetPCBSerialNumber(lib, - "icsneoGetPCBSerialNumber"); + ice::Function icsneoGetPCBSerialNumber(lib, "icsneoGetPCBSerialNumber"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { Py_BLOCK_THREADS; @@ -4241,8 +4181,7 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4296,8 +4235,7 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4354,8 +4292,7 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4390,8 +4327,7 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4426,8 +4362,7 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4439,8 +4374,8 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneowBMSManagerReset( - lib, "icsneowBMSManagerReset"); + ice::Function icsneowBMSManagerReset(lib, + "icsneowBMSManagerReset"); Py_BEGIN_ALLOW_THREADS; if (!icsneowBMSManagerReset(handle, manager)) { Py_BLOCK_THREADS; @@ -4467,8 +4402,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4513,8 +4447,7 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4568,8 +4501,7 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4607,8 +4539,7 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4651,8 +4582,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4678,8 +4608,13 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); unsigned char functionError = 0; Py_BEGIN_ALLOW_THREADS; - if (!icsneoGenericAPISendCommand( - handle, apiIndex, instanceIndex, functionIndex, (void*)data.buf, static_cast(data.len), &functionError)) { + if (!icsneoGenericAPISendCommand(handle, + apiIndex, + instanceIndex, + functionIndex, + (void*)data.buf, + static_cast(data.len), + &functionError)) { Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); } @@ -4703,8 +4638,7 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4730,8 +4664,7 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) unsigned char* bData, unsigned int* length) */ - ice::Function + ice::Function icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); unsigned char functionIndex = 0; Py_BEGIN_ALLOW_THREADS; @@ -4768,8 +4701,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4829,8 +4761,7 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) if (!PyNeoDeviceEx_CheckExact(obj)) { PyBuffer_Release(&status_buffer); Py_DECREF(status); - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4884,8 +4815,7 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) if (!PyNeoDeviceEx_CheckExact(obj)) { PyBuffer_Release(&py_struct_buffer); Py_DECREF(py_struct); - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4902,9 +4832,10 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) // Get the struct Py_BEGIN_ALLOW_THREADS; // int _stdcall icsneoGetAllChipVersions(void* hObject, stChipVersions* pInfo, int ipInfoSize) - ice::Function icsneoGetAllChipVersions( - lib, "icsneoGetAllChipVersions"); - if (!icsneoGetAllChipVersions(handle, (stChipVersions*)py_struct_buffer.buf, static_cast(py_struct_buffer.len))) { + ice::Function icsneoGetAllChipVersions(lib, + "icsneoGetAllChipVersions"); + if (!icsneoGetAllChipVersions( + handle, (stChipVersions*)py_struct_buffer.buf, static_cast(py_struct_buffer.len))) { Py_BLOCK_THREADS; PyBuffer_Release(&py_struct_buffer); Py_DECREF(py_struct); From 677e23c63409de3ab401cdf3c44be929d19a9a9c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 14 Feb 2025 10:42:37 -0500 Subject: [PATCH 06/38] v918.14 update, python 3.13, and fixed compiler warnings (#204) --- .github/workflows/wheels.yml | 2 +- build_libicsneo.py | 2 +- doc/source/conf.py | 2 +- extract_icsneo40_defines.py | 5 +- icsnVC40.h.enums.json | 244 +-- icsnVC40.h.json | 2429 ++++++++++++++++++++++------- icsnVC40_processed.h | 391 ++++- include/exceptions.h | 2 +- include/ics/icsnVC40.h | 391 ++++- include/methods.h | 535 +------ include/object_spy_message.h | 380 +---- pyproject.toml | 4 +- setup.py | 16 +- src/dll.cpp | 6 + src/exceptions.cpp | 30 +- src/ice | 2 +- src/main.cpp | 4 + src/methods.cpp | 876 +++++++++-- src/object_spy_message.cpp | 380 +++++ src/setup_module_auto_defines.cpp | 39 +- 20 files changed, 3788 insertions(+), 1952 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e38aae6d2..ed36548d5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -38,7 +38,7 @@ jobs: run: echo $PYTHON_ICS_VERSION - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.18.1 + run: python -m pip install cibuildwheel==2.22.0 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/build_libicsneo.py b/build_libicsneo.py index c2501f0cc..50eb4b26e 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -14,7 +14,7 @@ LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" -LIBICSNEO_VERSION = "06f6861" +LIBICSNEO_VERSION = "02b5daf" LIBICSNEO_ROOT = f"{ROOT}/libicsneo/{LIBICSNEO_VERSION}" LIBICSNEO_SOURCE = f"{LIBICSNEO_ROOT}/source" LIBICSNEO_BUILD = f"{LIBICSNEO_ROOT}/build" diff --git a/doc/source/conf.py b/doc/source/conf.py index 2ec683a12..1ba003306 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -57,7 +57,7 @@ # built documents. # # The short X.Y version. -version = "917.18" +version = "918.14" # The full version, including alpha/beta/rc tags. release = version diff --git a/extract_icsneo40_defines.py b/extract_icsneo40_defines.py index 7c4cc210f..8baf76af7 100644 --- a/extract_icsneo40_defines.py +++ b/extract_icsneo40_defines.py @@ -78,9 +78,10 @@ def extract(): with open("src/setup_module_auto_defines.cpp", "w") as f: print(boiler_plate, file=f) # Include the header files needed for the defines - print('#include "setup_module_auto_defines.h"\n#include \n#include "ics/icsnVC40.h"', file=f) + + print('#include "setup_module_auto_defines.h"\n#include \n#pragma warning(push, 0)\n#include "ics/icsnVC40.h"\n#pragma warning(pop)', file=f) if use_internal: - print('#include "ics/icsnVC40Internal.h"', file=f) + print('#pragma warning(push, 0)\n#include "ics/icsnVC40Internal.h"\n#pragma warning(pop)', file=f) print("\nint setup_module_auto_defines(PyObject * module)\n{", file=f) print("\tint result = 0;\n", file=f) diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index 890081169..a0097ade4 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -2658,7 +2658,7 @@ "enum_value": null }, { - "name": "DeviceVCANRFSettingsType", + "name": "DeviceDeprecatedType", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2858,7 +2858,7 @@ "enum_value": null }, { - "name": "DeviceRed2OemSettingsType", + "name": "DeviceNeoVIConnectSettingsType", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2881,6 +2881,22 @@ "is_enum": false, "enum_value": null }, + { + "name": "DeviceRADGigastar2SettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "DeviceRADMoonT1SSettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "DeviceSettingsTypeMax", "data_type": "int", @@ -3495,7 +3511,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5969 ", + "name": "assert_line_6192 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3511,7 +3527,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5970 ", + "name": "assert_line_6193 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3527,7 +3543,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5971 ", + "name": "assert_line_6194 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3543,7 +3559,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5972 ", + "name": "assert_line_6195 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3559,7 +3575,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5973 ", + "name": "assert_line_6196 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3575,7 +3591,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5974 ", + "name": "assert_line_6197 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3591,7 +3607,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5975 ", + "name": "assert_line_6198 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3607,7 +3623,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5976 ", + "name": "assert_line_6199 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3623,7 +3639,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5977 ", + "name": "assert_line_6200 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3639,7 +3655,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5978 ", + "name": "assert_line_6201 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3655,7 +3671,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5979 ", + "name": "assert_line_6202 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3671,7 +3687,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5980 ", + "name": "assert_line_6203 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3687,7 +3703,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5981 ", + "name": "assert_line_6204 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3703,7 +3719,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5982 ", + "name": "assert_line_6205 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3719,7 +3735,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5983 ", + "name": "assert_line_6206 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3735,7 +3751,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5984 ", + "name": "assert_line_6207 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3751,7 +3767,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5985 ", + "name": "assert_line_6208 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3767,7 +3783,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5986 ", + "name": "assert_line_6209 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3783,7 +3799,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5987 ", + "name": "assert_line_6210 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3799,7 +3815,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5988 ", + "name": "assert_line_6211 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3815,7 +3831,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5989 ", + "name": "assert_line_6212 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3831,7 +3847,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5990 ", + "name": "assert_line_6213 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3847,7 +3863,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5991 ", + "name": "assert_line_6214 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3863,7 +3879,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5992 ", + "name": "assert_line_6215 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3879,7 +3895,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5993 ", + "name": "assert_line_6216 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3895,7 +3911,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5994 ", + "name": "assert_line_6217 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3911,7 +3927,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5995 ", + "name": "assert_line_6218 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3927,7 +3943,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5996 ", + "name": "assert_line_6219 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3943,7 +3959,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5997 ", + "name": "assert_line_6220 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3959,7 +3975,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5998 ", + "name": "assert_line_6221 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3975,7 +3991,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5999 ", + "name": "assert_line_6222 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3991,7 +4007,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6000 ", + "name": "assert_line_6223 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4007,23 +4023,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6001 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SVCANRFSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6002 ", + "name": "assert_line_6224 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4039,7 +4039,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6003 ", + "name": "assert_line_6225 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4055,7 +4055,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6004 ", + "name": "assert_line_6226 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4071,7 +4071,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6005 ", + "name": "assert_line_6227 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4087,7 +4087,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6006 ", + "name": "assert_line_6228 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4103,7 +4103,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6007 ", + "name": "assert_line_6229 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4119,7 +4119,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6008 ", + "name": "assert_line_6230 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4135,7 +4135,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6009 ", + "name": "assert_line_6231 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4151,7 +4151,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6010 ", + "name": "assert_line_6232 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4167,7 +4167,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6011 ", + "name": "assert_line_6233 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4183,7 +4183,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6012 ", + "name": "assert_line_6234 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4199,7 +4199,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6013 ", + "name": "assert_line_6235 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4215,7 +4215,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6014 ", + "name": "assert_line_6236 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4231,7 +4231,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6015 ", + "name": "assert_line_6237 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4247,7 +4247,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6016 ", + "name": "assert_line_6238 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4263,7 +4263,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6017 ", + "name": "assert_line_6239 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4279,7 +4279,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6018 ", + "name": "assert_line_6240 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4295,7 +4295,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6019 ", + "name": "assert_line_6241 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4311,7 +4311,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6020 ", + "name": "assert_line_6242 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4327,7 +4327,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6021 ", + "name": "assert_line_6243 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4343,7 +4343,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6022 ", + "name": "assert_line_6244 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4359,7 +4359,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6023 ", + "name": "assert_line_6245 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4375,7 +4375,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6024 ", + "name": "assert_line_6246 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4391,7 +4391,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6025 ", + "name": "assert_line_6247 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4407,7 +4407,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6026 ", + "name": "assert_line_6248 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4423,7 +4423,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6027 ", + "name": "assert_line_6249 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4439,7 +4439,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6028 ", + "name": "assert_line_6250 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4455,7 +4455,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6029 ", + "name": "assert_line_6251 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4471,7 +4471,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6030 ", + "name": "assert_line_6252 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4487,7 +4487,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6031 ", + "name": "assert_line_6253 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4503,7 +4503,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6032 ", + "name": "assert_line_6254 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4519,7 +4519,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6033 ", + "name": "assert_line_6255 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4535,7 +4535,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6034 ", + "name": "assert_line_6256 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4551,7 +4551,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6035 ", + "name": "assert_line_6257 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4567,7 +4567,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6036 ", + "name": "assert_line_6258 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4583,7 +4583,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6037 ", + "name": "assert_line_6259 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4599,7 +4599,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6038 ", + "name": "assert_line_6260 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4615,7 +4615,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6039 ", + "name": "assert_line_6261 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4631,7 +4631,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6040 ", + "name": "assert_line_6262 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4647,7 +4647,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6041 ", + "name": "assert_line_6263 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4663,7 +4663,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6042 ", + "name": "assert_line_6264 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4679,7 +4679,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6043 ", + "name": "assert_line_6265 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4695,7 +4695,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6044 ", + "name": "assert_line_6266 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4711,7 +4711,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6045 ", + "name": "assert_line_6267 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4727,7 +4727,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6046 ", + "name": "assert_line_6268 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4743,7 +4743,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6047 ", + "name": "assert_line_6269 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4759,7 +4759,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6048 ", + "name": "assert_line_6270 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4775,7 +4775,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_6049 ", + "name": "assert_line_6271 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4783,5 +4783,53 @@ "enum_value": "1/(int)(!!(sizeof(SRADComet3Settings)" } ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_6272 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(SRADGigastar2Settings)" + } + ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_6273 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(SRADMoonT1SSettings)" + } + ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_6274 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(SNeoVIConnectSettings)" + } + ] } ] \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json index ae37a443a..ec713bc4f 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -1601,32 +1601,6 @@ } ] }, - { - "names": [ - "vcanrf_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, { "names": [ "radgalaxy_versions" @@ -2640,6 +2614,84 @@ "enum_value": null } ] + }, + { + "names": [ + "radgigastar2_versions" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "zynq_core_major", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "zynq_core_minor", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "rad_moont1s_versions" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "zynq_core_major", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "zynq_core_minor", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "neovi_connect_versions" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "zchip_major", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "zchip_minor", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] } ] }, @@ -3065,25 +3117,6 @@ } ] }, - { - "names": [ - "HW_ETH_SETTINGS_t", - "HW_ETH_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "General_Settings", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, { "names": [ "OP_ETH_SETTINGS_t", @@ -3103,7 +3136,7 @@ }, { "name": "preemption_en", - "data_type": "unsigned char", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -3123,7 +3156,7 @@ "members": [ { "name": "mac_addr1", - "data_type": "unsigned char", + "data_type": "uint8_t", "array_length": 6, "bitfield_size": 0, "is_enum": false, @@ -3131,7 +3164,7 @@ }, { "name": "mac_addr2", - "data_type": "unsigned char", + "data_type": "uint8_t", "array_length": 6, "bitfield_size": 0, "is_enum": false, @@ -3139,7 +3172,7 @@ }, { "name": "mac_spoofing_en", - "data_type": "unsigned short", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 1, "is_enum": false, @@ -3147,7 +3180,7 @@ }, { "name": "mac_spoofing_isDstOrSrc", - "data_type": "unsigned short", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 1, "is_enum": false, @@ -3155,7 +3188,7 @@ }, { "name": "link_spd", - "data_type": "unsigned short", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 2, "is_enum": false, @@ -3163,7 +3196,55 @@ }, { "name": "q2112_phy_mode", - "data_type": "unsigned short", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "macsec_en", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "compliance_mode_en", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "cut_thru_tap", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "snf_tap", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "disable_tap_to_host", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "show_tap_tx_receipt", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 1, "is_enum": false, @@ -3171,9 +3252,9 @@ }, { "name": "reserved", - "data_type": "unsigned short", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 11, + "bitfield_size": 5, "is_enum": false, "enum_value": null } @@ -3181,7 +3262,7 @@ }, { "name": "reserved0", - "data_type": "unsigned char", + "data_type": "uint8_t", "array_length": 14, "bitfield_size": 0, "is_enum": false, @@ -3293,15 +3374,7 @@ }, { "name": "flags2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -7829,31 +7902,31 @@ }, { "names": [ - "_SVCANRFSettings", - "SVCANRFSettings" + "_SECUSettings", + "SECUSettings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "can1", - "data_type": "CAN_SETTINGS", + "name": "ecu_id", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can2", - "data_type": "CAN_SETTINGS", + "name": "selected_network", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "can3", + "name": "can1", "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -7861,7 +7934,7 @@ "enum_value": null }, { - "name": "can4", + "name": "can2", "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -7885,7 +7958,7 @@ "enum_value": null }, { - "name": "network_enables", + "name": "iso15765_separation_time_offset", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7893,23 +7966,23 @@ "enum_value": null }, { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", + "name": "iso9141_kwp_settings", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_timeout", - "data_type": "uint32_t", + "name": "iso_parity", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "pwr_man_enable", + "name": "iso_msg_termination", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7917,15 +7990,15 @@ "enum_value": null }, { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", + "name": "iso9141_kwp_settings_2", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "misc_io_initial_latch", + "name": "iso_parity_2", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7933,7 +8006,7 @@ "enum_value": null }, { - "name": "misc_io_analog_enable", + "name": "iso_msg_termination_2", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7941,7 +8014,7 @@ "enum_value": null }, { - "name": "misc_io_report_period", + "name": "network_enables", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7949,7 +8022,7 @@ "enum_value": null }, { - "name": "misc_io_on_report_events", + "name": "network_enables_2", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7957,7 +8030,7 @@ "enum_value": null }, { - "name": "iso15765_separation_time_offset", + "name": "network_enabled_on_boot", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7965,23 +8038,23 @@ "enum_value": null }, { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", + "name": "pwr_man_timeout", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "name": "pwr_man_enable", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "perf_en", + "name": "misc_io_initial_ddr", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7989,7 +8062,7 @@ "enum_value": null }, { - "name": "iso_parity", + "name": "misc_io_initial_latch", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -7997,7 +8070,7 @@ "enum_value": null }, { - "name": "iso_msg_termination", + "name": "misc_io_analog_enable", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -8005,7 +8078,7 @@ "enum_value": null }, { - "name": "iso_tester_pullup_enable", + "name": "misc_io_report_period", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -8013,7 +8086,7 @@ "enum_value": null }, { - "name": "network_enables_2", + "name": "misc_io_on_report_events", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -8021,15 +8094,15 @@ "enum_value": null }, { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "name": "ain_sample_period", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "iso_parity_2", + "name": "ain_threshold", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -8037,275 +8110,24 @@ "enum_value": null }, { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", + "name": "swcan", + "data_type": "SWCAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", + "name": "swcan2", + "data_type": "SWCAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableFwLEDs", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reservedZero", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 15, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SECUSettings", - "SECUSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selected_network", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan", - "data_type": "CAN_SETTINGS", + "name": "lsftcan", + "data_type": "CAN_SETTINGS", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -11858,7 +11680,7 @@ "enum_value": null }, { - "name": "ethernet10g", + "name": "ethernet10g_3", "data_type": "ETHERNET10G_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11866,7 +11688,7 @@ "enum_value": null }, { - "name": "ethernet10g_2", + "name": "ethernet10g", "data_type": "ETHERNET10G_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11874,7 +11696,7 @@ "enum_value": null }, { - "name": "ethernet10g_3", + "name": "ethernet10g_2", "data_type": "ETHERNET10G_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -11904,9 +11726,57 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null - } - ] - }, + }, + { + "name": "network_enables_5", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin2", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_9141_kwp_enable_reserved_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_2", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [ "_SVividCANSettings", @@ -20817,31 +20687,23 @@ }, { "names": [ - "_GLOBAL_SETTINGS", - "GLOBAL_SETTINGS" + "_SRADGigaStar2Settings", + "SRADGigastar2Settings" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "version", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "len", - "data_type": "uint16_t", + "name": "ecu_id", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "chksum", + "name": "perf_en", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -20849,200 +20711,1609 @@ "enum_value": null }, { - "names": [], - "data_type": "Union", + "names": [ + "flags" + ], + "data_type": "Struct", "packing": 2, - "is_anonymous": true, + "is_anonymous": false, "members": [ { - "name": "red", - "data_type": "SRedSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire", - "data_type": "SFireSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "firevnet", - "data_type": "SFireVnetSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cyan", - "data_type": "SCyanSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan3", - "data_type": "SVCAN3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4", - "data_type": "SVCAN4Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ecu", - "data_type": "SECUSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ievb", - "data_type": "SIEVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pendant", - "data_type": "SPendantSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgalaxy", - "data_type": "SRADGalaxySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radstar2", - "data_type": "SRADStar2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoobd2_sim", - "data_type": "SOBD2SimSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmprobe", - "data_type": "SCmProbeSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obd2pro", - "data_type": "SOBD2ProSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan412", - "data_type": "SVCAN412Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4_12", - "data_type": "SVCAN412Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoecu_avb", - "data_type": "SECU_AVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radsupermoon", - "data_type": "SRADSuperMoonSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoon2", - "data_type": "SRADMoon2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pluto", - "data_type": "SRADPlutoSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigalog", - "data_type": "SRADGigalogSettings", + "name": "hwComLatencyTestEn", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 0, + "bitfield_size": 1, "is_enum": false, "enum_value": null }, { - "name": "canhub", - "data_type": "SCANHubSettings", + "name": "disableUsbCheckOnBoot", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 0, + "bitfield_size": 1, "is_enum": false, "enum_value": null }, { - "name": "neoecu12", - "data_type": "SNeoECU12Settings", + "name": "reserved", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 0, + "bitfield_size": 14, "is_enum": false, "enum_value": null - }, - { - "name": "vcanrf", - "data_type": "SVCANRFSettings", - "array_length": 0, - "bitfield_size": 0, + } + ] + }, + { + "name": "network_enabled_on_boot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can1", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd1", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can2", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd2", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can3", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd3", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can4", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd4", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_1", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_1", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_1", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_2", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_3", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_3", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_3", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_4", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_4", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_4", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_5", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_5", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_5", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_6", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_6", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_6", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_7", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_7", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_7", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_8", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_8", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_8", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_9", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_9", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_9", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_10", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_10", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_10", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "termination_enables", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "timeSyncSettings", + "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "reporting", + "data_type": "RAD_REPORTING_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_timeout", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_enable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "gPTP", + "data_type": "RAD_GPTP_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "text_api", + "data_type": "STextAPISettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "disk", + "data_type": "DISK_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "logger", + "data_type": "LOGGER_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin1", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin2", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin3", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin4", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin5", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin6", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin7", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin8", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin9", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin10", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethernet1", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethernet2", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "opEthGen", + "data_type": "OP_ETH_GENERAL_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "opEth1", + "data_type": "OP_ETH_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT12", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "opEth2", + "data_type": "OP_ETH_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s1", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s1", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s1Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s2", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s2", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s2Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s3", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s3", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s3Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s4", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s4", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s4Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s5", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s5", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s5Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s6", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s6", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s6Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s7", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s7", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s7Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s8", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s8", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s8Ext", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "_SRADMoonT1SSettings", + "SRADMoonT1SSettings" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "perf_en", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "hwComLatencyTestEn", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 14, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "name": "network_enabled_on_boot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "reporting", + "data_type": "RAD_REPORTING_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_timeout", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_enable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethernet", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "opEthGen", + "data_type": "OP_ETH_GENERAL_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethT1s", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1s", + "data_type": "ETHERNET10T1S_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "t1sExt", + "data_type": "ETHERNET10T1S_SETTINGS_EXT", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "_SNeoVIConnectSettings", + "SNeoVIConnectSettings" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "perf_en", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enabled_on_boot", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "misc_io_on_report_events", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_enable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso15765_separation_time_offset", + "data_type": "int16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "reservedA", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pwr_man_timeout", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "network_enables" + ], + "data_type": "Union", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "word", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [], + "data_type": "Struct", + "packing": 2, + "is_anonymous": true, + "members": [ + { + "name": "network_enables", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_3", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "network_enables_4", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + } + ] + }, + { + "name": "can1", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd1", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can2", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd2", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can3", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd3", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can4", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd4", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can5", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd5", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can6", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd6", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can7", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd7", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "can8", + "data_type": "CAN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canfd8", + "data_type": "CANFD_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin1", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "lin2", + "data_type": "LIN_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_1", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_1", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_1", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso9141_kwp_settings_2", + "data_type": "ISO9141_KEYWORD2000_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_parity_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "iso_msg_termination_2", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethernet_1", + "data_type": "ETHERNET_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ethernet2_1", + "data_type": "ETHERNET_SETTINGS2", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "text_api", + "data_type": "STextAPISettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "disk", + "data_type": "DISK_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "misc_io_report_period", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ain_threshold", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "misc_io_analog_enable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "digitalIoThresholdTicks", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "digitalIoThresholdEnable", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "misc_io_initial_ddr", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "misc_io_initial_latch", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "os_settings", + "data_type": "Fire3LinuxSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "gPTP", + "data_type": "RAD_GPTP_SETTINGS", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "flags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "disableUsbCheckOnBoot", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableLatencyTest", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableDefaultLogger", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "enableDefaultUpload", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, + { + "name": "reserved3", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 28, + "is_enum": false, + "enum_value": null + } + ] + } + ] + }, + { + "names": [ + "_GLOBAL_SETTINGS", + "GLOBAL_SETTINGS" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "version", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "len", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "chksum", + "data_type": "uint16_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [], + "data_type": "Union", + "packing": 2, + "is_anonymous": true, + "members": [ + { + "name": "red", + "data_type": "SRedSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "fire", + "data_type": "SFireSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "firevnet", + "data_type": "SFireVnetSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cyan", + "data_type": "SCyanSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vcan3", + "data_type": "SVCAN3Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vcan4", + "data_type": "SVCAN4Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ecu", + "data_type": "SECUSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "ievb", + "data_type": "SIEVBSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pendant", + "data_type": "SPendantSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radgalaxy", + "data_type": "SRADGalaxySettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radstar2", + "data_type": "SRADStar2Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "neoobd2_sim", + "data_type": "SOBD2SimSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cmprobe", + "data_type": "SCmProbeSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "obd2pro", + "data_type": "SOBD2ProSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vcan412", + "data_type": "SVCAN412Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "vcan4_12", + "data_type": "SVCAN412Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "neoecu_avb", + "data_type": "SECU_AVBSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radsupermoon", + "data_type": "SRADSuperMoonSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radmoon2", + "data_type": "SRADMoon2Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "pluto", + "data_type": "SRADPlutoSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radgigalog", + "data_type": "SRADGigalogSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "canhub", + "data_type": "SCANHubSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "neoecu12", + "data_type": "SNeoECU12Settings", + "array_length": 0, + "bitfield_size": 0, "is_enum": false, "enum_value": null }, @@ -21197,6 +22468,30 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "radgigastar2", + "data_type": "SRADGigastar2Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radmoont1s", + "data_type": "SRADMoonT1SSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "neovi_connect", + "data_type": "SNeoVIConnectSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] } @@ -21419,14 +22714,6 @@ "is_enum": false, "enum_value": null }, - { - "name": "vcanrf", - "data_type": "SVCANRFSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, { "name": "eevb", "data_type": "SEEVBSettings", @@ -21578,6 +22865,30 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "radgigastar2", + "data_type": "SRADGigastar2Settings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "radmoont1s", + "data_type": "SRADMoonT1SSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "neovi_connect", + "data_type": "SNeoVIConnectSettings", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] } diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index cf4d4672a..72c9e7cb3 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -182,6 +182,16 @@ typedef unsigned __int64 uint64_t; #define NETID_SPI4 558 #define NETID_SPI5 559 #define NETID_SPI6 560 +#define NETID_SPI7 561 +#define NETID_SPI8 562 +#define NETID_LIN_09 563 +#define NETID_LIN_10 564 +#define NETID_LIN_11 565 +#define NETID_LIN_12 566 +#define NETID_LIN_13 567 +#define NETID_LIN_14 568 +#define NETID_LIN_15 569 +#define NETID_LIN_16 570 /* Upper boundry of Network IDs */ #define NETID_MAX 100 @@ -231,8 +241,11 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RADMOON3 (0x00000023) #define NEODEVICE_RADCOMET (0x00000024) #define NEODEVICE_FIRE3_FLEXRAY (0x00000025) -#define NEODEVICE_RED2_OEM (0x00000026) +#define NEODEVICE_NEOVI_CONNECT (0x00000026) #define NEODEVICE_RADCOMET3 (0x00000027) +#define NEODEVICE_RADMOONT1S (0x00000028) +#define NEODEVICE_GIGASTAR2 (0x00000029) + #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -252,7 +265,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_VCAN42 (0x00400000) #define NEODEVICE_CMPROBE (0x00800000) #define NEODEVICE_EEVB (0x01000000) -#define NEODEVICE_VCANRF (0x02000000) +#define NEODEVICE_DONT_REUSE4 (0x02000000) #define NEODEVICE_FIRE2 (0x04000000) #define NEODEVICE_FLEX (0x08000000) #define NEODEVICE_RADGALAXY (0x10000000) @@ -961,12 +974,6 @@ typedef union _stChipVersions uint8_t mpic_min; } vcan3_versions; - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - } vcanrf_versions; - struct { uint8_t zynq_core_major; @@ -1169,6 +1176,24 @@ typedef union _stChipVersions uint8_t zynq_core_minor; } rad_comet3_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } radgigastar2_versions; + + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } rad_moont1s_versions; + + struct + { + uint8_t zchip_major; + uint8_t zchip_minor; + } neovi_connect_versions; + } stChipVersions; #define stChipVersions_SIZE 8 @@ -1259,12 +1284,6 @@ typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s } RAD_GPTP_AND_TAP_SETTINGS; #define RAD_GPTP_AND_TAP_SETTINGS_SIZE 40 -typedef struct HW_ETH_SETTINGS_t -{ - OP_ETH_GENERAL_SETTINGS General_Settings; -} HW_ETH_SETTINGS; -#define HW_ETH_SETTINGS_SIZE 20 - /* ucConfigMode in OP_ETH_SETTINGS */ typedef enum _opEthLinkMode { @@ -1282,21 +1301,27 @@ enum typedef struct OP_ETH_SETTINGS_t { uint8_t ucConfigMode; - unsigned char preemption_en; + uint8_t preemption_en; union { struct { // Reuse the mac_addr for switch mode if required! - unsigned char mac_addr1[6]; // Original Addr for spoofing - unsigned char mac_addr2[6]; // Target Addr for spoofing - unsigned short mac_spoofing_en : 1; - unsigned short mac_spoofing_isDstOrSrc : 1; - unsigned short link_spd : 2; - unsigned short q2112_phy_mode : 1; - unsigned short reserved : 11; + uint8_t mac_addr1[6]; // Original Addr for spoofing + uint8_t mac_addr2[6]; // Target Addr for spoofing + uint16_t mac_spoofing_en : 1; + uint16_t mac_spoofing_isDstOrSrc : 1; + uint16_t link_spd : 2; + uint16_t q2112_phy_mode : 1; + uint16_t macsec_en : 1; // enable loading MACsec config on boot + uint16_t compliance_mode_en : 1; + uint16_t cut_thru_tap : 1; + uint16_t snf_tap : 1; // store and forward + uint16_t disable_tap_to_host : 1; + uint16_t show_tap_tx_receipt : 1; + uint16_t reserved : 5; }; - unsigned char reserved0[14]; + uint8_t reserved0[14]; }; } OP_ETH_SETTINGS; #define OP_ETH_SETTINGS_SIZE 16 @@ -1324,9 +1349,12 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS2_FLAG2_PHY_MODE 0x02 #define ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO 0x04 #define ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED 0x08 - #define ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT 4 #define ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK 0xF0 +#define ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE 0x0100 +#define ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE 0x0200 // store and forward +#define ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST 0x0400 +#define ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT 0x0800 typedef enum { @@ -1366,9 +1394,12 @@ typedef struct ETHERNET_SETTINGS2_t * bit5: SFP module ID1 * bit6: SFP module ID2 * bit7: SFP module ID3 + * bit8: cut through tap enabled (only TX forwarded from tap partner) + * bit9: store and forward tap enabled (forward RX to tap partner) + * bit10: disable tap frames to host + * bit11: show TX receipt for tap frames */ - uint8_t flags2; - uint8_t rsvd; + uint16_t flags2; } ETHERNET_SETTINGS2; #define ETHERNET_SETTINGS2_SIZE 16 @@ -1386,6 +1417,11 @@ typedef struct ETHERNET_SETTINGS2_t #define ETHERNET_SETTINGS10G_FLAG_PKT_CHECK 0x00000800 #define ETHERNET_SETTINGS10G_FLAG_PKT_GEN 0x00001000 #define ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED 0x00002000 +#define ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE 0x00004000 +#define ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE 0x00008000 // store and forward +#define ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST 0x00010000 +#define ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE 0x00020000 +#define ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT 0x00040000 #define ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE 0x80000000 typedef struct ETHERNET10G_SETTINGS_t @@ -1405,6 +1441,11 @@ typedef struct ETHERNET10G_SETTINGS_t * bit11: enable packet checker * bit12: enable packet generator * bit13: IP config not allowed + * bit14: cut through tap enabled (only TX forwarded from tap partner) + * bit15: store and forward tap enabled (forward RX to tap partner) + * bit16: disable tap frames to host + * bit17: macsec enable + * bit18: show TX receipt for tap frames * bit31: comm in use */ uint32_t flags; @@ -1443,8 +1484,6 @@ typedef struct ETHERNET10T1S_SETTINGS_EXT_t } ETHERNET10T1S_SETTINGS_EXT; #define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 -#define ETHERNET10T1S_SETTINGS_EXT_FLAG_ENABLE_MULTI_ID 0x01 - /* * START - MACsec Definitions */ @@ -2601,52 +2640,6 @@ typedef struct _SVCAN4Settings } SVCAN4Settings; #define SVCAN4Settings_SIZE 342 -typedef struct _SVCANRFSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - CAN_SETTINGS can3; - CAN_SETTINGS can4; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - - uint16_t perf_en; - - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - uint16_t network_enables_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t disableFwLEDs : 1; - uint16_t reservedZero : 15; -} SVCANRFSettings; -#define SVCANRFSettings_SIZE 340 - typedef struct _SECUSettings { /* ECU ID used in CAN communications. @@ -3347,7 +3340,6 @@ typedef struct _SRADGalaxy2Settings uint16_t iso_9141_kwp_enable_reserved; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; uint16_t idle_wakeup_network_enables_1; @@ -3388,15 +3380,23 @@ typedef struct _SRADGalaxy2Settings OP_ETH_SETTINGS opEth15; OP_ETH_SETTINGS opEth16; + ETHERNET10G_SETTINGS ethernet10g_3; ETHERNET10G_SETTINGS ethernet10g; ETHERNET10G_SETTINGS ethernet10g_2; - ETHERNET10G_SETTINGS ethernet10g_3; uint16_t network_enables_4; RAD_REPORTING_SETTINGS reporting; RAD_GPTP_SETTINGS gPTP; + 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; + } SRADGalaxy2Settings; -#define SRADGalaxy2Settings_SIZE 822 +#define SRADGalaxy2Settings_SIZE 960 typedef struct _SVividCANSettings { @@ -4993,6 +4993,223 @@ typedef struct _SRADComet3Settings } SRADComet3Settings; #define SRADComet3Settings_SIZE 674 +typedef struct _SRADGigaStar2Settings +{ + // ECU ID used in CAN communications. + // TX ID = ECU ID with bit28 cleared, + // RX ID = ECUID with bit28 set, + // ECU ID = 0 implies ECU ID = serial no with bit 27 set + uint32_t ecu_id; + uint16_t perf_en; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; + uint16_t network_enabled_on_boot; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; + uint16_t iso_parity_3; + uint16_t iso_msg_termination_3; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; + uint16_t iso_parity_4; + uint16_t iso_msg_termination_4; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5; + uint16_t iso_parity_5; + uint16_t iso_msg_termination_5; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6; + uint16_t iso_parity_6; + uint16_t iso_msg_termination_6; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_7; + uint16_t iso_parity_7; + uint16_t iso_msg_termination_7; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_8; + uint16_t iso_parity_8; + uint16_t iso_msg_termination_8; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_9; + uint16_t iso_parity_9; + uint16_t iso_msg_termination_9; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_10; + uint16_t iso_parity_10; + uint16_t iso_msg_termination_10; + uint64_t network_enables; + uint64_t network_enables_2; + uint64_t termination_enables; + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; + RAD_REPORTING_SETTINGS reporting; + int16_t iso15765_separation_time_offset; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + RAD_GPTP_SETTINGS gPTP; + STextAPISettings text_api; + DISK_SETTINGS disk; + LOGGER_SETTINGS logger; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + LIN_SETTINGS lin3; + LIN_SETTINGS lin4; + LIN_SETTINGS lin5; + LIN_SETTINGS lin6; + LIN_SETTINGS lin7; + LIN_SETTINGS lin8; + LIN_SETTINGS lin9; + LIN_SETTINGS lin10; + // TODO more LIN + // Ethernet SFP + ETHERNET_SETTINGS2 ethernet1; + ETHERNET_SETTINGS2 ethernet2; + // Ethernet General + OP_ETH_GENERAL_SETTINGS opEthGen; + // 100/1000T1 + ETHERNET_SETTINGS2 ethT1; + OP_ETH_SETTINGS opEth1; + ETHERNET_SETTINGS2 ethT12; + OP_ETH_SETTINGS opEth2; + // 10T1S + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s3; + ETHERNET10T1S_SETTINGS t1s3; + ETHERNET10T1S_SETTINGS_EXT t1s3Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s4; + ETHERNET10T1S_SETTINGS t1s4; + ETHERNET10T1S_SETTINGS_EXT t1s4Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s5; + ETHERNET10T1S_SETTINGS t1s5; + ETHERNET10T1S_SETTINGS_EXT t1s5Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s6; + ETHERNET10T1S_SETTINGS t1s6; + ETHERNET10T1S_SETTINGS_EXT t1s6Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s7; + ETHERNET10T1S_SETTINGS t1s7; + ETHERNET10T1S_SETTINGS_EXT t1s7Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s8; + ETHERNET10T1S_SETTINGS t1s8; + ETHERNET10T1S_SETTINGS_EXT t1s8Ext; +} SRADGigastar2Settings; +#define SRADGigastar2Settings_SIZE 2024 + +typedef struct _SRADMoonT1SSettings +{ + uint16_t perf_en; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; + uint16_t network_enabled_on_boot; + uint64_t network_enables; + uint64_t network_enables_2; + RAD_REPORTING_SETTINGS reporting; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + // Ethernet 10/100/1000 + ETHERNET_SETTINGS2 ethernet; + // Ethernet General + OP_ETH_GENERAL_SETTINGS opEthGen; + // 10T1S + ETHERNET_SETTINGS2 ethT1s; + ETHERNET10T1S_SETTINGS t1s; + // 10T1S Extended Settings + ETHERNET10T1S_SETTINGS_EXT t1sExt; +} SRADMoonT1SSettings; +#define SRADMoonT1SSettings_SIZE 124 + +typedef struct _SNeoVIConnectSettings +{ + uint16_t perf_en; + uint16_t network_enabled_on_boot; + uint16_t misc_io_on_report_events; + uint16_t pwr_man_enable; + int16_t iso15765_separation_time_offset; + uint16_t reservedA; + uint32_t pwr_man_timeout; + union + { + uint64_t word; + struct + { + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + uint16_t network_enables_4; + }; + } network_enables; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ETHERNET_SETTINGS ethernet_1; + ETHERNET_SETTINGS2 ethernet2_1; + STextAPISettings text_api; + DISK_SETTINGS disk; + uint16_t misc_io_report_period; + uint16_t ain_threshold; + uint16_t misc_io_analog_enable; + uint16_t digitalIoThresholdTicks; + uint16_t digitalIoThresholdEnable; + uint16_t misc_io_initial_ddr; + uint16_t misc_io_initial_latch; + Fire3LinuxSettings os_settings; + RAD_GPTP_SETTINGS gPTP; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enableDefaultLogger : 1; + uint32_t enableDefaultUpload : 1; + uint32_t reserved3 : 28; + } flags; +} SNeoVIConnectSettings; +#define SNeoVIConnectSettings_SIZE (628) + #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS { @@ -5024,7 +5241,6 @@ typedef struct _GLOBAL_SETTINGS SRADGigalogSettings radgigalog; SCANHubSettings canhub; SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; SEEVBSettings eevb; SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; @@ -5044,10 +5260,13 @@ typedef struct _GLOBAL_SETTINGS SRADMoon3Settings radmoon3; SRADCometSettings radcomet; SRADComet3Settings radcomet3; + SRADGigastar2Settings radgigastar2; + SRADMoonT1SSettings radmoont1s; + SNeoVIConnectSettings neovi_connect; // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; -#define GLOBAL_SETTINGS_SIZE (SFire3Settings_SIZE + 6) +#define GLOBAL_SETTINGS_SIZE (SRADGigastar2Settings_SIZE + 6) #define NEOVI_3G_MAX_SETTINGS_SIZE sizeof(GLOBAL_SETTINGS) @@ -5067,7 +5286,7 @@ typedef enum _EDeviceSettingsType DeviceRADMoon2SettingsType, DeviceRADPlutoSettingsType, DeviceRADGigalogSettingsType, - DeviceVCANRFSettingsType, + DeviceDeprecatedType, DeviceEEVBSettingsType, DeviceVCAN4IndSettingsType, DeviceNeoECU12SettingsType, @@ -5092,9 +5311,11 @@ typedef enum _EDeviceSettingsType DeviceFire3SettingsType, DeviceFire3FlexraySettingsType, DeviceRADCometSettingsType, - DeviceRed2OemSettingsType, + DeviceNeoVIConnectSettingsType, DeviceRADComet3SettingsType, DeviceRADGalaxy2SettingsType, + DeviceRADGigastar2SettingsType, + DeviceRADMoonT1SSettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -5130,7 +5351,6 @@ typedef struct _SDeviceSettings SRADGigalogSettings radgigalog; SCANHubSettings canhub; SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; SEEVBSettings eevb; SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; @@ -5150,6 +5370,9 @@ typedef struct _SDeviceSettings SFire3FlexraySettings fire3Flexray; SRADCometSettings radcomet; SRADComet3Settings radcomet3; + SRADGigastar2Settings radgigastar2; + SRADMoonT1SSettings radmoont1s; + SNeoVIConnectSettings neovi_connect; // Make sure GLOBAL_SETTINGS matches this // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; @@ -5970,7 +6193,6 @@ CHECK_STRUCT_SIZE(SFireVnetSettings); CHECK_STRUCT_SIZE(SCyanSettings); CHECK_STRUCT_SIZE(SVCAN3Settings); CHECK_STRUCT_SIZE(SVCAN4Settings); -CHECK_STRUCT_SIZE(SVCANRFSettings); CHECK_STRUCT_SIZE(SECUSettings); CHECK_STRUCT_SIZE(SPendantSettings); CHECK_STRUCT_SIZE(SIEVBSettings); @@ -6019,6 +6241,9 @@ CHECK_STRUCT_SIZE(SFire3FlexraySettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SRADCometSettings); CHECK_STRUCT_SIZE(SRADComet3Settings); +CHECK_STRUCT_SIZE(SRADGigastar2Settings); +CHECK_STRUCT_SIZE(SRADMoonT1SSettings); +CHECK_STRUCT_SIZE(SNeoVIConnectSettings); #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/include/exceptions.h b/include/exceptions.h index 2a917545b..cacf98e16 100644 --- a/include/exceptions.h +++ b/include/exceptions.h @@ -8,7 +8,7 @@ extern "C" #endif int initialize_exceptions(PyObject* module); - PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_name); + PyObject* _set_ics_exception(PyObject* exception, const char* msg, const char* func_name); #define set_ics_exception(exception, msg) _set_ics_exception(exception, msg, __FUNCTION__); PyObject* exception_argument_error(void); diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 34f262b9b..57ac37d8b 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -183,6 +183,16 @@ typedef unsigned __int64 uint64_t; #define NETID_SPI4 558 #define NETID_SPI5 559 #define NETID_SPI6 560 +#define NETID_SPI7 561 +#define NETID_SPI8 562 +#define NETID_LIN_09 563 +#define NETID_LIN_10 564 +#define NETID_LIN_11 565 +#define NETID_LIN_12 566 +#define NETID_LIN_13 567 +#define NETID_LIN_14 568 +#define NETID_LIN_15 569 +#define NETID_LIN_16 570 /* Upper boundry of Network IDs */ #define NETID_MAX 100 @@ -232,8 +242,11 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RADMOON3 (0x00000023) #define NEODEVICE_RADCOMET (0x00000024) #define NEODEVICE_FIRE3_FLEXRAY (0x00000025) -#define NEODEVICE_RED2_OEM (0x00000026) +#define NEODEVICE_NEOVI_CONNECT (0x00000026) #define NEODEVICE_RADCOMET3 (0x00000027) +#define NEODEVICE_RADMOONT1S (0x00000028) +#define NEODEVICE_GIGASTAR2 (0x00000029) + #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -253,7 +266,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_VCAN42 (0x00400000) #define NEODEVICE_CMPROBE (0x00800000) #define NEODEVICE_EEVB (0x01000000) -#define NEODEVICE_VCANRF (0x02000000) +#define NEODEVICE_DONT_REUSE4 (0x02000000) #define NEODEVICE_FIRE2 (0x04000000) #define NEODEVICE_FLEX (0x08000000) #define NEODEVICE_RADGALAXY (0x10000000) @@ -964,12 +977,6 @@ typedef union _stChipVersions uint8_t mpic_min; } vcan3_versions; - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - } vcanrf_versions; - struct { uint8_t zynq_core_major; @@ -1172,6 +1179,24 @@ typedef union _stChipVersions uint8_t zynq_core_minor; } rad_comet3_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } radgigastar2_versions; + + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } rad_moont1s_versions; + + struct + { + uint8_t zchip_major; + uint8_t zchip_minor; + } neovi_connect_versions; + } stChipVersions; #define stChipVersions_SIZE 8 @@ -1262,12 +1287,6 @@ typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s } RAD_GPTP_AND_TAP_SETTINGS; #define RAD_GPTP_AND_TAP_SETTINGS_SIZE 40 -typedef struct HW_ETH_SETTINGS_t -{ - OP_ETH_GENERAL_SETTINGS General_Settings; -} HW_ETH_SETTINGS; -#define HW_ETH_SETTINGS_SIZE 20 - /* ucConfigMode in OP_ETH_SETTINGS */ typedef enum _opEthLinkMode { @@ -1285,21 +1304,27 @@ enum typedef struct OP_ETH_SETTINGS_t { uint8_t ucConfigMode; - unsigned char preemption_en; + uint8_t preemption_en; union { struct { // Reuse the mac_addr for switch mode if required! - unsigned char mac_addr1[6]; // Original Addr for spoofing - unsigned char mac_addr2[6]; // Target Addr for spoofing - unsigned short mac_spoofing_en : 1; - unsigned short mac_spoofing_isDstOrSrc : 1; - unsigned short link_spd : 2; - unsigned short q2112_phy_mode : 1; - unsigned short reserved : 11; + uint8_t mac_addr1[6]; // Original Addr for spoofing + uint8_t mac_addr2[6]; // Target Addr for spoofing + uint16_t mac_spoofing_en : 1; + uint16_t mac_spoofing_isDstOrSrc : 1; + uint16_t link_spd : 2; + uint16_t q2112_phy_mode : 1; + uint16_t macsec_en : 1; // enable loading MACsec config on boot + uint16_t compliance_mode_en : 1; + uint16_t cut_thru_tap : 1; + uint16_t snf_tap : 1; // store and forward + uint16_t disable_tap_to_host : 1; + uint16_t show_tap_tx_receipt : 1; + uint16_t reserved : 5; }; - unsigned char reserved0[14]; + uint8_t reserved0[14]; }; } OP_ETH_SETTINGS; #define OP_ETH_SETTINGS_SIZE 16 @@ -1328,9 +1353,12 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS2_FLAG2_PHY_MODE 0x02 #define ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO 0x04 #define ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED 0x08 - #define ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT 4 #define ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK 0xF0 +#define ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE 0x0100 +#define ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE 0x0200 // store and forward +#define ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST 0x0400 +#define ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT 0x0800 typedef enum { @@ -1370,9 +1398,12 @@ typedef struct ETHERNET_SETTINGS2_t * bit5: SFP module ID1 * bit6: SFP module ID2 * bit7: SFP module ID3 + * bit8: cut through tap enabled (only TX forwarded from tap partner) + * bit9: store and forward tap enabled (forward RX to tap partner) + * bit10: disable tap frames to host + * bit11: show TX receipt for tap frames */ - uint8_t flags2; - uint8_t rsvd; + uint16_t flags2; } ETHERNET_SETTINGS2; #define ETHERNET_SETTINGS2_SIZE 16 @@ -1390,6 +1421,11 @@ typedef struct ETHERNET_SETTINGS2_t #define ETHERNET_SETTINGS10G_FLAG_PKT_CHECK 0x00000800 #define ETHERNET_SETTINGS10G_FLAG_PKT_GEN 0x00001000 #define ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED 0x00002000 +#define ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE 0x00004000 +#define ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE 0x00008000 // store and forward +#define ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST 0x00010000 +#define ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE 0x00020000 +#define ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT 0x00040000 #define ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE 0x80000000 typedef struct ETHERNET10G_SETTINGS_t @@ -1409,6 +1445,11 @@ typedef struct ETHERNET10G_SETTINGS_t * bit11: enable packet checker * bit12: enable packet generator * bit13: IP config not allowed + * bit14: cut through tap enabled (only TX forwarded from tap partner) + * bit15: store and forward tap enabled (forward RX to tap partner) + * bit16: disable tap frames to host + * bit17: macsec enable + * bit18: show TX receipt for tap frames * bit31: comm in use */ uint32_t flags; @@ -1447,8 +1488,6 @@ typedef struct ETHERNET10T1S_SETTINGS_EXT_t } ETHERNET10T1S_SETTINGS_EXT; #define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 -#define ETHERNET10T1S_SETTINGS_EXT_FLAG_ENABLE_MULTI_ID 0x01 - /* * START - MACsec Definitions */ @@ -2612,52 +2651,6 @@ typedef struct _SVCAN4Settings } SVCAN4Settings; #define SVCAN4Settings_SIZE 342 -typedef struct _SVCANRFSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - CAN_SETTINGS can3; - CAN_SETTINGS can4; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - - uint16_t perf_en; - - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - uint16_t network_enables_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t disableFwLEDs : 1; - uint16_t reservedZero : 15; -} SVCANRFSettings; -#define SVCANRFSettings_SIZE 340 - typedef struct _SECUSettings { /* ECU ID used in CAN communications. @@ -3358,7 +3351,6 @@ typedef struct _SRADGalaxy2Settings uint16_t iso_9141_kwp_enable_reserved; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; uint16_t idle_wakeup_network_enables_1; @@ -3399,15 +3391,23 @@ typedef struct _SRADGalaxy2Settings OP_ETH_SETTINGS opEth15; OP_ETH_SETTINGS opEth16; + ETHERNET10G_SETTINGS ethernet10g_3; ETHERNET10G_SETTINGS ethernet10g; ETHERNET10G_SETTINGS ethernet10g_2; - ETHERNET10G_SETTINGS ethernet10g_3; uint16_t network_enables_4; RAD_REPORTING_SETTINGS reporting; RAD_GPTP_SETTINGS gPTP; + 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; + } SRADGalaxy2Settings; -#define SRADGalaxy2Settings_SIZE 822 +#define SRADGalaxy2Settings_SIZE 960 typedef struct _SVividCANSettings { @@ -5007,6 +5007,223 @@ typedef struct _SRADComet3Settings } SRADComet3Settings; #define SRADComet3Settings_SIZE 674 +typedef struct _SRADGigaStar2Settings +{ + // ECU ID used in CAN communications. + // TX ID = ECU ID with bit28 cleared, + // RX ID = ECUID with bit28 set, + // ECU ID = 0 implies ECU ID = serial no with bit 27 set + uint32_t ecu_id; + uint16_t perf_en; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; + uint16_t network_enabled_on_boot; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; + uint16_t iso_parity_3; + uint16_t iso_msg_termination_3; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; + uint16_t iso_parity_4; + uint16_t iso_msg_termination_4; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5; + uint16_t iso_parity_5; + uint16_t iso_msg_termination_5; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6; + uint16_t iso_parity_6; + uint16_t iso_msg_termination_6; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_7; + uint16_t iso_parity_7; + uint16_t iso_msg_termination_7; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_8; + uint16_t iso_parity_8; + uint16_t iso_msg_termination_8; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_9; + uint16_t iso_parity_9; + uint16_t iso_msg_termination_9; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_10; + uint16_t iso_parity_10; + uint16_t iso_msg_termination_10; + uint64_t network_enables; + uint64_t network_enables_2; + uint64_t termination_enables; + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; + RAD_REPORTING_SETTINGS reporting; + int16_t iso15765_separation_time_offset; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + RAD_GPTP_SETTINGS gPTP; + STextAPISettings text_api; + DISK_SETTINGS disk; + LOGGER_SETTINGS logger; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + LIN_SETTINGS lin3; + LIN_SETTINGS lin4; + LIN_SETTINGS lin5; + LIN_SETTINGS lin6; + LIN_SETTINGS lin7; + LIN_SETTINGS lin8; + LIN_SETTINGS lin9; + LIN_SETTINGS lin10; + // TODO more LIN + // Ethernet SFP + ETHERNET_SETTINGS2 ethernet1; + ETHERNET_SETTINGS2 ethernet2; + // Ethernet General + OP_ETH_GENERAL_SETTINGS opEthGen; + // 100/1000T1 + ETHERNET_SETTINGS2 ethT1; + OP_ETH_SETTINGS opEth1; + ETHERNET_SETTINGS2 ethT12; + OP_ETH_SETTINGS opEth2; + // 10T1S + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s3; + ETHERNET10T1S_SETTINGS t1s3; + ETHERNET10T1S_SETTINGS_EXT t1s3Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s4; + ETHERNET10T1S_SETTINGS t1s4; + ETHERNET10T1S_SETTINGS_EXT t1s4Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s5; + ETHERNET10T1S_SETTINGS t1s5; + ETHERNET10T1S_SETTINGS_EXT t1s5Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s6; + ETHERNET10T1S_SETTINGS t1s6; + ETHERNET10T1S_SETTINGS_EXT t1s6Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s7; + ETHERNET10T1S_SETTINGS t1s7; + ETHERNET10T1S_SETTINGS_EXT t1s7Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s8; + ETHERNET10T1S_SETTINGS t1s8; + ETHERNET10T1S_SETTINGS_EXT t1s8Ext; +} SRADGigastar2Settings; +#define SRADGigastar2Settings_SIZE 2024 + +typedef struct _SRADMoonT1SSettings +{ + uint16_t perf_en; + struct + { + uint16_t hwComLatencyTestEn : 1; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t reserved : 14; + } flags; + uint16_t network_enabled_on_boot; + uint64_t network_enables; + uint64_t network_enables_2; + RAD_REPORTING_SETTINGS reporting; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + // Ethernet 10/100/1000 + ETHERNET_SETTINGS2 ethernet; + // Ethernet General + OP_ETH_GENERAL_SETTINGS opEthGen; + // 10T1S + ETHERNET_SETTINGS2 ethT1s; + ETHERNET10T1S_SETTINGS t1s; + // 10T1S Extended Settings + ETHERNET10T1S_SETTINGS_EXT t1sExt; +} SRADMoonT1SSettings; +#define SRADMoonT1SSettings_SIZE 124 + +typedef struct _SNeoVIConnectSettings +{ + uint16_t perf_en; + uint16_t network_enabled_on_boot; + uint16_t misc_io_on_report_events; + uint16_t pwr_man_enable; + int16_t iso15765_separation_time_offset; + uint16_t reservedA; + uint32_t pwr_man_timeout; + union + { + uint64_t word; + struct + { + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + uint16_t network_enables_4; + }; + } network_enables; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ETHERNET_SETTINGS ethernet_1; + ETHERNET_SETTINGS2 ethernet2_1; + STextAPISettings text_api; + DISK_SETTINGS disk; + uint16_t misc_io_report_period; + uint16_t ain_threshold; + uint16_t misc_io_analog_enable; + uint16_t digitalIoThresholdTicks; + uint16_t digitalIoThresholdEnable; + uint16_t misc_io_initial_ddr; + uint16_t misc_io_initial_latch; + Fire3LinuxSettings os_settings; + RAD_GPTP_SETTINGS gPTP; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enableDefaultLogger : 1; + uint32_t enableDefaultUpload : 1; + uint32_t reserved3 : 28; + } flags; +} SNeoVIConnectSettings; +#define SNeoVIConnectSettings_SIZE (628) + #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS { @@ -5038,7 +5255,6 @@ typedef struct _GLOBAL_SETTINGS SRADGigalogSettings radgigalog; SCANHubSettings canhub; SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; SEEVBSettings eevb; SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; @@ -5058,10 +5274,13 @@ typedef struct _GLOBAL_SETTINGS SRADMoon3Settings radmoon3; SRADCometSettings radcomet; SRADComet3Settings radcomet3; + SRADGigastar2Settings radgigastar2; + SRADMoonT1SSettings radmoont1s; + SNeoVIConnectSettings neovi_connect; // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; -#define GLOBAL_SETTINGS_SIZE (SFire3Settings_SIZE + 6) +#define GLOBAL_SETTINGS_SIZE (SRADGigastar2Settings_SIZE + 6) #define NEOVI_3G_MAX_SETTINGS_SIZE sizeof(GLOBAL_SETTINGS) @@ -5081,7 +5300,7 @@ typedef enum _EDeviceSettingsType DeviceRADMoon2SettingsType, DeviceRADPlutoSettingsType, DeviceRADGigalogSettingsType, - DeviceVCANRFSettingsType, + DeviceDeprecatedType, DeviceEEVBSettingsType, DeviceVCAN4IndSettingsType, DeviceNeoECU12SettingsType, @@ -5106,9 +5325,11 @@ typedef enum _EDeviceSettingsType DeviceFire3SettingsType, DeviceFire3FlexraySettingsType, DeviceRADCometSettingsType, - DeviceRed2OemSettingsType, + DeviceNeoVIConnectSettingsType, DeviceRADComet3SettingsType, DeviceRADGalaxy2SettingsType, + DeviceRADGigastar2SettingsType, + DeviceRADMoonT1SSettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -5144,7 +5365,6 @@ typedef struct _SDeviceSettings SRADGigalogSettings radgigalog; SCANHubSettings canhub; SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; SEEVBSettings eevb; SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; @@ -5164,6 +5384,9 @@ typedef struct _SDeviceSettings SFire3FlexraySettings fire3Flexray; SRADCometSettings radcomet; SRADComet3Settings radcomet3; + SRADGigastar2Settings radgigastar2; + SRADMoonT1SSettings radmoont1s; + SNeoVIConnectSettings neovi_connect; // Make sure GLOBAL_SETTINGS matches this // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; @@ -5998,7 +6221,6 @@ CHECK_STRUCT_SIZE(SFireVnetSettings); CHECK_STRUCT_SIZE(SCyanSettings); CHECK_STRUCT_SIZE(SVCAN3Settings); CHECK_STRUCT_SIZE(SVCAN4Settings); -CHECK_STRUCT_SIZE(SVCANRFSettings); CHECK_STRUCT_SIZE(SECUSettings); CHECK_STRUCT_SIZE(SPendantSettings); CHECK_STRUCT_SIZE(SIEVBSettings); @@ -6047,6 +6269,9 @@ CHECK_STRUCT_SIZE(SFire3FlexraySettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SRADCometSettings); CHECK_STRUCT_SIZE(SRADComet3Settings); +CHECK_STRUCT_SIZE(SRADGigastar2Settings); +CHECK_STRUCT_SIZE(SRADMoonT1SSettings); +CHECK_STRUCT_SIZE(SNeoVIConnectSettings); #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/include/methods.h b/include/methods.h index 0a4b179ea..54b9135b2 100644 --- a/include/methods.h +++ b/include/methods.h @@ -119,18 +119,6 @@ extern "C" "` method.\n\n" \ } -#define _EZ_ICS_STRUCT_METHOD_MULTIPLE(name, icsname, icsname_no_icsneo, meth, flags, doc) \ - { icsname, \ - (PyCFunction)meth, \ - flags, \ - "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ - "` method.\n\n" }, \ - { \ - icsname_no_icsneo, (PyCFunction)meth, flags, \ - "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ - "` method.\n\n" \ - } - #define _DOC_FIND_DEVICES \ MODULE_NAME ".find_devices(device_type=" MODULE_NAME ".NEODEVICE_ALL)\n" \ "\n" \ @@ -1933,526 +1921,7 @@ extern "C" "\tNone\n" \ "\n" -static PyMethodDef IcsMethods[] = { - _EZ_ICS_STRUCT_METHOD("find_devices", - "icsneoFindNeoDevices", - "FindNeoDevices", - (PyCFunction)meth_find_devices, - METH_VARARGS | METH_KEYWORDS, - _DOC_FIND_DEVICES), - _EZ_ICS_STRUCT_METHOD("open_device", - "icsneoOpenNeoDevice", - "OpenNeoDevice", - (PyCFunction)meth_open_device, - METH_VARARGS | METH_KEYWORDS, - _DOC_OPEN_DEVICES), - _EZ_ICS_STRUCT_METHOD("close_device", - "icsneoClosePort", - "ClosePort", - meth_close_device, - METH_VARARGS, - _DOC_CLOSE_DEVICES), - _EZ_ICS_STRUCT_METHOD("get_rtc", "icsneoGetRTC", "GetRTC", meth_get_rtc, METH_VARARGS, _DOC_GET_RTC), - _EZ_ICS_STRUCT_METHOD("set_rtc", "icsneoSetRTC", "SetRTC", meth_set_rtc, METH_VARARGS, _DOC_SET_RTC), - _EZ_ICS_STRUCT_METHOD("coremini_load", - "icsneoScriptLoad", - "ScriptLoad", - meth_coremini_load, - METH_VARARGS, - _DOC_COREMINI_LOAD), - _EZ_ICS_STRUCT_METHOD("coremini_start", - "icsneoScriptStart", - "ScriptStart", - meth_coremini_start, - METH_VARARGS, - _DOC_COREMINI_START), - _EZ_ICS_STRUCT_METHOD("coremini_stop", - "icsneoScriptStop", - "ScriptStop", - meth_coremini_stop, - METH_VARARGS, - _DOC_COREMINI_STOP), - _EZ_ICS_STRUCT_METHOD("coremini_clear", - "icsneoScriptClear", - "ScriptClear", - meth_coremini_clear, - METH_VARARGS, - _DOC_COREMINI_CLEAR), - _EZ_ICS_STRUCT_METHOD("coremini_get_status", - "icsneoScriptGetScriptStatus", - "ScriptGetScriptStatus", - meth_coremini_get_status, - METH_VARARGS, - _DOC_COREMINI_GET_STATUS), - _EZ_ICS_STRUCT_METHOD("transmit_messages", - "icsneoTxMessages", - "TxMessages", - meth_transmit_messages, - METH_VARARGS, - _DOC_TRANSMIT_MESSAGES), - _EZ_ICS_STRUCT_METHOD("get_messages", - "icsneoGetMessages", - "GetMessages", - meth_get_messages, - METH_VARARGS, - _DOC_GET_MESSAGES), - _EZ_ICS_STRUCT_METHOD("get_script_status", - "icsneoScriptGetScriptStatusEx", - "ScriptGetScriptStatusEx", - meth_get_script_status, - METH_VARARGS, - "Accepts a PyNeoDeviceEx" - ", exception on error. Returns a list of values of what ulParameters would hold"), - _EZ_ICS_STRUCT_METHOD("get_error_messages", - "icsneoGetErrorMessages", - "GetErrorMessages", - meth_get_error_messages, - METH_VARARGS, - _DOC_GET_ERROR_MESSAGES), -#ifdef _USE_INTERNAL_HEADER_ - _EZ_ICS_STRUCT_METHOD("flash_devices", - "FlashDevice2", - "FlashDevice2", - meth_flash_devices, - METH_VARARGS, - "int _stdcall FlashDevice2()"), -#endif - _EZ_ICS_STRUCT_METHOD("set_reflash_callback", - "icsneoSetReflashDisplayCallbacks", - "SetReflashDisplayCallback", - meth_set_reflash_callback, - METH_VARARGS, - _DOC_SET_REFLASH_CALLBACK), - _EZ_ICS_STRUCT_METHOD("get_device_settings", - "icsneoGetDeviceSettings", - "GetDeviceSettings", - meth_get_device_settings, - METH_VARARGS, - _DOC_GET_DEVICE_SETTINGS), - _EZ_ICS_STRUCT_METHOD("set_device_settings", - "icsneoSetDeviceSettings", - "SetDeviceSettings", - meth_set_device_settings, - METH_VARARGS, - _DOC_SET_DEVICE_SETTINGS), - _EZ_ICS_STRUCT_METHOD("load_default_settings", - "icsneoLoadDefaultSettings", - "LoadDefaultSettings", - meth_load_default_settings, - METH_VARARGS, - _DOC_LOAD_DEFAULT_SETTINGS), - //_EZ_ICS_STRUCT_METHOD("spy_message_to_j1850", METH_spy_message_to_j1850, METH_VARARGS, "Accepts a " - // MODULE_NAME - //"." - // SPY_MESSAGE_OBJECT_NAME ", and returns a " MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME ". Exception on - // error."), - _EZ_ICS_STRUCT_METHOD("read_sdcard", - "icsneoReadSDCard", - "ReadSDCard", - meth_read_sdcard, - METH_VARARGS, - "icsneoReadSDCard(), Accepts a PyNeoDeviceEx" - " and sector index. Returns a bytearray of 512 bytes max. Exception on error."), - _EZ_ICS_STRUCT_METHOD("write_sdcard", - "icsneoWriteSDCard", - "WriteSDCard", - meth_write_sdcard, - METH_VARARGS, - "icsneoReadSDCard(), Accepts a PyNeoDeviceEx" - ", sector index, and a bytearray of 512 bytes. Exception on error."), - { "create_neovi_radio_message", - (PyCFunction)meth_create_neovi_radio_message, - METH_VARARGS | METH_KEYWORDS, - _DOC_CREATE_NEOVI_RADIO_MESSAGE }, - _EZ_ICS_STRUCT_METHOD("coremini_start_fblock", - "icsneoScriptStartFBlock", - "ScriptStartFBlock", - meth_coremini_start_fblock, - METH_VARARGS, - _DOC_COREMINI_START_FBLOCK), - _EZ_ICS_STRUCT_METHOD("coremini_stop_fblock", - "icsneoScriptStopFBlock", - "ScriptStopFBlock", - meth_coremini_stop_fblock, - METH_VARARGS, - _DOC_COREMINI_STOP_FBLOCK), - _EZ_ICS_STRUCT_METHOD("coremini_get_fblock_status", - "icsneoScriptGetFBlockStatus", - "ScriptGetFBlockStatus", - meth_coremini_get_fblock_status, - METH_VARARGS, - _DOC_COREMINI_GET_FBLOCK_STATUS), - _EZ_ICS_STRUCT_METHOD("coremini_read_app_signal", - "icsneoScriptReadAppSignal", - "ScriptReadAppSignal", - meth_coremini_read_app_signal, - METH_VARARGS, - _DOC_COREMINI_READ_APP_SIGNAL), - _EZ_ICS_STRUCT_METHOD("coremini_write_app_signal", - "icsneoScriptWriteAppSignal", - "ScriptWriteAppSignal", - meth_coremini_write_app_signal, - METH_VARARGS, - _DOC_COREMINI_WRITE_APP_SIGNAL), - _EZ_ICS_STRUCT_METHOD("coremini_read_tx_message", - "icsneoScriptReadTxMessage", - "ScriptReadTxMessage", - meth_coremini_read_tx_message, - METH_VARARGS, - _DOC_COREMINI_READ_TX_MESSAGE), - _EZ_ICS_STRUCT_METHOD("coremini_read_rx_message", - "icsneoScriptReadRxMessage", - "ScriptReadRxMessage", - meth_coremini_read_rx_message, - METH_VARARGS, - _DOC_COREMINI_READ_RX_MESSAGE), - _EZ_ICS_STRUCT_METHOD("coremini_write_tx_message", - "icsneoScriptWriteTxMessage", - "ScriptWriteTxMessage", - meth_coremini_write_tx_message, - METH_VARARGS, - _DOC_COREMINI_WRITE_TX_MESSAGE), - _EZ_ICS_STRUCT_METHOD("coremini_write_rx_message", - "icsneoScriptWriteRxMessage", - "ScriptWriteRxMessage", - meth_coremini_write_rx_message, - METH_VARARGS, - _DOC_COREMINI_WRITE_RX_MESSAGE), - _EZ_ICS_STRUCT_METHOD("get_performance_parameters", - "icsneoGetPerformanceParameters", - "GetPerformanceParameters", - meth_get_performance_parameters, - METH_VARARGS, - _DOC_GET_PERFORMANCE_PARAMETERS), - _EZ_ICS_STRUCT_METHOD("validate_hobject", - "icsneoValidateHObject", - "ValidateHObject", - meth_validate_hobject, - METH_VARARGS, - _DOC_VALIDATE_HOBJECT), - _EZ_ICS_STRUCT_METHOD("get_last_api_error", - "icsneoGetLastAPIError", - "GetLastAPIError", - meth_get_last_api_error, - METH_VARARGS, - _DOC_GET_LAST_API_ERROR), - _EZ_ICS_STRUCT_METHOD("get_dll_version", - "icsneoGetDLLVersion", - "GetDLLVersion", - meth_get_dll_version, - METH_NOARGS, - _DOC_GET_DLL_VERSION), - _EZ_ICS_STRUCT_METHOD("get_serial_number", - "icsneoGetSerialNumber", - "GetSerialNumber", - meth_get_serial_number, - METH_VARARGS, - _DOC_GET_SERIAL_NUMBER), - _EZ_ICS_STRUCT_METHOD("get_hw_firmware_info", - "icsneoGetHWFirmwareInfo", - "GetHWFirmwareInfo", - meth_get_hw_firmware_info, - METH_VARARGS, - _DOC_GET_HW_FIRMWARE_INFO), - _EZ_ICS_STRUCT_METHOD("request_enter_sleep_mode", - "icsneoRequestEnterSleepMode", - "RequestEnterSleepMode", - meth_request_enter_sleep_mode, - METH_VARARGS, - _DOC_REQUEST_ENTER_SLEEP_MODE), - { "base36enc", (PyCFunction)meth_base36enc, METH_VARARGS | METH_KEYWORDS, _DOC_BASE36ENC }, - _EZ_ICS_STRUCT_METHOD("set_context", - "icsneoSetContext", - "SetContext", - meth_set_context, - METH_VARARGS, - _DOC_SET_CONTEXT), - _EZ_ICS_STRUCT_METHOD("force_firmware_update", - "icsneoForceFirmwareUpdate", - "ForceFirmwareUpdate", - meth_force_firmware_update, - METH_VARARGS, - _DOC_FORCE_FIRMWARE_UPDATE), - _EZ_ICS_STRUCT_METHOD("firmware_update_required", - "icsneoFirmwareUpdateRequired", - "FirmwareUpdateRequired", - meth_firmware_update_required, - METH_VARARGS, - _DOC_FIRMWARE_UPDATE_REQUIRED), - _EZ_ICS_STRUCT_METHOD("get_dll_firmware_info", - "icsneoGetDLLFirmwareInfo", - "GetDLLFirmwareInfo", - meth_get_dll_firmware_info, - METH_VARARGS, - _DOC_GET_DLL_FIRMWARE_INFO), - _EZ_ICS_STRUCT_METHOD("get_backup_power_enabled", - "icsneoGetBackupPowerEnabled", - "GetBackupPowerEnabled", - meth_get_backup_power_enabled, - METH_VARARGS, - _DOC_GET_BACKUP_POWER_ENABLED), - _EZ_ICS_STRUCT_METHOD("set_backup_power_enabled", - "icsneoSetBackupPowerEnabled", - "SetBackupPowerEnabled", - meth_set_backup_power_enabled, - METH_VARARGS, - _DOC_SET_BACKUP_POWER_ENABLED), - _EZ_ICS_STRUCT_METHOD("get_backup_power_ready", - "icsneoGetBackupPowerReady", - "GetBackupPowerReady", - meth_get_backup_power_ready, - METH_VARARGS, - _DOC_GET_BACKUP_POWER_READY), -#ifdef _USE_INTERNAL_HEADER_ - _EZ_ICS_STRUCT_METHOD("load_readbin", - "icsneoScriptLoadReadBin", - "ScriptLoadReadBin", - meth_load_readbin, - METH_VARARGS, - _DOC_LOAD_READBIN), -#endif - _EZ_ICS_STRUCT_METHOD("iso15765_transmit_message", - "icsneoISO15765_TransmitMessage", - "ISO15765_TransmitMessage", - meth_iso15765_transmit_message, - METH_VARARGS, - _DOC_ISO15765_TRANSMIT_MESSAGE), - _EZ_ICS_STRUCT_METHOD("iso15765_receive_message", - "icsneoISO15765_ReceiveMessage", - "ISO15765_ReceiveMessage", - meth_iso15765_receive_message, - METH_VARARGS, - _DOC_ISO15765_RECEIVE_MESSAGE), - _EZ_ICS_STRUCT_METHOD("iso15765_enable_networks", - "icsneoISO15765_EnableNetworks", - "ISO15765_EnableNetworks", - meth_iso15765_enable_networks, - METH_VARARGS, - _DOC_ISO15765_ENABLE_NETWORKS), - _EZ_ICS_STRUCT_METHOD("iso15765_disable_networks", - "icsneoISO15765_DisableNetworks", - "ISO15765_DisableNetworks", - meth_iso15765_disable_networks, - METH_VARARGS, - _DOC_ISO15765_DISABLE_NETWORKS), - - _EZ_ICS_STRUCT_METHOD("get_active_vnet_channel", - "icsneoGetActiveVNETChannel", - "GetActiveVNETChannel", - meth_get_active_vnet_channel, - METH_VARARGS, - _DOC_GET_ACTIVE_VNET_CHANNEL), - _EZ_ICS_STRUCT_METHOD("set_active_vnet_channel", - "icsneoSetActiveVNETChannel", - "SetActiveVNETChannel", - meth_set_active_vnet_channel, - METH_VARARGS, - _DOC_SET_ACTIVE_VNET_CHANNEL), - _EZ_ICS_STRUCT_METHOD("set_bit_rate", - "icsneoSetBitRate", - "SetBitRate", - meth_set_bit_rate, - METH_VARARGS, - _DOC_SET_BIT_RATE), - _EZ_ICS_STRUCT_METHOD("set_fd_bit_rate", - "icsneoSetFDBitRate", - "SetFDBitRate", - meth_set_fd_bit_rate, - METH_VARARGS, - _DOC_SET_FD_BIT_RATE), - _EZ_ICS_STRUCT_METHOD("set_bit_rate_ex", - "icsneoSetBitRateEx", - "SetBitRateEx", - meth_set_bit_rate_ex, - METH_VARARGS, - _DOC_SET_BIT_RATE_EX), - _EZ_ICS_STRUCT_METHOD("get_timestamp_for_msg", - "icsneoGetTimeStampForMsg", - "GetTimeStampForMsg", - meth_get_timestamp_for_msg, - METH_VARARGS, - _DOC_GET_TIMESTAMP_FOR_MSG), - _EZ_ICS_STRUCT_METHOD("get_device_status", - "icsneoGetDeviceStatus", - "GetDeviceStatus", - meth_get_device_status, - METH_VARARGS, - _DOC_GET_DEVICE_STATUS), - - _EZ_ICS_STRUCT_METHOD("enable_network_com", - "icsneoEnableNetworkCom", - "EnableNetworkCom", - meth_enable_network_com, - METH_VARARGS, - _DOC_ENABLE_NETWORK_COM), - - _EZ_ICS_STRUCT_METHOD("enable_bus_voltage_monitor", - "icsneoEnableBusVoltageMonitor", - "EnableBusVoltageMonitor", - meth_enable_bus_voltage_monitor, - METH_VARARGS, - _DOC_ENABLE_BUS_VOLTAGE_MONITOR), - _EZ_ICS_STRUCT_METHOD("get_bus_voltage", - "icsneoGetBusVoltage", - "GetBusVoltage", - meth_get_bus_voltage, - METH_VARARGS, - _DOC_GET_BUS_VOLTAGE), - - _EZ_ICS_STRUCT_METHOD("read_jupiter_firmware", - "icsneoReadJupiterFirmware", - "ReadJupiterFirmware", - meth_read_jupiter_firmware, - METH_VARARGS, - _DOC_READ_JUPITER_FIRMWARE), - _EZ_ICS_STRUCT_METHOD("write_jupiter_firmware", - "icsneoWriteJupiterFirmware", - "WriteJupiterFirmware", - meth_write_jupiter_firmware, - METH_VARARGS, - _DOC_WRITE_JUPITER_FIRMWARE), - - _EZ_ICS_STRUCT_METHOD("get_disk_details", - "icsneoRequestDiskDetails", - "RequestDiskDetails", - meth_get_disk_details, - METH_VARARGS, - _DOC_GET_DISK_DETAILS), - _EZ_ICS_STRUCT_METHOD("disk_format", - "icsneoRequestDiskFormat", - "RequestDiskFormat", - meth_disk_format, - METH_VARARGS, - _DOC_DISK_FORMAT), - _EZ_ICS_STRUCT_METHOD("disk_format_cancel", - "icsneoRequestDiskFormatCancel", - "RequestDiskFormatCancel", - meth_disk_format_cancel, - METH_VARARGS, - _DOC_DISK_FORMAT_CANCEL), - _EZ_ICS_STRUCT_METHOD("get_disk_format_progress", - "icsneoRequestDiskFormatProgress", - "RequestDiskFormatProgress", - meth_get_disk_format_progress, - METH_VARARGS, - _DOC_DISK_FORMAT_PROGRESS), - _EZ_ICS_STRUCT_METHOD("enable_doip_line", - "icsneoEnableDOIPLine", - "EnableDOIPLine", - meth_enable_doip_line, - METH_VARARGS, - _DOC_ENABLE_DOIP_LINE), - _EZ_ICS_STRUCT_METHOD("is_device_feature_supported", - "icsneoIsDeviceFeatureSupported", - "IsDeviceFeatureSupported", - meth_is_device_feature_supported, - METH_VARARGS, - _DOC_IS_DEVICE_FEATURE_SUPPORTED), - _EZ_ICS_STRUCT_METHOD("get_pcb_serial_number", - "icsneoGetPCBSerialNumber", - "GetPCBSerialNumber", - meth_get_pcb_serial_number, - METH_VARARGS, - _DOC_GET_PCB_SERIAL_NUMBER), - _EZ_ICS_STRUCT_METHOD("set_led_property", - "icsneoSetLedProperty", - "SetLedProperty", - meth_set_led_property, - METH_VARARGS, - _DOC_SET_LED_PROPERTY), - _EZ_ICS_STRUCT_METHOD("start_dhcp_server", - "icsneoStartDHCPServer", - "StartDHCPServer", - meth_start_dhcp_server, - METH_VARARGS, - _DOC_START_DHCP_SERVER), - _EZ_ICS_STRUCT_METHOD("stop_dhcp_server", - "icsneoStopDHCPServer", - "StopDHCPServer", - meth_stop_dhcp_server, - METH_VARARGS, - _DOC_STOP_DHCP_SERVER), - - _EZ_ICS_STRUCT_METHOD("wbms_manager_write_lock", - "icsneowBMSManagerWriteLock", - "wBMSManagerWriteLock", - meth_wbms_manager_write_lock, - METH_VARARGS, - _DOC_WBMS_MANAGER_WRITE_LOCK), - _EZ_ICS_STRUCT_METHOD("wbms_manager_reset", - "icsneowBMSManagerReset", - "wBMSManagerReset", - meth_wbms_manager_reset, - METH_VARARGS, - _DOC_WBMS_MANAGER_RESET), - _EZ_ICS_STRUCT_METHOD("uart_write", "icsneoUartWrite", "UartWrite", meth_uart_write, METH_VARARGS, _DOC_UART_WRITE), - _EZ_ICS_STRUCT_METHOD("uart_read", "icsneoUartRead", "UartRead", meth_uart_read, METH_VARARGS, _DOC_UART_READ), - _EZ_ICS_STRUCT_METHOD("uart_set_baudrate", - "icsneoUartSetBaudrate", - "UartSetBaudrate", - meth_uart_set_baudrate, - METH_VARARGS, - _DOC_UART_SET_BAUDRATE), - _EZ_ICS_STRUCT_METHOD("uart_get_baudrate", - "icsneoUartGetBaudrate", - "UartGetBaudrate", - meth_uart_get_baudrate, - METH_VARARGS, - _DOC_UART_GET_BAUDRATE), - _EZ_ICS_STRUCT_METHOD("generic_api_send_command", - "icsneoGenericAPISendCommand", - "GenericAPISendCommand", - meth_generic_api_send_command, - METH_VARARGS, - _DOC_GENERIC_API_SEND_COMMAND), - _EZ_ICS_STRUCT_METHOD("generic_api_read_data", - "icsneoGenericAPIReadData", - "GenericAPIReadData", - meth_generic_api_read_data, - METH_VARARGS, - _DOC_GENERIC_API_READ_DATA), - _EZ_ICS_STRUCT_METHOD("generic_api_get_status", - "icsneoGenericAPIGetStatus", - "GenericAPIGetStatus", - meth_generic_api_get_status, - METH_VARARGS, - _DOC_GENERIC_API_GET_STATUS), - _EZ_ICS_STRUCT_METHOD("get_gptp_status", - "icsneoGetGPTPStatus", - "GetGPTPStatus", - meth_get_gptp_status, - METH_VARARGS, - _DOC_GET_GPTP_STATUS), - _EZ_ICS_STRUCT_METHOD("get_all_chip_versions", - "icsneoGetAllChipVersions", - "GetAllChipVersions", - meth_get_all_chip_versions, - METH_VARARGS, - _DOC_GET_ALL_CHIP_VERSIONS), - - _EZ_ICS_STRUCT_METHOD("flash_accessory_firmware", - "icsneoFlashAccessoryFirmware", - "FlashAccessoryFirmware", - meth_flash_accessory_firmware, - METH_VARARGS, - _DOC_FLASH_ACCESSORY_FIRMWARE), - _EZ_ICS_STRUCT_METHOD("get_accessory_firmware_version", - "icsneoGetAccessoryFwVersion", - "GetAccessoryFwVersion", - meth_get_accessory_firmware_version, - METH_VARARGS, - _DOC_GET_ACCESSORY_FIRMWARE_VERSION), - _EZ_ICS_STRUCT_METHOD("set_safe_boot_mode", - "icsneoSetSafeBootMode", - "SetSafeBootMode", - meth_set_safe_boot_mode, - METH_VARARGS, - _DOC_SET_SAFE_BOOT_MODE), - - { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, - { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, - - { NULL, NULL, 0, NULL } -}; + +extern PyMethodDef IcsMethods[]; #endif // _METHODS_H_ diff --git a/include/object_spy_message.h b/include/object_spy_message.h index 251002da0..44778a34a 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -34,394 +34,22 @@ int PyUnicode_CompareWithASCIIString(PyObject *uni, const char *string) */ #endif +#pragma pack(push, 1) typedef struct { PyObject_HEAD icsSpyMessage msg; bool noExtraDataPtrCleanup; } spy_message_object; +#pragma pack(pop) +#pragma pack(push, 1) typedef struct { PyObject_HEAD icsSpyMessageJ1850 msg; bool noExtraDataPtrCleanup; } spy_message_j1850_object; +#pragma pack(pop) -static PyMemberDef spy_message_object_members[] = { - { "StatusBitField", T_UINT, offsetof(spy_message_object, msg.StatusBitField), 0, "StatusBitField" }, - { "StatusBitField2", T_UINT, offsetof(spy_message_object, msg.StatusBitField2), 0, "StatusBitField2" }, - { "TimeHardware", - T_UINT, - offsetof(spy_message_object, msg.TimeHardware), - 0, - "Hardware time stamp. The TimeStamp is reset on device open" }, - { "TimeHardware2", - T_UINT, - offsetof(spy_message_object, msg.TimeHardware2), - 0, - "Hardware time stamp. The TimeStamp is reset on device open" }, - { "TimeSystem", - T_UINT, - offsetof(spy_message_object, msg.TimeSystem), - 0, - "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, - { "TimeSystem2", - T_UINT, - offsetof(spy_message_object, msg.TimeSystem2), - 0, - "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, - { "TimeStampHardwareID", - T_UBYTE, - offsetof(spy_message_object, msg.TimeStampHardwareID), - 0, - "This is an identifier of what type of hardware timestamp is used. Since neoVI's timestamp is always the same, " - "this doesn't change." }, - { "TimeStampSystemID", - T_UBYTE, - offsetof(spy_message_object, msg.TimeStampSystemID), - 0, - "This is an identifier of what type of system timestamp is used. Since WIN32 neoVI's timestamp is always the " - "same, " - "from the timeGetTime API, this doesn't change." }, - { "NetworkID", - T_UBYTE, - offsetof(spy_message_object, msg.NetworkID), - 0, - "This value is used to identify which network this message was received on." }, - { "NodeID", T_UBYTE, offsetof(spy_message_object, msg.NodeID), 0, "Not Used" }, - { "Protocol", - T_UBYTE, - offsetof(spy_message_object, msg.Protocol), - 0, - "Valid values are SPY_PROTOCOL_CAN, SPY_PROTOCOL_J1850VPW, and SPY_PROTOCOL_ISO9141." }, - { "MessagePieceID", T_UBYTE, offsetof(spy_message_object, msg.MessagePieceID), 0, "Not Used" }, - { "ExtraDataPtrEnabled", T_UBYTE, offsetof(spy_message_object, msg.ExtraDataPtrEnabled), 0, "" }, - { "NumberBytesHeader", - T_UBYTE, - offsetof(spy_message_object, msg.NumberBytesHeader), - 0, - " Used for J1850/ISO messages. It indicates how many bytes are stored in the Header(1 to 4) array." }, - { "NumberBytesData", - T_UBYTE, - offsetof(spy_message_object, msg.NumberBytesData), - 0, - "Holds the number of bytes in the Data(1 to 8) array or the number of bytes in a CAN remote frame (The DLC)." }, - { "NetworkID2", - T_UBYTE, - offsetof(spy_message_object, msg.NetworkID2), - 0, - "This value is used to identify which network this message was received on." }, - { "DescriptionID", T_SHORT, offsetof(spy_message_object, msg.DescriptionID), 0, "Not Used" }, - { "ArbIDOrHeader", T_UINT, offsetof(spy_message_object, msg.ArbIDOrHeader), 0, "" }, - { "Data", T_OBJECT_EX, 0, 0, "" }, - { "StatusBitField3", T_UINT, offsetof(spy_message_object, msg.StatusBitField3), 0, "StatusBitField3" }, - { "StatusBitField4", T_UINT, offsetof(spy_message_object, msg.StatusBitField4), 0, "StatusBitField4" }, - { "AckBytes", T_OBJECT_EX, 0, 0, "" }, - { "ExtraDataPtr", T_OBJECT_EX, offsetof(spy_message_object, msg.ExtraDataPtr), 0, "" }, - { "MiscData", T_UBYTE, offsetof(spy_message_object, msg.MiscData), 0, "" }, - { "noExtraDataPtrCleanup", - T_BOOL, - offsetof(spy_message_object, noExtraDataPtrCleanup), - 0, - "Tells Python to not clean up ExtraDataPtrMemory, If this is enabled. Ignore, if unsure." }, - { NULL, 0, 0, 0, NULL }, -}; - -static PyMemberDef spy_message_j1850_object_members[] = { - { "StatusBitField", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField), 0, "StatusBitField" }, - { "StatusBitField2", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField2), 0, "StatusBitField2" }, - { "TimeHardware", - T_UINT, - offsetof(spy_message_j1850_object, msg.TimeHardware), - 0, - "Hardware time stamp. The TimeStamp is reset on device open" }, - { "TimeHardware2", - T_UINT, - offsetof(spy_message_j1850_object, msg.TimeHardware2), - 0, - "Hardware time stamp. The TimeStamp is reset on device open" }, - { "TimeSystem", - T_UINT, - offsetof(spy_message_j1850_object, msg.TimeSystem), - 0, - "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, - { "TimeSystem2", - T_UINT, - offsetof(spy_message_j1850_object, msg.TimeSystem2), - 0, - "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, - { "TimeStampHardwareID", - T_UBYTE, - offsetof(spy_message_j1850_object, msg.TimeStampHardwareID), - 0, - "This is an identifier of what type of hardware timestamp is used. Since neoVI's timestamp is always the same, " - "this doesn't change." }, - { "TimeStampSystemID", - T_UBYTE, - offsetof(spy_message_j1850_object, msg.TimeStampSystemID), - 0, - "This is an identifier of what type of system timestamp is used. Since WIN32 neoVI's timestamp is always the " - "same, " - "from the timeGetTime API, this doesn't change." }, - { "NetworkID", - T_UBYTE, - offsetof(spy_message_j1850_object, msg.NetworkID), - 0, - "This value is used to identify which network this message was received on." }, - { "NodeID", T_UBYTE, offsetof(spy_message_j1850_object, msg.NodeID), 0, "Not Used" }, - { "Protocol", - T_UBYTE, - offsetof(spy_message_j1850_object, msg.Protocol), - 0, - "Valid values are SPY_PROTOCOL_CAN, SPY_PROTOCOL_J1850VPW, and SPY_PROTOCOL_ISO9141." }, - { "MessagePieceID", T_UBYTE, offsetof(spy_message_j1850_object, msg.MessagePieceID), 0, "Not Used" }, - { "ExtraDataPtrEnabled", T_UBYTE, offsetof(spy_message_j1850_object, msg.ExtraDataPtrEnabled), 0, "" }, - { "NumberBytesHeader", - T_UBYTE, - offsetof(spy_message_j1850_object, msg.NumberBytesHeader), - 0, - " Used for J1850/ISO messages. It indicates how many bytes are stored in the Header(1 to 4) array." }, - { "NumberBytesData", - T_UBYTE, - offsetof(spy_message_j1850_object, msg.NumberBytesData), - 0, - "Holds the number of bytes in the Data(1 to 8) array or the number of bytes in a CAN remote frame (The DLC)." }, - { "NetworkID2", - T_UBYTE, - offsetof(spy_message_object, msg.NetworkID2), - 0, - "This value is used to identify which network this message was received on." }, - { "DescriptionID", T_SHORT, offsetof(spy_message_j1850_object, msg.DescriptionID), 0, "Not Used" }, - { "Header", T_OBJECT_EX, 0, 0, "" }, - { "Data", T_OBJECT_EX, 0, 0, "" }, - { "StatusBitField3", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField3), 0, "StatusBitField3" }, - { "StatusBitField4", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField4), 0, "StatusBitField4" }, - { "AckBytes", T_OBJECT_EX, 0, 0, "" }, - { "ExtraDataPtr", T_OBJECT_EX, offsetof(spy_message_j1850_object, msg.ExtraDataPtr), 0, "" }, - { "MiscData", T_UBYTE, offsetof(spy_message_j1850_object, msg.MiscData), 0, "" }, - { "noExtraDataPtrCleanup", - T_BOOL, - offsetof(spy_message_object, noExtraDataPtrCleanup), - 0, - "Tells Python to not clean up ExtraDataPtrMemory, If this is enabled. Ignore, if unsure." }, - { NULL, 0, 0, 0, NULL }, -}; - -static int spy_message_object_alloc(spy_message_object* self, PyObject* args, PyObject* kwds) -{ - memset(&self->msg, 0, sizeof(self->msg)); - self->noExtraDataPtrCleanup = false; - return 0; -} - -static void spy_message_object_dealloc(spy_message_object* self) -{ - if ((!self->noExtraDataPtrCleanup && self->msg.ExtraDataPtrEnabled && self->msg.ExtraDataPtr != NULL) || - (!self->noExtraDataPtrCleanup && self->msg.Protocol == SPY_PROTOCOL_ETHERNET && - self->msg.ExtraDataPtr != NULL)) { - // Clean up the ExtraDataPtr if we can - // Ethernet protocol uses the ExtraDataPtrEnabled reversed internally so do a double check here - delete[] (unsigned char*)self->msg.ExtraDataPtr; - self->msg.ExtraDataPtr = NULL; - self->msg.ExtraDataPtrEnabled = 0; - } - Py_TYPE(self)->tp_free((PyObject*)self); -} - -static PyObject* spy_message_object_getattr(PyObject* o, PyObject* attr_name) -{ -#if PY_MAJOR_VERSION >= 3 - if (!PyUnicode_Check(attr_name)) { -#else - if (!PyString_Check(attr_name)) { -#endif - PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", attr_name->ob_type->tp_name); - return NULL; - } else { - Py_INCREF(attr_name); - } - if (PyUnicode_CompareWithASCIIString(attr_name, "Data") == 0) { - Py_DECREF(attr_name); - spy_message_object* obj = (spy_message_object*)o; - PyObject* temp = Py_BuildValue("(i,i,i,i,i,i,i,i)", - obj->msg.Data[0], - obj->msg.Data[1], - obj->msg.Data[2], - obj->msg.Data[3], - obj->msg.Data[4], - obj->msg.Data[5], - obj->msg.Data[6], - obj->msg.Data[7]); - PyObject* data = PyTuple_GetSlice(temp, 0, obj->msg.NumberBytesData); - Py_DECREF(temp); - return data; - } else if (PyUnicode_CompareWithASCIIString(attr_name, "AckBytes") == 0) { - Py_DECREF(attr_name); - spy_message_object* obj = (spy_message_object*)o; - return Py_BuildValue("(i,i,i,i,i,i,i,i)", - obj->msg.AckBytes[0], - obj->msg.AckBytes[1], - obj->msg.AckBytes[2], - obj->msg.AckBytes[3], - obj->msg.AckBytes[4], - obj->msg.AckBytes[5], - obj->msg.AckBytes[6], - obj->msg.AckBytes[7]); - } else if (PyUnicode_CompareWithASCIIString(attr_name, "Header") == 0) { - Py_DECREF(attr_name); - spy_message_j1850_object* obj = (spy_message_j1850_object*)o; - PyObject* temp = - Py_BuildValue("(i,i,i,i)", obj->msg.Header[0], obj->msg.Header[1], obj->msg.Header[2], obj->msg.Header[3]); - PyObject* data = PyTuple_GetSlice(temp, 0, obj->msg.NumberBytesHeader); - Py_DECREF(temp); - return data; - } else if (PyUnicode_CompareWithASCIIString(attr_name, "ExtraDataPtr") == 0) { - Py_DECREF(attr_name); - spy_message_j1850_object* obj = (spy_message_j1850_object*)o; - unsigned char* ExtraDataPtr = (unsigned char*)obj->msg.ExtraDataPtr; - bool extra_data_ptr_enabled = obj->msg.ExtraDataPtrEnabled != 0; - // Ethernet protocol uses the ExtraDataPtrEnabled reversed internally - if ((obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || - obj->msg.Protocol == SPY_PROTOCOL_SPI || - obj->msg.Protocol == SPY_PROTOCOL_WBMS) - && obj->msg.ExtraDataPtr != NULL) { - extra_data_ptr_enabled = true; - } - int actual_size = 0; - // Some newer protocols are packing the length into NumberBytesHeader also so lets handle it here... - if (obj->msg.Protocol == SPY_PROTOCOL_A2B || obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || - obj->msg.Protocol == SPY_PROTOCOL_SPI || obj->msg.Protocol == SPY_PROTOCOL_WBMS) { - actual_size = (obj->msg.NumberBytesHeader << 8) | obj->msg.NumberBytesData; - } else { - actual_size = obj->msg.NumberBytesData; - } - if (extra_data_ptr_enabled && actual_size && obj->msg.ExtraDataPtr) { - PyObject* tuple = PyTuple_New(actual_size); - for (int i = 0; i < actual_size; ++i) { - PyTuple_SET_ITEM(tuple, i, PyLong_FromLong(ExtraDataPtr[i])); - } - return tuple; - } else { - return Py_None; - } - } else { - return PyObject_GenericGetAttr(o, attr_name); - } -} - -static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* value) -{ - spy_message_object* obj = (spy_message_object*)o; - if (PyUnicode_CompareWithASCIIString(name, "Data") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); - return -1; - } - // Get tuple items and place them in array, set as 0 if error. - for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - obj->msg.Data[i] = 0; - } else { - obj->msg.Data[i] = (unsigned char)PyLong_AsLong(data); - } - } - obj->msg.NumberBytesData = static_cast(PyObject_Length(value)); - return 0; - } else if (PyUnicode_CompareWithASCIIString(name, "AckBytes") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); - return -1; - } - // Get tuple items and place them in array, set as 0 if error. - for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - obj->msg.AckBytes[i] = 0; - } else { - obj->msg.AckBytes[i] = (unsigned char)PyLong_AsLong(data); - } - } - return 0; - } else if (PyUnicode_CompareWithASCIIString(name, "Header") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); - return -1; - } - // Get tuple items and place them in array, set as 0 if error. - for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - ((spy_message_j1850_object*)obj)->msg.Header[i] = 0; - } else { - ((spy_message_j1850_object*)obj)->msg.Header[i] = (unsigned char)PyLong_AsLong(data); - } - obj->msg.NumberBytesHeader = static_cast(PyObject_Length(value)); - } - return 0; - } else if (PyUnicode_CompareWithASCIIString(name, "Protocol") == 0) { - // Ethernet behavior is backward to CAN and will crash if enabled. - if (PyLong_AsLong(value) == SPY_PROTOCOL_ETHERNET) - obj->msg.ExtraDataPtrEnabled = 0; - return PyObject_GenericSetAttr(o, name, value); - } else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtr") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); - return -1; - } - // Get tuple items and place them in array, set as 0 if error. - Py_ssize_t length = PyObject_Length(value); - if (obj->msg.ExtraDataPtr != NULL) - delete[] (unsigned char*)obj->msg.ExtraDataPtr; - obj->msg.ExtraDataPtr = new unsigned char[length]; - // Some newer protocols are packing the length into NumberBytesHeader also so lets handle it here... - if (obj->msg.Protocol == SPY_PROTOCOL_A2B || obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || - obj->msg.Protocol == SPY_PROTOCOL_SPI || obj->msg.Protocol == SPY_PROTOCOL_WBMS) { - obj->msg.NumberBytesHeader = static_cast(length >> 8); - } - obj->msg.NumberBytesData = length & 0xFF; - if (obj->msg.Protocol != SPY_PROTOCOL_ETHERNET) - obj->msg.ExtraDataPtrEnabled = 1; - unsigned char* ExtraDataPtr = (unsigned char*)(obj->msg.ExtraDataPtr); - for (int i = 0; i < length; ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - ExtraDataPtr[i] = (unsigned char)0; - } else { - ExtraDataPtr[i] = (unsigned char)PyLong_AsLong(data); - } - } - return 0; - } else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtrEnabled") == 0) { - // Make sure we clean up here so we don't memory leak - if ((!obj->noExtraDataPtrCleanup && PyLong_AsLong(value) != 1 && obj->msg.ExtraDataPtrEnabled == 1) || - (!obj->noExtraDataPtrCleanup && PyLong_AsLong(value) != 1 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET)) { - if (obj->msg.ExtraDataPtr != NULL) - delete[] (unsigned char*)obj->msg.ExtraDataPtr; - } else if (PyLong_AsLong(value) != 0 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET) { - // Ethernet always needs to be set to 0 - return 0; - } - return PyObject_GenericSetAttr(o, name, value); - } else { - return PyObject_GenericSetAttr(o, name, value); - } -} extern PyTypeObject spy_message_object_type; extern PyTypeObject spy_message_j1850_object_type; diff --git a/pyproject.toml b/pyproject.toml index de3605fb8..768f68c58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ classifiers=[ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ] [project.urls] @@ -43,11 +44,12 @@ requires = [ ] [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" -skip = "cp36-* pp* *-manylinux_i686 *-musllinux_*" +skip = "cp36-* cp37-* pp* *-manylinux_i686 *-musllinux_*" environment = {DISTUTILS_DEBUG=1, MACOSX_DEPLOYMENT_TARGET="10.13", CIBW_ARCHS_LINUX="auto aarch64"} before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" manylinux-aarch64-image = "quay.io/pypa/manylinux_2_28_aarch64" +free-threaded-support = true [tool.cibuildwheel.linux] before-build = "dnf install -y cmake clang clang-tools-extra flex bison" diff --git a/setup.py b/setup.py index 5b368800f..745d3a1ed 100644 --- a/setup.py +++ b/setup.py @@ -70,14 +70,20 @@ def get_ics_extension_compiler_arguments() -> List[str]: """Return a list of compiler arguments to append for compiling the ics extension module""" # gcc and clang arguments GCC_COMPILE_ARGS = [ - "-fpermissive", - "-Wno-unused-variable", - "-Wno-unused-function", - "-Wno-write-strings", + "-Wno-unknown-pragmas", ] # Set compiler flags here if "WINDOWS" in platform.system().upper(): - compile_args = [] + compile_args = [ + "/W4", + "/Wall", # Displays all warnings displayed by /W4 and all other warnings that /W4 doesn't include + #"/WX", # Treats all compiler warnings as errors. + "/external:anglebrackets", + "/external:W0", + "/wd4710", + "/wd4711", + "/wd5045" + ] # mingw and clang python builds won't have MSC in the version string if "MSC" not in sys.version: compile_args = GCC_COMPILE_ARGS diff --git a/src/dll.cpp b/src/dll.cpp index c0e71f1ed..eeaa0f448 100644 --- a/src/dll.cpp +++ b/src/dll.cpp @@ -2,6 +2,10 @@ #include #include +#pragma warning(push) +#pragma warning(disable : 4996) // warning C4996: 'strcpy': This function or variable may be unsafe. + + bool dll_reinitialize(char* name) { @@ -30,3 +34,5 @@ ice::Library* dll_get_library(void) } return mgr["ics"]; } + +#pragma warning(pop) \ No newline at end of file diff --git a/src/exceptions.cpp b/src/exceptions.cpp index f81d7a7a3..92ae888a6 100644 --- a/src/exceptions.cpp +++ b/src/exceptions.cpp @@ -5,34 +5,6 @@ static PyObject* IcsArgumentError = NULL; static PyObject* IcsRuntimeError = NULL; -char* pyics_base36enc(int sn) -{ - char* result = NULL; -#if PY_MAJOR_VERSION >= 3 - PyObject* name = PyUnicode_FromString("ics.ics"); -#else - PyObject* name = PyString_FromString("ics.ics"); -#endif - PyObject* module = PyImport_Import(name); - PyObject* dict = PyModule_GetDict(module); - PyObject* base36enc = PyDict_GetItemString(dict, "base36enc"); - if (PyCallable_Check(base36enc)) { - PyObject* return_value = PyObject_CallFunction(base36enc, "i", sn); - if (return_value == NULL) { - // We failed for some reason... - PyErr_Print(); - Py_DECREF(module); - Py_DECREF(name); - return NULL; - } else { - return PyUniStr_AsStrOrUTF8(return_value); - } - } - Py_DECREF(module); - Py_DECREF(name); - return ""; -} - int initialize_exceptions(PyObject* module) { if (!module && IcsArgumentError && IcsRuntimeError) { @@ -55,7 +27,7 @@ int initialize_exceptions(PyObject* module) return 1; } -PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_name) +PyObject* _set_ics_exception(PyObject* exception, const char* msg, const char* func_name) { std::stringstream ss; std::string function = std::string(func_name); diff --git a/src/ice b/src/ice index 8297cfe21..8c2b0c505 160000 --- a/src/ice +++ b/src/ice @@ -1 +1 @@ -Subproject commit 8297cfe21439525b1ccf6ffac9e7527f75d1b4f5 +Subproject commit 8c2b0c505a6ddc9cc9dbe6b9a2313cfe7b9e4063 diff --git a/src/main.cpp b/src/main.cpp index c2e29f335..649b50075 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -78,6 +78,10 @@ extern "C" } PyDateTime_IMPORT; +#ifdef Py_GIL_DISABLED + // Enable the experimental free threaded introduced in 3.13 + PyUnstable_Module_SetGIL(module, Py_MOD_GIL_NOT_USED); +#endif // Add build constant variables setup_module_defines(module); setup_module_auto_defines(module); diff --git a/src/methods.cpp b/src/methods.cpp index f75458528..2082a0502 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -5,10 +5,12 @@ #ifndef USING_STUDIO_8 #define USING_STUDIO_8 1 #endif +#pragma warning(push, 0) #include #ifdef _USE_INTERNAL_HEADER_ #include #endif +#pragma warning(pop) #include #include "object_spy_message.h" #include "setup_module_auto_defines.h" @@ -57,8 +59,537 @@ typedef struct #endif #endif + +#pragma warning(push) +// warning C4191: 'type cast': unsafe conversion from 'PyObject *(__cdecl *)(PyObject *,PyObject *,PyObject *)' +// to 'PyCFunction' Making a function call using the resulting pointer may cause your program to fail +#pragma warning(disable: 4191) +PyMethodDef IcsMethods[] = { + _EZ_ICS_STRUCT_METHOD("find_devices", + "icsneoFindNeoDevices", + "FindNeoDevices", + meth_find_devices, + METH_VARARGS | METH_KEYWORDS, + _DOC_FIND_DEVICES), + _EZ_ICS_STRUCT_METHOD("open_device", + "icsneoOpenNeoDevice", + "OpenNeoDevice", + meth_open_device, + METH_VARARGS | METH_KEYWORDS, + _DOC_OPEN_DEVICES), + _EZ_ICS_STRUCT_METHOD("close_device", + "icsneoClosePort", + "ClosePort", + meth_close_device, + METH_VARARGS, + _DOC_CLOSE_DEVICES), + _EZ_ICS_STRUCT_METHOD("get_rtc", "icsneoGetRTC", "GetRTC", meth_get_rtc, METH_VARARGS, _DOC_GET_RTC), + _EZ_ICS_STRUCT_METHOD("set_rtc", "icsneoSetRTC", "SetRTC", meth_set_rtc, METH_VARARGS, _DOC_SET_RTC), + _EZ_ICS_STRUCT_METHOD("coremini_load", + "icsneoScriptLoad", + "ScriptLoad", + meth_coremini_load, + METH_VARARGS, + _DOC_COREMINI_LOAD), + _EZ_ICS_STRUCT_METHOD("coremini_start", + "icsneoScriptStart", + "ScriptStart", + meth_coremini_start, + METH_VARARGS, + _DOC_COREMINI_START), + _EZ_ICS_STRUCT_METHOD("coremini_stop", + "icsneoScriptStop", + "ScriptStop", + meth_coremini_stop, + METH_VARARGS, + _DOC_COREMINI_STOP), + _EZ_ICS_STRUCT_METHOD("coremini_clear", + "icsneoScriptClear", + "ScriptClear", + meth_coremini_clear, + METH_VARARGS, + _DOC_COREMINI_CLEAR), + _EZ_ICS_STRUCT_METHOD("coremini_get_status", + "icsneoScriptGetScriptStatus", + "ScriptGetScriptStatus", + meth_coremini_get_status, + METH_VARARGS, + _DOC_COREMINI_GET_STATUS), + _EZ_ICS_STRUCT_METHOD("transmit_messages", + "icsneoTxMessages", + "TxMessages", + meth_transmit_messages, + METH_VARARGS, + _DOC_TRANSMIT_MESSAGES), + _EZ_ICS_STRUCT_METHOD("get_messages", + "icsneoGetMessages", + "GetMessages", + meth_get_messages, + METH_VARARGS, + _DOC_GET_MESSAGES), + _EZ_ICS_STRUCT_METHOD("get_script_status", + "icsneoScriptGetScriptStatusEx", + "ScriptGetScriptStatusEx", + meth_get_script_status, + METH_VARARGS, + "Accepts a PyNeoDeviceEx" + ", exception on error. Returns a list of values of what ulParameters would hold"), + _EZ_ICS_STRUCT_METHOD("get_error_messages", + "icsneoGetErrorMessages", + "GetErrorMessages", + meth_get_error_messages, + METH_VARARGS, + _DOC_GET_ERROR_MESSAGES), +#ifdef _USE_INTERNAL_HEADER_ + _EZ_ICS_STRUCT_METHOD("flash_devices", + "FlashDevice2", + "FlashDevice2", + meth_flash_devices, + METH_VARARGS, + "int _stdcall FlashDevice2()"), +#endif + _EZ_ICS_STRUCT_METHOD("set_reflash_callback", + "icsneoSetReflashDisplayCallbacks", + "SetReflashDisplayCallback", + meth_set_reflash_callback, + METH_VARARGS, + _DOC_SET_REFLASH_CALLBACK), + _EZ_ICS_STRUCT_METHOD("get_device_settings", + "icsneoGetDeviceSettings", + "GetDeviceSettings", + meth_get_device_settings, + METH_VARARGS, + _DOC_GET_DEVICE_SETTINGS), + _EZ_ICS_STRUCT_METHOD("set_device_settings", + "icsneoSetDeviceSettings", + "SetDeviceSettings", + meth_set_device_settings, + METH_VARARGS, + _DOC_SET_DEVICE_SETTINGS), + _EZ_ICS_STRUCT_METHOD("load_default_settings", + "icsneoLoadDefaultSettings", + "LoadDefaultSettings", + meth_load_default_settings, + METH_VARARGS, + _DOC_LOAD_DEFAULT_SETTINGS), + //_EZ_ICS_STRUCT_METHOD("spy_message_to_j1850", METH_spy_message_to_j1850, METH_VARARGS, "Accepts a " + // MODULE_NAME + //"." + // SPY_MESSAGE_OBJECT_NAME ", and returns a " MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME ". Exception on + // error."), + _EZ_ICS_STRUCT_METHOD("read_sdcard", + "icsneoReadSDCard", + "ReadSDCard", + meth_read_sdcard, + METH_VARARGS, + "icsneoReadSDCard(), Accepts a PyNeoDeviceEx" + " and sector index. Returns a bytearray of 512 bytes max. Exception on error."), + _EZ_ICS_STRUCT_METHOD("write_sdcard", + "icsneoWriteSDCard", + "WriteSDCard", + meth_write_sdcard, + METH_VARARGS, + "icsneoReadSDCard(), Accepts a PyNeoDeviceEx" + ", sector index, and a bytearray of 512 bytes. Exception on error."), + { "create_neovi_radio_message", + (PyCFunction)meth_create_neovi_radio_message, + METH_VARARGS | METH_KEYWORDS, + _DOC_CREATE_NEOVI_RADIO_MESSAGE }, + _EZ_ICS_STRUCT_METHOD("coremini_start_fblock", + "icsneoScriptStartFBlock", + "ScriptStartFBlock", + meth_coremini_start_fblock, + METH_VARARGS, + _DOC_COREMINI_START_FBLOCK), + _EZ_ICS_STRUCT_METHOD("coremini_stop_fblock", + "icsneoScriptStopFBlock", + "ScriptStopFBlock", + meth_coremini_stop_fblock, + METH_VARARGS, + _DOC_COREMINI_STOP_FBLOCK), + _EZ_ICS_STRUCT_METHOD("coremini_get_fblock_status", + "icsneoScriptGetFBlockStatus", + "ScriptGetFBlockStatus", + meth_coremini_get_fblock_status, + METH_VARARGS, + _DOC_COREMINI_GET_FBLOCK_STATUS), + _EZ_ICS_STRUCT_METHOD("coremini_read_app_signal", + "icsneoScriptReadAppSignal", + "ScriptReadAppSignal", + meth_coremini_read_app_signal, + METH_VARARGS, + _DOC_COREMINI_READ_APP_SIGNAL), + _EZ_ICS_STRUCT_METHOD("coremini_write_app_signal", + "icsneoScriptWriteAppSignal", + "ScriptWriteAppSignal", + meth_coremini_write_app_signal, + METH_VARARGS, + _DOC_COREMINI_WRITE_APP_SIGNAL), + _EZ_ICS_STRUCT_METHOD("coremini_read_tx_message", + "icsneoScriptReadTxMessage", + "ScriptReadTxMessage", + meth_coremini_read_tx_message, + METH_VARARGS, + _DOC_COREMINI_READ_TX_MESSAGE), + _EZ_ICS_STRUCT_METHOD("coremini_read_rx_message", + "icsneoScriptReadRxMessage", + "ScriptReadRxMessage", + meth_coremini_read_rx_message, + METH_VARARGS, + _DOC_COREMINI_READ_RX_MESSAGE), + _EZ_ICS_STRUCT_METHOD("coremini_write_tx_message", + "icsneoScriptWriteTxMessage", + "ScriptWriteTxMessage", + meth_coremini_write_tx_message, + METH_VARARGS, + _DOC_COREMINI_WRITE_TX_MESSAGE), + _EZ_ICS_STRUCT_METHOD("coremini_write_rx_message", + "icsneoScriptWriteRxMessage", + "ScriptWriteRxMessage", + meth_coremini_write_rx_message, + METH_VARARGS, + _DOC_COREMINI_WRITE_RX_MESSAGE), + _EZ_ICS_STRUCT_METHOD("get_performance_parameters", + "icsneoGetPerformanceParameters", + "GetPerformanceParameters", + meth_get_performance_parameters, + METH_VARARGS, + _DOC_GET_PERFORMANCE_PARAMETERS), + _EZ_ICS_STRUCT_METHOD("validate_hobject", + "icsneoValidateHObject", + "ValidateHObject", + meth_validate_hobject, + METH_VARARGS, + _DOC_VALIDATE_HOBJECT), + _EZ_ICS_STRUCT_METHOD("get_last_api_error", + "icsneoGetLastAPIError", + "GetLastAPIError", + meth_get_last_api_error, + METH_VARARGS, + _DOC_GET_LAST_API_ERROR), + _EZ_ICS_STRUCT_METHOD("get_dll_version", + "icsneoGetDLLVersion", + "GetDLLVersion", + meth_get_dll_version, + METH_NOARGS, + _DOC_GET_DLL_VERSION), + _EZ_ICS_STRUCT_METHOD("get_serial_number", + "icsneoGetSerialNumber", + "GetSerialNumber", + meth_get_serial_number, + METH_VARARGS, + _DOC_GET_SERIAL_NUMBER), + _EZ_ICS_STRUCT_METHOD("get_hw_firmware_info", + "icsneoGetHWFirmwareInfo", + "GetHWFirmwareInfo", + meth_get_hw_firmware_info, + METH_VARARGS, + _DOC_GET_HW_FIRMWARE_INFO), + _EZ_ICS_STRUCT_METHOD("request_enter_sleep_mode", + "icsneoRequestEnterSleepMode", + "RequestEnterSleepMode", + meth_request_enter_sleep_mode, + METH_VARARGS, + _DOC_REQUEST_ENTER_SLEEP_MODE), + { "base36enc", (PyCFunction)meth_base36enc, METH_VARARGS | METH_KEYWORDS, _DOC_BASE36ENC }, + _EZ_ICS_STRUCT_METHOD("set_context", + "icsneoSetContext", + "SetContext", + meth_set_context, + METH_VARARGS, + _DOC_SET_CONTEXT), + _EZ_ICS_STRUCT_METHOD("force_firmware_update", + "icsneoForceFirmwareUpdate", + "ForceFirmwareUpdate", + meth_force_firmware_update, + METH_VARARGS, + _DOC_FORCE_FIRMWARE_UPDATE), + _EZ_ICS_STRUCT_METHOD("firmware_update_required", + "icsneoFirmwareUpdateRequired", + "FirmwareUpdateRequired", + meth_firmware_update_required, + METH_VARARGS, + _DOC_FIRMWARE_UPDATE_REQUIRED), + _EZ_ICS_STRUCT_METHOD("get_dll_firmware_info", + "icsneoGetDLLFirmwareInfo", + "GetDLLFirmwareInfo", + meth_get_dll_firmware_info, + METH_VARARGS, + _DOC_GET_DLL_FIRMWARE_INFO), + _EZ_ICS_STRUCT_METHOD("get_backup_power_enabled", + "icsneoGetBackupPowerEnabled", + "GetBackupPowerEnabled", + meth_get_backup_power_enabled, + METH_VARARGS, + _DOC_GET_BACKUP_POWER_ENABLED), + _EZ_ICS_STRUCT_METHOD("set_backup_power_enabled", + "icsneoSetBackupPowerEnabled", + "SetBackupPowerEnabled", + meth_set_backup_power_enabled, + METH_VARARGS, + _DOC_SET_BACKUP_POWER_ENABLED), + _EZ_ICS_STRUCT_METHOD("get_backup_power_ready", + "icsneoGetBackupPowerReady", + "GetBackupPowerReady", + meth_get_backup_power_ready, + METH_VARARGS, + _DOC_GET_BACKUP_POWER_READY), +#ifdef _USE_INTERNAL_HEADER_ + _EZ_ICS_STRUCT_METHOD("load_readbin", + "icsneoScriptLoadReadBin", + "ScriptLoadReadBin", + meth_load_readbin, + METH_VARARGS, + _DOC_LOAD_READBIN), +#endif + _EZ_ICS_STRUCT_METHOD("iso15765_transmit_message", + "icsneoISO15765_TransmitMessage", + "ISO15765_TransmitMessage", + meth_iso15765_transmit_message, + METH_VARARGS, + _DOC_ISO15765_TRANSMIT_MESSAGE), + _EZ_ICS_STRUCT_METHOD("iso15765_receive_message", + "icsneoISO15765_ReceiveMessage", + "ISO15765_ReceiveMessage", + meth_iso15765_receive_message, + METH_VARARGS, + _DOC_ISO15765_RECEIVE_MESSAGE), + _EZ_ICS_STRUCT_METHOD("iso15765_enable_networks", + "icsneoISO15765_EnableNetworks", + "ISO15765_EnableNetworks", + meth_iso15765_enable_networks, + METH_VARARGS, + _DOC_ISO15765_ENABLE_NETWORKS), + _EZ_ICS_STRUCT_METHOD("iso15765_disable_networks", + "icsneoISO15765_DisableNetworks", + "ISO15765_DisableNetworks", + meth_iso15765_disable_networks, + METH_VARARGS, + _DOC_ISO15765_DISABLE_NETWORKS), + + _EZ_ICS_STRUCT_METHOD("get_active_vnet_channel", + "icsneoGetActiveVNETChannel", + "GetActiveVNETChannel", + meth_get_active_vnet_channel, + METH_VARARGS, + _DOC_GET_ACTIVE_VNET_CHANNEL), + _EZ_ICS_STRUCT_METHOD("set_active_vnet_channel", + "icsneoSetActiveVNETChannel", + "SetActiveVNETChannel", + meth_set_active_vnet_channel, + METH_VARARGS, + _DOC_SET_ACTIVE_VNET_CHANNEL), + _EZ_ICS_STRUCT_METHOD("set_bit_rate", + "icsneoSetBitRate", + "SetBitRate", + meth_set_bit_rate, + METH_VARARGS, + _DOC_SET_BIT_RATE), + _EZ_ICS_STRUCT_METHOD("set_fd_bit_rate", + "icsneoSetFDBitRate", + "SetFDBitRate", + meth_set_fd_bit_rate, + METH_VARARGS, + _DOC_SET_FD_BIT_RATE), + _EZ_ICS_STRUCT_METHOD("set_bit_rate_ex", + "icsneoSetBitRateEx", + "SetBitRateEx", + meth_set_bit_rate_ex, + METH_VARARGS, + _DOC_SET_BIT_RATE_EX), + _EZ_ICS_STRUCT_METHOD("get_timestamp_for_msg", + "icsneoGetTimeStampForMsg", + "GetTimeStampForMsg", + meth_get_timestamp_for_msg, + METH_VARARGS, + _DOC_GET_TIMESTAMP_FOR_MSG), + _EZ_ICS_STRUCT_METHOD("get_device_status", + "icsneoGetDeviceStatus", + "GetDeviceStatus", + meth_get_device_status, + METH_VARARGS, + _DOC_GET_DEVICE_STATUS), + + _EZ_ICS_STRUCT_METHOD("enable_network_com", + "icsneoEnableNetworkCom", + "EnableNetworkCom", + meth_enable_network_com, + METH_VARARGS, + _DOC_ENABLE_NETWORK_COM), + + _EZ_ICS_STRUCT_METHOD("enable_bus_voltage_monitor", + "icsneoEnableBusVoltageMonitor", + "EnableBusVoltageMonitor", + meth_enable_bus_voltage_monitor, + METH_VARARGS, + _DOC_ENABLE_BUS_VOLTAGE_MONITOR), + _EZ_ICS_STRUCT_METHOD("get_bus_voltage", + "icsneoGetBusVoltage", + "GetBusVoltage", + meth_get_bus_voltage, + METH_VARARGS, + _DOC_GET_BUS_VOLTAGE), + + _EZ_ICS_STRUCT_METHOD("read_jupiter_firmware", + "icsneoReadJupiterFirmware", + "ReadJupiterFirmware", + meth_read_jupiter_firmware, + METH_VARARGS, + _DOC_READ_JUPITER_FIRMWARE), + _EZ_ICS_STRUCT_METHOD("write_jupiter_firmware", + "icsneoWriteJupiterFirmware", + "WriteJupiterFirmware", + meth_write_jupiter_firmware, + METH_VARARGS, + _DOC_WRITE_JUPITER_FIRMWARE), + + _EZ_ICS_STRUCT_METHOD("get_disk_details", + "icsneoRequestDiskDetails", + "RequestDiskDetails", + meth_get_disk_details, + METH_VARARGS, + _DOC_GET_DISK_DETAILS), + _EZ_ICS_STRUCT_METHOD("disk_format", + "icsneoRequestDiskFormat", + "RequestDiskFormat", + meth_disk_format, + METH_VARARGS, + _DOC_DISK_FORMAT), + _EZ_ICS_STRUCT_METHOD("disk_format_cancel", + "icsneoRequestDiskFormatCancel", + "RequestDiskFormatCancel", + meth_disk_format_cancel, + METH_VARARGS, + _DOC_DISK_FORMAT_CANCEL), + _EZ_ICS_STRUCT_METHOD("get_disk_format_progress", + "icsneoRequestDiskFormatProgress", + "RequestDiskFormatProgress", + meth_get_disk_format_progress, + METH_VARARGS, + _DOC_DISK_FORMAT_PROGRESS), + _EZ_ICS_STRUCT_METHOD("enable_doip_line", + "icsneoEnableDOIPLine", + "EnableDOIPLine", + meth_enable_doip_line, + METH_VARARGS, + _DOC_ENABLE_DOIP_LINE), + _EZ_ICS_STRUCT_METHOD("is_device_feature_supported", + "icsneoIsDeviceFeatureSupported", + "IsDeviceFeatureSupported", + meth_is_device_feature_supported, + METH_VARARGS, + _DOC_IS_DEVICE_FEATURE_SUPPORTED), + _EZ_ICS_STRUCT_METHOD("get_pcb_serial_number", + "icsneoGetPCBSerialNumber", + "GetPCBSerialNumber", + meth_get_pcb_serial_number, + METH_VARARGS, + _DOC_GET_PCB_SERIAL_NUMBER), + _EZ_ICS_STRUCT_METHOD("set_led_property", + "icsneoSetLedProperty", + "SetLedProperty", + meth_set_led_property, + METH_VARARGS, + _DOC_SET_LED_PROPERTY), + _EZ_ICS_STRUCT_METHOD("start_dhcp_server", + "icsneoStartDHCPServer", + "StartDHCPServer", + meth_start_dhcp_server, + METH_VARARGS, + _DOC_START_DHCP_SERVER), + _EZ_ICS_STRUCT_METHOD("stop_dhcp_server", + "icsneoStopDHCPServer", + "StopDHCPServer", + meth_stop_dhcp_server, + METH_VARARGS, + _DOC_STOP_DHCP_SERVER), + + _EZ_ICS_STRUCT_METHOD("wbms_manager_write_lock", + "icsneowBMSManagerWriteLock", + "wBMSManagerWriteLock", + meth_wbms_manager_write_lock, + METH_VARARGS, + _DOC_WBMS_MANAGER_WRITE_LOCK), + _EZ_ICS_STRUCT_METHOD("wbms_manager_reset", + "icsneowBMSManagerReset", + "wBMSManagerReset", + meth_wbms_manager_reset, + METH_VARARGS, + _DOC_WBMS_MANAGER_RESET), + _EZ_ICS_STRUCT_METHOD("uart_write", "icsneoUartWrite", "UartWrite", meth_uart_write, METH_VARARGS, _DOC_UART_WRITE), + _EZ_ICS_STRUCT_METHOD("uart_read", "icsneoUartRead", "UartRead", meth_uart_read, METH_VARARGS, _DOC_UART_READ), + _EZ_ICS_STRUCT_METHOD("uart_set_baudrate", + "icsneoUartSetBaudrate", + "UartSetBaudrate", + meth_uart_set_baudrate, + METH_VARARGS, + _DOC_UART_SET_BAUDRATE), + _EZ_ICS_STRUCT_METHOD("uart_get_baudrate", + "icsneoUartGetBaudrate", + "UartGetBaudrate", + meth_uart_get_baudrate, + METH_VARARGS, + _DOC_UART_GET_BAUDRATE), + _EZ_ICS_STRUCT_METHOD("generic_api_send_command", + "icsneoGenericAPISendCommand", + "GenericAPISendCommand", + meth_generic_api_send_command, + METH_VARARGS, + _DOC_GENERIC_API_SEND_COMMAND), + _EZ_ICS_STRUCT_METHOD("generic_api_read_data", + "icsneoGenericAPIReadData", + "GenericAPIReadData", + meth_generic_api_read_data, + METH_VARARGS, + _DOC_GENERIC_API_READ_DATA), + _EZ_ICS_STRUCT_METHOD("generic_api_get_status", + "icsneoGenericAPIGetStatus", + "GenericAPIGetStatus", + meth_generic_api_get_status, + METH_VARARGS, + _DOC_GENERIC_API_GET_STATUS), + _EZ_ICS_STRUCT_METHOD("get_gptp_status", + "icsneoGetGPTPStatus", + "GetGPTPStatus", + meth_get_gptp_status, + METH_VARARGS, + _DOC_GET_GPTP_STATUS), + _EZ_ICS_STRUCT_METHOD("get_all_chip_versions", + "icsneoGetAllChipVersions", + "GetAllChipVersions", + meth_get_all_chip_versions, + METH_VARARGS, + _DOC_GET_ALL_CHIP_VERSIONS), + + _EZ_ICS_STRUCT_METHOD("flash_accessory_firmware", + "icsneoFlashAccessoryFirmware", + "FlashAccessoryFirmware", + meth_flash_accessory_firmware, + METH_VARARGS, + _DOC_FLASH_ACCESSORY_FIRMWARE), + _EZ_ICS_STRUCT_METHOD("get_accessory_firmware_version", + "icsneoGetAccessoryFwVersion", + "GetAccessoryFwVersion", + meth_get_accessory_firmware_version, + METH_VARARGS, + _DOC_GET_ACCESSORY_FIRMWARE_VERSION), + _EZ_ICS_STRUCT_METHOD("set_safe_boot_mode", + "icsneoSetSafeBootMode", + "SetSafeBootMode", + meth_set_safe_boot_mode, + METH_VARARGS, + _DOC_SET_SAFE_BOOT_MODE), + + { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, + { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, + + { NULL, NULL, 0, NULL } +}; + +#pragma warning(pop) + // Internal function -char* neodevice_to_string(unsigned long type) +const char* neodevice_to_string(unsigned long type) { switch (type) { case NEODEVICE_UNKNOWN: @@ -132,6 +663,14 @@ char* neodevice_to_string(unsigned long type) return "RAD-Comet"; case NEODEVICE_FIRE3_FLEXRAY: return "neoVI FIRE 3 Flexray"; + case NEODEVICE_NEOVI_CONNECT: + return "neoVI CONNECT"; + case NEODEVICE_RADCOMET3: + return "RAD-COMET3"; + case NEODEVICE_RADMOONT1S: + return "RAD-MOON-T1S"; + case NEODEVICE_GIGASTAR2: + return "RAD-GigaStar2"; case NEODEVICE_RED: return "neoVI RED"; case NEODEVICE_ECU: @@ -176,10 +715,10 @@ char* neodevice_to_string(unsigned long type) case NEODEVICE_DONT_REUSE1: case NEODEVICE_DONT_REUSE2: case NEODEVICE_DONT_REUSE3: + case NEODEVICE_DONT_REUSE4: default: return "Unknown"; }; - return "Intrepid Device"; } bool _convertListOrTupleToArray(PyObject* obj, std::vector* results) @@ -325,15 +864,17 @@ bool PyNeoDeviceEx_SetNeoDeviceEx(PyObject* object, NeoDeviceEx* src_nde) } // Get the NeoDeviceEx from PyNeoDeviceEx Py_buffer buffer = {}; - NeoDeviceEx* nde = NULL; - int res = PyObject_GetBuffer(object, &buffer, PyBUF_CONTIG); + if (PyObject_GetBuffer(object, &buffer, PyBUF_CONTIG) != 0) { + return false; + } memcpy(buffer.buf, src_nde, sizeof(*src_nde)); PyBuffer_Release(&buffer); return true; } -void __destroy_PyNeoDeviceEx_Handle(PyObject* handle) +extern "C" void __destroy_PyNeoDeviceEx_Handle(PyObject* handle) { + (void)handle; /* if (handle) { delete handle; @@ -352,7 +893,8 @@ bool PyNeoDeviceEx_GetHandle(PyObject* object, void** handle) } *handle = NULL; if (!PyNeoDeviceEx_CheckExact(object)) { - return set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + return false; } PyObject* _handle = PyObject_GetAttrString(object, "_handle"); if (!_handle) { @@ -442,8 +984,12 @@ bool PyNeoDeviceEx_SetName(PyObject* object, PyObject* name) PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) { + (void)self; PyObject* device_types = NULL; int network_id = -1; +#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) + const +#endif char* kwords[] = { "device_types", "network_id", NULL }; if (!PyArg_ParseTupleAndKeywords( args, keywords, arg_parse("|Oi:", __FUNCTION__), kwords, &device_types, &network_id)) { @@ -481,11 +1027,10 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) */ ice::Function icsneoFindDevices(lib, "icsneoFindDevices"); - NeoDeviceEx devices[255] = { 0 }; + NeoDeviceEx devices[255] = {}; int count = 255; - // - OptionsFindNeoEx opts = { 0 }; + OptionsFindNeoEx opts = {}; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) @@ -526,11 +1071,11 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) { + (void)self; unsigned long serial_number = 0; PyObject* device = NULL; PyObject* network_ids = NULL; @@ -539,6 +1084,9 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) int network_id = -1; bool use_neovi_server = false; bool device_need_ref_inc = false; +#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) + const +#endif char* kwords[] = { "device", "network_ids", "config_read", "options", "network_id", "use_server", NULL }; if (!PyArg_ParseTupleAndKeywords(args, keywords, @@ -569,7 +1117,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) if (!_convertListOrTupleToArray(network_ids, &network_ids_vector)) return NULL; network_ids_list_size = static_cast(network_ids_vector.size()); - network_ids_list.reset((new unsigned char(network_ids_list_size))); + network_ids_list.reset(new unsigned char[network_ids_list_size]); for (unsigned int i = 0; i < network_ids_list_size; ++i) network_ids_list[i] = (unsigned char)PyLong_AsLong(network_ids_vector[i]); use_network_ids = true; @@ -578,7 +1126,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) // Verify device type if (device && PyLong_CheckExact(device)) { // Device is a serial number in integer format - serial_number = PyLong_AsLong(device); + serial_number = PyLong_AsUnsignedLong(device); } else if (device && PyUnicode_CheckExact(device)) { // Lets convert the base36 string into an integer PyObject* module_name = PyUnicode_FromString("builtins"); @@ -596,7 +1144,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) PyErr_Print(); return NULL; } else { - serial_number = PyLong_AsLong(return_value); + serial_number = PyLong_AsUnsignedLong(return_value); } } else { return set_ics_exception(exception_runtime_error(), "Failed to convert serial number string to integer."); @@ -623,7 +1171,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) NeoDeviceEx devices[255]; int count = 255; - OptionsFindNeoEx opts = { 0 }; + OptionsFindNeoEx opts = {}; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) @@ -680,7 +1228,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) */ ice::Function icsneoOpenDevice(lib, "icsneoOpenDevice"); - OptionsFindNeoEx opts = { 0 }; + OptionsFindNeoEx opts = {}; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) @@ -721,11 +1269,11 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_close_device(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -767,7 +1315,6 @@ PyObject* meth_close_device(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } /* @@ -810,6 +1357,7 @@ __int64 _tm_secs_offset(tm* t1, tm* t2) PyObject* meth_get_rtc(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -864,11 +1412,11 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_rtc(PyObject* self, PyObject* args) { + (void)self; PyObject* datetime_object = NULL; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O|O:", __FUNCTION__), &obj, &datetime_object)) { @@ -904,7 +1452,7 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) ics_time.hour = PyDateTime_DATE_GET_HOUR(datetime_object); ics_time.day = PyDateTime_GET_DAY(datetime_object); ics_time.month = PyDateTime_GET_MONTH(datetime_object); - ics_time.year = PyDateTime_GET_YEAR(datetime_object) % 100; + ics_time.year = static_cast(PyDateTime_GET_YEAR(datetime_object) % 100); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -922,15 +1470,14 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_load(PyObject* self, PyObject* args) { + (void)self; PyObject* arg_data = NULL; int location; PyObject* obj = NULL; - bool isFileData = false; if (!PyArg_ParseTuple(args, arg_parse("OOi:", __FUNCTION__), &obj, &arg_data, &location)) { return NULL; } @@ -965,7 +1512,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) fsize = ftell(f); rewind(f); data = (unsigned char*)malloc(sizeof(char) * fsize); - data_size = (int)fread(data, 1, fsize, f); + data_size = (int)fread(data, 1, static_cast(fsize), f); fclose(f); if (fsize != data_size) { return set_ics_exception(exception_runtime_error(), "CoreMini binary file size mismatch"); @@ -996,7 +1543,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) ice::Function icsneoScriptLoad( lib, "icsneoScriptLoad"); Py_BEGIN_ALLOW_THREADS; - if (!icsneoScriptLoad(handle, data, data_size, location)) { + if (!icsneoScriptLoad(handle, data, static_cast(data_size), location)) { Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptLoad() Failed"); } @@ -1005,11 +1552,11 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_start(PyObject* self, PyObject* args) { + (void)self; int location; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &location)) { @@ -1039,11 +1586,11 @@ PyObject* meth_coremini_start(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_stop(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -1072,11 +1619,11 @@ PyObject* meth_coremini_stop(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_clear(PyObject* self, PyObject* args) { + (void)self; int location; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &location)) { @@ -1107,11 +1654,11 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -1142,11 +1689,11 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_transmit_messages(PyObject* self, PyObject* args) { + (void)self; PyObject* temp; bool created_tuple = false; PyObject* obj = NULL; @@ -1179,10 +1726,10 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) } ice::Function icsneoTxMessages(lib, "icsneoTxMessages"); const Py_ssize_t TUPLE_COUNT = PyTuple_Size(tuple); - icsSpyMessage** msgs = new icsSpyMessage*[TUPLE_COUNT](); + icsSpyMessage** msgs = new icsSpyMessage*[static_cast(TUPLE_COUNT)](); for (int i = 0; i < TUPLE_COUNT; ++i) { - spy_message_object* obj = (spy_message_object*)PyTuple_GetItem(tuple, i); - if (!obj) { + spy_message_object* _obj = (spy_message_object*)PyTuple_GetItem(tuple, static_cast(i)); + if (!_obj) { if (created_tuple) { Py_XDECREF(tuple); } @@ -1190,7 +1737,7 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "Tuple item must be of " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); } - msgs[i] = &(obj->msg); + msgs[i] = &(_obj->msg); } Py_BEGIN_ALLOW_THREADS; for (int i = 0; i < TUPLE_COUNT; ++i) { @@ -1202,13 +1749,6 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) delete[] msgs; return set_ics_exception(exception_runtime_error(), "icsneoTxMessages() Failed"); } - /* - if (msgs[i]->ExtraDataPtrEnabled && msgs[i]->ExtraDataPtr != NULL) { - delete msgs[i]->ExtraDataPtr; - msgs[i]->ExtraDataPtr = NULL; - msgs[i]->ExtraDataPtrEnabled = 0; - } - */ } Py_END_ALLOW_THREADS; if (created_tuple) { @@ -1219,12 +1759,11 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_messages(PyObject* self, PyObject* args) { - // Py_RETURN_NONE; + (void)self; double timeout = 0.1; int use_j1850 = 0; PyObject* obj = NULL; @@ -1275,29 +1814,29 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) Py_END_ALLOW_THREADS; PyObject* tuple = PyTuple_New(count); for (int i = 0; i < count; ++i) { - PyObject* obj = NULL; + PyObject* _obj = NULL; if (use_j1850) { - obj = PyObject_CallObject((PyObject*)&spy_message_j1850_object_type, NULL); + _obj = PyObject_CallObject((PyObject*)&spy_message_j1850_object_type, NULL); } else { - obj = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); + _obj = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); } - if (!obj) { + if (!_obj) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } if (use_j1850) { - spy_message_j1850_object* msg = (spy_message_j1850_object*)obj; + spy_message_j1850_object* msg = (spy_message_j1850_object*)_obj; memcpy(&msg->msg, &msgs[i].msg_j1850, sizeof(msgs[i].msg_j1850)); // Looks like icsneo40 does its own memory management so don't delete when we dealloc msg->noExtraDataPtrCleanup = true; } else { - spy_message_object* msg = (spy_message_object*)obj; + spy_message_object* msg = (spy_message_object*)_obj; memcpy(&msg->msg, &msgs[i].msg, sizeof(msgs[i].msg)); // Looks like icsneo40 does its own memory management so don't delete when we dealloc msg->noExtraDataPtrCleanup = true; } - PyTuple_SetItem(tuple, i, obj); + PyTuple_SetItem(tuple, i, _obj); } PyObject* result = Py_BuildValue("(O,i)", tuple, errors); // We have to decrement the ref counter here because BuildValue increases it and @@ -1308,11 +1847,11 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_script_status(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -1347,15 +1886,15 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) } PyObject* list_object = PyList_New(0); for (unsigned long i = 0; i < parameters_count; ++i) { - PyObject* obj = Py_BuildValue("i", parameters[i]); - PyList_Append(list_object, obj); + PyObject* _obj = Py_BuildValue("i", parameters[i]); + PyList_Append(list_object, _obj); } return list_object; } PyObject* meth_get_error_messages(PyObject* self, PyObject* args) { - // return PyList_New(0); + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -1414,9 +1953,9 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } +#ifdef _USE_INTERNAL_HEADER_ PyObject* msg_callback = NULL; static void message_callback(const char* message, bool success) { @@ -1433,9 +1972,9 @@ static void message_callback(const char* message, bool success) PyGILState_Release(state); } -#ifdef _USE_INTERNAL_HEADER_ PyObject* meth_flash_devices(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; PyObject* callback = NULL; PyObject* dict; @@ -1522,7 +2061,6 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } #endif // _USE_INTERNAL_HEADER_ @@ -1545,6 +2083,7 @@ static void message_reflash_callback(const wchar_t* message, unsigned long progr // void _stdcall icsneoSetReflashCallback( void(*OnReflashUpdate)(const wchar_t*,unsigned long) ) PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args) { + (void)self; PyObject* callback = NULL; if (!PyArg_ParseTuple(args, arg_parse("|O:", __FUNCTION__), &callback)) { return NULL; @@ -1579,11 +2118,11 @@ PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_device_settings(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; long device_type_override = -1; EPlasmaIonVnetChannel_t vnet_slot = (EPlasmaIonVnetChannel_t)PlasmaIonVnetChannelMain; @@ -1651,11 +2190,11 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) PyBuffer_Release(&settings_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_device_settings(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; PyObject* settings = NULL; int save_to_eeprom = 1; @@ -1700,11 +2239,11 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLoadDefaultSettings { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -1716,9 +2255,6 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { return NULL; } - int errors[600] = { 0 }; - int error_count = 600; - PyObject* list = PyList_New(0); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -1726,10 +2262,6 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); - void* handle = NULL; - if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { - return NULL; - } Py_BEGIN_ALLOW_THREADS; if (!icsneoLoadDefaultSettings(handle)) { Py_BLOCK_THREADS; @@ -1740,13 +2272,13 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_read_sdcard(PyObject* self, PyObject* args) // icsneoReadSDCard(int hObject,unsigned long iSectorIndex,unsigned char // *data, unsigned long *bytesRead) { + (void)self; PyObject* obj = NULL; unsigned long index = 0; unsigned long size = 0; @@ -1789,13 +2321,13 @@ PyObject* meth_read_sdcard(PyObject* self, } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_write_sdcard( PyObject* self, PyObject* args) // icsneoWriteSDCard(int hObject,unsigned long iSectorIndex,const unsigned char *data) { + (void)self; PyObject* obj = NULL; unsigned long index = 0; PyObject* ba_obj = NULL; @@ -1833,13 +2365,11 @@ PyObject* meth_write_sdcard( } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObject* keywords) { - // int PyArg_ParseTupleAndKeywords(PyObject *args, PyObject *kw, const char *format, char *keywords[], ...) - PyObject* obj = NULL; + (void)self; int relay1 = 0; int relay2 = 0; int relay3 = 0; @@ -1851,6 +2381,9 @@ PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObje int lsb = 0; int analog = 0; int relay_timeout = 0; +#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) + const +#endif char* kwords[] = { "Relay1", "Relay2", "Relay3", "Relay4", "Relay5", "LED5", "LED6", "MSB_report_rate", "LSB_report_rate", "analog_change_report_rate", "relay_timeout" }; @@ -1890,9 +2423,10 @@ PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObje PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &index)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -1919,14 +2453,14 @@ PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &index)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -1953,14 +2487,14 @@ PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &index)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -1989,14 +2523,14 @@ PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // ScriptReadAppSignal { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &index)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2025,15 +2559,15 @@ PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // Scrip } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // ScriptWriteAppSignal { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; double value = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oid:", __FUNCTION__), &obj, &index, &value)) { + if (!PyArg_ParseTuple(args, arg_parse("OId:", __FUNCTION__), &obj, &index, &value)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2061,15 +2595,15 @@ PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // Scri } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // ScriptReadTxMessage { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; int j1850 = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &index, &j1850)) { + if (!PyArg_ParseTuple(args, arg_parse("OI|b:", __FUNCTION__), &obj, &index, &j1850)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2103,7 +2637,7 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip } Py_END_ALLOW_THREADS; } else { - PyObject* msg = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); + msg = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); if (!msg) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); @@ -2120,15 +2654,15 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // ScriptReadRxMessage { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; int j1850 = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &index, &j1850)) { + if (!PyArg_ParseTuple(args, arg_parse("OI|b:", __FUNCTION__), &obj, &index, &j1850)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2173,13 +2707,13 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip } Py_END_ALLOW_THREADS; } else { - PyObject* msg = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); + msg = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); if (!msg) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } - PyObject* msg_mask = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); + msg_mask = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); if (!msg_mask) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); @@ -2197,16 +2731,16 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsneoScriptWriteTxMessage { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; PyObject* msg_obj = NULL; int j1850 = 0; - if (!PyArg_ParseTuple(args, arg_parse("OiO|b:", __FUNCTION__), &obj, &index, &msg_obj, &j1850)) { + if (!PyArg_ParseTuple(args, arg_parse("OIO|b:", __FUNCTION__), &obj, &index, &msg_obj, &j1850)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2217,7 +2751,6 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn return NULL; } void* msg = NULL; - void* msg_mask = NULL; if (j1850) { // We are going to use icsSpyMessageJ1850 objects here. if (!PySpyMessageJ1850_CheckExact(msg_obj)) { @@ -2251,17 +2784,17 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsneoScriptWriteRxMessage { - int index; + (void)self; + unsigned int index; PyObject* obj = NULL; PyObject* msg_obj = NULL; PyObject* msg_mask_obj = NULL; int j1850 = 0; - if (!PyArg_ParseTuple(args, arg_parse("OiOO|b:", __FUNCTION__), &obj, &index, &msg_obj, &msg_mask_obj, &j1850)) { + if (!PyArg_ParseTuple(args, arg_parse("OIOO|b:", __FUNCTION__), &obj, &index, &msg_obj, &msg_mask_obj, &j1850)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2315,11 +2848,11 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsn } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2373,11 +2906,11 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_validate_hobject(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2408,11 +2941,11 @@ PyObject* meth_validate_hobject(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2458,11 +2991,12 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_dll_version(PyObject* self, PyObject* args) { + (void)self; + (void)args; try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -2478,11 +3012,11 @@ PyObject* meth_get_dll_version(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_serial_number(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2512,11 +3046,11 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2553,11 +3087,11 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_base36enc(PyObject* self, PyObject* args) { + (void)self; unsigned long long value = 0; if (!PyArg_ParseTuple(args, arg_parse("K:", __FUNCTION__), &value)) { return NULL; @@ -2576,6 +3110,7 @@ PyObject* meth_base36enc(PyObject* self, PyObject* args) PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int timeout_ms = 0; unsigned int mode = 0; @@ -2608,11 +3143,11 @@ PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_context(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2650,11 +3185,11 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2683,11 +3218,11 @@ PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_firmware_update_required(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2716,11 +3251,11 @@ PyObject* meth_firmware_update_required(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -2756,11 +3291,11 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int enabled = 0; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { @@ -2791,11 +3326,11 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int enabled = 1; if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &enabled)) { @@ -2826,11 +3361,12 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); + } PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int enabled = 0; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { @@ -2860,16 +3396,15 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } // icsneoScriptLoadReadBin PyObject* meth_load_readbin(PyObject* self, PyObject* args) { + (void)self; PyObject* arg_data = NULL; int location; PyObject* obj = NULL; - bool isFileData = false; if (!PyArg_ParseTuple(args, arg_parse("OOi:", __FUNCTION__), &obj, &arg_data, &location)) { return NULL; } @@ -2904,7 +3439,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) fsize = ftell(f); rewind(f); data = (unsigned char*)malloc(sizeof(char) * fsize); - data_size = (int)fread(data, 1, fsize, f); + data_size = (int)fread(data, 1, static_cast(fsize), f); fclose(f); if (fsize != data_size) { return set_ics_exception(exception_runtime_error(), "Readbin file size mismatch"); @@ -2935,7 +3470,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) ice::Function icsneoScriptLoadReadBin( lib, "icsneoScriptLoadReadBin"); Py_BEGIN_ALLOW_THREADS; - if (!icsneoScriptLoadReadBin(handle, data, data_size, location)) { + if (!icsneoScriptLoadReadBin(handle, data, static_cast(data_size), location)) { Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptLoadReadBin() Failed"); } @@ -2944,12 +3479,12 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } // void* hObject, unsigned long ulNetworkID, stCM_ISO157652_TxMessage *pMsg, unsigned long ulBlockingTimeout) PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned long ulNetworkID = 0; PyObject* obj_tx_msg = NULL; @@ -2993,11 +3528,11 @@ PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; PyObject* obj_rx_msg = NULL; unsigned int iIndex = 0; @@ -3043,11 +3578,11 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) PyBuffer_Release(&obj_rx_msg_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned long networks = 0; if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &networks)) { @@ -3078,11 +3613,11 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -3111,11 +3646,11 @@ PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned long channel = 0; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { @@ -3146,11 +3681,11 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned long channel = 0; if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &channel)) { @@ -3181,11 +3716,11 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; int bitrate = 0; int net_id = 0; @@ -3216,11 +3751,11 @@ PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; int bitrate = 0; int net_id = 0; @@ -3251,11 +3786,11 @@ PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; int bitrate = 0; int net_id = 0; @@ -3287,11 +3822,11 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; PyObject* obj_msg = NULL; if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &obj_msg)) { @@ -3328,11 +3863,11 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_device_status(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; int throw_exception_on_size_mismatch = 0; if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &throw_exception_on_size_mismatch)) { @@ -3358,10 +3893,9 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) Py_buffer device_status_buffer = {}; PyObject_GetBuffer(device_status, &device_status_buffer, PyBUF_CONTIG); - size_t device_status_size = device_status_buffer.len; + size_t device_status_size = static_cast(device_status_buffer.len); ice::Function icsneoGetDeviceStatus(lib, "icsneoGetDeviceStatus"); - double timestamp = 0; Py_BEGIN_ALLOW_THREADS; if (!icsneoGetDeviceStatus(handle, (icsDeviceStatus*)device_status_buffer.buf, &device_status_size)) { Py_BLOCK_THREADS; @@ -3380,11 +3914,11 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_enable_network_com(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; bool enable = true; long net_id = -1; @@ -3425,11 +3959,11 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int enable = 1; unsigned int reserved = 0; @@ -3462,11 +3996,11 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int reserved = 0; if (!PyArg_ParseTuple(args, arg_parse("O|i:", __FUNCTION__), &obj, &reserved)) { @@ -3499,11 +4033,11 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; size_t fileSize = 0; EPlasmaIonVnetChannel_t channel = PlasmaIonVnetChannelMain; @@ -3517,7 +4051,8 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) return NULL; } // Resize the ByteArray - int ret_val = PyByteArray_Resize(ba, fileSize); + int ret_val = PyByteArray_Resize(ba, static_cast(fileSize)); + (void)ret_val; // TODO: Documentation doesn't say what return value is. if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3555,11 +4090,11 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; PyObject* bytes_obj = NULL; EPlasmaIonVnetChannel_t channel = PlasmaIonVnetChannelMain; @@ -3599,7 +4134,7 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS; // if (!icsneoWriteJupiterFirmware(handle, (char*)bytes_buffer.buf, bytes_buffer.len, channel)) { - if (!icsneoWriteJupiterFirmware(handle, bytes_str, bsize, channel)) { + if (!icsneoWriteJupiterFirmware(handle, bytes_str, static_cast(bsize), channel)) { Py_BLOCK_THREADS; Py_DECREF(bytes); // PyBuffer_Release(&bytes_buffer); @@ -3612,11 +4147,11 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; PyObject* parms = NULL; bool check_success = true; @@ -3724,6 +4259,7 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; char accessory_indx = 0; bool check_success = true; @@ -3826,6 +4362,7 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; bool enable = true; if (!PyArg_ParseTuple(args, arg_parse("Ob:", __FUNCTION__), &obj, &enable)) { @@ -3849,8 +4386,6 @@ PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) // int _stdcall icsneoSetSafeBootMode(void* hObject, const uint8_t enable) ice::Function icsneoSetSafeBootMode(lib, "icsneoSetSafeBootMode"); - unsigned int accessory_version = 0; - int function_error = 0; Py_BEGIN_ALLOW_THREADS; if (!icsneoSetSafeBootMode(handle, enable)) { Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoSetSafeBootMode() Failed"); @@ -3864,6 +4399,7 @@ PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) PyObject* meth_override_library_name(PyObject* self, PyObject* args) { + (void)self; const char* name = NULL; if (!PyArg_ParseTuple(args, arg_parse("s:", __FUNCTION__), &name)) { return NULL; @@ -3882,11 +4418,11 @@ PyObject* meth_override_library_name(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_library_path(PyObject* self) { + (void)self; try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3900,11 +4436,11 @@ PyObject* meth_get_library_path(PyObject* self) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_disk_details(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -3944,11 +4480,11 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_disk_format(PyObject* self, PyObject* args) { + (void)self; PyObject* details = NULL; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &details)) { @@ -3983,11 +4519,11 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -4017,11 +4553,11 @@ PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -4062,11 +4598,11 @@ PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; bool enable = false; if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &enable)) { @@ -4096,14 +4632,13 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int feature = 0; - bool enable = false; if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &feature)) { return NULL; } @@ -4133,11 +4668,11 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -4168,11 +4703,11 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_set_led_property(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int led = 0; unsigned int prop = 0; @@ -4205,11 +4740,11 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int NetworkID = 0; const char* pDeviceIPAddress = NULL; @@ -4281,11 +4816,11 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned int NetworkID = 0; if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &NetworkID)) { @@ -4315,11 +4850,11 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; EwBMSManagerPort_t manager = eManagerPortA; EwBMSManagerLockState_t lock_state = eLockManager; @@ -4351,11 +4886,11 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; EwBMSManagerPort_t manager = eManagerPortA; if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &manager)) { @@ -4386,11 +4921,11 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_uart_write(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; EUartPort_t port = eUART0; Py_buffer data = {}; @@ -4420,7 +4955,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); Py_BEGIN_ALLOW_THREADS; - if (!icsneoUartWrite(handle, port, data.buf, data.len, &bytesActuallySent, &flags)) { + if (!icsneoUartWrite(handle, port, data.buf, static_cast(data.len), &bytesActuallySent, &flags)) { Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); } @@ -4433,11 +4968,11 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_uart_read(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; EUartPort_t port = eUART0; unsigned int bytesToRead = 256; @@ -4462,8 +4997,8 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) if (!lib) { free(buffer); buffer = NULL; - char buffer[512]; - return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + char _buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(_buffer)); } size_t bytesActuallyRead = 0; // int _stdcall icsneoUartRead(void* hObject, const EUartPort_t uart, void* bData, const size_t bytesToRead, @@ -4478,7 +5013,7 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); } Py_END_ALLOW_THREADS; - PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, bytesActuallyRead); + PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, static_cast(bytesActuallyRead)); // PyObject* value = Py_BuildValue("O", ba_result); free(buffer); buffer = NULL; @@ -4488,11 +5023,11 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) buffer = NULL; return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; EUartPort_t port = eUART0; unsigned int baudrate = 0; @@ -4527,11 +5062,11 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; EUartPort_t port = eUART0; if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &port)) { @@ -4566,11 +5101,11 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned char apiIndex = 0; unsigned char instanceIndex = 0; @@ -4624,11 +5159,11 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned char apiIndex = 0; unsigned char instanceIndex = 0; @@ -4653,8 +5188,8 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) if (!lib) { free(buffer); buffer = NULL; - char buffer[512]; - return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + char _buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(_buffer)); } /* int _stdcall icsneoGenericAPIReadData(void* hObject, @@ -4687,11 +5222,11 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) buffer = NULL; return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; unsigned char apiIndex = 0; unsigned char instanceIndex = 0; @@ -4740,11 +5275,11 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -4792,12 +5327,12 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) PyBuffer_Release(&status_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } // int _stdcall icsneoGetAllChipVersions(void* hObject, stChipVersions* pInfo, int ipInfoSize) PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) { + (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; @@ -4848,5 +5383,4 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) PyBuffer_Release(&py_struct_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception(exception_runtime_error(), "This is a bug!"); } diff --git a/src/object_spy_message.cpp b/src/object_spy_message.cpp index df556b913..da82097b9 100644 --- a/src/object_spy_message.cpp +++ b/src/object_spy_message.cpp @@ -1,5 +1,385 @@ #include "object_spy_message.h" +static int spy_message_object_alloc(spy_message_object* self, PyObject* args, PyObject* kwds) +{ + (void)args; + (void)kwds; + memset(&self->msg, 0, sizeof(self->msg)); + self->noExtraDataPtrCleanup = false; + return 0; +} + +static void spy_message_object_dealloc(spy_message_object* self) +{ + if ((!self->noExtraDataPtrCleanup && self->msg.ExtraDataPtrEnabled && self->msg.ExtraDataPtr != NULL) || + (!self->noExtraDataPtrCleanup && self->msg.Protocol == SPY_PROTOCOL_ETHERNET && + self->msg.ExtraDataPtr != NULL)) { + // Clean up the ExtraDataPtr if we can + // Ethernet protocol uses the ExtraDataPtrEnabled reversed internally so do a double check here + delete[] (unsigned char*)self->msg.ExtraDataPtr; + self->msg.ExtraDataPtr = NULL; + self->msg.ExtraDataPtrEnabled = 0; + } + Py_TYPE(self)->tp_free((PyObject*)self); +} + +static PyObject* spy_message_object_getattr(PyObject* o, PyObject* attr_name) +{ +#if PY_MAJOR_VERSION >= 3 + if (!PyUnicode_Check(attr_name)) { +#else + if (!PyString_Check(attr_name)) { +#endif + PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", attr_name->ob_type->tp_name); + return NULL; + } else { + Py_INCREF(attr_name); + } + if (PyUnicode_CompareWithASCIIString(attr_name, "Data") == 0) { + Py_DECREF(attr_name); + spy_message_object* obj = (spy_message_object*)o; + PyObject* temp = Py_BuildValue("(i,i,i,i,i,i,i,i)", + obj->msg.Data[0], + obj->msg.Data[1], + obj->msg.Data[2], + obj->msg.Data[3], + obj->msg.Data[4], + obj->msg.Data[5], + obj->msg.Data[6], + obj->msg.Data[7]); + PyObject* data = PyTuple_GetSlice(temp, 0, obj->msg.NumberBytesData); + Py_DECREF(temp); + return data; + } else if (PyUnicode_CompareWithASCIIString(attr_name, "AckBytes") == 0) { + Py_DECREF(attr_name); + spy_message_object* obj = (spy_message_object*)o; + return Py_BuildValue("(i,i,i,i,i,i,i,i)", + obj->msg.AckBytes[0], + obj->msg.AckBytes[1], + obj->msg.AckBytes[2], + obj->msg.AckBytes[3], + obj->msg.AckBytes[4], + obj->msg.AckBytes[5], + obj->msg.AckBytes[6], + obj->msg.AckBytes[7]); + } else if (PyUnicode_CompareWithASCIIString(attr_name, "Header") == 0) { + Py_DECREF(attr_name); + spy_message_j1850_object* obj = (spy_message_j1850_object*)o; + PyObject* temp = + Py_BuildValue("(i,i,i,i)", obj->msg.Header[0], obj->msg.Header[1], obj->msg.Header[2], obj->msg.Header[3]); + PyObject* data = PyTuple_GetSlice(temp, 0, obj->msg.NumberBytesHeader); + Py_DECREF(temp); + return data; + } else if (PyUnicode_CompareWithASCIIString(attr_name, "ExtraDataPtr") == 0) { + Py_DECREF(attr_name); + spy_message_j1850_object* obj = (spy_message_j1850_object*)o; + unsigned char* ExtraDataPtr = (unsigned char*)obj->msg.ExtraDataPtr; + bool extra_data_ptr_enabled = obj->msg.ExtraDataPtrEnabled != 0; + // Ethernet protocol uses the ExtraDataPtrEnabled reversed internally + if ((obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || + obj->msg.Protocol == SPY_PROTOCOL_SPI || + obj->msg.Protocol == SPY_PROTOCOL_WBMS) + && obj->msg.ExtraDataPtr != NULL) { + extra_data_ptr_enabled = true; + } + int actual_size = 0; + // Some newer protocols are packing the length into NumberBytesHeader also so lets handle it here... + if (obj->msg.Protocol == SPY_PROTOCOL_A2B || obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || + obj->msg.Protocol == SPY_PROTOCOL_SPI || obj->msg.Protocol == SPY_PROTOCOL_WBMS) { + actual_size = (obj->msg.NumberBytesHeader << 8) | obj->msg.NumberBytesData; + } else { + actual_size = obj->msg.NumberBytesData; + } + if (extra_data_ptr_enabled && actual_size && obj->msg.ExtraDataPtr) { + PyObject* tuple = PyTuple_New(actual_size); + for (int i = 0; i < actual_size; ++i) { + PyTuple_SET_ITEM(tuple, i, PyLong_FromLong(ExtraDataPtr[i])); + } + return tuple; + } else { + return Py_None; + } + } else { + return PyObject_GenericGetAttr(o, attr_name); + } +} + +static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* value) +{ + spy_message_object* obj = (spy_message_object*)o; + if (PyUnicode_CompareWithASCIIString(name, "Data") == 0) { + // Make sure we are a tuple and len() == 8 + if (!PyTuple_Check(value)) { + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%.400s' needs to be a tuple", + MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, + name); + return -1; + } + // Get tuple items and place them in array, set as 0 if error. + for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { + PyObject* data = PyTuple_GetItem(value, i); + if (!data && !PyLong_Check(data)) { + obj->msg.Data[i] = 0; + } else { + obj->msg.Data[i] = (unsigned char)PyLong_AsLong(data); + } + } + obj->msg.NumberBytesData = static_cast(PyObject_Length(value)); + return 0; + } else if (PyUnicode_CompareWithASCIIString(name, "AckBytes") == 0) { + // Make sure we are a tuple and len() == 8 + if (!PyTuple_Check(value)) { + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%.400s' needs to be a tuple", + MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, + name); + return -1; + } + // Get tuple items and place them in array, set as 0 if error. + for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { + PyObject* data = PyTuple_GetItem(value, i); + if (!data && !PyLong_Check(data)) { + obj->msg.AckBytes[i] = 0; + } else { + obj->msg.AckBytes[i] = (unsigned char)PyLong_AsLong(data); + } + } + return 0; + } else if (PyUnicode_CompareWithASCIIString(name, "Header") == 0) { + // Make sure we are a tuple and len() == 8 + if (!PyTuple_Check(value)) { + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%.400s' needs to be a tuple", + MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, + name); + return -1; + } + // Get tuple items and place them in array, set as 0 if error. + for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { + PyObject* data = PyTuple_GetItem(value, i); + if (!data && !PyLong_Check(data)) { + ((spy_message_j1850_object*)obj)->msg.Header[i] = 0; + } else { + ((spy_message_j1850_object*)obj)->msg.Header[i] = (unsigned char)PyLong_AsLong(data); + } + obj->msg.NumberBytesHeader = static_cast(PyObject_Length(value)); + } + return 0; + } else if (PyUnicode_CompareWithASCIIString(name, "Protocol") == 0) { + // Ethernet behavior is backward to CAN and will crash if enabled. + if (PyLong_AsLong(value) == SPY_PROTOCOL_ETHERNET) + obj->msg.ExtraDataPtrEnabled = 0; + return PyObject_GenericSetAttr(o, name, value); + } else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtr") == 0) { + // Make sure we are a tuple and len() == 8 + if (!PyTuple_Check(value)) { + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%.400s' needs to be a tuple", + MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, + name); + return -1; + } + // Get tuple items and place them in array, set as 0 if error. + size_t length = static_cast(PyObject_Length(value)); + if (obj->msg.ExtraDataPtr != NULL) + delete[] (unsigned char*)obj->msg.ExtraDataPtr; + obj->msg.ExtraDataPtr = new unsigned char[length]; + // Some newer protocols are packing the length into NumberBytesHeader also so lets handle it here... + if (obj->msg.Protocol == SPY_PROTOCOL_A2B || obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || + obj->msg.Protocol == SPY_PROTOCOL_SPI || obj->msg.Protocol == SPY_PROTOCOL_WBMS) { + obj->msg.NumberBytesHeader = static_cast(length >> 8); + } + obj->msg.NumberBytesData = length & 0xFF; + if (obj->msg.Protocol != SPY_PROTOCOL_ETHERNET) + obj->msg.ExtraDataPtrEnabled = 1; + unsigned char* ExtraDataPtr = (unsigned char*)(obj->msg.ExtraDataPtr); + for (size_t i = 0; i < length; ++i) { + PyObject* data = PyTuple_GetItem(value, static_cast(i)); + if (!data && !PyLong_Check(data)) { + ExtraDataPtr[i] = (unsigned char)0; + } else { + ExtraDataPtr[i] = (unsigned char)PyLong_AsLong(data); + } + } + return 0; + } else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtrEnabled") == 0) { + // Make sure we clean up here so we don't memory leak + if ((!obj->noExtraDataPtrCleanup && PyLong_AsLong(value) != 1 && obj->msg.ExtraDataPtrEnabled == 1) || + (!obj->noExtraDataPtrCleanup && PyLong_AsLong(value) != 1 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET)) { + if (obj->msg.ExtraDataPtr != NULL) + delete[] (unsigned char*)obj->msg.ExtraDataPtr; + } else if (PyLong_AsLong(value) != 0 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET) { + // Ethernet always needs to be set to 0 + return 0; + } + return PyObject_GenericSetAttr(o, name, value); + } else { + return PyObject_GenericSetAttr(o, name, value); + } +} + +static PyMemberDef spy_message_object_members[] = { + { "StatusBitField", T_UINT, offsetof(spy_message_object, msg.StatusBitField), 0, "StatusBitField" }, + { "StatusBitField2", T_UINT, offsetof(spy_message_object, msg.StatusBitField2), 0, "StatusBitField2" }, + { "TimeHardware", + T_UINT, + offsetof(spy_message_object, msg.TimeHardware), + 0, + "Hardware time stamp. The TimeStamp is reset on device open" }, + { "TimeHardware2", + T_UINT, + offsetof(spy_message_object, msg.TimeHardware2), + 0, + "Hardware time stamp. The TimeStamp is reset on device open" }, + { "TimeSystem", + T_UINT, + offsetof(spy_message_object, msg.TimeSystem), + 0, + "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, + { "TimeSystem2", + T_UINT, + offsetof(spy_message_object, msg.TimeSystem2), + 0, + "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, + { "TimeStampHardwareID", + T_UBYTE, + offsetof(spy_message_object, msg.TimeStampHardwareID), + 0, + "This is an identifier of what type of hardware timestamp is used. Since neoVI's timestamp is always the same, " + "this doesn't change." }, + { "TimeStampSystemID", + T_UBYTE, + offsetof(spy_message_object, msg.TimeStampSystemID), + 0, + "This is an identifier of what type of system timestamp is used. Since WIN32 neoVI's timestamp is always the " + "same, " + "from the timeGetTime API, this doesn't change." }, + { "NetworkID", + T_UBYTE, + offsetof(spy_message_object, msg.NetworkID), + 0, + "This value is used to identify which network this message was received on." }, + { "NodeID", T_UBYTE, offsetof(spy_message_object, msg.NodeID), 0, "Not Used" }, + { "Protocol", + T_UBYTE, + offsetof(spy_message_object, msg.Protocol), + 0, + "Valid values are SPY_PROTOCOL_CAN, SPY_PROTOCOL_J1850VPW, and SPY_PROTOCOL_ISO9141." }, + { "MessagePieceID", T_UBYTE, offsetof(spy_message_object, msg.MessagePieceID), 0, "Not Used" }, + { "ExtraDataPtrEnabled", T_UBYTE, offsetof(spy_message_object, msg.ExtraDataPtrEnabled), 0, "" }, + { "NumberBytesHeader", + T_UBYTE, + offsetof(spy_message_object, msg.NumberBytesHeader), + 0, + " Used for J1850/ISO messages. It indicates how many bytes are stored in the Header(1 to 4) array." }, + { "NumberBytesData", + T_UBYTE, + offsetof(spy_message_object, msg.NumberBytesData), + 0, + "Holds the number of bytes in the Data(1 to 8) array or the number of bytes in a CAN remote frame (The DLC)." }, + { "NetworkID2", + T_UBYTE, + offsetof(spy_message_object, msg.NetworkID2), + 0, + "This value is used to identify which network this message was received on." }, + { "DescriptionID", T_SHORT, offsetof(spy_message_object, msg.DescriptionID), 0, "Not Used" }, + { "ArbIDOrHeader", T_UINT, offsetof(spy_message_object, msg.ArbIDOrHeader), 0, "" }, + { "Data", T_OBJECT_EX, 0, 0, "" }, + { "StatusBitField3", T_UINT, offsetof(spy_message_object, msg.StatusBitField3), 0, "StatusBitField3" }, + { "StatusBitField4", T_UINT, offsetof(spy_message_object, msg.StatusBitField4), 0, "StatusBitField4" }, + { "AckBytes", T_OBJECT_EX, 0, 0, "" }, + { "ExtraDataPtr", T_OBJECT_EX, offsetof(spy_message_object, msg.ExtraDataPtr), 0, "" }, + { "MiscData", T_UBYTE, offsetof(spy_message_object, msg.MiscData), 0, "" }, + { "noExtraDataPtrCleanup", + T_BOOL, + offsetof(spy_message_object, noExtraDataPtrCleanup), + 0, + "Tells Python to not clean up ExtraDataPtrMemory, If this is enabled. Ignore, if unsure." }, + { NULL, 0, 0, 0, NULL }, +}; + +static PyMemberDef spy_message_j1850_object_members[] = { + { "StatusBitField", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField), 0, "StatusBitField" }, + { "StatusBitField2", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField2), 0, "StatusBitField2" }, + { "TimeHardware", + T_UINT, + offsetof(spy_message_j1850_object, msg.TimeHardware), + 0, + "Hardware time stamp. The TimeStamp is reset on device open" }, + { "TimeHardware2", + T_UINT, + offsetof(spy_message_j1850_object, msg.TimeHardware2), + 0, + "Hardware time stamp. The TimeStamp is reset on device open" }, + { "TimeSystem", + T_UINT, + offsetof(spy_message_j1850_object, msg.TimeSystem), + 0, + "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, + { "TimeSystem2", + T_UINT, + offsetof(spy_message_j1850_object, msg.TimeSystem2), + 0, + "TimeSystem is loaded with the value received from the timeGetTime call in the WIN32 multimedia API." }, + { "TimeStampHardwareID", + T_UBYTE, + offsetof(spy_message_j1850_object, msg.TimeStampHardwareID), + 0, + "This is an identifier of what type of hardware timestamp is used. Since neoVI's timestamp is always the same, " + "this doesn't change." }, + { "TimeStampSystemID", + T_UBYTE, + offsetof(spy_message_j1850_object, msg.TimeStampSystemID), + 0, + "This is an identifier of what type of system timestamp is used. Since WIN32 neoVI's timestamp is always the " + "same, " + "from the timeGetTime API, this doesn't change." }, + { "NetworkID", + T_UBYTE, + offsetof(spy_message_j1850_object, msg.NetworkID), + 0, + "This value is used to identify which network this message was received on." }, + { "NodeID", T_UBYTE, offsetof(spy_message_j1850_object, msg.NodeID), 0, "Not Used" }, + { "Protocol", + T_UBYTE, + offsetof(spy_message_j1850_object, msg.Protocol), + 0, + "Valid values are SPY_PROTOCOL_CAN, SPY_PROTOCOL_J1850VPW, and SPY_PROTOCOL_ISO9141." }, + { "MessagePieceID", T_UBYTE, offsetof(spy_message_j1850_object, msg.MessagePieceID), 0, "Not Used" }, + { "ExtraDataPtrEnabled", T_UBYTE, offsetof(spy_message_j1850_object, msg.ExtraDataPtrEnabled), 0, "" }, + { "NumberBytesHeader", + T_UBYTE, + offsetof(spy_message_j1850_object, msg.NumberBytesHeader), + 0, + " Used for J1850/ISO messages. It indicates how many bytes are stored in the Header(1 to 4) array." }, + { "NumberBytesData", + T_UBYTE, + offsetof(spy_message_j1850_object, msg.NumberBytesData), + 0, + "Holds the number of bytes in the Data(1 to 8) array or the number of bytes in a CAN remote frame (The DLC)." }, + { "NetworkID2", + T_UBYTE, + offsetof(spy_message_object, msg.NetworkID2), + 0, + "This value is used to identify which network this message was received on." }, + { "DescriptionID", T_SHORT, offsetof(spy_message_j1850_object, msg.DescriptionID), 0, "Not Used" }, + { "Header", T_OBJECT_EX, 0, 0, "" }, + { "Data", T_OBJECT_EX, 0, 0, "" }, + { "StatusBitField3", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField3), 0, "StatusBitField3" }, + { "StatusBitField4", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField4), 0, "StatusBitField4" }, + { "AckBytes", T_OBJECT_EX, 0, 0, "" }, + { "ExtraDataPtr", T_OBJECT_EX, offsetof(spy_message_j1850_object, msg.ExtraDataPtr), 0, "" }, + { "MiscData", T_UBYTE, offsetof(spy_message_j1850_object, msg.MiscData), 0, "" }, + { "noExtraDataPtrCleanup", + T_BOOL, + offsetof(spy_message_object, noExtraDataPtrCleanup), + 0, + "Tells Python to not clean up ExtraDataPtrMemory, If this is enabled. Ignore, if unsure." }, + { NULL, 0, 0, 0, NULL }, +}; + + PyTypeObject spy_message_object_type = { PyVarObject_HEAD_INIT(NULL, 0) MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, /* tp_name */ sizeof(spy_message_object), /* tp_basicsize */ diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 4c6e42b44..3c67428d6 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -6,7 +6,9 @@ #include "setup_module_auto_defines.h" #include +#pragma warning(push, 0) #include "ics/icsnVC40.h" +#pragma warning(pop) int setup_module_auto_defines(PyObject * module) { @@ -137,6 +139,16 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NETID_SPI4); result += PyModule_AddIntMacro(module, NETID_SPI5); result += PyModule_AddIntMacro(module, NETID_SPI6); + result += PyModule_AddIntMacro(module, NETID_SPI7); + result += PyModule_AddIntMacro(module, NETID_SPI8); + result += PyModule_AddIntMacro(module, NETID_LIN_09); + result += PyModule_AddIntMacro(module, NETID_LIN_10); + result += PyModule_AddIntMacro(module, NETID_LIN_11); + result += PyModule_AddIntMacro(module, NETID_LIN_12); + result += PyModule_AddIntMacro(module, NETID_LIN_13); + result += PyModule_AddIntMacro(module, NETID_LIN_14); + result += PyModule_AddIntMacro(module, NETID_LIN_15); + result += PyModule_AddIntMacro(module, NETID_LIN_16); result += PyModule_AddIntMacro(module, NETID_MAX); result += PyModule_AddIntMacro(module, NETID_INVALID); result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); @@ -175,8 +187,10 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON3); result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET); result += PyModule_AddIntMacro(module, NEODEVICE_FIRE3_FLEXRAY); - result += PyModule_AddIntMacro(module, NEODEVICE_RED2_OEM); + result += PyModule_AddIntMacro(module, NEODEVICE_NEOVI_CONNECT); result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET3); + result += PyModule_AddIntMacro(module, NEODEVICE_RADMOONT1S); + result += PyModule_AddIntMacro(module, NEODEVICE_GIGASTAR2); result += PyModule_AddIntMacro(module, NEODEVICE_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -196,7 +210,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NEODEVICE_VCAN42); result += PyModule_AddIntMacro(module, NEODEVICE_CMPROBE); result += PyModule_AddIntMacro(module, NEODEVICE_EEVB); - result += PyModule_AddIntMacro(module, NEODEVICE_VCANRF); + result += PyModule_AddIntMacro(module, NEODEVICE_DONT_REUSE4); result += PyModule_AddIntMacro(module, NEODEVICE_FIRE2); result += PyModule_AddIntMacro(module, NEODEVICE_FLEX); result += PyModule_AddIntMacro(module, NEODEVICE_RADGALAXY); @@ -539,7 +553,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, OP_ETH_GENERAL_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, RAD_GPTP_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, RAD_GPTP_AND_TAP_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, HW_ETH_SETTINGS_SIZE); // enum result += PyModule_AddIntMacro(module, OPETH_LINK_AUTO); result += PyModule_AddIntMacro(module, OPETH_LINK_MASTER); @@ -567,6 +580,10 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT); // enum result += PyModule_AddIntMacro(module, SFP_ID_UNKNOWN); result += PyModule_AddIntMacro(module, SFP_ID_FINISAR_FCLF8522P2BTL); @@ -592,6 +609,11 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PKT_CHECK); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PKT_GEN); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE); result += PyModule_AddIntMacro(module, ETHERNET10G_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_SIZE); @@ -600,7 +622,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_EXT_SIZE); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_EXT_FLAG_ENABLE_MULTI_ID); // enum result += PyModule_AddIntMacro(module, MACSEC_PACKET_NO_VLAN_OR_MPLS); result += PyModule_AddIntMacro(module, MACSEC_PACKET_SINGLE_VLAN); @@ -873,7 +894,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SCyanSettings_SIZE); result += PyModule_AddIntMacro(module, SVCAN3Settings_SIZE); result += PyModule_AddIntMacro(module, SVCAN4Settings_SIZE); - result += PyModule_AddIntMacro(module, SVCANRFSettings_SIZE); result += PyModule_AddIntMacro(module, SECUSettings_SIZE); result += PyModule_AddIntMacro(module, SPendantSettings_SIZE); result += PyModule_AddIntMacro(module, SIEVBSettings_SIZE); @@ -1022,6 +1042,9 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); result += PyModule_AddIntMacro(module, SRADCometSettings_SIZE); result += PyModule_AddIntMacro(module, SRADComet3Settings_SIZE); + result += PyModule_AddIntMacro(module, SRADGigastar2Settings_SIZE); + result += PyModule_AddIntMacro(module, SRADMoonT1SSettings_SIZE); + result += PyModule_AddIntMacro(module, SNeoVIConnectSettings_SIZE); result += PyModule_AddIntMacro(module, GS_VERSION); result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, NEOVI_3G_MAX_SETTINGS_SIZE); @@ -1040,7 +1063,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, DeviceRADMoon2SettingsType); result += PyModule_AddIntMacro(module, DeviceRADPlutoSettingsType); result += PyModule_AddIntMacro(module, DeviceRADGigalogSettingsType); - result += PyModule_AddIntMacro(module, DeviceVCANRFSettingsType); + result += PyModule_AddIntMacro(module, DeviceDeprecatedType); result += PyModule_AddIntMacro(module, DeviceEEVBSettingsType); result += PyModule_AddIntMacro(module, DeviceVCAN4IndSettingsType); result += PyModule_AddIntMacro(module, DeviceNeoECU12SettingsType); @@ -1065,9 +1088,11 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, DeviceFire3SettingsType); result += PyModule_AddIntMacro(module, DeviceFire3FlexraySettingsType); result += PyModule_AddIntMacro(module, DeviceRADCometSettingsType); - result += PyModule_AddIntMacro(module, DeviceRed2OemSettingsType); + result += PyModule_AddIntMacro(module, DeviceNeoVIConnectSettingsType); result += PyModule_AddIntMacro(module, DeviceRADComet3SettingsType); result += PyModule_AddIntMacro(module, DeviceRADGalaxy2SettingsType); + result += PyModule_AddIntMacro(module, DeviceRADGigastar2SettingsType); + result += PyModule_AddIntMacro(module, DeviceRADMoonT1SSettingsType); result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); result += PyModule_AddIntMacro(module, DeviceSettingsNone); // end of enum - } EDeviceSettingsType; From f14367f17470254de05bdb434425c855c0d1b29d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 17 Mar 2025 10:41:26 -0400 Subject: [PATCH 07/38] update libicsneo --- build_libicsneo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 50eb4b26e..a94ed6bc8 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -14,7 +14,7 @@ LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" -LIBICSNEO_VERSION = "02b5daf" +LIBICSNEO_VERSION = "1ba3ede" LIBICSNEO_ROOT = f"{ROOT}/libicsneo/{LIBICSNEO_VERSION}" LIBICSNEO_SOURCE = f"{LIBICSNEO_ROOT}/source" LIBICSNEO_BUILD = f"{LIBICSNEO_ROOT}/build" From 33f5f5db08e0f16b0535f1607404975ba854cc10 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 25 Mar 2025 14:28:10 -0400 Subject: [PATCH 08/38] Add support for uv --- .vscode/extensions.json | 4 +++- pyproject.toml | 25 +++++++++++++++++++++++-- uv.lock | 7 +++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 uv.lock diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 914f72365..b37d86dc5 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,6 +4,8 @@ "charliermarsh.ruff", "mikoz.black-py", "xaver.clang-format", - "webfreak.debug" + "webfreak.debug", + "tamasfe.even-better-toml", + "fill-labs.dependi" ] } \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 768f68c58..9b3631029 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ maintainers = [ description = "Python wrapper for interfacing to IntrepidCS Hardware." keywords = ["intrepidcs", "CAN", "Ethernet", "Automotive", "ICS"] readme = {file = "README.md", content-type = "text/markdown"} -requires-python = ">=3.8" +requires-python = ">=3.9" classifiers=[ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", @@ -19,7 +19,6 @@ classifiers=[ "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -41,7 +40,29 @@ requires = [ "setuptools", "wheel", "dunamai", + "hatchling", + "uv-dynamic-versioning" ] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.version] +source = "uv-dynamic-versioning" + +[tool.hatch.build.hooks.version] +path = "gen/_version.py" +template = ''' +version = "{version}" +''' + +[tool.uv-dynamic-versioning] +metadata = false # I couldn't get pypi to upload with this enabled. +strict = true +style = "pep440" +dirty = true + [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" skip = "cp36-* cp37-* pp* *-manylinux_i686 *-musllinux_*" diff --git a/uv.lock b/uv.lock new file mode 100644 index 000000000..bdcce60bc --- /dev/null +++ b/uv.lock @@ -0,0 +1,7 @@ +version = 1 +revision = 1 +requires-python = ">=3.9" + +[[package]] +name = "python-ics" +source = { editable = "." } From 650d5514e8f1272baba211e21b91bb8c8fe929cb Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 25 Mar 2025 14:33:39 -0400 Subject: [PATCH 09/38] remove auto generated files and update to 919.16 --- icsnVC40.h.enums.json | 4835 ------ icsnVC40.h.json | 26387 ------------------------------ icsnVC40_processed.h | 6249 ------- icsnVC40_processed.h.enums.json | 1 - icsnVC40_processed.h.json | 0 include/ics/icsnVC40.h | 84 +- 6 files changed, 68 insertions(+), 37488 deletions(-) delete mode 100644 icsnVC40.h.enums.json delete mode 100644 icsnVC40.h.json delete mode 100644 icsnVC40_processed.h delete mode 100644 icsnVC40_processed.h.enums.json delete mode 100644 icsnVC40_processed.h.json diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json deleted file mode 100644 index a0097ade4..000000000 --- a/icsnVC40.h.enums.json +++ /dev/null @@ -1,4835 +0,0 @@ -[ - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "AUTO", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "USE_TQ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "BPS20", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS33", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS50", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS62", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS83", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS100", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS125", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS250", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS500", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS800", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS1000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS666", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS2000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS4000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CAN_BPS5000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CAN_BPS6667", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CAN_BPS8000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CAN_BPS10000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "NORMAL ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "DISABLE ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "LOOPBACK ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "LISTEN_ONLY ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - }, - { - "name": "LISTEN_ALL ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 7 - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "NO_CANFD", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CANFD_ENABLED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CANFD_BRS_ENABLED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CANFD_ENABLED_ISO", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CANFD_BRS_ENABLED_ISO", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SWCAN_AUTOSWITCH_DISABLED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SWCAN_AUTOSWITCH_NO_RESISTOR", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SWCAN_AUTOSWITCH_WITH_RESISTOR", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "BPS5000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS10400", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS33333", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS50000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS62500", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS71429", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS83333", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS100000", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BPS117647", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "RESISTOR_ON", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "RESISTOR_OFF", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SLEEP_MODE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SLOW_MODE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NORMAL_MODE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FAST_MODE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "OPETH_FUNC_TAP ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "OPETH_FUNC_MEDIACONVERTER", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "OPETH_FUNC_TAP_LOW_LATENCY", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "OPETH_FUNC_RAW_MEDIA_CONVERTER", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "OPETH_FUNC_RAW_MEDIA_CONVERTER2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_opEthLinkMode", - "opEthLinkMode" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "OPETH_LINK_AUTO ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "OPETH_LINK_MASTER", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "OPETH_LINK_SLAVE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "OPETH_MAC_SPOOF_DST_ADDR ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "OPETH_MAC_SPOOF_SRC_ADDR ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - } - ] - }, - { - "names": [ - "SfpId" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "SFP_ID_UNKNOWN ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SFP_ID_FINISAR_FCLF8522P2BTL", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SFP_ID_FS_GB_GE_T", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SFP_ID_ICS_MV2112A2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SFP_ID_ICS_MV2221MB1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SFP_ID_ICS_MV3244", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SFP_ID_MAX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "MACSEC_PACKET_TYPE" - ], - "data_type": "Enum", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "MACSEC_PACKET_NO_VLAN_OR_MPLS ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "MACSEC_PACKET_SINGLE_VLAN ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "MACSEC_PACKET_DUAL_VLAN ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "MACSEC_PACKET_MPLS ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - }, - { - "name": "MACSEC_PACKET_SINGLE_VLAN_FOLLOW_BY_MPLS ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 4 - }, - { - "name": "MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 5 - }, - { - "name": "MACSEC_PACKET_UNSUPPORTED_TYPE ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 6 - } - ] - }, - { - "names": [ - "MACSEC_VALIDATEFRAME" - ], - "data_type": "Enum", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "MACSEC_VF_DISABLED ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "MACSEC_VF_CHECK ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "MACSEC_VF_STRICT ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "MACSEC_VF_NA ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - } - ] - }, - { - "names": [ - "MACSEC_STRIP_SECTAG_ICV" - ], - "data_type": "Enum", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "MACSEC_SECTAG_ICV_BOTH_STRIP ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "MACSEC_SECTAG_ICV_RESERVED ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "MACSEC_SECTAG_ICV_STRIP_ICV_ONLY ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "MACSEC_SECTAG_ICV_NO_STRIP ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - } - ] - }, - { - "names": [ - "MACSEC_CIPHER_SUITE" - ], - "data_type": "Enum", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "MACSEC_CIPHER_GCM_AES_128 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "MACSEC_CIPHER_GCM_AES_256 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "MACSEC_CIPHER_GCM_AES_128_XPN ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "MACSEC_CIPHER_GCM_AES_256_XPN ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - } - ] - }, - { - "names": [ - "_EDiskFormat", - "EDiskFormat" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "DiskFormatUnknown ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "DiskFormatFAT32", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DiskFormatexFAT", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_EDiskLayout", - "EDiskLayout" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "DiskLayoutSpanned ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "DiskLayoutRAID0", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DiskLayoutRAID1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DiskLayoutRAID5", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DiskLayoutIndividual", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_ExtendedResponseCode", - "ExtendedResponseCode" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "EXTENDED_RESPONSE_OK ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "EXTENDED_RESPONSE_INVALID_COMMAND ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -1 - }, - { - "name": "EXTENDED_RESPONSE_INVALID_STATE ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -2 - }, - { - "name": "EXTENDED_RESPONSE_OPERATION_FAILED ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -3 - }, - { - "name": "EXTENDED_RESPONSE_OPERATION_PENDING ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -4 - }, - { - "name": "EXTENDED_RESPONSE_INVALID_PARAMETER ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -5 - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "swUpdateWrite ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "swUpdateErase ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "swUpdateGetProgress ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "swUpdateValidateAll ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - }, - { - "name": "swUpdateGetBufferSize ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 4 - }, - { - "name": "swUpdateCheckHostVersion ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 5 - }, - { - "name": "swUpdateValidateComponent ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 6 - }, - { - "name": "swUpdateFinalize ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 7 - }, - { - "name": "swUpdateGetCommunicationVersion ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 8 - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SERDESCAM_MODE_TAP_REPEATER ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SERDESCAM_MODE_SPLITTER", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_MODE_LOG_ONLY", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_MODE_CUSTOM", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_MODE_COUNT", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SERDESCAM_PIXEL_BIT_POS_0 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SERDESCAM_PIXEL_BIT_POS_1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_PIXEL_BIT_POS_2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_PIXEL_BIT_POS_3", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SERDESCAM_VIDEO_FORMAT_NONE ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -1 - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_UYVY_422_8 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YUYV_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YVYU_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_VYUY_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_10", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_12", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_16", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_20", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_24", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_30", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_32", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_36", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RGB888", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_JPEG", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RGB565", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RGB666", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_11x2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_12x2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_RAW_14", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RGB565", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RGB666", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RGB888", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_11x2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12x2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_14", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_36", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SERDESCAM_VIDEO_FORMAT_COUNT", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SERDESGEN_MOD_ID_NONE ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SERDESGEN_MOD_ID_FPD3_2x2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "SERDESGEN_MOD_ID_GMSL2_2x2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "SERDESGEN_MOD_ID_GMSL1_4x4 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - }, - { - "name": "SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 4 - }, - { - "name": "SERDESGEN_MOD_ID_UNKNOWN ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": -1 - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "REPORT_ON_PERIODIC", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC3", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC4", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC5", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC6", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_LED1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_LED2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_KLINE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC3_AIN", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC4_AIN", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC5_AIN", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_MISC6_AIN", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_PWM_IN1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "REPORT_ON_GPS", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "eGPTPPort" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ePortDisabled ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "ePortOpEth1 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "ePortOpEth2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "ePortOpEth3 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - }, - { - "name": "ePortOpEth4 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 4 - }, - { - "name": "ePortOpEth5 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 5 - }, - { - "name": "ePortOpEth6 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 6 - }, - { - "name": "ePortOpEth7 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 7 - }, - { - "name": "ePortOpEth8 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 8 - }, - { - "name": "ePortOpEth9 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 9 - }, - { - "name": "ePortOpEth10 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 10 - }, - { - "name": "ePortOpEth11 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 11 - }, - { - "name": "ePortOpEth12 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 12 - }, - { - "name": "ePortStdEth1 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 13 - }, - { - "name": "ePortStdEth2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 14 - }, - { - "name": "ePortStdEth3 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 15 - } - ] - }, - { - "names": [ - "eGPTPRole" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "eRoleDisabled ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "eRolePassive ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "eRoleMaster ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "eRoleSlave ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - } - ] - }, - { - "names": [ - "A2BTDMMode" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "tdmModeTDM2 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "tdmModeTDM4", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tdmModeTDM8", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tdmModeTDM12", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tdmModeTDM16", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tdmModeTDM20", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tdmModeTDM24", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tdmModeTDM32", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "A2BNodeType" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "a2bNodeTypeMonitor ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "a2bNodeTypeMaster", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "a2bNodeTypeSlave", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_flexVnetMode", - "flexVnetMode" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flexVnetModeDisabled", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexVnetModeOneSingle", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexVnetModeOneDual", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexVnetModeTwoSingle", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexVnetModeColdStart", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "enumWILPortConfig_Single_Port_A ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "enumWILPortConfig_Single_Port_B", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enumWILPortConfig_Dual_Port_A_And_B", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enumWILPortConfig_Single_Port_A_And_B", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "_enumWILPortConfig_Total", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SPI_PORT_ONBOARD ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SPI_PORT_EXTERNAL", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SPI_TYPE_WIL ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SPI_TYPE_RAW", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "SPI_MODE_MASTER", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SPI_MODE_SLAVE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SPI_MODE_PMS_EMULATION", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_EDeviceSettingsType", - "EDeviceSettingsType" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "DeviceFireSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceFireVnetSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceFire2SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceVCAN3SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADGalaxySettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADStar2SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceVCAN4SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceVCAN412SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceVividCANSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceECU_AVBSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADSuperMoonSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADMoon2SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADPlutoSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADGigalogSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceDeprecatedType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceEEVBSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceVCAN4IndSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceNeoECU12SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceFlexVnetzSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceCANHUBSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceIEVBSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceOBD2SimSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceCMProbeSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceOBD2ProSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRedSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADPlutoSwitchSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADGigastarSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADJupiterSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRed2SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRadMoonDuoSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceEtherBadgeSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADA2BSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADEpsilonSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceOBD2LCSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADBMSSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADMoon3SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceFire3SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceFire3FlexraySettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADCometSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceNeoVIConnectSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADComet3SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADGalaxy2SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADGigastar2SettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceRADMoonT1SSettingsType", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceSettingsTypeMax", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DeviceSettingsNone ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 4294967295 - } - ] - }, - { - "names": [ - "_EPlasmaIonVnetChannel_t", - "EPlasmaIonVnetChannel_t" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "PlasmaIonVnetChannelMain", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PlasmaIonVnetChannelA", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PlasmaIonVnetChannelB", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "eSoftCore", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "eFpgaStatusResp", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_EwBMSManagerPort_t", - "EwBMSManagerPort_t" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "eManagerPortA ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "eManagerPortB", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_EwBMSManagerLockState_t", - "EwBMSManagerLockState_t" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "eLockManager ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "eUnlockManager", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_EUartPort_t", - "EUartPort_t" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "eUART0 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "eUART1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_eGenericAPIOptions", - "eGenericAPIOptions" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "eGENERIC_API ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "eADI_WIL_API ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - } - ] - }, - { - "names": [ - "_EwBMSInstance_t", - "EwBMSInstance_t" - ], - "data_type": "Enum", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ewBMSInstance0 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "ewBMSInstance1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPhyRegPktStatus", - "PhyRegPktStatus_t" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "PHYREG_SUCCESS ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "PHYREG_FAILURE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_INVALID_MDIO_BUS_INDEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_INVALID_PHY_ADDR", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_UNSUPPORTED_MDIO_CLAUSE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_RESERVED1", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_RESERVED2", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_RESERVED3", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPhyRegPktRw", - "PhyRegPktRw_t" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "PHYREG_READ ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "PHYREG_WRITE", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PHYREG_BOTH", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "DeviceFeature" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "networkDWCAN01", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN02", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN03", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN04", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN05", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN06", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN07", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkDWCAN08", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN01", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN02", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN03", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN04", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN05", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN06", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN07", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "networkTerminationDWCAN08", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enhancedFlashDriver", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rtcCalibration", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rtcClosedLoopCalibration", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NUM_VALID_DEVICE_FEATURES", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "supportedFeatureMax ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 65535 - } - ] - }, - { - "names": [ - "PhyErrorType", - "PhyErrorType" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "PhyOperationError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "PhyOperationSuccess ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "PhyFlashingInitError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 2 - }, - { - "name": "PhyFlashingEraseError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 3 - }, - { - "name": "PhyFlashingWriteError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 4 - }, - { - "name": "PhyFlashingReadError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 5 - }, - { - "name": "PhyFlashingVerifyError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 6 - }, - { - "name": "PhyFlashingDeinitError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 7 - }, - { - "name": "PhyFlashingInvalidHardware ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 8 - }, - { - "name": "PhyFlashingInvalidDataFile ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 9 - }, - { - "name": "PhyGetVersionError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 10 - }, - { - "name": "PhyIndexError ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 11 - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6192 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(CAN_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6193 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(CANFD_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6194 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SWCAN_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6195 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(LIN_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6196 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6197 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6198 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(UART_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6199 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(J1708_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6200 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRedSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6201 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(STextAPISettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6202 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(stChipVersions)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6203 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SNeoMostGatewaySettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6204 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6205 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(OP_ETH_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6206 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ETHERNET_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6207 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ETHERNET_SETTINGS2)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6208 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ETHERNET10G_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6209 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ETHERNET10T1S_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6210 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ETHERNET10T1S_SETTINGS_EXT)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6211 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(MACSEC_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6212 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(LOGGER_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6213 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(DISK_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6214 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SERDESCAM_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6215 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SERDESPOC_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6216 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SERDESGEN_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6217 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(RAD_REPORTING_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6218 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(CANTERM_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6219 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SFireSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6220 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SFireVnetSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6221 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SCyanSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6222 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SVCAN3Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6223 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SVCAN4Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6224 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SECUSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6225 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SPendantSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6226 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SIEVBSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6227 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SEEVBSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6228 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADGalaxySettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6229 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADStar2Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6230 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SOBD2SimSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6231 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(CmProbeSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6232 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(GLOBAL_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6233 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(stCM_ISO157652_TxMessage)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6234 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(stCM_ISO157652_RxMessage)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6235 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(spyFilterLong)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6236 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(icsSpyMessage)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6237 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(icsSpyMessageLong)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6238 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(icsSpyMessageJ1850)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6239 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(icsSpyMessageVSB)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6240 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(OBD2ProSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6241 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(ISO15765_2015_TxMessage)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6242 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6243 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADSuperMoonSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6244 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADMoon2Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6245 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADGigalogSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6246 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADGigastarSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6247 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADGalaxy2Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6248 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SExtSubCmdHdr)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6249 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SDiskStructure)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6250 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SDiskFormatProgress)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6251 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SDiskStatus)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6252 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADPlutoSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6253 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(CANHubSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6254 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SNeoECU12Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6255 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SPlutoSwitchSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6256 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(VCAN4IndSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6257 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADJupiterSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6258 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(RadMoonDuoSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6259 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SFire3Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6260 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRed2Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6261 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SEtherBadgeSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6262 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADA2BSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6263 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(A2BMonitorSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6264 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADEpsilonSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6265 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(RAD_GPTP_SETTINGS)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6266 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADBMSSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6267 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADMoon3Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6268 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SFire3FlexraySettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6269 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(CANHubSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6270 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADCometSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6271 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADComet3Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6272 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADGigastar2Settings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6273 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SRADMoonT1SSettings)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_6274 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SNeoVIConnectSettings)" - } - ] - } -] \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json deleted file mode 100644 index ec713bc4f..000000000 --- a/icsnVC40.h.json +++ /dev/null @@ -1,26387 +0,0 @@ -[ - { - "names": [ - "SExtendedDataFlashHeader", - "ExtendedDataFlashHeader_t" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "version", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "chksum", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "len", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "NeoDevice" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "DeviceType", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Handle", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberOfClients", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SerialNumber", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MaxAllowedClients", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_NeoDeviceEx", - "NeoDeviceEx" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "neoDevice", - "data_type": "NeoDevice", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FirmwareMajor", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FirmwareMinor", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Status", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Options", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pAvailWIFINetwork", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pWIFIInterfaceInfo", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "isEthernetDevice", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MACAddress", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hardwareRev", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "revReserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tcpIpAddress", - "data_type": "uint32_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tcpPort", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved0", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved1", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "tagOptionsOpenNeoEx", - "OptionsOpenNeoEx", - "*POptionsOpenNeoEx" - ], - "data_type": "Union", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "names": [ - "CANOptions" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "iNetworkID", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "Reserved", - "data_type": "uint32_t", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "tagOptionsFindNeoEx", - "OptionsFindNeoEx", - "*POptionsFindNeoEx" - ], - "data_type": "Union", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "names": [ - "CANOptions" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "iNetworkID", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "Reserved", - "data_type": "uint32_t", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "tagicsneoVICommand", - "icsneoVICommand" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "CommandType", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "CommandByteLength", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 14, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_stAPIFirmwareInfo", - "stAPIFirmwareInfo" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "iType", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmDateDay", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmDateMonth", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmDateYear", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmDateHour", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmDateMin", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmDateSecond", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainFirmChkSum", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iAppMajor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iAppMinor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iManufactureDay", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iManufactureMonth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iManufactureYear", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iBoardRevMajor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iBoardRevMinor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iBootLoaderVersionMajor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iBootLoaderVersionMinor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainVnetHWrevMajor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainVnetHWrevMinor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iMainVnetSRAMSize", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iPhySiliconRev", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "CAN_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "Mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SetBaudrate", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Baudrate", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "transceiver_mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqSeg1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqSeg2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqProp", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqSync", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BRP", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "auto_baud", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "innerFrameDelay25us", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_CANFD_SETTINGS", - "CANFD_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "FDMode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDBaudrate", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDTqSeg1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDTqSeg2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDTqProp", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDTqSync", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDBRP", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FDTDC", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SWCAN_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "Mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SetBaudrate", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Baudrate", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "transceiver_mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqSeg1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqSeg2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqProp", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TqSync", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "BRP", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "high_speed_auto_switch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "auto_baud", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "RESERVED", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_LIN_SETTINGS", - "LIN_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "Baudrate", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spbrg", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "brgh", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "numBitsDelay", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MasterResistor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ISO9141_KEYWORD2000__INIT_STEP" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "time_500us", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "k", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "l", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ISO9141_KEYWORD2000_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "Baudrate", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spbrg", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "brgh", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "init_steps", - "data_type": "ISO9141_KEYWORD2000__INIT_STEP", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "init_step_count", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "p2_500us", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "p3_500us", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "p4_500us", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "chksum_enabled", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_UART_SETTINGS", - "UART_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "Baudrate", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spbrg", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "brgh", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stop_bits", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flow_control", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved_1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "bOptions", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "invert_tx", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "invert_rx", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "half_duplex", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved_bits", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 13, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved_bits2", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 16, - "is_enum": false, - "enum_value": null - } - ] - } - ] - } - ] - }, - { - "names": [ - "J1708_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "enable_convert_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRedSettings", - "SRedSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_STextAPISettings", - "STextAPISettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1_tx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1_rx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "can1_options" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "bExtended", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 31, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "DWord", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "can2_tx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2_rx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "can2_options" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "bExtended", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 31, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "DWord", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enables", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3_tx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3_rx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "can3_options" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "bExtended", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 31, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "DWord", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "can4_tx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4_rx_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "can4_options" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "bExtended", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 31, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "DWord", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_stChipVersions", - "stChipVersions" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "names": [ - "fire_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "upic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "upic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "jpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "jpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "plasma_fire_vnet" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "core_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "core_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hid_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hid_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "vcan3_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radgalaxy_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radstar2_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "vividcan_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mpic_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mpic_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ext_flash_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ext_flash_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "nrf52_maj", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "nrf52_min", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "cmprobe_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "obd2pro_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "vcan41_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "vcan42_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "neoecu_avb_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radsupermoon_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radmoon2_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radmoon2_z7010_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radmoon3_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "pluto_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radgigalog_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radgigalog3_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radgigastar_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radgigastar_usbz_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radGalaxy2_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "obd2lc_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "jupiter_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "red2_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "fire3_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vem_z_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vem_z_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "fire3_flexray_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vem_z_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vem_z_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vem_f_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vem_f_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "rad_moon_duo_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "obd2dev_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "schip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ether_badge_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "rad_a2b_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "epsilon_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "rad_wbms_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wil_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wil_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "rad_comet_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "rad_comet3_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "radgigastar2_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "rad_moont1s_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zynq_core_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zynq_core_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "neovi_connect_versions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "zchip_major", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zchip_minor", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_SNeoMostGatewaySettings", - "SNeoMostGatewaySettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "netId", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "zero0", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Config", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "OP_ETH_GENERAL_SETTINGS_t", - "OP_ETH_GENERAL_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ucInterfaceType", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "tapPairOpt", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "tap1ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap2ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap3ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap4ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap5ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap6ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap7ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap8ToVspy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "reserved0", - "data_type": "uint8_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tapPair0", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tapPair1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tapPair2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tapPair3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tapPair4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tapPair5", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "bTapEnSwitch", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "bTapEnPtp", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "bEnReportLinkQuality", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "bEnTapTxReceipts", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 28, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "uFlags", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "SRAD_GPTP_SETTINGS_s", - "RAD_GPTP_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "neighborPropDelayThresh", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sys_phc_sync_interval", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logPDelayReqInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logSyncInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logAnnounceInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "profile", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "priority1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clockclass", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clockaccuracy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "priority2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "offset_scaled_log_variance", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTPportRole", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gptpEnabledPort", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableClockSyntonization", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 15, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SRAD_GPTP_AND_TAP_SETTINGS_s", - "RAD_GPTP_AND_TAP_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tap", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "OP_ETH_SETTINGS_t", - "OP_ETH_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ucConfigMode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "preemption_en", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "mac_addr1", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mac_addr2", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mac_spoofing_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "mac_spoofing_isDstOrSrc", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "link_spd", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 2, - "is_enum": false, - "enum_value": null - }, - { - "name": "q2112_phy_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "macsec_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "compliance_mode_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "cut_thru_tap", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "snf_tap", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disable_tap_to_host", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "show_tap_tx_receipt", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 5, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "reserved0", - "data_type": "uint8_t", - "array_length": 14, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "ETHERNET_SETTINGS_t", - "ETHERNET_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "duplex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "link_speed", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "auto_neg", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "led_mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ETHERNET_SETTINGS2_t", - "ETHERNET_SETTINGS2" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flags", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "link_speed", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ip_addr", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "netmask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gateway", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flags2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ETHERNET10G_SETTINGS_t", - "ETHERNET10G_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flags", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ip_addr", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "netmask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gateway", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "link_speed", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "compliance_mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd2", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ETHERNET10T1S_SETTINGS_t", - "ETHERNET10T1S_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "max_burst_count", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "burst_timer", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "max_num_nodes", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "local_id", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "to_timer", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flags", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "local_id_alternate", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "ETHERNET10T1S_SETTINGS_EXT_t", - "ETHERNET10T1S_SETTINGS_EXT" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "enable_multi_id", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "multi_id", - "data_type": "uint8_t", - "array_length": 7, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "MACSEC_VLANTAG_t" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "VID", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "PRI_CFI", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "MACSEC_MPLS_OUTER_t" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "MPLS_label", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "exp", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecRule", - "MACSecRule_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_MAC_DA", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_MAC_DA", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_MAC_SA", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_MAC_SA", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_Ethertype", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_Ethertype", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_vlantag_outer1", - "data_type": "MACSEC_VLANTAG_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_MPLS_outer1", - "data_type": "MACSEC_MPLS_OUTER_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_vlantag_outer1", - "data_type": "MACSEC_VLANTAG_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_MPLS_outer1", - "data_type": "MACSEC_MPLS_OUTER_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_vlantag_outer2", - "data_type": "MACSEC_VLANTAG_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_MPLS_outer2", - "data_type": "MACSEC_MPLS_OUTER_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_vlantag_outer2", - "data_type": "MACSEC_VLANTAG_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_MPLS_outer2", - "data_type": "MACSEC_MPLS_OUTER_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_bonus_data", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_bonus_data", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_tag_match_bitmap", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_tag_match_bitmap", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_packet_type", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_packet_type", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_inner_vlan_type", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_inner_vlan_type", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_outer_vlan_type", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_outer_vlan_type", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_num_tags", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_num_tags", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_express", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_express", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "isMPLS", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 88, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecMap", - "MACSecMap_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sectag_sci", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "secYIndex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "isControlPacket", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "scIndex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "auxiliary_plcy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ruleId", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 20, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecSecY", - "MACSecSecY_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "controlled_port_enabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "validate_frames", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "strip_sectag_icv", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cipher", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "confidential_offset", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "icv_includes_da_sa", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "replay_protect", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "replay_window", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "protect_frames", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sectag_offset", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sectag_tci", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mtu", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 24, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecSc", - "MACSecSc_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "secYIndex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sci", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sa_index0", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sa_index1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sa_index0_in_use", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sa_index1_in_use", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enable_auto_rekey", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "isActiveSA1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 7, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 24, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecSa", - "MACSecSa_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sak", - "data_type": "uint8_t", - "array_length": 32, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hashKey", - "data_type": "uint8_t", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "salt", - "data_type": "uint8_t", - "array_length": 12, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ssci", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "AN", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "nextPN", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 80, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecFlags", - "MACSecFlags_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "en", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 31, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "flags_32b", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "MACSEC_CONFIG_t", - "MACSEC_CONFIG" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "flags", - "data_type": "MACSecFlags_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rule", - "data_type": "MACSecRule_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "map", - "data_type": "MACSecMap_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "secy", - "data_type": "MACSecSecY_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sc", - "data_type": "MACSecSc_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sa", - "data_type": "MACSecSa_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSecGlobalFlags", - "MACSecGlobalFlags_t" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "en", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "nvm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "flags_32b", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_MACSEC_SETTINGS", - "MACSEC_SETTINGS" - ], - "data_type": "Union", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 1, - "is_anonymous": true, - "members": [ - { - "name": "flags", - "data_type": "MACSecGlobalFlags_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rx", - "data_type": "MACSEC_CONFIG", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tx", - "data_type": "MACSEC_CONFIG", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 2040, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "LOGGER_SETTINGS_t", - "LOGGER_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "extraction_timeout", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "DISK_SETTINGS_t", - "DISK_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disk_layout", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk_format", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk_enables", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "CANTERM_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "term_enabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "term_network", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "TIMESYNC_ICSHARDWARE_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "MasterEnable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SlaveEnable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MasterNetwork", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SlaveNetwork", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SDiskStatus", - "SDiskStatus" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "status", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sectors", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bytesPerSector", - "data_type": "uint8_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SDiskStructure", - "SDiskStructure" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "settings", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "options", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SDiskDetails", - "SDiskDetails" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "structure", - "data_type": "SDiskStructure", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "status", - "data_type": "SDiskStatus", - "array_length": 12, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SDiskFormatProgress", - "SDiskFormatProgress" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "state", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sectorsRemaining", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_StartDHCPServerCommand", - "StartDHCPServerCommand" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "networkId", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serverIpAddress", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "subnetMask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gatewayAddress", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "startAddress", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "endAddress", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "leaseTime", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "overwrite", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_StopDHCPServerCommand", - "StopDHCPServerCommand" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "networkId", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_ExtendedResponseGeneric", - "ExtendedResponseGeneric" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "commandType", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "returnCode", - "data_type": "int32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GenericAPISelector", - "GenericAPISelector" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "apiIndex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "instance", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "functionID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GenericAPIStatus", - "GenericAPIStatus" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "api", - "data_type": "GenericAPISelector", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "functionError", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "calbackError", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "finishedProcessing", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GenericAPIData", - "GenericAPIData" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "length", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "api", - "data_type": "GenericAPISelector", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bData", - "data_type": "uint8_t", - "array_length": 513, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GenericAPIData_OLD", - "GenericAPIData_OLD" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "api", - "data_type": "GenericAPISelector", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bData", - "data_type": "uint8_t", - "array_length": 513, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "length", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_wBMSManagerSetLock", - "wBMSManagerSetLock" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "managerIndex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "setLock", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_wBMSManagerReset", - "wBMSManagerReset" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "managerIndex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_UartPortData", - "UartPortData" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "len", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bData", - "data_type": "uint8_t", - "array_length": 256, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_UartPortPortBytes", - "UartPortPortBytes" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "len", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flag", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_UartPortConfig", - "UartPortConfig" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "baudrate", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserve", - "data_type": "uint8_t", - "array_length": 7, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "GetSupportedFeaturesResponse" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "cmdVersion", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "numValidBits", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "featureBitfields", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_VersionReport", - "VersionReport" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "valid", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "expansionSlot", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "componentInfo", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "identifier", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "dotVersion", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "commitHash", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GetComponentVersions", - "GetComponentVersions" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_ExtendedGetVersionsResponse", - "GetComponentVersionsResponse" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "numVersions", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "versions", - "data_type": "VersionReport", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SoftwareUpdateCommand" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "componentIdentifier", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "commandType", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "offset", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "commandSizeOrProgress", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "commandData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SExtSubCmdHdr", - "SExtSubCmdHdr" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "command", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "length", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_timestamp", - "timestamp_" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "seconds_msb", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "seconds_lsb", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "nanoseconds", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "port_identity" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "clock_identity", - "data_type": "_clock_identity", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port_number", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_clock_quality", - "clock_quality_" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "clock_class", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clock_accuracy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "offset_scaled_log_variance", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "system_identity" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "priority_1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clock_quality", - "data_type": "clock_quality_", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "priority_2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clock_identity", - "data_type": "_clock_identity", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "priority_vector" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "sysid", - "data_type": "system_identity", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "steps_removed", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "portid", - "data_type": "port_identity", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port_number", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GPTPStatus", - "GPTPStatus" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "current_time", - "data_type": "timestamp_", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gm_priority", - "data_type": "priority_vector", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ms_offset_ns", - "data_type": "int64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "is_sync", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "link_status", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "link_delay_ns", - "data_type": "int64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selected_role", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "as_capable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "is_syntonized", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_GenericBinaryStatus", - "GenericBinaryStatus" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "size", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "index", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "status", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SERDESCAM_SETTINGS_t", - "SERDESCAM_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flags", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bitPos", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "videoFormat", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "resWidth", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "resHeight", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "frameSkip", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd2", - "data_type": "uint8_t", - "array_length": 19, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SERDESPOC_SETTINGS_t", - "SERDESPOC_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "voltage", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "chksum", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SERDESGEN_SETTINGS_t", - "SERDESGEN_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flags", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mod_id", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tx_speed", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rx_speed", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd2", - "data_type": "uint8_t", - "array_length": 24, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_RadMoonDuoConverterSettings", - "RadMoonDuoConverterSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "linkMode0", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "linkMode1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "converter1Mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ipAddress", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ipMask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ipGateway", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "RAD_REPORTING_SETTINGS_t", - "RAD_REPORTING_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flags", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "temp_interval_ms", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gps_interval_ms", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdes_interval_ms", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "io_interval_ms", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fan_speed_interval_ms", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SFireSettings", - "SFireSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin3", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin4", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_baud", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_tx_ifs_bit_times", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_rx_ifs_bit_times", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_chksum_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwm_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_3", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_4", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fast_init_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fast_init_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart2", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoMostGateway", - "data_type": "SNeoMostGatewaySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vnetBits", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SFireVnetSettings", - "SFireVnetSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin3", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin4", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_baud", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_tx_ifs_bit_times", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_rx_ifs_bit_times", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cgi_chksum_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwm_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_3", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_4", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fast_init_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fast_init_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart2", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoMostGateway", - "data_type": "SNeoMostGatewaySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vnetBits", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin5", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SCyanSettings", - "SCyanSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin3", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin4", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin5", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_3", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_4", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin6", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetA", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetB", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 26, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "digitalIoThresholdTicks", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSync", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SVCAN3Settings", - "SVCAN3Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SVCAN4Settings", - "SVCAN4Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SECUSettings", - "SECUSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selected_network", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart2", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SPendantSettings", - "SPendantSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selected_network", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart2", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SIEVBSettings", - "SIEVBSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selected_network", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uart2", - "data_type": "UART_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved_1", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved_2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SEEVBSettings", - "SEEVBSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADGalaxySettings", - "SRADGalaxySettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth2", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth3", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth4", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth5", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth6", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth7", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth8", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth9", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth10", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth11", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth12", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logger", - "data_type": "LOGGER_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADStar2Settings", - "SRADStar2Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth2", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pc_com_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADSuperMoonSettings", - "SRADSuperMoonSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pc_com_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Eth2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "A2BMonitorSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "tdmMode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "upstreamChannelOffset", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "downstreamChannelOffset", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "nodeType", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flags", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 15, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADA2BSettings", - "SRADA2BSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logger", - "data_type": "LOGGER_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "a2b_monitor", - "data_type": "A2BMonitorSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "a2b_node", - "data_type": "A2BMonitorSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADMoon2Settings", - "SRADMoon2Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pc_com_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADMoon3Settings", - "SRADMoon3Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "autoEth10g", - "data_type": "ETHERNET10G_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "eth10g", - "data_type": "ETHERNET10G_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "enableLatencyTest", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 15, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADGigalogSettings", - "SRADGigalogSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd1", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd2", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam1", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet10g", - "data_type": "ETHERNET10G_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdespoc", - "data_type": "SERDESPOC_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logger", - "data_type": "LOGGER_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam2", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam3", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam4", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdesgen", - "data_type": "SERDESGEN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADGigastarSettings", - "SRADGigastarSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ethernet1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth2", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam1", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdespoc", - "data_type": "SERDESPOC_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logger", - "data_type": "LOGGER_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam2", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam3", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdescam4", - "data_type": "SERDESCAM_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "serdesgen", - "data_type": "SERDESGEN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADGalaxy2Settings", - "SRADGalaxy2Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "idle_wakeup_network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 15, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth2", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth3", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth4", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth5", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth6", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth7", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth8", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth9", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth10", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth11", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth12", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth13", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth14", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth15", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth16", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet10g_3", - "data_type": "ETHERNET10G_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet10g", - "data_type": "ETHERNET10G_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet10g_2", - "data_type": "ETHERNET10G_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SVividCANSettings", - "SVividCANSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_SOBD2SimSettings", - "SOBD2SimSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_CmProbeSettings", - "CmProbeSettings", - "SCmProbeSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_OBD2ProSettings", - "OBD2ProSettings", - "SOBD2ProSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_VCAN412Settings", - "VCAN412Settings", - "SVCAN412Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_neoECU_AVBSettings", - "ECU_AVBSettings", - "SECU_AVBSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "SPluto_L2AddressLookupEntry_s", - "SPluto_L2AddressLookupEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "index", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlanID", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "macaddr", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "destports", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enfport", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "learnedEntry", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad3", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2AddressLookupParams_s", - "SPluto_L2AddressLookupParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "maxage", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "dyn_tbsz", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "poly", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "shared_learn", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "no_enf_hostprt", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "no_mgmt_learn", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2ForwardingParams_s", - "SPluto_L2ForwardingParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "part_spc", - "data_type": "uint16_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "max_dynp", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2ForwardingEntry_s", - "SPluto_L2ForwardingEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vlan_pmap", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bc_domain", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reach_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fl_domain", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_L2Policing_s", - "SPluto_L2Policing" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "smax", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rate", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "maxlen", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sharindx", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "partition", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_VlanLookup_s", - "SPluto_VlanLookup" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vlanid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ving_mirr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vegr_mirr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vmemb_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlan_bc", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tag_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_MacConfig_s", - "SPluto_MacConfig" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "top", - "data_type": "uint16_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "base", - "data_type": "uint16_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tp_delin", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tp_delout", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlanid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enabled", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ifg", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "speed", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "maxage", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlanprio", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ing_mirr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "egr_mirr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "drpnona664", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "drpdtag", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "drpuntag", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "retag", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "dyn_learn", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "egress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ingress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_RetaggingEntry_s", - "SPluto_RetaggingEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vlan_egr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlan_ing", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "egr_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ing_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "do_not_learn", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "use_dest_ports", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "destports", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_GeneralParams_s", - "SPluto_GeneralParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mac_fltres1", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mac_fltres0", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mac_flt1", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mac_flt0", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlmarker", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlmask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tpid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tpid2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vllupformat", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mirr_ptacu", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "switchid", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "hostprio", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "incl_srcpt1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "incl_srcpt0", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "send_meta1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "send_meta0", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "casc_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "host_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mirr_port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ignore2stf", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_VlLookupEntry_s", - "SPluto_VlLookupEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "names": [ - "vllupformat0" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "macaddr", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlanid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "destports", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iscritical", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlanprior", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "vllupformat1" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vlid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "egrmirr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ingrmirr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - } - ] - }, - { - "names": [ - "SPluto_VlPolicingEntry_s", - "SPluto_VlPolicingEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "type", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "maxlen", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sharindx", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bag", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "jitter", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_VlForwardingParams_s", - "SPluto_VlForwardingParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "partspc", - "data_type": "uint16_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "debugen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_VlForwardingEntry_s", - "SPluto_VlForwardingEntry" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "type", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "priority", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "partition", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "destports", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_AVBParams_s", - "SPluto_AVBParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "destmeta", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "srcmeta", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_ClockSyncParams_s", - "SPluto_ClockSyncParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "etssrcpcf", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wfintmout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "maxtranspclk", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "listentmout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "intcydur", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "caentmout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pcfsze", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obvwinsz", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlidout", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlidimnmin", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlidinmax", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "accdevwin", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "srcport", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "waitthsync", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "unsytotsyth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "unsytosyth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tsytosyth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tsyth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tsytousyth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "syth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sytousyth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sypriority", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sydomain", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sttointth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pcfpriority", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "numunstbcy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "numstbcy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "maxintegcy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "inttotentth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "inttosyncth", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlidselect", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tentsyrelen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "asytensyen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sytostben", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "syrelen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sysyen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "syasyen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ipcframesy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stabasyen", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swmaster", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fullcbg", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad3", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPlutoPtpParams_s", - "PlutoPtpParams_t" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "neighborPropDelayThresh", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sys_phc_sync_interval", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logPDelayReqInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logSyncInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logAnnounceInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "profile", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "priority1", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clockclass", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clockaccuracy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "priority2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "offset_scaled_log_variance", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTPportRole", - "data_type": "uint8_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "portEnable", - "data_type": "uint8_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPluto_CustomParams_s", - "SPluto_CustomParams" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "mode", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "speed", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePhy", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ae1Select", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "usbSelect", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ptpParams", - "data_type": "PlutoPtpParams_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPlutoSwitchSettings_s", - "SPlutoSwitchSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "flashHeader", - "data_type": "ExtendedDataFlashHeader_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "l2_addressLookupParams", - "data_type": "SPluto_L2AddressLookupParams", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "l2_addressLookupEntries", - "data_type": "SPluto_L2AddressLookupEntry", - "array_length": 1024, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "l2_policing", - "data_type": "SPluto_L2Policing", - "array_length": 45, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "l2_forwardingParams", - "data_type": "SPluto_L2ForwardingParams", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "l2_ForwardingEntries", - "data_type": "SPluto_L2ForwardingEntry", - "array_length": 13, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vlan_LookupEntries", - "data_type": "SPluto_VlanLookup", - "array_length": 4096, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "macConfig", - "data_type": "SPluto_MacConfig", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "generalParams", - "data_type": "SPluto_GeneralParams", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "retagging", - "data_type": "SPluto_RetaggingEntry", - "array_length": 32, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_RADPlutoSettings", - "SRADPlutoSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "custom", - "data_type": "SPluto_CustomParams", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SCANSleepID" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "id" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can_sleep_command_id", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_sleep_command_isExtended", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 2, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "CANHubSettings", - "SCANHubSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sleep_id", - "data_type": "SCANSleepID", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SFlexVnetzSettings", - "SFlexVnetzSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flex_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flex_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetA", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetB", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSync", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 26, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_NeoECU12Settings", - "SNeoECU12Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "reserved_field", - "data_type": "uint32_t", - "array_length": 2, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_VCAN4IndSettings", - "VCAN4IndSettings", - "SVCAN4IndSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 28, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SOBD2LCSettings", - "OBD2LCSettings", - "SOBD2LCSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 26, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "can_switch_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SJupiterPtpParams_s", - "JupiterPtpParams_t" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "neighborPropDelay", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "initLogPDelayReqInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "initLogSyncInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "operationLogPDelayReqInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "operationLogSyncInterval", - "data_type": "int8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTPportRole", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADJupiterSwitchSettings", - "SRADJupiterSwitchSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "phyMode", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePhy", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port7Select", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port8Select", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port8Speed", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port8Legacy", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spoofMacFlag", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spoofedMac", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ptpParams_unused", - "data_type": "JupiterPtpParams_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADJupiterSettings", - "SRADJupiterSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "switchSettings", - "data_type": "SRADJupiterSwitchSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "Fire3LinuxSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "allowBoot", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "useExternalWifiAntenna", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethConfigurationPort", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "CMP_NETWORK_DATA" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "bStreamEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "EthModule", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 2, - "is_enum": false, - "enum_value": null - }, - { - "name": "bControlEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "spare", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 4, - "is_enum": false, - "enum_value": null - }, - { - "name": "streamId", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "dstMac", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "network_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "CMP_GLOBAL_DATA" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "cmp_enabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "sparebits", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 7, - "is_enum": false, - "enum_value": null - }, - { - "name": "spare", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_device_id", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRed2Settings", - "SRed2Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetA", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_1", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSync", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 26, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdTicks", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_2", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "os_settings", - "data_type": "Fire3LinuxSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_global_data", - "data_type": "CMP_GLOBAL_DATA", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_stream_data", - "data_type": "CMP_NETWORK_DATA", - "array_length": 10, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SFire3Settings", - "SFire3Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetA", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables_1", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_1", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSync", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 26, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdTicks", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_2", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "os_settings", - "data_type": "Fire3LinuxSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can9", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd9", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can10", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd10", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can11", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd11", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can12", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd12", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can13", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd13", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can14", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd14", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can15", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd15", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can16", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd16", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan1", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "swcan2", - "data_type": "SWCAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lsftcan2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_3", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_3", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin3", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin4", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin5", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin6", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin7", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin8", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_3", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_4", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_5", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_5", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_5", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_6", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_6", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_6", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selectable_network_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "selectable_network_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_global_data", - "data_type": "CMP_GLOBAL_DATA", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_stream_data", - "data_type": "CMP_NETWORK_DATA", - "array_length": 10, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SFire3FlexraySettings", - "SFire3FlexraySettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "slaveVnetA", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables_1", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_1", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSync", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "busMessagesToAndroid", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved1", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 26, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdTicks", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_2", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "os_settings", - "data_type": "Fire3LinuxSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can9", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd9", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can10", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd10", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can11", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd11", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can12", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd12", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can13", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd13", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can14", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd14", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can15", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd15", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_3", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_3", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin3", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin4", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_3", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_4", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flex_mode", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flex_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_global_data", - "data_type": "CMP_GLOBAL_DATA", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmp_stream_data", - "data_type": "CMP_NETWORK_DATA", - "array_length": 10, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "RadMoonDuoSettings", - "SRadMoonDuoSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "converter", - "data_type": "RadMoonDuoConverterSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 30, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_SEtherBadgeSettings", - "SEtherBadgeSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_sample_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADEpsilonSwitchSettings", - "SRADEpsilonSwitchSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "phyMode", - "data_type": "uint8_t", - "array_length": 18, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePhy", - "data_type": "uint8_t", - "array_length": 18, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "speed", - "data_type": "uint8_t", - "array_length": 18, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "legacy", - "data_type": "uint8_t", - "array_length": 18, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spoofedMac", - "data_type": "uint8_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spoofMacFlag", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pad", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADEpsilonSettings", - "SRADEpsilonSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_enable_reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_tester_pullup_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "switchSettings", - "data_type": "SRADEpsilonSwitchSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "sWIL_FAULT_SERVICING_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "wBMSDeviceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "enabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "sWIL_NETWORK_DATA_CAPTURE_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "enabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_sWIL_CONNECTION_SETTINGS", - "sWIL_CONNECTION_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "using_port_a", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "using_port_b", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "attemptConnect", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fault_servicing_config", - "data_type": "sWIL_FAULT_SERVICING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_data_capture_config", - "data_type": "sWIL_NETWORK_DATA_CAPTURE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "sensor_buffer_size", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "sWILBridgeConfig" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "dword", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "config" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "can_id", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_id_isExtended", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tcp_port", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 16, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 18, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "sSPI_PORT_SETTING" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "byte", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "config" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "onboard_external", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "type", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "mode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 3, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 3, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "sSPI_PORT_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "port_a", - "data_type": "sSPI_PORT_SETTING", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "port_b", - "data_type": "sSPI_PORT_SETTING", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "WBMSGatewaySettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "wbms1_network", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbms1_canfd_enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbms2_network", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbms2_canfd_enable", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADBMSSettings", - "SRADBMSSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enablePcEthernetComm", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 10, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "spi_config", - "data_type": "sSPI_PORT_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbms_wil_1", - "data_type": "sWIL_CONNECTION_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbms_wil_2", - "data_type": "sWIL_CONNECTION_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wil1_nwk_metadata_buff_count", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wil2_nwk_metadata_buff_count", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gateway", - "data_type": "WBMSGatewaySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADCometSettings", - "SRADCometSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s1", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s2", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_5", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s1Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s2Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADComet3Settings", - "SRADComet3Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s1", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s2", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s3", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s3", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s4", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s4", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s5", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s5", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s6", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s6", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s1Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s2Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s3Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s4Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s5Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s6Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADGigaStar2Settings", - "SRADGigastar2Settings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "ecu_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_3", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_4", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_5", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_5", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_5", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_6", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_6", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_6", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_7", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_7", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_7", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_8", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_8", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_8", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_9", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_9", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_9", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_10", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_10", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_10", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "termination_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "timeSyncSettings", - "data_type": "TIMESYNC_ICSHARDWARE_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "logger", - "data_type": "LOGGER_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin3", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin4", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin5", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin6", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin7", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin8", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin9", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin10", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth1", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT12", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEth2", - "data_type": "OP_ETH_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s1", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s1Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s2", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s2", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s2Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s3", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s3", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s3Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s4", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s4", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s4Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s5", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s5", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s5Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s6", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s6", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s6Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s7", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s7", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s7Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s8", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s8", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s8Ext", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SRADMoonT1SSettings", - "SRADMoonT1SSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "hwComLatencyTestEn", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 14, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reporting", - "data_type": "RAD_REPORTING_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "opEthGen", - "data_type": "OP_ETH_GENERAL_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethT1s", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1s", - "data_type": "ETHERNET10T1S_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "t1sExt", - "data_type": "ETHERNET10T1S_SETTINGS_EXT", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_SNeoVIConnectSettings", - "SNeoVIConnectSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "perf_en", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enabled_on_boot", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_on_report_events", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso15765_separation_time_offset", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reservedA", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pwr_man_timeout", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "network_enables" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "word", - "data_type": "uint64_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "network_enables", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_3", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "network_enables_4", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "can1", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd1", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can2", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd2", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can3", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd3", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can4", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd4", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can5", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd5", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can6", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd6", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can7", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd7", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "can8", - "data_type": "CAN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canfd8", - "data_type": "CANFD_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin1", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "lin2", - "data_type": "LIN_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_1", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_1", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso9141_kwp_settings_2", - "data_type": "ISO9141_KEYWORD2000_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_parity_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "iso_msg_termination_2", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet_1", - "data_type": "ETHERNET_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernet2_1", - "data_type": "ETHERNET_SETTINGS2", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "text_api", - "data_type": "STextAPISettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "disk", - "data_type": "DISK_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_report_period", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ain_threshold", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_analog_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdTicks", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "digitalIoThresholdEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_ddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "misc_io_initial_latch", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "os_settings", - "data_type": "Fire3LinuxSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gPTP", - "data_type": "RAD_GPTP_SETTINGS", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "flags" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "disableUsbCheckOnBoot", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableLatencyTest", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultLogger", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableDefaultUpload", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 28, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_GLOBAL_SETTINGS", - "GLOBAL_SETTINGS" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "version", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "len", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "chksum", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "red", - "data_type": "SRedSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire", - "data_type": "SFireSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "firevnet", - "data_type": "SFireVnetSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cyan", - "data_type": "SCyanSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan3", - "data_type": "SVCAN3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4", - "data_type": "SVCAN4Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ecu", - "data_type": "SECUSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ievb", - "data_type": "SIEVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pendant", - "data_type": "SPendantSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgalaxy", - "data_type": "SRADGalaxySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radstar2", - "data_type": "SRADStar2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoobd2_sim", - "data_type": "SOBD2SimSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmprobe", - "data_type": "SCmProbeSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obd2pro", - "data_type": "SOBD2ProSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan412", - "data_type": "SVCAN412Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4_12", - "data_type": "SVCAN412Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoecu_avb", - "data_type": "SECU_AVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radsupermoon", - "data_type": "SRADSuperMoonSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoon2", - "data_type": "SRADMoon2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pluto", - "data_type": "SRADPlutoSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigalog", - "data_type": "SRADGigalogSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canhub", - "data_type": "SCANHubSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoecu12", - "data_type": "SNeoECU12Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "eevb", - "data_type": "SEEVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexvnetz", - "data_type": "SFlexVnetzSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vividcan", - "data_type": "SVividCANSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4_ind", - "data_type": "SVCAN4IndSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obd2lc", - "data_type": "SOBD2LCSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigastar", - "data_type": "SRADGigastarSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radGalaxy2", - "data_type": "SRADGalaxy2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "jupiter", - "data_type": "SRADJupiterSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "red2", - "data_type": "SRed2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire3", - "data_type": "SFire3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire3fr", - "data_type": "SFire3FlexraySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoonduo", - "data_type": "SRadMoonDuoSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "etherBadge", - "data_type": "SEtherBadgeSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rad_a2b", - "data_type": "SRADA2BSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "epsilon", - "data_type": "SRADEpsilonSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rad_bms", - "data_type": "SRADBMSSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoon3", - "data_type": "SRADMoon3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radcomet", - "data_type": "SRADCometSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radcomet3", - "data_type": "SRADComet3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigastar2", - "data_type": "SRADGigastar2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoont1s", - "data_type": "SRADMoonT1SSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neovi_connect", - "data_type": "SNeoVIConnectSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_SDeviceSettings", - "SDeviceSettings" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "DeviceSettingType", - "data_type": "EDeviceSettingsType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "Settings" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "red", - "data_type": "SRedSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire", - "data_type": "SFireSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "firevnet", - "data_type": "SFireVnetSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cyan", - "data_type": "SCyanSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan3", - "data_type": "SVCAN3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4", - "data_type": "SVCAN4Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ecu", - "data_type": "SECUSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ievb", - "data_type": "SIEVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pendant", - "data_type": "SPendantSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgalaxy", - "data_type": "SRADGalaxySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radstar2", - "data_type": "SRADStar2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoobd2_sim", - "data_type": "SOBD2SimSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cmprobe", - "data_type": "SCmProbeSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obd2pro", - "data_type": "SOBD2ProSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan412", - "data_type": "SVCAN412Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4_12", - "data_type": "SVCAN412Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoecu_avb", - "data_type": "SECU_AVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radsupermoon", - "data_type": "SRADSuperMoonSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoon2", - "data_type": "SRADMoon2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "pluto", - "data_type": "SRADPlutoSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "plutoswitch", - "data_type": "SPlutoSwitchSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigalog", - "data_type": "SRADGigalogSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "canhub", - "data_type": "SCANHubSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neoecu12", - "data_type": "SNeoECU12Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "eevb", - "data_type": "SEEVBSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexvnetz", - "data_type": "SFlexVnetzSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vividcan", - "data_type": "SVividCANSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4_ind", - "data_type": "SVCAN4IndSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obd2lc", - "data_type": "SOBD2LCSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigastar", - "data_type": "SRADGigastarSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radGalaxy2", - "data_type": "SRADGalaxy2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "jupiter", - "data_type": "SRADJupiterSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire3", - "data_type": "SFire3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "red2", - "data_type": "SRed2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoon_duo", - "data_type": "SRadMoonDuoSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "etherBadge", - "data_type": "SEtherBadgeSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rad_a2b", - "data_type": "SRADA2BSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "epsilon", - "data_type": "SRADEpsilonSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "rad_bms", - "data_type": "SRADBMSSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoon3", - "data_type": "SRADMoon3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire3Flexray", - "data_type": "SFire3FlexraySettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radcomet", - "data_type": "SRADCometSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radcomet3", - "data_type": "SRADComet3Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radgigastar2", - "data_type": "SRADGigastar2Settings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radmoont1s", - "data_type": "SRADMoonT1SSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "neovi_connect", - "data_type": "SNeoVIConnectSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_stCM_ISO157652_TxMessage", - "stCM_ISO157652_TxMessage" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vs_netid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "padding", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tx_index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id_mask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stMin", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "blockSize", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flowControlExtendedAddress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "extendedAddress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fs_timeout", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fs_wait", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "data", - "data_type": "uint8_t", - "array_length": 4096, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "num_bytes", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "id_29_bit_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id_29_bit_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "ext_address_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_ext_address_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "overrideSTmin", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "overrideBlockSize", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "paddingEnable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "iscanFD", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "isBRSEnabled", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 15, - "is_enum": false, - "enum_value": null - }, - { - "name": "tx_dl", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "flags", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "ISO15765_2015_TxMessage" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vs_netid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "padding", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tx_index", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id_mask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stMin", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "blockSize", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flowControlExtendedAddress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "extendedAddress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fs_timeout", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fs_wait", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "data", - "data_type": "uint8_t*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "num_bytes", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "tx_dl", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "id_29_bit_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id_29_bit_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "ext_address_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_ext_address_enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "overrideSTmin", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "overrideBlockSize", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "paddingEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "iscanFD", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "isBRSEnabled", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 7, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "flags", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "names": [ - "_stCM_ISO157652_RxMessage", - "stCM_ISO157652_RxMessage" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "vs_netid", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "padding", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "id_mask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flowControlExtendedAddress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "extendedAddress", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "blockSize", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stMin", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cf_timeout", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "id_29_bit_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_id_29_bit_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "ext_address_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "fc_ext_address_enable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "enableFlowControlTransmission", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "paddingEnable", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "iscanFD", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "isBRSEnabled", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "flags", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "reserved", - "data_type": "uint8_t", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "spyFilterLong" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusValue", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusMask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Status2Value", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Status2Mask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Header", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "HeaderMask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscDataMask", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ByteDataMSB", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ByteDataLSB", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ByteDataMaskMSB", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ByteDataMaskLSB", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "HeaderLength", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ByteDataLength", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "FrameMaster", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bUseArbIdRangeFilter", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bStuff2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExpectedLength", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessage", - "icsSpyMessage" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "descIdType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ArbIDOrHeader", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessageFlexRay", - "icsSpyMessageFlexRay" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "descIdType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "ArbIDOrHeader", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "id", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 12, - "is_enum": false, - "enum_value": null - }, - { - "name": "res1", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 4, - "is_enum": false, - "enum_value": null - }, - { - "name": "cycle", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 6, - "is_enum": false, - "enum_value": null - }, - { - "name": "chA", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "chB", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "startup", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "sync", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "null_frame", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "payload_preamble", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "frame_reserved", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "dynamic", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "hcrc_msbs", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 3, - "is_enum": false, - "enum_value": null - }, - { - "name": "res2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 5, - "is_enum": false, - "enum_value": null - }, - { - "name": "hcrc_lsbs", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "frame_len_12_5ns", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 16, - "is_enum": false, - "enum_value": null - }, - { - "name": "fcrc0", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "fcrc1", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "fcrc2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "tss_len_12_5ns", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessageMdio", - "icsSpyMessageMdio" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "descIdType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "ArbIDOrHeader", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "RegAddr", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 16, - "is_enum": false, - "enum_value": null - }, - { - "name": "PhyAddr", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 5, - "is_enum": false, - "enum_value": null - }, - { - "name": "DevType", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 5, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 6, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessagewBMS", - "icsSpyMessagewBMS" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "descIdType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "ArbIDOrHeader", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "PacketType", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "PacketID", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "PacketSource", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "APICode", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 8, - "is_enum": false, - "enum_value": null - }, - { - "name": "", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 24, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessageLong", - "icsSpyMessageLong" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "descIdType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ArbIDOrHeader", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DataMsb", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DataLsb", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessageJ1850", - "icsSpyMessageJ1850" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "descIdType", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Header", - "data_type": "uint8_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "void*", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_icsSpyMessageVSB", - "icsSpyMessageVSB" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "StatusBitField", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeHardware2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeSystem2", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampHardwareID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "TimeStampSystemID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NodeID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Protocol", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MessagePieceID", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ExtraDataPtrEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesHeader", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NumberBytesData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "NetworkID2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "DescriptionID", - "data_type": "int16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ArbIDOrHeader", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Data", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "StatusBitField3", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "StatusBitField4", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "AckBytes", - "data_type": "uint8_t", - "array_length": 8, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "ExtraDataPtr", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "MiscData", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Reserved", - "data_type": "uint8_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "_ethernetNetworkStatus_t", - "ethernetNetworkStatus_t" - ], - "data_type": "Struct", - "packing": 1, - "is_anonymous": false, - "members": [ - { - "name": "networkId", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "linkStatus", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "linkFullDuplex", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "linkSpeed", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "linkMode", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsFire2DeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "backupPowerGood", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "backupPowerEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "usbHostPowerEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetActivationLineEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsFire2VnetDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetActivationLineEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "unused", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsVcan4DeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetActivationLineEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "unused", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsFlexVnetzDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetActivationLineEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "unused", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsFire3DeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetActivationLineEnabled", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 3, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "ethernetActivationLineEnabled_2", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsRadMoonDuoDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsRadJupiterDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 7, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsOBD2ProDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsRadPlutoDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsVcan4IndustrialDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsRadEpsilonDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 9, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsRadBMSDeviceStatus" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "ethernetStatus", - "data_type": "ethernetNetworkStatus_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "icsDeviceStatus" - ], - "data_type": "Union", - "packing": 4, - "is_anonymous": false, - "members": [ - { - "name": "fire2Status", - "data_type": "icsFire2DeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4Status", - "data_type": "icsVcan4DeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "flexVnetzStatus", - "data_type": "icsFlexVnetzDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "fire3Status", - "data_type": "icsFire3DeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radMoonDuoStatus", - "data_type": "icsRadMoonDuoDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "jupiterStatus", - "data_type": "icsRadJupiterDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "obd2proStatus", - "data_type": "icsOBD2ProDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "plutoStatus", - "data_type": "icsRadPlutoDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "epsilonStatus", - "data_type": "icsRadEpsilonDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "vcan4indStatus", - "data_type": "icsVcan4IndustrialDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "radBMSStatus", - "data_type": "icsRadBMSDeviceStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "NDIS_ADAPTER_INFORMATION" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "szName", - "data_type": "char", - "array_length": 128, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "szDeviceName", - "data_type": "char", - "array_length": 64, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "Status", - "data_type": "unsigned long", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bMAC_Address", - "data_type": "unsigned char", - "array_length": 6, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bIPV6_Address", - "data_type": "unsigned char", - "array_length": 16, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "bIPV4_Address", - "data_type": "unsigned char", - "array_length": 4, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "EthernetPinConfig", - "data_type": "unsigned long", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPhyRegPktHdr", - "PhyRegPktHdr_t" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "numEntries", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "version", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "entryBytes", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPhyRegPktClause22Mess", - "PhyRegPktClause22Mess_t" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "phyAddr", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "page", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "regAddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "regVal", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPhyRegPktClause45Mess", - "PhyRegPktClause45Mess_t" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "port", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "device", - "data_type": "uint8_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "regAddr", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "regVal", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SPhyRegPkt", - "PhyRegPkt_t" - ], - "data_type": "Struct", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "names": [], - "data_type": "Struct", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "Enabled", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "WriteEnable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "Clause45Enable", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "status", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 3, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 2, - "is_enum": false, - "enum_value": null - }, - { - "name": "BusIndex", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 4, - "is_enum": false, - "enum_value": null - }, - { - "name": "version", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 4, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "name": "flags", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [], - "data_type": "Union", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "clause22", - "data_type": "PhyRegPktClause22Mess_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "clause45", - "data_type": "PhyRegPktClause45Mess_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - } - ] - } -] \ No newline at end of file diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h deleted file mode 100644 index 72c9e7cb3..000000000 --- a/icsnVC40_processed.h +++ /dev/null @@ -1,6249 +0,0 @@ -/* -Copyright (c) 2016 Intrepid Control Systems, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _ICSNVC40_H -#define _ICSNVC40_H - -#if defined(_MSC_VER) && (_MSC_VER <= 1500) -// Visual studio has extremely poor support for C99 pre-2010 -typedef signed char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef __int64 int64_t; - -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -typedef unsigned __int64 uint64_t; -#else -#include -#endif - -#if defined(_MSC_VER) -#pragma warning(disable : 4200) -#endif - -// MSVC++ 10.0 _MSC_VER == 1600 64-bit version doesn't allow multi-line #if directives... -#if defined(_WIN64) || defined(__x86_64__) || defined(__aarch64__) || defined(__x86_64__) || defined(__LP64__) || defined(_M_AMD64) || defined(_M_IA64) || defined(__PPC64__) -#define IS_64BIT_SYSTEM -#endif - -/* OpenPort "OpenType" Argument Constants -- deprecated, use OpenNeoDevice */ -#define NEOVI_COMMTYPE_RS232 0 -#define NEOVI_COMMTYPE_USB_BULK 1 -#define NEOVI_COMMTYPE_TCPIP 3 -#define NEOVI_COMMTYPE_FIRE_USB 5 - -/* Network IDs -- value of NetworkID member of icsSpyMessage */ -#define NETID_DEVICE 0 -#define NETID_HSCAN 1 -#define NETID_MSCAN 2 -#define NETID_SWCAN 3 -#define NETID_LSFTCAN 4 -#define NETID_FORDSCP 5 -#define NETID_J1708 6 -#define NETID_AUX 7 -#define NETID_JVPW 8 -#define NETID_ISO 9 -#define NETID_ISOPIC 10 -#define NETID_MAIN51 11 -#define NETID_RED 12 -#define NETID_SCI 13 -#define NETID_ISO2 14 -#define NETID_ISO14230 15 -#define NETID_LIN 16 -#define NETID_OP_ETHERNET1 17 -#define NETID_OP_ETHERNET2 18 -#define NETID_OP_ETHERNET3 19 -#define NETID_ISO3 41 -#define NETID_HSCAN2 42 -#define NETID_HSCAN3 44 -#define NETID_OP_ETHERNET4 45 -#define NETID_OP_ETHERNET5 46 -#define NETID_ISO4 47 -#define NETID_LIN2 48 -#define NETID_LIN3 49 -#define NETID_LIN4 50 -#define NETID_MOST 51 -#define NETID_RED_APP_ERROR 52 -#define NETID_CGI 53 -#define NETID_3G_RESET_STATUS 54 -#define NETID_3G_FB_STATUS 55 -#define NETID_3G_APP_SIGNAL_STATUS 56 -#define NETID_3G_READ_DATALINK_CM_TX_MSG 57 -#define NETID_3G_READ_DATALINK_CM_RX_MSG 58 -#define NETID_3G_LOGGING_OVERFLOW 59 -#define NETID_3G_READ_SETTINGS_EX 60 -#define NETID_HSCAN4 61 -#define NETID_HSCAN5 62 -#define NETID_RS232 63 -#define NETID_UART 64 -#define NETID_UART2 65 -#define NETID_UART3 66 -#define NETID_UART4 67 -#define NETID_SWCAN2 68 -#define NETID_ETHERNET_DAQ 69 -#define NETID_DATA_TO_HOST 70 -#define NETID_TEXTAPI_TO_HOST 71 -#define NETID_SPI1 72 -#define NETID_OP_ETHERNET6 73 -#define NETID_RED_VBAT 74 -#define NETID_OP_ETHERNET7 75 -#define NETID_OP_ETHERNET8 76 -#define NETID_OP_ETHERNET9 77 -#define NETID_OP_ETHERNET10 78 -#define NETID_OP_ETHERNET11 79 -#define NETID_FLEXRAY1A 80 -#define NETID_FLEXRAY1B 81 -#define NETID_FLEXRAY2A 82 -#define NETID_FLEXRAY2B 83 -#define NETID_LIN5 84 -#define NETID_FLEXRAY 85 -#define NETID_FLEXRAY2 86 -#define NETID_OP_ETHERNET12 87 -#define NETID_I2C1 88 -#define NETID_MOST25 90 -#define NETID_MOST50 91 -#define NETID_MOST150 92 -#define NETID_ETHERNET 93 -#define NETID_GMFSA 94 -#define NETID_TCP 95 -#define NETID_HSCAN6 96 -#define NETID_HSCAN7 97 -#define NETID_LIN6 98 -#define NETID_LSFTCAN2 99 -/** - * To the next person to add a network, please make it 523! - */ -#define NETID_HW_COM_LATENCY_TEST 512 -#define NETID_DEVICE_STATUS 513 -#define NETID_UDP 514 -#define NETID_AUTOSAR 515 -#define NETID_FORWARDED_MESSAGE 516 -#define NETID_I2C2 517 -#define NETID_I2C3 518 -#define NETID_I2C4 519 -#define NETID_ETHERNET2 520 -#define NETID_ETHERNET_TX_WRAP 521 -#define NETID_A2B_01 522 -#define NETID_A2B_02 523 -#define NETID_ETHERNET3 524 -#define NETID_ISM_LOGGER 525 -#define NETID_CAN_SWITCH 526 - -#define NETID_WBMS 532 -#define NETID_WBMS2 533 -#define NETID_DWCAN_09 534 -#define NETID_DWCAN_10 535 -#define NETID_DWCAN_11 536 -#define NETID_DWCAN_12 537 -#define NETID_DWCAN_13 538 -#define NETID_DWCAN_14 539 -#define NETID_DWCAN_15 540 -#define NETID_DWCAN_16 541 -#define NETID_LIN_07 542 -#define NETID_LIN_08 543 -#define NETID_SPI2 544 -#define NETID_MDIO_01 545 -#define NETID_MDIO_02 546 -#define NETID_MDIO_03 547 -#define NETID_MDIO_04 548 -#define NETID_MDIO_05 549 -#define NETID_MDIO_06 550 -#define NETID_MDIO_07 551 -#define NETID_MDIO_08 552 -#define NETID_OP_ETHERNET13 553 -#define NETID_OP_ETHERNET14 554 -#define NETID_OP_ETHERNET15 555 -#define NETID_OP_ETHERNET16 556 -#define NETID_SPI3 557 -#define NETID_SPI4 558 -#define NETID_SPI5 559 -#define NETID_SPI6 560 -#define NETID_SPI7 561 -#define NETID_SPI8 562 -#define NETID_LIN_09 563 -#define NETID_LIN_10 564 -#define NETID_LIN_11 565 -#define NETID_LIN_12 566 -#define NETID_LIN_13 567 -#define NETID_LIN_14 568 -#define NETID_LIN_15 569 -#define NETID_LIN_16 570 - -/* Upper boundry of Network IDs */ -#define NETID_MAX 100 -#define NETID_INVALID 0xffff - -/* Device types -- value of DeviceType of NeoDevice */ -/* Older devices have a value on a specific bit. Those values have not changed - * to support existing apps using the api. New devices can fill in between the - * existing ones. I know it hurts, but it's just a number! - */ -//clang-format off -#define NEODEVICE_UNKNOWN (0x00000000) -#define NEODEVICE_BLUE (0x00000001) -#define NEODEVICE_ECU_AVB (0x00000002) -#define NEODEVICE_RADSUPERMOON (0x00000003) -#define NEODEVICE_DW_VCAN (0x00000004) -#define NEODEVICE_RADMOON2 (0x00000005) -#define NEODEVICE_RADGIGALOG (0x00000006) /* AKA RADMARS */ -#define NEODEVICE_VCAN41 (0x00000007) -#define NEODEVICE_FIRE (0x00000008) -#define NEODEVICE_RADPLUTO (0x00000009) -#define NEODEVICE_VCAN42_EL (0x0000000a) -#define NEODEVICE_RADIO_CANHUB (0x0000000b) -#define NEODEVICE_NEOECU12 (0x0000000c) -#define NEODEVICE_OBD2_LC (0x0000000d) -#define NEODEVICE_RAD_MOON_DUO (0x0000000e) -#define NEODEVICE_FIRE3 (0x0000000f) -#define NEODEVICE_VCAN3 (0x00000010) -#define NEODEVICE_RADJUPITER (0x00000011) -#define NEODEVICE_VCAN4_IND (0x00000012) -#define NEODEVICE_GIGASTAR (0x00000013) -#define NEODEVICE_RED2 (0x00000014) -#define NEODEVICE_FIRE2_REDLINE (0x00000015) -#define NEODEVICE_ETHER_BADGE (0x00000016) -#define NEODEVICE_RAD_A2B (0x00000017) -#define NEODEVICE_RADEPSILON (0x00000018) -#define NEODEVICE_OBD2_SIM_DOIP (0x00000019) -#define NEODEVICE_OBD2_DEV (0x0000001a) -#define NEODEVICE_ECU22 (0x0000001b) -#define NEODEVICE_RADEPSILON_T (0x0000001c) -#define NEODEVICE_RADEPSILON_EXPRESS (0x0000001d) -#define NEODEVICE_RADPROXIMA (0x0000001e) - -// I'm not sure what was 0x20 anymore, but we'll skip it to be safe -#define NEODEVICE_RAD_GALAXY_2 (0x00000021) -#define NEODEVICE_RAD_BMS (0x00000022) -#define NEODEVICE_RADMOON3 (0x00000023) -#define NEODEVICE_RADCOMET (0x00000024) -#define NEODEVICE_FIRE3_FLEXRAY (0x00000025) -#define NEODEVICE_NEOVI_CONNECT (0x00000026) -#define NEODEVICE_RADCOMET3 (0x00000027) -#define NEODEVICE_RADMOONT1S (0x00000028) -#define NEODEVICE_GIGASTAR2 (0x00000029) - -#define NEODEVICE_RED (0x00000040) -#define NEODEVICE_ECU (0x00000080) -#define NEODEVICE_IEVB (0x00000100) -#define NEODEVICE_PENDANT (0x00000200) -#define NEODEVICE_OBD2_PRO (0x00000400) -#define NEODEVICE_ECUCHIP_UART (0x00000800) -#define NEODEVICE_PLASMA (0x00001000) -#define NEODEVICE_DONT_REUSE0 (0x00002000) // NEODEVICE_FIRE_VNET -#define NEODEVICE_NEOANALOG (0x00004000) -#define NEODEVICE_CT_OBD (0x00008000) -#define NEODEVICE_DONT_REUSE1 (0x00010000) // NEODEVICE_PLASMA_1_12 -#define NEODEVICE_DONT_REUSE2 (0x00020000) // NEODEVICE_PLASMA_1_13 -#define NEODEVICE_ION (0x00040000) -#define NEODEVICE_RADSTAR (0x00080000) -#define NEODEVICE_DONT_REUSE3 (0x00100000) // NEODEVICE_ION3 -#define NEODEVICE_VCAN44 (0x00200000) -#define NEODEVICE_VCAN42 (0x00400000) -#define NEODEVICE_CMPROBE (0x00800000) -#define NEODEVICE_EEVB (0x01000000) -#define NEODEVICE_DONT_REUSE4 (0x02000000) -#define NEODEVICE_FIRE2 (0x04000000) -#define NEODEVICE_FLEX (0x08000000) -#define NEODEVICE_RADGALAXY (0x10000000) -#define NEODEVICE_RADSTAR2 (0x20000000) -#define NEODEVICE_VIVIDCAN (0x40000000) -#define NEODEVICE_OBD2_SIM (0x80000000) -#define NEODEVICE_ANY_PLASMA (NEODEVICE_PLASMA) -#define NEODEVICE_ANY_ION (NEODEVICE_ION) -#define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB -//clang-format on - -#define DEVICECOUNT_FOR_EXPLORER (48) // this value will be checked by the NeoViExplorer after #6453! - -#define ISO15765_2_NETWORK_HSCAN 0x01 -#define ISO15765_2_NETWORK_MSCAN 0x02 -#define ISO15765_2_NETWORK_HSCAN2 0x04 -#define ISO15765_2_NETWORK_HSCAN3 0x08 -#define ISO15765_2_NETWORK_SWCAN 0x10 -#define ISO15765_2_NETWORK_HSCAN4 0x14 -#define ISO15765_2_NETWORK_HSCAN5 0x18 -#define ISO15765_2_NETWORK_HSCAN6 0x1C -#define ISO15765_2_NETWORK_HSCAN7 0x20 -#define ISO15765_2_NETWORK_SWCAN2 0x24 - -#define PLASMA_SLAVE1_OFFSET 100 -#define PLASMA_SLAVE2_OFFSET 200 -#define PLASMA_SLAVE_NUM 51 - -#define PLASMA_SLAVE1_OFFSET_RANGE2 4608 -#define PLASMA_SLAVE2_OFFSET_RANGE2 8704 -#define PLASMA_SLAVE3_OFFSET_RANGE2 12800 - -#define SCRIPT_STATUS_STOPPED 0 -#define SCRIPT_STATUS_RUNNING 1 - -#define SCRIPT_LOCATION_FLASH_MEM 0 -#define SCRIPT_LOCATION_INTERNAL_FLASH 2 -#define SCRIPT_LOCATION_SDCARD 1 -#define SCRIPT_LOCATION_VCAN3_MEM 4 -#define SCRIPT_LOCATION_EMMC 6 - -/* Protocols -- value of Protocol member of icsSpyMessage */ -#define SPY_PROTOCOL_CUSTOM 0 -#define SPY_PROTOCOL_CAN 1 -#define SPY_PROTOCOL_GMLAN 2 -#define SPY_PROTOCOL_J1850VPW 3 -#define SPY_PROTOCOL_J1850PWM 4 -#define SPY_PROTOCOL_ISO9141 5 -#define SPY_PROTOCOL_Keyword2000 6 -#define SPY_PROTOCOL_GM_ALDL_UART 7 -#define SPY_PROTOCOL_CHRYSLER_CCD 8 -#define SPY_PROTOCOL_CHRYSLER_SCI 9 -#define SPY_PROTOCOL_FORD_UBP 10 -#define SPY_PROTOCOL_BEAN 11 -#define SPY_PROTOCOL_LIN 12 -#define SPY_PROTOCOL_J1708 13 -#define SPY_PROTOCOL_CHRYSLER_JVPW 14 -#define SPY_PROTOCOL_J1939 15 -#define SPY_PROTOCOL_FLEXRAY 16 -#define SPY_PROTOCOL_MOST 17 -#define SPY_PROTOCOL_CGI 18 -#define SPY_PROTOCOL_GME_CIM_SCL_KLINE 19 -#define SPY_PROTOCOL_SPI 20 -#define SPY_PROTOCOL_I2C 21 -#define SPY_PROTOCOL_GENERIC_UART 22 -#define SPY_PROTOCOL_JTAG 23 -#define SPY_PROTOCOL_UNIO 24 -#define SPY_PROTOCOL_DALLAS_1WIRE 25 -#define SPY_PROTOCOL_GENERIC_MANCHSESTER 26 -#define SPY_PROTOCOL_SENT_PROTOCOL 27 -#define SPY_PROTOCOL_UART 28 -#define SPY_PROTOCOL_ETHERNET 29 -#define SPY_PROTOCOL_CANFD 30 -#define SPY_PROTOCOL_GMFSA 31 -#define SPY_PROTOCOL_TCP 32 -#define SPY_PROTOCOL_UDP 33 -#define SPY_PROTOCOL_AUTOSAR 34 -#define SPY_PROTOCOL_A2B 35 -#define SPY_PROTOCOL_WBMS 36 -#define SPY_PROTOCOL_MDIO 37 - -/* Bitmasks for StatusBitField member of icsSpyMessage */ -#define SPY_STATUS_GLOBAL_ERR 0x01 -#define SPY_STATUS_TX_MSG 0x02 -#define SPY_STATUS_XTD_FRAME 0x04 -#define SPY_STATUS_REMOTE_FRAME 0x08 -#define SPY_STATUS_CRC_ERROR 0x10 -#define SPY_STATUS_CAN_ERROR_PASSIVE 0x20 -#define SPY_STATUS_HEADERCRC_ERROR 0x20 -#define SPY_STATUS_INCOMPLETE_FRAME 0x40 -#define SPY_STATUS_LOST_ARBITRATION 0x80 -#define SPY_STATUS_UNDEFINED_ERROR 0x100 -#define SPY_STATUS_CAN_BUS_OFF 0x200 -#define SPY_STATUS_BUS_RECOVERED 0x400 -#define SPY_STATUS_BUS_SHORTED_PLUS 0x800 -#define SPY_STATUS_BUS_SHORTED_GND 0x1000 -#define SPY_STATUS_CHECKSUM_ERROR 0x2000 -#define SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR 0x4000 -#define SPY_STATUS_TX_NOMATCH 0x8000 -#define SPY_STATUS_COMM_IN_OVERFLOW 0x10000 -#define SPY_STATUS_EXPECTED_LEN_MISMATCH 0x20000 -#define SPY_STATUS_MSG_NO_MATCH 0x40000 -#define SPY_STATUS_BREAK 0x80000 -#define SPY_STATUS_AVSI_REC_OVERFLOW 0x100000 -#define SPY_STATUS_TEST_TRIGGER 0x200000 -#define SPY_STATUS_AUDIO_COMMENT 0x400000 -#define SPY_STATUS_GPS_DATA 0x800000 -#define SPY_STATUS_ANALOG_DIGITAL_INPUT 0x1000000 -#define SPY_STATUS_TEXT_COMMENT 0x2000000 -#define SPY_STATUS_NETWORK_MESSAGE_TYPE 0x4000000 -#define SPY_STATUS_VSI_TX_UNDERRUN 0x8000000 -#define SPY_STATUS_VSI_IFR_CRC_BIT 0x10000000 -#define SPY_STATUS_INIT_MESSAGE 0x20000000 -#define SPY_STATUS_LIN_MASTER 0x20000000 -#define SPY_STATUS_CANFD 0x20000000 -#define SPY_STATUS_A2B_CONTROL 0x10000000 -#define SPY_STATUS_A2B_SCF_VALID_WAITING 0x08 -#define SPY_STATUS_A2B_MONITOR 0x20000000 -#define SPY_STATUS_A2B_UPSTREAM 0x40000000 -#define SPY_STATUS_PDU 0x10000000 -#define SPY_STATUS_FLEXRAY_PDU SPY_STATUS_PDU -#define SPY_STATUS_HIGH_SPEED 0x40000000 -#define SPY_STATUS_EXTENDED 0x80000000 /* if this bit is set than decode StatusBitField3 in AckBytes */ -#define SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET 0x40000000 -#define SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT 0x08 - -/* Bitmasks for StatusBitField2 member of icsSpyMessage */ -#define SPY_STATUS2_HAS_VALUE 0x1 -#define SPY_STATUS2_VALUE_IS_BOOLEAN 0x2 -#define SPY_STATUS2_HIGH_VOLTAGE 0x4 -#define SPY_STATUS2_LONG_MESSAGE 0x8 -#define SPY_STATUS2_GLOBAL_CHANGE 0x10000 -#define SPY_STATUS2_ERROR_FRAME 0x20000 -#define SPY_STATUS2_END_OF_LONG_MESSAGE 0x100000 - -/* I2C Specific - check protocol before handling */ -#define SPY_STATUS2_I2C_ERR_TIMEOUT 0x200000 -#define SPY_STATUS2_I2C_ERR_NACK 0x400000 -#define SPY_STATUS2_I2C_DIR_READ 0x800000 - -/* MDIO Specific - check protocol before handling */ -#define SPY_STATUS2_MDIO_ERR_TIMEOUT 0x200000 -#define SPY_STATUS2_MDIO_JOB_CANCELLED 0x400000 -#define SPY_STATUS2_MDIO_INVALID_BUS 0x800000 -#define SPY_STATUS2_MDIO_INVALID_PHYADDR 0x1000000 -#define SPY_STATUS2_MDIO_INVALID_REGADDR 0x2000000 -#define SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE 0x4000000 -#define SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE 0x8000000 -#define SPY_STATUS2_MDIO_OVERFLOW 0x10000000 -#define SPY_STATUS2_MDIO_CLAUSE45 0x20000000 -#define SPY_STATUS2_MDIO_READ 0x40000000 - -/* LIN/ISO Specific - check protocol before handling */ -#define SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 0x200000 -#define SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT 0x400000 -#define SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 0x800000 -#define SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 0x1000000 -#define SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH 0x2000000 -#define SPY_STATUS2_LIN_ERR_MSG_ID_PARITY 0x4000000 -#define SPY_STATUS2_ISO_FRAME_ERROR 0x8000000 -#define SPY_STATUS2_LIN_SYNC_FRAME_ERROR 0x8000000 -#define SPY_STATUS2_ISO_OVERFLOW_ERROR 0x10000000 -#define SPY_STATUS2_LIN_ID_FRAME_ERROR 0x10000000 -#define SPY_STATUS2_ISO_PARITY_ERROR 0x20000000 -#define SPY_STATUS2_LIN_SLAVE_BYTE_ERROR 0x20000000 -#define SPY_STATUS2_RX_TIMEOUT_ERROR 0x40000000 -#define SPY_STATUS2_LIN_NO_SLAVE_DATA 0x80000000 -#define SPY_STATUS3_LIN_JUST_BREAK_SYNC 0x1 -#define SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT 0x2 -#define SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE 0x4 - -/* MOST Specific - check protocol before handling */ -#define SPY_STATUS2_MOST_PACKET_DATA 0x200000 -#define SPY_STATUS2_MOST_STATUS 0x400000 /* reflects changes in light/lock/MPR/SBC/etc... */ -#define SPY_STATUS2_MOST_LOW_LEVEL 0x800000 /* MOST low level message, allocs, deallocs, remote requests...*/ -#define SPY_STATUS2_MOST_CONTROL_DATA 0x1000000 -#define SPY_STATUS2_MOST_MHP_USER_DATA 0x2000000 /* MOST HIGH User Data Frame */ -#define SPY_STATUS2_MOST_MHP_CONTROL_DATA 0x4000000 /* MOST HIGH Control Data */ -#define SPY_STATUS2_MOST_I2S_DUMP 0x8000000 -#define SPY_STATUS2_MOST_TOO_SHORT 0x10000000 -#define SPY_STATUS2_MOST_MOST50 0x20000000 /* absence of MOST50 and MOST150 implies it's MOST25 */ -#define SPY_STATUS2_MOST_MOST150 0x40000000 -#define SPY_STATUS2_MOST_CHANGED_PAR 0x80000000 /* first byte in ack reflects what changed. */ - -/* Ethernet Specific - check protocol before handling */ -#define SPY_STATUS2_ETHERNET_CRC_ERROR 0x200000 -#define SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT 0x400000 -#define SPY_STATUS2_ETHERNET_FCS_AVAILABLE 0x800000 /* This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR) */ -#define SPY_STATUS2_ETHERNET_NO_PADDING 0x1000000 -#define SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED 0x2000000 -#define SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS 0x4000000 -#define SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED 0x8000000 -#define SPY_STATUS2_ETHERNET_FCS_VERIFIED 0x10000000 -#define SPY_STATUS2_ETHERNET_T1S_SYMBOL 0x20000000 -#define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 -#define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 -#define SPY_STATUS3_ETHERNET_TX_COLLISION 0x00000001 - -/* FlexRay Specific - check protocol before handling */ -#define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 -#define SPY_STATUS2_FLEXRAY_TX_AB_NO_A 0x400000 -#define SPY_STATUS2_FLEXRAY_TX_AB_NO_B 0x800000 -#define SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH 0x1000000 -#define SPY_STATUS2_FLEXRAY_NO_CRC 0x2000000 -#define SPY_STATUS2_FLEXRAY_NO_HEADERCRC 0x4000000 - -/* CAN/CAN-FD Specific - check protocol before handling */ -#define SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME 0x200000 -#define SPY_STATUS2_CAN_HAVE_LINK_DATA 0x400000 - -/* wBMS Specific - check protocol before handling */ -#define SPY_STATUS2_WBMS_API_IS_CALLBACK 0x200000 - -/* CAN-FD Specific - check protocol before handling */ -#define SPY_STATUS3_CANFD_ESI 0x01 -#define SPY_STATUS3_CANFD_IDE 0x02 -#define SPY_STATUS3_CANFD_RTR 0x04 -#define SPY_STATUS3_CANFD_FDF 0x08 -#define SPY_STATUS3_CANFD_BRS 0x10 - -/* Configuration Array constants */ -/* HSCAN neoVI or ValueCAN */ -#define NEO_CFG_MPIC_HS_CAN_CNF1 (512 + 10) -#define NEO_CFG_MPIC_HS_CAN_CNF2 (512 + 9) -#define NEO_CFG_MPIC_HS_CAN_CNF3 (512 + 8) -#define NEO_CFG_MPIC_HS_CAN_MODE (512 + 54) - -/* med speed neoVI CAN */ -#define NEO_CFG_MPIC_MS_CAN_CNF1 (512 + 22) -#define NEO_CFG_MPIC_MS_CAN_CNF2 (512 + 21) -#define NEO_CFG_MPIC_MS_CAN_CNF3 (512 + 20) - -/* med speed neoVI CAN */ -#define NEO_CFG_MPIC_SW_CAN_CNF1 (512 + 34) -#define NEO_CFG_MPIC_SW_CAN_CNF2 (512 + 33) -#define NEO_CFG_MPIC_SW_CAN_CNF3 (512 + 32) - -/* med speed neoVI CAN */ -#define NEO_CFG_MPIC_LSFT_CAN_CNF1 (512 + 46) -#define NEO_CFG_MPIC_LSFT_CAN_CNF2 (512 + 45) -#define NEO_CFG_MPIC_LSFT_CAN_CNF3 (512 + 44) - -/* Constants used to calculate timestamps */ -#define NEOVI_TIMESTAMP_2 0.1048576 -#define NEOVI_TIMESTAMP_1 0.0000016 - -#define NEOVIPRO_VCAN_TIMESTAMP_2 0.065536 -#define NEOVIPRO_VCAN_TIMESTAMP_1 0.000001 - -#define NEOVI6_VCAN_TIMESTAMP_2 0.065536 -#define NEOVI6_VCAN_TIMESTAMP_1 0.000001 - -#define NEOVI_RED_TIMESTAMP_2_25NS 107.3741824 -#define NEOVI_RED_TIMESTAMP_1_25NS 0.000000025 - -#define NEOVI_RED_TIMESTAMP_2_10NS 429.4967296 -#define NEOVI_RED_TIMESTAMP_1_10NS 0.000000010 - -#define HARDWARE_TIMESTAMP_ID_NONE (unsigned char)0 -#define HARDWARE_TIMESTAMP_ID_VSI (unsigned char)1 -#define HARDWARE_TIMESTAMP_ID_AVT_716 (unsigned char)2 -#define HARDWARE_TIMESTAMP_ID_NI_CAN (unsigned char)3 -#define HARDWARE_TIMESTAMP_ID_NEOVI (unsigned char)4 -#define HARDWARE_TIMESTAMP_ID_AVT_717 (unsigned char)5 -#define HARDWARE_TIMESTAMP_ID_NEOv6_VCAN (unsigned char)6 -#define HARDWARE_TIMESTAMP_ID_DOUBLE_SEC (unsigned char)7 -#define HARDWARE_TIMESTAMP_ID_NEORED_10US (unsigned char)8 -#define HARDWARE_TIMESTAMP_ID_NEORED_25NS (unsigned char)9 -#define HARDWARE_TIMESTAMP_ID_NEORED_10NS (unsigned char)10 - -// flag to indicate if the timestamp is a fixed value, or if it is a timestamp referenced to a network object -// if this flag is NOT set, then the TimeStampHardwareID is a 1-based index for GetHWAt(index) -// see CMessageTimeDecoder::GetSpyTimeType() -// see cicsSpyCE::GetSpyTimeType() -#define HADRWARE_TIMESTAMP_ID_FIXED 0x80 - -#define FIRE2_REPORT_PERIODIC (0x0001) -#define FIRE2_REPORT_EMISC1_DIGITAL (0x0002) -#define FIRE2_REPORT_EMISC2_DIGITAL (0x0004) -#define FIRE2_REPORT_MISC5_DIGITAL (0x0008) -#define FIRE2_REPORT_MISC6_DIGITAL (0x0010) -#define FIRE2_REPORT_EMISC1_ANALOG (0x0020) -#define FIRE2_REPORT_EMISC2_ANALOG (0x0040) -#define FIRE2_REPORT_VBATT_ANALOG (0x0080) -#define FIRE2_REPORT_TEMP_ANALOG (0x0100) -#define FIRE2_REPORT_PWM_IN (0x0200) -#define FIRE2_REPORT_GPS (0x0400) -#define FIRE3_REPORT_ORIENTATION (0x0800) - -typedef struct SExtendedDataFlashHeader -{ - uint16_t version; - uint16_t chksum; - uint32_t len; -} ExtendedDataFlashHeader_t; - -typedef struct -{ - uint32_t DeviceType; - int32_t Handle; - int32_t NumberOfClients; - int32_t SerialNumber; - int32_t MaxAllowedClients; - -} NeoDevice; - -typedef struct _NeoDeviceEx -{ - NeoDevice neoDevice; - - uint32_t FirmwareMajor; - uint32_t FirmwareMinor; - -#define CANNODE_STATUS_COREMINI_IS_RUNNING (0x1) -#define CANNODE_STATUS_IN_BOOTLOADER (0x2) - uint32_t Status; // Bitfield, see defs above - -// Option bit flags -#define MAIN_VNET (0x01) -#define SLAVE_VNET_A (0x02) -#define SLAVE_VNET_B (0x04) -#define WIFI_CONNECTION (0x08) -#define REGISTER_BY_SERIAL (0x10) -#define TCP_SUPPORTED (0x20) -#define DRIVER_MASK (0xC0) -#define DRIVER_USB1 (0x40) -#define DRIVER_USB2 (0x80) -#define DRIVER_USB3 (0xC0) - uint32_t Options; - - void* pAvailWIFINetwork; - void* pWIFIInterfaceInfo; - - int isEthernetDevice; - - uint8_t MACAddress[6]; - uint16_t hardwareRev; - uint16_t revReserved; - uint32_t tcpIpAddress[4]; - uint16_t tcpPort; - uint16_t Reserved0; - uint32_t Reserved1; - -} NeoDeviceEx; - -typedef union tagOptionsOpenNeoEx -{ - struct - { - int32_t iNetworkID; /* Network ID indicating which CAN network to communicate over */ - } CANOptions; - - uint32_t Reserved[16]; /* may be expanded in future revisions */ -} OptionsOpenNeoEx, *POptionsOpenNeoEx; - -typedef union tagOptionsFindNeoEx -{ - struct - { - int32_t iNetworkID; /* Network ID indicating which CAN network to communicate over */ - } CANOptions; - uint32_t Reserved[16]; /* may be expanded in future revisions */ - -} OptionsFindNeoEx, *POptionsFindNeoEx; - -typedef struct tagicsneoVICommand -{ - uint8_t CommandType; - uint8_t CommandByteLength; - uint8_t Data[14]; -} icsneoVICommand; - -#pragma pack(push, 1) - -typedef struct _stAPIFirmwareInfo -{ - int32_t iType; /* 1,2,3 for Generation of HW */ - - /* Date and Time (only valid for type 1 and 2) */ - int32_t iMainFirmDateDay; - int32_t iMainFirmDateMonth; - int32_t iMainFirmDateYear; - int32_t iMainFirmDateHour; - int32_t iMainFirmDateMin; - int32_t iMainFirmDateSecond; - int32_t iMainFirmChkSum; - - /* Version data (only valid for type 3) */ - uint8_t iAppMajor; - uint8_t iAppMinor; - - uint8_t iManufactureDay; - uint8_t iManufactureMonth; - uint16_t iManufactureYear; - - uint8_t iBoardRevMajor; - uint8_t iBoardRevMinor; - - uint8_t iBootLoaderVersionMajor; - uint8_t iBootLoaderVersionMinor; - uint8_t iMainVnetHWrevMajor; - uint8_t iMainVnetHWrevMinor; - uint8_t iMainVnetSRAMSize; - - uint8_t iPhySiliconRev; -} stAPIFirmwareInfo; - -#pragma pack(pop) - -/* Settings structures come are all packed to 2 bytes */ -#pragma pack(push, 2) - -/* SetBaudrate in CAN_SETTINGS */ -enum -{ - AUTO, - USE_TQ -}; - -/* Baudrate in CAN_SETTINGS/CANFD_SETTINGS */ -enum -{ - BPS20, - BPS33, - BPS50, - BPS62, - BPS83, - BPS100, - BPS125, - BPS250, - BPS500, - BPS800, - BPS1000, - BPS666, - BPS2000, - BPS4000, - CAN_BPS5000, - CAN_BPS6667, - CAN_BPS8000, - CAN_BPS10000, -}; - -/* Mode in CAN_SETTINGS */ -enum -{ - NORMAL = 0, - DISABLE = 1, - LOOPBACK = 2, - LISTEN_ONLY = 3, - LISTEN_ALL = 7 -}; - -typedef struct -{ - uint8_t Mode; - uint8_t SetBaudrate; - uint8_t Baudrate; - uint8_t transceiver_mode; - uint8_t TqSeg1; - uint8_t TqSeg2; - uint8_t TqProp; - uint8_t TqSync; - uint16_t BRP; - uint8_t auto_baud; - uint8_t innerFrameDelay25us; -} CAN_SETTINGS; -#define CAN_SETTINGS_SIZE 12 - -/* FDMode in CANFD_SETTINGS */ -enum -{ - NO_CANFD, - CANFD_ENABLED, - CANFD_BRS_ENABLED, - CANFD_ENABLED_ISO, - CANFD_BRS_ENABLED_ISO -}; - -typedef struct _CANFD_SETTINGS -{ - uint8_t FDMode; /* mode, secondary baudrate for canfd */ - uint8_t FDBaudrate; - uint8_t FDTqSeg1; - uint8_t FDTqSeg2; - uint8_t FDTqProp; - uint8_t FDTqSync; - uint16_t FDBRP; - uint8_t FDTDC; - uint8_t reserved; -} CANFD_SETTINGS; -#define CANFD_SETTINGS_SIZE 10 - -/* high_speed_auto_switch in SWCAN_SETTINGS */ -enum -{ - SWCAN_AUTOSWITCH_DISABLED, - SWCAN_AUTOSWITCH_NO_RESISTOR, - SWCAN_AUTOSWITCH_WITH_RESISTOR, - SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED -}; - -typedef struct -{ - uint8_t Mode; - uint8_t SetBaudrate; - uint8_t Baudrate; - uint8_t transceiver_mode; - uint8_t TqSeg1; - uint8_t TqSeg2; - uint8_t TqProp; - uint8_t TqSync; - uint16_t BRP; - uint16_t high_speed_auto_switch; - uint8_t auto_baud; - uint8_t RESERVED; -} SWCAN_SETTINGS; -#define SWCAN_SETTINGS_SIZE 14 - -/* Baudrate in LIN_SETTINGS / ISO9141_KEYWORD2000_SETTINGS / UART_SETTINGS */ -enum -{ - BPS5000, - BPS10400, - BPS33333, - BPS50000, - BPS62500, - BPS71429, - BPS83333, - BPS100000, - BPS117647 -}; - -/* MasterResistor in LIN_SETTINGS */ -enum -{ - RESISTOR_ON, - RESISTOR_OFF -}; - -/* Mode in LIN_SETTINGS */ -enum -{ - SLEEP_MODE, - SLOW_MODE, - NORMAL_MODE, - FAST_MODE -}; - -typedef struct _LIN_SETTINGS -{ - uint32_t Baudrate; /* New products since FIREVNETEP should rely on this only */ - uint16_t spbrg; /* Precompiled to be 40Mhz/Baudrate/16 - 1. Only used in neoVI FIRE/FIREVNET(4dw) */ - uint8_t brgh; /* Must be zero */ - uint8_t numBitsDelay; - uint8_t MasterResistor; - uint8_t Mode; -} LIN_SETTINGS; -#define LIN_SETTINGS_SIZE 10 - -typedef struct -{ - uint16_t time_500us; - uint16_t k; - uint16_t l; -} ISO9141_KEYWORD2000__INIT_STEP; -#define ISO9141_KEYWORD2000__INIT_STEP_SIZE 6 - -typedef struct -{ - uint32_t Baudrate; - uint16_t spbrg; - uint16_t brgh; - ISO9141_KEYWORD2000__INIT_STEP init_steps[16]; - uint8_t init_step_count; - uint16_t p2_500us; - uint16_t p3_500us; - uint16_t p4_500us; - uint16_t chksum_enabled; -} ISO9141_KEYWORD2000_SETTINGS; -#define ISO9141_KEYWORD2000_SETTINGS_SIZE 114 - -typedef struct _UART_SETTINGS -{ - uint16_t Baudrate; - uint16_t spbrg; - uint16_t brgh; - uint16_t parity; - uint16_t stop_bits; - uint8_t flow_control; /* 0- off, 1 - Simple CTS RTS */ - uint8_t reserved_1; - union - { - uint32_t bOptions; - struct - { - unsigned invert_tx : 1; - unsigned invert_rx : 1; - unsigned half_duplex : 1; - unsigned reserved_bits : 13; - unsigned reserved_bits2 : 16; - }; - }; -} UART_SETTINGS; -#define UART_SETTINGS_SIZE 16 - -typedef struct -{ - uint16_t enable_convert_mode; -} J1708_SETTINGS; -#define J1708_SETTINGS_SIZE 2 - -typedef struct _SRedSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; -} SRedSettings; -#define SRedSettings_SIZE 44 - -typedef struct _STextAPISettings -{ - uint32_t can1_tx_id; - uint32_t can1_rx_id; - union - { - struct - { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can1_options; - uint32_t can2_tx_id; - uint32_t can2_rx_id; - union - { - struct - { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can2_options; - - uint32_t network_enables; - - uint32_t can3_tx_id; - uint32_t can3_rx_id; - union - { - struct - { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can3_options; - - uint32_t can4_tx_id; - uint32_t can4_rx_id; - union - { - struct - { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can4_options; - - uint32_t reserved[5]; - -} STextAPISettings; -#define STextAPISettings_SIZE 72 - -typedef union _stChipVersions -{ - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - uint8_t upic_maj; - uint8_t upic_min; - uint8_t lpic_maj; - uint8_t lpic_min; - uint8_t jpic_maj; - uint8_t jpic_min; - } fire_versions; - - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - uint8_t core_maj; - uint8_t core_min; - uint8_t lpic_maj; - uint8_t lpic_min; - uint8_t hid_maj; - uint8_t hid_min; - } plasma_fire_vnet; - - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - } vcan3_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgalaxy_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radstar2_versions; - - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - uint8_t ext_flash_maj; - uint8_t ext_flash_min; - uint8_t nrf52_maj; - uint8_t nrf52_min; - } vividcan_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } cmprobe_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - uint8_t core_major; - uint8_t core_minor; - } obd2pro_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } vcan41_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } vcan42_versions; - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } neoecu_avb_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radsupermoon_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radmoon2_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radmoon2_z7010_versions; - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } radmoon3_versions; - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } pluto_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigalog_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigalog3_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigastar_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigastar_usbz_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radGalaxy2_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - } obd2lc_versions; - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } jupiter_versions; - - struct - { - uint8_t zchip_major; - uint8_t zchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - } red2_versions; - struct - { - uint8_t zchip_major; - uint8_t zchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - uint8_t vem_z_major; - uint8_t vem_z_minor; - } fire3_versions; - struct - { - uint8_t zchip_major; - uint8_t zchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - uint8_t vem_z_major; - uint8_t vem_z_minor; - uint8_t vem_f_major; - uint8_t vem_f_minor; - } fire3_flexray_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } rad_moon_duo_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - } obd2dev_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } ether_badge_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } rad_a2b_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } epsilon_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - uint8_t wil_major; - uint8_t wil_minor; - } rad_wbms_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } rad_comet_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } rad_comet3_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigastar2_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } rad_moont1s_versions; - - struct - { - uint8_t zchip_major; - uint8_t zchip_minor; - } neovi_connect_versions; - -} stChipVersions; - -#define stChipVersions_SIZE 8 - -typedef struct _SNeoMostGatewaySettings -{ - uint16_t netId; - uint8_t zero0; - uint8_t Config; -} SNeoMostGatewaySettings; -#define SNeoMostGatewaySettings_SIZE 4 - -/* ucInterfaceType in OP_ETH_GENERAL_SETTINGS */ -enum -{ - OPETH_FUNC_TAP = 0, - OPETH_FUNC_MEDIACONVERTER, - OPETH_FUNC_TAP_LOW_LATENCY, - OPETH_FUNC_RAW_MEDIA_CONVERTER, - OPETH_FUNC_RAW_MEDIA_CONVERTER2, - OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY, -}; - -typedef struct OP_ETH_GENERAL_SETTINGS_t -{ - uint8_t ucInterfaceType; - union - { - uint8_t tapPairOpt; - struct - { - uint8_t tap1ToVspy : 1; - uint8_t tap2ToVspy : 1; - uint8_t tap3ToVspy : 1; - uint8_t tap4ToVspy : 1; - uint8_t tap5ToVspy : 1; - uint8_t tap6ToVspy : 1; - uint8_t tap7ToVspy : 1; - uint8_t tap8ToVspy : 1; - }; - }; - uint8_t reserved0[2]; - uint16_t tapPair0; - uint16_t tapPair1; - uint16_t tapPair2; - uint16_t tapPair3; - uint16_t tapPair4; - uint16_t tapPair5; - union - { - struct - { - uint32_t bTapEnSwitch : 1; - uint32_t bTapEnPtp : 1; - uint32_t bEnReportLinkQuality : 1; - uint32_t bEnTapTxReceipts : 1; - uint32_t reserved : 28; - } flags; - uint32_t uFlags; - }; -} OP_ETH_GENERAL_SETTINGS; -#define OP_ETH_GENERAL_SETTINGS_SIZE 20 - -typedef struct SRAD_GPTP_SETTINGS_s -{ - uint32_t neighborPropDelayThresh; // ns - uint32_t sys_phc_sync_interval; // ns - int8_t logPDelayReqInterval; // log2ms - int8_t logSyncInterval; // log2ms - int8_t logAnnounceInterval; // log2ms - uint8_t profile; - uint8_t priority1; - uint8_t clockclass; - uint8_t clockaccuracy; - uint8_t priority2; - uint16_t offset_scaled_log_variance; - uint8_t gPTPportRole; - uint8_t gptpEnabledPort; - uint8_t enableClockSyntonization; - uint8_t rsvd[15]; -} RAD_GPTP_SETTINGS; // 36 Bytes -#define RAD_GPTP_SETTINGS_SIZE 36 - -typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s -{ - RAD_GPTP_SETTINGS gPTP; - OP_ETH_GENERAL_SETTINGS tap; -} RAD_GPTP_AND_TAP_SETTINGS; -#define RAD_GPTP_AND_TAP_SETTINGS_SIZE 40 - -/* ucConfigMode in OP_ETH_SETTINGS */ -typedef enum _opEthLinkMode -{ - OPETH_LINK_AUTO = 0, - OPETH_LINK_MASTER, - OPETH_LINK_SLAVE -} opEthLinkMode; - -enum -{ - OPETH_MAC_SPOOF_DST_ADDR = 0, - OPETH_MAC_SPOOF_SRC_ADDR = 1, -}; - -typedef struct OP_ETH_SETTINGS_t -{ - uint8_t ucConfigMode; - uint8_t preemption_en; - union - { - struct - { - // Reuse the mac_addr for switch mode if required! - uint8_t mac_addr1[6]; // Original Addr for spoofing - uint8_t mac_addr2[6]; // Target Addr for spoofing - uint16_t mac_spoofing_en : 1; - uint16_t mac_spoofing_isDstOrSrc : 1; - uint16_t link_spd : 2; - uint16_t q2112_phy_mode : 1; - uint16_t macsec_en : 1; // enable loading MACsec config on boot - uint16_t compliance_mode_en : 1; - uint16_t cut_thru_tap : 1; - uint16_t snf_tap : 1; // store and forward - uint16_t disable_tap_to_host : 1; - uint16_t show_tap_tx_receipt : 1; - uint16_t reserved : 5; - }; - uint8_t reserved0[14]; - }; -} OP_ETH_SETTINGS; -#define OP_ETH_SETTINGS_SIZE 16 - -typedef struct ETHERNET_SETTINGS_t -{ - uint8_t duplex; /* 0 = half, 1 = full */ - uint8_t link_speed; - uint8_t auto_neg; - uint8_t led_mode; - uint8_t rsvd[4]; -} ETHERNET_SETTINGS; -#define ETHERNET_SETTINGS_SIZE 8 - -#define ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX 0x01 -#define ETHERNET_SETTINGS2_FLAG_AUTO_NEG 0x02 -#define ETHERNET_SETTINGS2_FLAG_TCPIP_ENABLE 0x04 -#define ETHERNET_SETTINGS2_FLAG_RTSP_ENABLE 0x08 -#define ETHERNET_SETTINGS2_FLAG_DEVICE_HOSTING_ENABLE 0x10 -#define ETHERNET_SETTINGS2_FLAG_CONFIG_NOT_ALLOWED 0x20 -#define ETHERNET_SETTINGS2_FLAG_ICS_SFP 0x40 -#define ETHERNET_SETTINGS2_FLAG_COMM_IN_USE 0x80 - -#define ETHERNET_SETTINGS2_FLAG2_LINK_MODE 0x01 -#define ETHERNET_SETTINGS2_FLAG2_PHY_MODE 0x02 -#define ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO 0x04 -#define ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED 0x08 -#define ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT 4 -#define ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK 0xF0 -#define ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE 0x0100 -#define ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE 0x0200 // store and forward -#define ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST 0x0400 -#define ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT 0x0800 - -typedef enum -{ - SFP_ID_UNKNOWN = 0, - SFP_ID_FINISAR_FCLF8522P2BTL, - SFP_ID_FS_GB_GE_T, - SFP_ID_ICS_MV2112A2, - SFP_ID_ICS_MV2221MB1, - SFP_ID_ICS_MV3244, - // add new entries here - SFP_ID_MAX, -} SfpId; - -typedef struct ETHERNET_SETTINGS2_t -{ - /* FLAGS - * bit0: 0=half duplex, 1=full duplex - * bit1: auto negot - * bit2: enable tcp/ip stack - * bit3: enable rtsp server - * bit4: enable intepid device hosting (go online and log other devices) - * bit5: config not allowed - * bit6: ICS SFP detected - * bit7: comm in use - */ - uint8_t flags; - uint8_t link_speed; // 0=10, 1=100, 2=1000 - uint32_t ip_addr; - uint32_t netmask; - uint32_t gateway; - /* FLAGS2 - * bit0: Link mode - 0=master, 1=slave - * bit1: PHY mode - 0=IEEE, 1=legacy - * bit2: auto master/slave - * bit3: IP config not allowed - * bit4: SFP module ID0 - * bit5: SFP module ID1 - * bit6: SFP module ID2 - * bit7: SFP module ID3 - * bit8: cut through tap enabled (only TX forwarded from tap partner) - * bit9: store and forward tap enabled (forward RX to tap partner) - * bit10: disable tap frames to host - * bit11: show TX receipt for tap frames - */ - uint16_t flags2; -} ETHERNET_SETTINGS2; -#define ETHERNET_SETTINGS2_SIZE 16 - -#define ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX 0x00000001 -#define ETHERNET_SETTINGS10G_FLAG_AUTO_NEG 0x00000002 -#define ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE 0x00000004 -#define ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE 0x00000008 -#define ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE 0x00000010 -#define ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED 0x00000020 -#define ETHERNET_SETTINGS10G_FLAG_ICS_SFP 0x00000040 -#define ETHERNET_SETTINGS10G_FLAG_LINK_MODE 0x00000080 -#define ETHERNET_SETTINGS10G_FLAG_PHY_MODE 0x00000100 -#define ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO 0x00000200 -#define ETHERNET_SETTINGS10G_FLAG_COMPL_MODE 0x00000400 -#define ETHERNET_SETTINGS10G_FLAG_PKT_CHECK 0x00000800 -#define ETHERNET_SETTINGS10G_FLAG_PKT_GEN 0x00001000 -#define ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED 0x00002000 -#define ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE 0x00004000 -#define ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE 0x00008000 // store and forward -#define ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST 0x00010000 -#define ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE 0x00020000 -#define ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT 0x00040000 -#define ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE 0x80000000 - -typedef struct ETHERNET10G_SETTINGS_t -{ - /* FLAGS - * bit0: 0=half duplex, 1=full duplex - * bit1: auto negot - * bit2: enable tcp/ip stack - * bit3: enable rtsp server - * bit4: enable intepid device hosting (go online and log other devices) - * bit5: config not allowed - * bit6: ICS SFP detected - * bit7: link mode - 0=master, 1=slave - * bit8: PHY mode - 0=IEEE, 1=legacy - * bit9: auto master/slave - * bit10: enable compliance test mode (device specific) - * bit11: enable packet checker - * bit12: enable packet generator - * bit13: IP config not allowed - * bit14: cut through tap enabled (only TX forwarded from tap partner) - * bit15: store and forward tap enabled (forward RX to tap partner) - * bit16: disable tap frames to host - * bit17: macsec enable - * bit18: show TX receipt for tap frames - * bit31: comm in use - */ - uint32_t flags; - uint32_t ip_addr; - uint32_t netmask; - uint32_t gateway; - uint8_t link_speed; // 0=10, 1=100, 2=1000, 3=2500, 4=5000, 5=10000 - uint8_t compliance_mode; - uint8_t rsvd2[6]; -} ETHERNET10G_SETTINGS; -#define ETHERNET10G_SETTINGS_SIZE 24 - -typedef struct ETHERNET10T1S_SETTINGS_t -{ - uint8_t max_burst_count; - uint8_t burst_timer; - uint8_t max_num_nodes; - uint8_t local_id; - uint8_t to_timer; - uint8_t flags; - uint8_t local_id_alternate; - uint8_t rsvd[5]; -} ETHERNET10T1S_SETTINGS; -#define ETHERNET10T1S_SETTINGS_SIZE 12 - -#define ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA 0x01 -#define ETHERNET10T1S_SETTINGS_FLAG_TERMINATION 0x02 -#define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS 0x04 -#define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL 0x08 - -typedef struct ETHERNET10T1S_SETTINGS_EXT_t -{ - uint8_t enable_multi_id; // Mask representing whether ID at corresponding bit enabled or not - uint8_t multi_id[7]; - uint8_t rsvd[8]; -} ETHERNET10T1S_SETTINGS_EXT; -#define ETHERNET10T1S_SETTINGS_EXT_SIZE 16 - -/* - * START - MACsec Definitions - */ -/* MACsec Rule */ -/** - * @brief Structure of Vlan tag - * - */ -#pragma pack(push, 1) -typedef struct -{ - uint16_t VID; /*!< 12 bits */ - uint8_t PRI_CFI; /*!< PRI - 3 bits, CFI - 1bit */ -} MACSEC_VLANTAG_t; -/** - * @brief Structure of MPLS - * - */ -typedef struct -{ - uint32_t MPLS_label; /*!< 20 bits */ - uint8_t exp; /*!< 3 bits */ -} MACSEC_MPLS_OUTER_t; -/** - * @brief Define Encoded Packet Type from the parser - * - */ -typedef enum -{ - MACSEC_PACKET_NO_VLAN_OR_MPLS = 0, - MACSEC_PACKET_SINGLE_VLAN = 1, - MACSEC_PACKET_DUAL_VLAN = 2, - MACSEC_PACKET_MPLS = 3, - MACSEC_PACKET_SINGLE_VLAN_FOLLOW_BY_MPLS = 4, - MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS = 5, - MACSEC_PACKET_UNSUPPORTED_TYPE = 6 -} MACSEC_PACKET_TYPE; -#define MACSEC_SETTINGS_RULE_SIZE (88) -typedef union _MACSecRule -{ - struct - { - uint8_t index; - uint8_t key_MAC_DA[6]; /*!< MAC DA field extracted from the packet */ - uint8_t mask_MAC_DA[6]; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint8_t key_MAC_SA[6]; /*!< MAC SA field extracted from the packet */ - uint8_t mask_MAC_SA[6]; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint16_t key_Ethertype; /*!< First E-Type found in the packet that doesn't match one of the preconfigured custom tag. */ - uint16_t mask_Ethertype; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - MACSEC_VLANTAG_t key_vlantag_outer1; /*!< outermost/1st VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ - MACSEC_MPLS_OUTER_t key_MPLS_outer1; - MACSEC_VLANTAG_t mask_vlantag_outer1; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - MACSEC_MPLS_OUTER_t mask_MPLS_outer1; - MACSEC_VLANTAG_t key_vlantag_outer2; /*!< 2nd outermost VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ - MACSEC_MPLS_OUTER_t key_MPLS_outer2; - MACSEC_VLANTAG_t mask_vlantag_outer2; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - MACSEC_MPLS_OUTER_t mask_MPLS_outer2; - uint16_t key_bonus_data; /*!< 2 bytes of additional bonus data extracted from one of the custom tags. */ - uint16_t mask_bonus_data; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint8_t key_tag_match_bitmap; /*!< 8 bits total. Maps 1 to 1 bitwise with the set of custom tags. (set bit[N]=1 if check Nth custom tag) */ - uint8_t mask_tag_match_bitmap; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint8_t key_packet_type; /*!< Encoded Packet Type, see MACSEC_PACKET_TYPE */ - uint8_t mask_packet_type; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint16_t key_inner_vlan_type; /*!< 3 bits total. Encoded value indicating which VLAN TPID value matched for the second outermost VLAN Tag. */ - uint16_t mask_inner_vlan_type; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint16_t key_outer_vlan_type; /*!< 3 bits total. Encoded value indicating which VLAN TPID value matched for the outermost VLAN Tag. */ - uint16_t mask_outer_vlan_type; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint8_t key_num_tags; /*!< 7 bits total. Number of VLAN/custom tags or MPLS lables detected. Ingress: before SecTag; Egress: total detected. Exclude MCS header tags. i.e. Bit 2: 2 tags/labels - before SecTAG...Bit 6: 6 or more tags/labels before SecTAG. */ - uint8_t mask_num_tags; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint8_t key_express; /*!< 1 bits. Express packet. */ - uint8_t mask_express; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - uint8_t isMPLS; - uint8_t rsvd[5]; - uint8_t enable; - }; - uint8_t byte[MACSEC_SETTINGS_RULE_SIZE]; -} MACSecRule_t; -/* MACsec Map */ -#define MACSEC_SETTINGS_MAP_SIZE (20) -typedef union _MACSecMap -{ - struct - { - uint8_t index; - uint64_t sectag_sci; /*!< Identifies the SecTAG SCI for this Flow. */ - uint8_t secYIndex; /*!< index for entry in Egress secY Policy */ - uint8_t isControlPacket; /*!< Identifies all packets matching this index lookup as control packets. */ - uint8_t scIndex; /*!< Identifies the SC for this Flow. */ - uint8_t auxiliary_plcy; /*!< Auxiliary policy bits. */ - uint8_t ruleId; /*!< Identifies the Rule for this Flow. */ - uint8_t rsvd[5]; - uint8_t enable; - }; - uint8_t byte[MACSEC_SETTINGS_MAP_SIZE]; -} MACSecMap_t; -/* MACsec SecY */ -/** - * @brief Define the permit police for frames as defined in 802.1ae - * - */ -typedef enum -{ - MACSEC_VF_DISABLED = 0, /*!< Disable validation */ - MACSEC_VF_CHECK = 1, /*!< Enable validation, do not discard invalid frames*/ - MACSEC_VF_STRICT = 2, /*!< Enable validation and discard invalid frames */ - MACSEC_VF_NA = 3 /*!< No processing or accounting */ -} MACSEC_VALIDATEFRAME; -/** - * @brief Define SecTag and ICV configuration. - * - */ -typedef enum -{ - MACSEC_SECTAG_ICV_BOTH_STRIP = 0, /*!< Strip both SecTag and ICV from packet */ - MACSEC_SECTAG_ICV_RESERVED = 1, - MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2, /*!< Preserve SecTag, Strip ICV */ - MACSEC_SECTAG_ICV_NO_STRIP = 3 /*!< Preserve both SecTag and ICV */ -} MACSEC_STRIP_SECTAG_ICV; -/** - * @brief Define the cipher suite to use for this SecY - * - */ -typedef enum -{ - MACSEC_CIPHER_GCM_AES_128 = 0, - MACSEC_CIPHER_GCM_AES_256 = 1, - MACSEC_CIPHER_GCM_AES_128_XPN = 2, - MACSEC_CIPHER_GCM_AES_256_XPN = 3 -} MACSEC_CIPHER_SUITE; -#define MACSEC_SETTINGS_SECY_SIZE (24) -typedef union _MACSecSecY -{ - struct - { - uint8_t index; /*!< Identifies the SecY for this Flow. */ - uint8_t controlled_port_enabled; /*!< Enable (or disable) operation of the Controlled port associated with this SecY */ - uint8_t validate_frames; /*!< see MACSEC_VALIDATEFRAME */ - uint8_t strip_sectag_icv; /*!< see MACSEC_STRIP_SECTAG_ICV */ - uint8_t cipher; /*!< Define the cipher suite to use for this SecY see MACSEC_CIPHER_SUITE */ - uint8_t confidential_offset; /*!< Define the number of bytes that are unencrypted following the SecTag. */ - uint8_t icv_includes_da_sa; /*!< When set, the outer DA/SA bytes are included in the authentication GHASH calculation */ - uint8_t replay_protect; /*!< Enables Anti-Replay protection */ - uint32_t replay_window; /*!< Unsigned value indicating the size of the anti-replay window. */ - uint8_t protect_frames; /*!< 0 = do not encrypt or authenticate this packet; 1 = always Authenticate frame and if SecTag.TCI.E = 1 encrypt the packet as well. */ - uint8_t sectag_offset; /*!< Define the offset in bytes from either the start of the packet or a matching Etype depending on SecTag_Insertion_Mode. */ - uint8_t sectag_tci; /*!< Tag Control Information excluding the AN field which originates from the SA Policy table */ - uint16_t mtu; /*!< Specifies the outgoing MTU for this SecY */ - uint8_t rsvd[6]; - uint8_t enable; - }; - uint8_t byte[MACSEC_SETTINGS_SECY_SIZE]; -} MACSecSecY_t; -/* MACsec SC */ -#define MACSEC_SETTINGS_SC_SIZE (24) -typedef union _MACSecSc -{ - struct - { - uint8_t index; /*!< SC index. */ - uint8_t secYIndex; /*!< SecY associated with this packet. */ - uint64_t sci; /*!< The Secure Channel Identifier. */ - uint8_t sa_index0; /*!< Define the 1st SA to use */ - uint8_t sa_index1; /*!< Define the 2nd SA to use */ - uint8_t sa_index0_in_use; /*!< Specifies whether 1st SA is in use or not. */ - uint8_t sa_index1_in_use; /*!< Specifies whether 2nd SA is in use or not. */ - uint8_t enable_auto_rekey; /*!< If enabled, then once the pn_threshold is reached, auto rekey will happen. */ - uint8_t isActiveSA1; /*!< If set, then sa_index1 is the currently active SA index. If cleared, the sa_index0 is the currently active SA index). */ - uint8_t rsvd[7]; - uint8_t enable; - }; - uint8_t byte[MACSEC_SETTINGS_SC_SIZE]; -} MACSecSc_t; -/* MACsec SA */ -#define MACSEC_SETTINGS_SA_SIZE (80) -typedef union _MACSecSa -{ - struct - { - uint8_t index; /*!< SA index */ - uint8_t sak[32]; /*!< 256b SAK: Define the encryption key to be used to encrypte this packet. The lower 128 bits are used for 128-bit ciphers. */ - uint8_t hashKey[16]; /*!< 128b Hash Key: Key used for authentication. */ - uint8_t salt[12]; /*!< 96b Salt value: Salt value used in XPN ciphers. */ - uint32_t ssci; /*!< 32b SSCI value: Short Secure Channel Identifier, used in XPN ciphers. */ - uint8_t AN; /*!< 2b SecTag Association Number (AN) */ - uint64_t nextPN; /*!< 64b next_pn value: Next packet number to insert into outgoing packet on a particular SA. */ - uint8_t rsvd[5]; - uint8_t enable; - }; - uint8_t byte[MACSEC_SETTINGS_SA_SIZE]; -} MACSecSa_t; -/* MACsec Flags */ -#define MACSEC_SETTINGS_FLAGS_SIZE (4) -typedef union _MACSecFlags -{ - struct - { - uint32_t en : 1; // '1' = enable; '0' = disable - uint32_t reserved : 31; - }; - uint32_t flags_32b; -} MACSecFlags_t; -/* MACSec Settings for 1 port/phy */ -#define MACSEC_NUM_FLAGS_PER_CONFIG (1) -#define MACSEC_NUM_RULES_PER_CONFIG (2) -#define MACSEC_NUM_MAPS_PER_CONFIG (2) -#define MACSEC_NUM_SECY_PER_CONFIG (2) -#define MACSEC_NUM_SC_PER_CONFIG (2) -#define MACSEC_NUM_SA_PER_CONFIG (4) -typedef struct MACSEC_CONFIG_t -{ - MACSecFlags_t flags; - MACSecRule_t rule[MACSEC_NUM_RULES_PER_CONFIG]; - MACSecMap_t map[MACSEC_NUM_MAPS_PER_CONFIG]; - MACSecSecY_t secy[MACSEC_NUM_SECY_PER_CONFIG]; - MACSecSc_t sc[MACSEC_NUM_SC_PER_CONFIG]; - MACSecSa_t sa[MACSEC_NUM_SA_PER_CONFIG]; -} MACSEC_CONFIG; -typedef union _MACSecGlobalFlags -{ - struct - { - uint32_t en : 1; // '1' = enable; '0' = disable - uint32_t nvm : 1; // store macsec config in non-volatile memory - uint32_t reserved : 30; - }; - uint32_t flags_32b; -} MACSecGlobalFlags_t; -#define MACSEC_SETTINGS_SIZE (2040) // leave space for expansion and keep nicely aligned for flashing -typedef union _MACSEC_SETTINGS -{ - struct - { - MACSecGlobalFlags_t flags; - MACSEC_CONFIG rx; - MACSEC_CONFIG tx; - }; - uint8_t byte[MACSEC_SETTINGS_SIZE]; -} MACSEC_SETTINGS; -#pragma pack(pop) -/* - * END - MACsec Definitions - */ - -typedef struct LOGGER_SETTINGS_t -{ - /* bit6-0: timeout in seconds - * bit7: 1=disable coremini/logging during extraction for timeout - */ - uint8_t extraction_timeout; - uint8_t rsvd[3]; -} LOGGER_SETTINGS; -#define LOGGER_SETTINGS_SIZE 4 - -typedef struct DISK_SETTINGS_t -{ - uint8_t disk_layout; // RAID0, spanned, etc - uint8_t disk_format; // FAT32 - uint32_t disk_enables; // mask of enabled disks in this layout - uint8_t rsvd[8]; -} DISK_SETTINGS; -#define DISK_SETTINGS_SIZE 14 - -typedef struct -{ - uint8_t term_enabled; - uint8_t term_network; - uint16_t reserved[2]; -} CANTERM_SETTINGS; -#define CANTERM_SETTINGS_SIZE 6 - -typedef struct -{ - uint8_t MasterEnable; - uint8_t SlaveEnable; - uint8_t MasterNetwork; - uint8_t SlaveNetwork; -} TIMESYNC_ICSHARDWARE_SETTINGS; -#define TIMESYNC_ICSHARDWARE_SETTINGS_SIZE 4 - -typedef enum _EDiskFormat -{ - DiskFormatUnknown = 0, - DiskFormatFAT32, - DiskFormatexFAT, -} EDiskFormat; - -typedef enum _EDiskLayout -{ - DiskLayoutSpanned = 0, - DiskLayoutRAID0, - DiskLayoutRAID1, - DiskLayoutRAID5, - DiskLayoutIndividual, -} EDiskLayout; - -// Extended Comm structures -#define DISK_STATUS_FLAG_PRESENT 0x01 -#define DISK_STATUS_FLAG_INITIALIZED 0x02 - -typedef struct _SDiskStatus -{ - uint16_t status; // 0x1 = present, 0x2 = initialized - uint8_t sectors[8]; - uint8_t bytesPerSector[4]; -} SDiskStatus; -#define SDiskStatus_SIZE 14 - -#define DISK_STRUCTURE_FLAG_FULL_FORMAT 0x01 - -typedef struct _SDiskStructure -{ - DISK_SETTINGS settings; - uint16_t options; // 0x01 full format -} SDiskStructure; -#define SDiskStructure_SIZE 16 - -typedef struct _SDiskDetails -{ - SDiskStructure structure; - SDiskStatus status[12]; -} SDiskDetails; -#define SDiskDetails_SIZE 184 - -typedef struct _SDiskFormatProgress -{ - uint16_t state; // state of formatting (not started, writing file system, formatting, writing VSAs, finished) - uint8_t sectorsRemaining[8]; -} SDiskFormatProgress; -#define SDiskFormatProgress_SIZE 10 - -typedef struct _StartDHCPServerCommand -{ - uint16_t networkId; // NETID_ of the physical ethernet network on which to start the server - uint32_t serverIpAddress; // Set as our IP address using LWIP_SetIPAddress - uint32_t subnetMask; // Subnet mask to advertise - set our subnet to match using LWIP_SetNetmask - uint32_t gatewayAddress; // Gateway address to advertise on DHCP server offers - uint32_t startAddress; // Start of IP address range available for the server to offer - uint32_t endAddress; // End of IP address range available for the server to offer - uint32_t leaseTime; // Lease time setting for the DHCP server in seconds - uint32_t overwrite; // flag - set to nonzero if we want to overwrite an already running DHCP server -} StartDHCPServerCommand; - -typedef struct _StopDHCPServerCommand -{ - uint16_t networkId; // NETID_ of the network on which to attempt to stop the DHCP server -} StopDHCPServerCommand; - -typedef enum _ExtendedResponseCode -{ - EXTENDED_RESPONSE_OK = 0, - // Unsupported sub command - EXTENDED_RESPONSE_INVALID_COMMAND = -1, - // Device is not in the correct state to accept this command - EXTENDED_RESPONSE_INVALID_STATE = -2, - // Operation failed - EXTENDED_RESPONSE_OPERATION_FAILED = -3, - // Response code for a non-blocking command that is successfully queued but still in progress - EXTENDED_RESPONSE_OPERATION_PENDING = -4, - // One or more invalid parameters were supplied - EXTENDED_RESPONSE_INVALID_PARAMETER = -5, -} ExtendedResponseCode; - -typedef struct _ExtendedResponseGeneric -{ - uint16_t commandType; // command type we're responding to - int32_t returnCode; -} ExtendedResponseGeneric; - -typedef struct _GenericAPISelector -{ - uint8_t apiIndex; - uint8_t instance; - uint8_t functionID; -} GenericAPISelector; - -typedef struct _GenericAPIStatus -{ - GenericAPISelector api; - uint8_t functionError; - uint8_t calbackError; - uint8_t finishedProcessing; -} GenericAPIStatus; - -#define GENERIC_API_DATA_BUFFER_SIZE 513 - -typedef struct _GenericAPIData -{ - uint16_t length; - GenericAPISelector api; - uint8_t bData[GENERIC_API_DATA_BUFFER_SIZE]; -} GenericAPIData; - -typedef struct _GenericAPIData_OLD -{ - GenericAPISelector api; - uint8_t bData[GENERIC_API_DATA_BUFFER_SIZE]; - uint16_t length; -} GenericAPIData_OLD; - -typedef struct _wBMSManagerSetLock -{ - uint8_t managerIndex; - uint8_t setLock; -} wBMSManagerSetLock; - -typedef struct _wBMSManagerReset -{ - uint8_t managerIndex; -} wBMSManagerReset; - -typedef struct _UartPortData -{ - uint16_t len; - uint8_t port; - uint8_t bData[256]; -} UartPortData; - -typedef struct _UartPortPortBytes -{ - uint16_t len; - uint8_t port; - uint8_t flag; -} UartPortPortBytes; - -typedef struct _UartPortConfig -{ - uint32_t baudrate; - uint8_t port; - uint8_t reserve[7]; -} UartPortConfig; - -#define GET_SUPPORTED_FEATURES_COMMAND_VERSION (1) -typedef struct -{ - uint16_t cmdVersion; - uint16_t numValidBits; - uint32_t featureBitfields[0]; -} GetSupportedFeaturesResponse; - -typedef struct _VersionReport -{ - uint8_t valid; - uint8_t expansionSlot; // aka vnet slot - uint8_t componentInfo; // used for any component specific data (e.g. Linux: boot device) - uint8_t reserved; - uint32_t identifier; - uint32_t dotVersion; // major.minor.release.build - uint32_t commitHash; -} VersionReport; - -typedef struct _GetComponentVersions -{ - uint32_t reserved[2]; -} GetComponentVersions; - -#define MAX_REPORTED_VERSIONS (16) -#define EXT_GET_VERSIONS_RESPONSE_SIZE(numVers) (((numVers) * sizeof(VersionReport)) + sizeof(SExtSubCmdHdr) + sizeof(uint16_t)) -typedef struct _ExtendedGetVersionsResponse -{ - uint16_t numVersions; - VersionReport versions[MAX_REPORTED_VERSIONS]; -} GetComponentVersionsResponse; - -enum -{ - swUpdateWrite = 0, - swUpdateErase = 1, - swUpdateGetProgress = 2, - swUpdateValidateAll = 3, - swUpdateGetBufferSize = 4, - swUpdateCheckHostVersion = 5, - swUpdateValidateComponent = 6, - swUpdateFinalize = 7, - swUpdateGetCommunicationVersion = 8, -}; - -typedef struct -{ - uint32_t componentIdentifier; // unique id for the software component - analogous to what used to be "chip id" - uint8_t commandType; // See enum - uint32_t offset; - uint32_t commandSizeOrProgress; // size - uint8_t commandData[0]; // max size TBD or per-device -} SoftwareUpdateCommand; - -typedef struct _SExtSubCmdHdr -{ - uint16_t command; - uint16_t length; -} SExtSubCmdHdr; -#define SExtSubCmdHdr_SIZE 4 -#pragma pack(push, 1) - -struct _timestamp -{ - uint16_t seconds_msb; - uint32_t seconds_lsb; - uint32_t nanoseconds; -}; - -typedef uint64_t _clock_identity; - -struct port_identity -{ - _clock_identity clock_identity; - uint16_t port_number; -}; -struct _clock_quality -{ - uint8_t clock_class; - uint8_t clock_accuracy; - uint16_t offset_scaled_log_variance; -}; -struct system_identity -{ - uint8_t priority_1; - struct _clock_quality clock_quality; - uint8_t priority_2; - _clock_identity clock_identity; -}; -struct priority_vector -{ - struct system_identity sysid; - uint16_t steps_removed; - struct port_identity portid; - uint16_t port_number; -}; - -typedef struct _GPTPStatus -{ - struct _timestamp current_time; - struct priority_vector gm_priority; - int64_t ms_offset_ns; - uint8_t is_sync; - - uint8_t link_status; - int64_t link_delay_ns; - uint8_t selected_role; - uint8_t as_capable; - - uint8_t is_syntonized; - uint8_t reserved[8]; -} GPTPStatus; -typedef struct _GenericBinaryStatus -{ - uint32_t size; - uint16_t index; - uint16_t status; - uint8_t reserved[8]; -} GenericBinaryStatus; - -#define GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY 0x0001 -#define GENERIC_BINARY_STATUS_ERROR_OVERSIZE 0x0002 -#define GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY 0x0004 -#define GENERIC_BINARY_STATUS_ERROR_ANY_MASK (GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY | GENERIC_BINARY_STATUS_ERROR_OVERSIZE | GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY) - -#pragma pack(pop) - -#define SERDESCAM_SETTINGS_FLAG_ENABLE 0x0001 -#define SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE 0x0002 -#define SERDESCAM_SETTINGS_FLAG_AUTO_DET_RES_ENABLE 0x0004 -#define SERDESCAM_SETTINGS_FLAG_CONFIG_ENABLE 0x0008 -#define SERDESCAM_SETTINGS_FLAG_LOGGING_ENABLE 0x0010 -#define SERDESCAM_SETTINGS_FLAG_TX0_ENABLE 0x0020 -#define SERDESCAM_SETTINGS_FLAG_TX1_ENABLE 0x0040 -#define SERDESCAM_SETTINGS_FLAG_TX2_ENABLE 0x0080 -#define SERDESCAM_SETTINGS_FLAG_TX3_ENABLE 0x0100 - -/* mode in SERDESCAM_SETTINGS */ -enum -{ - SERDESCAM_MODE_TAP_REPEATER = 0, - SERDESCAM_MODE_SPLITTER, - SERDESCAM_MODE_LOG_ONLY, - SERDESCAM_MODE_CUSTOM, - // NOTE: new entries must be appended to maintain backwards compatibility - // insert new entries here - SERDESCAM_MODE_COUNT, -}; - -/* bitPos in SERDESCAM_SETTINGS */ -enum -{ - SERDESCAM_PIXEL_BIT_POS_0 = 0, - SERDESCAM_PIXEL_BIT_POS_1, - SERDESCAM_PIXEL_BIT_POS_2, - SERDESCAM_PIXEL_BIT_POS_3, -}; - -/* videoFormat in SERDESCAM_SETTINGS */ -enum -{ - SERDESCAM_VIDEO_FORMAT_NONE = -1, - SERDESCAM_VIDEO_FORMAT_UYVY_422_8 = 0, // packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 - SERDESCAM_VIDEO_FORMAT_YUYV_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr - SERDESCAM_VIDEO_FORMAT_YVYU_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb - SERDESCAM_VIDEO_FORMAT_VYUY_422_8, // packed YUV 4:2:2, 16bpp, Cr Y0 Cb Y1 - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_8, - SERDESCAM_VIDEO_FORMAT_RAW_8, // e.g. bayer 8 bit, gray 8 bit - SERDESCAM_VIDEO_FORMAT_RAW_10, // e.g. bayer 10 bit, gray 10 bit - SERDESCAM_VIDEO_FORMAT_RAW_12, - SERDESCAM_VIDEO_FORMAT_RAW_16, // e.g. planar YUV 4:2:2, 16bpp, 8 bit samples - SERDESCAM_VIDEO_FORMAT_RAW_20, // e.g. planar YUV 4:2:2, 20bpp, 10 bit samples - SERDESCAM_VIDEO_FORMAT_RAW_24, // e.g. packed RGB 8:8:8 24bpp, 8 bit samples - SERDESCAM_VIDEO_FORMAT_RAW_30, // e.g. planar YUV 4:4:4, 30bpp, 10 bit samples - SERDESCAM_VIDEO_FORMAT_RAW_32, // e.g. packed ARGB 8:8:8:8, 32bpp, 8 bit samples - SERDESCAM_VIDEO_FORMAT_RAW_36, - SERDESCAM_VIDEO_FORMAT_RGB888, // packed RGB 8:8:8, 24bpp, RGBRGB... - SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cb Y0 Cr Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cb Y1 Cr, FOURCC Y210 bitpacked - SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cr Y1 Cb, bitpacked - SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cr Y0 Cb Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE, // 16-bit samples little endian - SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE, // 16-bit samples big endian - SERDESCAM_VIDEO_FORMAT_JPEG, - SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cb Y0 Cr Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cb Y1 Cr, bitpacked - SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cr Y1 Cb, bitpacked - SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cr Y0 Cb Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR, // planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian - SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR, // planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian - SERDESCAM_VIDEO_FORMAT_RGB565, // packed RGB 5:6:5, 16bpp, RGBRGB... - SERDESCAM_VIDEO_FORMAT_RGB666, // packed RGB 6:6:6, 18bpp, RGBRGB... - SERDESCAM_VIDEO_FORMAT_RAW_11x2, - SERDESCAM_VIDEO_FORMAT_RAW_12x2, - SERDESCAM_VIDEO_FORMAT_RAW_14, - // NOTE: CSI2 formats are only used internal to VSPY - // Firmware should flag video as CSI2 source types - // Vspy will then convert formats into the proper CSI2 version - SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8, // packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 - SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr - SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8, // packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb - SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8, // packed YUV 4:2:2, 16bpp, Cr Y0 Cb Y1 - SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cb Y0 Cr Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cb Y1 Cr, FOURCC Y210 bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Y0 Cr Y1 Cb, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED, // packed YUV 4:2:2, 20bpp, Cr Y0 Cb Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cb Y0 Cr Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cb Y1 Cr, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Y0 Cr Y1 Cb, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED, // packed YUV 4:2:2, 24bpp, Cr Y0 Cb Y1, bitpacked - SERDESCAM_VIDEO_FORMAT_CSI2_RGB565, // packed RGB 5:6:5, 16bpp, BGRBGR... - SERDESCAM_VIDEO_FORMAT_CSI2_RGB666, // packed RGB 6:6:6, 18bpp, BGRBGR... - SERDESCAM_VIDEO_FORMAT_CSI2_RGB888, // packed RGB 8:8:8, 24bpp, BGRBGR... - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED, // 12-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8, // e.g. bayer 8 bit, gray 8 bit - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10, // e.g. bayer 10 bit, gray 10 bit - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_11x2, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12x2, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_14, - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16, // e.g. planar YUV 4:2:2, 16bpp, 8 bit samples - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20, // e.g. planar YUV 4:2:2, 20bpp, 10 bit samples - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24, // e.g. packed RGB 8:8:8 24bpp, 8 bit samples - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30, // e.g. planar YUV 4:4:4, 30bpp, 10 bit samples - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32, // e.g. packed ARGB 8:8:8:8, 32bpp, 8 bit samples - SERDESCAM_VIDEO_FORMAT_CSI2_RAW_36, - - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_8, - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE, // 16-bit samples little endian - SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE, // 16-bit samples big endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_8, - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE, // 16-bit samples little endian - SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE, // 16-bit samples big endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_8, - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE, // 16-bit samples little endian - SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE, // 16-bit samples big endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, // 10-bit samples bitpacked into 40-bits little endian - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, // 12-bit samples bitpacked into 24-bits little endian - // NOTE: new entries must be appended to maintain backwards compatibility - // insert new entries before this - SERDESCAM_VIDEO_FORMAT_COUNT, -}; - -typedef struct SERDESCAM_SETTINGS_t -{ - /* - * bit0: enable - * bit1: RTSP stream enable - * bit2: auto detect resolution - * bit3: enable configuration - * bit4: enable logging - * bit5: forward on port 0 - * bit6: forward on port 1 - * bit7: forward on port 2 - * bit8: forward on port 3 - */ - uint32_t flags; - uint8_t mode; // passthrough, tap, etc - uint8_t rsvd1; - uint8_t bitPos; - uint8_t videoFormat; // bytes per pixel - uint16_t resWidth; - uint16_t resHeight; - uint8_t frameSkip; // skip every nth frame - uint8_t rsvd2[19]; -} SERDESCAM_SETTINGS; -#define SERDESCAM_SETTINGS_SIZE 32 - -#define SERDESPOC_SETTINGS_MODE_DISABLED 0x00 -#define SERDESPOC_SETTINGS_MODE_SUPPLY 0x01 -#define SERDESPOC_SETTINGS_MODE_SERIALIZER 0x02 - -typedef struct SERDESPOC_SETTINGS_t -{ - uint8_t mode; // no poc, generated supply, serializer passthrough - uint8_t rsvd[6]; - uint8_t voltage; // generated voltage - uint16_t chksum; // checksum to protect settings structure (don't want corrupt voltage settings) -} SERDESPOC_SETTINGS; -#define SERDESPOC_SETTINGS_SIZE 10 - -enum -{ - SERDESGEN_MOD_ID_NONE = 0, - SERDESGEN_MOD_ID_FPD3_2x2 = 1, - SERDESGEN_MOD_ID_GMSL2_2x2 = 2, - SERDESGEN_MOD_ID_GMSL1_4x4 = 3, - SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2 = 4, - // new modules go above this line - SERDESGEN_MOD_ID_UNKNOWN = -1, -}; - -#define SERDESGEN_SETTINGS_FLAG_TX_PATGEN_ENABLE 0x0001 - -typedef struct SERDESGEN_SETTINGS_t -{ - /* - * bit0: enable pattern generator - */ - uint16_t flags; - uint8_t rsvd1; - uint8_t mod_id; // connected module passed back from device - uint16_t tx_speed; // Mbps per lane, all tx ports - uint16_t rx_speed; // Mbps per lane, all rx ports - // reserved space for the future - // maybe pattern generator settings - uint8_t rsvd2[24]; -} SERDESGEN_SETTINGS; -#define SERDESGEN_SETTINGS_SIZE 32 - -typedef struct _RadMoonDuoConverterSettings -{ - // OPETH_LINK_AUTO/MASTER/SLAVE - uint8_t linkMode0; - uint8_t linkMode1; - // USB/CM or RJ45 selection - uint8_t converter1Mode; - // IP Settings if converter is hooked up to Coremini - uint32_t ipAddress; - uint32_t ipMask; - uint32_t ipGateway; -} RadMoonDuoConverterSettings; -#define RADMOONDUO_CONVERTER_SETTINGS_SIZE (16) - -// clang-format off -#define RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE 0x00000001 -#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE 0x00000002 // USB port 1 -#define RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE 0x00000004 -#define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2 0x00000008 // USB port 2 -#define RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN 0x00000010 -#define RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN 0x00000020 -#define RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN 0x00000040 -#define RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN 0x00000080 -#define RAD_REPORTING_SETTINGS_FLAG_AIN1 0x00000100 -#define RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE 0x00000200 -#define RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE 0x00000400 -#define RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE 0x00000800 -// clang-format on - -typedef struct RAD_REPORTING_SETTINGS_t -{ - uint32_t flags; - uint16_t temp_interval_ms; - uint16_t gps_interval_ms; - uint16_t serdes_interval_ms; - uint16_t io_interval_ms; - uint16_t fan_speed_interval_ms; - uint8_t rsvd[2]; -} RAD_REPORTING_SETTINGS; -#define RAD_REPORTING_SETTINGS_SIZE 16 - -/* These are bit positions for misc_io_on_report_eventsin SFireSettings */ -enum -{ - REPORT_ON_PERIODIC, - REPORT_ON_MISC1, - REPORT_ON_MISC2, - REPORT_ON_MISC3, - REPORT_ON_MISC4, - REPORT_ON_MISC5, - REPORT_ON_MISC6, - REPORT_ON_LED1, - REPORT_ON_LED2, - REPORT_ON_KLINE, - REPORT_ON_MISC3_AIN, - REPORT_ON_MISC4_AIN, - REPORT_ON_MISC5_AIN, - REPORT_ON_MISC6_AIN, - REPORT_ON_PWM_IN1, /* send PWM 0x101 on change */ - REPORT_ON_GPS, /* send GPS 0x110-0x116 on change */ -}; - -typedef struct _SFireSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - CAN_SETTINGS can3; - CAN_SETTINGS can4; - - SWCAN_SETTINGS swcan; - CAN_SETTINGS lsftcan; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - LIN_SETTINGS lin3; - LIN_SETTINGS lin4; - - uint16_t cgi_enable_reserved; - uint16_t cgi_baud; - uint16_t cgi_tx_ifs_bit_times; - uint16_t cgi_rx_ifs_bit_times; - uint16_t cgi_chksum_enable; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint32_t pwm_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - - uint16_t perf_en; - - /* ISO9141: iso_parity 0 - no parity, 1 - event, 2 - odd; iso_msg_termination 0 - use inner frame time, 1 - GME CIM-SCL */ - - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - - uint16_t network_enables_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - uint16_t iso_msg_termination_3; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - uint16_t iso_msg_termination_4; - - uint16_t fast_init_network_enables_1; - uint16_t fast_init_network_enables_2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; - - SNeoMostGatewaySettings neoMostGateway; - -#define VNETBITS_FEATURE_ANDROID_MSGS (1) - /** - * Unfortuntely I haven't gone thru the trouble - * of splitting the FIRE VNET and FIRE settings - * structures. So until I can do so and reserve - * some time to test it, add a member that only - * VNET looks at for VNET features (like - * Android CoreMiniMsg pump). - * Defaults to zero. - * @see VNETBITS_FEATURE_ANDROID_MSGS - */ - uint16_t vnetBits; -} SFireSettings; -#define SFireSettings_SIZE 744 - -typedef struct _SFireVnetSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - CAN_SETTINGS can3; - CAN_SETTINGS can4; - - SWCAN_SETTINGS swcan; - CAN_SETTINGS lsftcan; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - LIN_SETTINGS lin3; - LIN_SETTINGS lin4; - - uint16_t cgi_enable_reserved; - uint16_t cgi_baud; - uint16_t cgi_tx_ifs_bit_times; - uint16_t cgi_rx_ifs_bit_times; - uint16_t cgi_chksum_enable; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint32_t pwm_man_timeout; - uint16_t pwr_man_enable; /* 0 - off, 1 - sleep enabled, 2- idle enabled (fast wakeup) */ - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - - uint16_t perf_en; - - /* ISO9141: iso_parity 0 - no parity, 1 - event, 2 - odd; iso_msg_termination 0 - use inner frame time, 1 - GME CIM-SCL */ - - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - - uint16_t network_enables_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - uint16_t iso_msg_termination_3; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - uint16_t iso_msg_termination_4; - - uint16_t fast_init_network_enables_1; - uint16_t fast_init_network_enables_2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; - - SNeoMostGatewaySettings neoMostGateway; - -#define VNETBITS_FEATURE_ANDROID_MSGS (1) -#define VNETBITS_FEATURE_DISABLE_USB_CHECK (2) - /** - * VNET options bitfield. - * Defaults to zero. - * @see VNETBITS_FEATURE_ANDROID_MSGS - */ - uint16_t vnetBits; - - CAN_SETTINGS can5; - CAN_SETTINGS can6; - LIN_SETTINGS lin5; - SWCAN_SETTINGS swcan2; -} SFireVnetSettings; -#define SFireVnetSettings_SIZE 792 - -typedef struct _SCyanSettings -{ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - - /* Native CAN are either LS1/LS2 or SW1/SW2 */ - SWCAN_SETTINGS swcan1; - uint16_t network_enables; - SWCAN_SETTINGS swcan2; - uint16_t network_enables_2; - - CAN_SETTINGS lsftcan1; - CAN_SETTINGS lsftcan2; - - LIN_SETTINGS lin1; - uint16_t misc_io_initial_ddr; - LIN_SETTINGS lin2; - uint16_t misc_io_initial_latch; - LIN_SETTINGS lin3; - uint16_t misc_io_report_period; - LIN_SETTINGS lin4; - uint16_t misc_io_on_report_events; - LIN_SETTINGS lin5; - uint16_t misc_io_analog_enable; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - - uint16_t iso_msg_termination_1; - uint16_t iso_msg_termination_2; - uint16_t iso_msg_termination_3; - uint16_t iso_msg_termination_4; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - /* reserved for HSCAN6/7, LSFT2, etc.. */ - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - uint16_t can_switch_mode; - STextAPISettings text_api; - uint64_t termination_enables; - LIN_SETTINGS lin6; - ETHERNET_SETTINGS ethernet; - uint16_t slaveVnetA; - uint16_t slaveVnetB; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved : 26; - } flags; - uint16_t digitalIoThresholdTicks; - uint16_t digitalIoThresholdEnable; - TIMESYNC_ICSHARDWARE_SETTINGS timeSync; - DISK_SETTINGS disk; - ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings -} SCyanSettings; -#define SCyanSettings_SIZE 936 - -typedef SCyanSettings SFire2Settings; - -typedef struct _SVCAN3Settings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; -} SVCAN3Settings; -#define SVCAN3Settings_SIZE 40 - -typedef struct _SVCAN4Settings -{ - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - uint16_t network_enables; - uint16_t network_enables_2; - LIN_SETTINGS lin1; - uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - uint16_t network_enables_3; - STextAPISettings text_api; - uint64_t termination_enables; - ETHERNET_SETTINGS ethernet; - struct - { - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 30; - } flags; - uint16_t pwr_man_enable; - uint16_t pwr_man_timeout; - ETHERNET_SETTINGS2 ethernet2; -} SVCAN4Settings; -#define SVCAN4Settings_SIZE 342 - -typedef struct _SECUSettings -{ - /* ECU ID used in CAN communications. - * TX ID = ECU ID with bit28 cleared, - * RX ID = ECUID with bit28 set, - * ECU ID = 0 implies ECU ID = serial no with bit 27 set\ - */ - uint32_t ecu_id; - - uint16_t selected_network; // not supported yet - default to HSCAN - - CAN_SETTINGS can1; - CAN_SETTINGS can2; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - uint16_t iso15765_separation_time_offset; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - SWCAN_SETTINGS swcan; - SWCAN_SETTINGS swcan2; - CAN_SETTINGS lsftcan; - CAN_SETTINGS lsftcan2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; -} SECUSettings; -#define SECUSettings_SIZE 470 - -typedef struct _SPendantSettings -{ - /* see SECUSettings */ - uint32_t ecu_id; - - uint16_t selected_network; /* not supported yet - default to HSCAN */ - - CAN_SETTINGS can1; - CAN_SETTINGS can2; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - uint16_t iso15765_separation_time_offset; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - SWCAN_SETTINGS swcan; - SWCAN_SETTINGS swcan2; - CAN_SETTINGS lsftcan; - CAN_SETTINGS lsftcan2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; -} SPendantSettings; -#define SPendantSettings_SIZE 470 - -typedef struct _SIEVBSettings -{ - /* see SECUSettings */ - uint32_t ecu_id; - - uint16_t selected_network; /* not supported yet - default to HSCAN */ - - CAN_SETTINGS can1; - LIN_SETTINGS lin1; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint16_t iso15765_separation_time_offset; - - CAN_SETTINGS can2; - LIN_SETTINGS lin2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; - - uint32_t reserved_1; - uint32_t reserved_2; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t misc_io_analog_enable_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - -} SIEVBSettings; -#define SIEVBSettings_SIZE 434 - -typedef struct _SEEVBSettings -{ - uint32_t ecu_id; - - CAN_SETTINGS can1; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint32_t rsvd; -} SEEVBSettings; -#define SEEVBSettings_SIZE 32 - -/* GPTP portEnable options */ -enum eGPTPPort -{ - ePortDisabled = 0, - ePortOpEth1 = 1, - ePortOpEth2 = 2, - ePortOpEth3 = 3, - ePortOpEth4 = 4, - ePortOpEth5 = 5, - ePortOpEth6 = 6, - ePortOpEth7 = 7, - ePortOpEth8 = 8, - ePortOpEth9 = 9, - ePortOpEth10 = 10, - ePortOpEth11 = 11, - ePortOpEth12 = 12, - ePortStdEth1 = 13, - ePortStdEth2 = 14, - ePortStdEth3 = 15, -}; - -/* GPTP port role options */ -enum eGPTPRole -{ - eRoleDisabled = 0, - eRolePassive = 1, - eRoleMaster = 2, - eRoleSlave = 3, -}; - -typedef struct _SRADGalaxySettings -{ - uint16_t perf_en; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - OP_ETH_SETTINGS opEth2; - OP_ETH_SETTINGS opEth3; - OP_ETH_SETTINGS opEth4; - OP_ETH_SETTINGS opEth5; - OP_ETH_SETTINGS opEth6; - OP_ETH_SETTINGS opEth7; - OP_ETH_SETTINGS opEth8; - OP_ETH_SETTINGS opEth9; - OP_ETH_SETTINGS opEth10; - OP_ETH_SETTINGS opEth11; - OP_ETH_SETTINGS opEth12; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - - /* Native CAN are either LS1/LS2 or SW1/SW2 */ - SWCAN_SETTINGS swcan1; - uint16_t network_enables; - SWCAN_SETTINGS swcan2; - uint16_t network_enables_2; - - LIN_SETTINGS lin1; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t misc_io_analog_enable; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - - uint16_t iso_msg_termination_1; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - uint16_t can_switch_mode; - STextAPISettings text_api; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - uint16_t hwComLatencyTestEn; - RAD_REPORTING_SETTINGS reporting; - DISK_SETTINGS disk; - LOGGER_SETTINGS logger; - - ETHERNET_SETTINGS2 ethernet1; // DAQ port on label, NETID_ETHERNET - ETHERNET_SETTINGS2 ethernet2; // LAN port on label, NETID_ETHERNET2 - uint16_t network_enables_4; - - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADGalaxySettings; -#define SRADGalaxySettings_SIZE 776 - -typedef struct _SRADStar2Settings -{ - uint16_t perf_en; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - OP_ETH_SETTINGS opEth2; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - - uint16_t network_enables; - uint16_t network_enables_2; - - LIN_SETTINGS lin1; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t misc_io_analog_enable; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - - uint16_t iso_msg_termination_1; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - uint16_t can_switch_mode; - STextAPISettings text_api; - uint16_t pc_com_mode; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - RAD_REPORTING_SETTINGS reporting; - ETHERNET_SETTINGS2 ethernet; - - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADStar2Settings; - -#define SRADStar2Settings_SIZE 422 - -typedef struct _SRADSuperMoonSettings -{ - uint16_t perf_en; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - uint16_t network_enables_3; - - STextAPISettings text_api; - - uint16_t pc_com_mode; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - uint16_t hwComLatencyTestEn; - - ETHERNET_SETTINGS2 Eth2; - - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADSuperMoonSettings; - -#define SRADSuperMoonSettings_SIZE 186 - -typedef enum -{ - tdmModeTDM2 = 0, - tdmModeTDM4, - tdmModeTDM8, - tdmModeTDM12, - tdmModeTDM16, - tdmModeTDM20, - tdmModeTDM24, - tdmModeTDM32, -} A2BTDMMode; - -typedef enum -{ - a2bNodeTypeMonitor = 0, - a2bNodeTypeMaster, - a2bNodeTypeSlave, -} A2BNodeType; - -#define A2B_SETTINGS_FLAG_16BIT 0x01 - -typedef struct -{ - uint8_t tdmMode; // see enum A2BTDMMode - uint8_t upstreamChannelOffset; - uint8_t downstreamChannelOffset; - uint8_t nodeType; // see enum A2BNodeType - /* - * bit0: 16-bit channel width - */ - uint8_t flags; - uint8_t reserved[15]; -} A2BMonitorSettings; -#define A2BMonitorSettings_SIZE 20 - -typedef struct _SRADA2BSettings -{ - uint16_t perf_en; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t : 14; - } flags; - uint16_t network_enabled_on_boot; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - uint64_t network_enables; - uint64_t termination_enables; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - RAD_REPORTING_SETTINGS reporting; - DISK_SETTINGS disk; - LOGGER_SETTINGS logger; - int16_t iso15765_separation_time_offset; - A2BMonitorSettings a2b_monitor; - A2BMonitorSettings a2b_node; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - ETHERNET_SETTINGS2 ethernet; - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADA2BSettings; - -#define SRADA2BSettings_SIZE 340 - -typedef struct _SRADMoon2Settings -{ - uint16_t perf_en; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - uint16_t network_enables_3; - - STextAPISettings text_api; - - uint16_t pc_com_mode; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - uint16_t hwComLatencyTestEn; - - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADMoon2Settings; - -#define SRADMoon2Settings_SIZE 170 - -typedef struct _SRADMoon3Settings -{ - uint16_t perf_en; // 2 - - ETHERNET10G_SETTINGS autoEth10g; // 24 - ETHERNET10G_SETTINGS eth10g; // 24 - - uint16_t network_enables; // 2 - uint16_t network_enables_2; // 2 - uint16_t network_enabled_on_boot; // 2 - uint16_t network_enables_3; // 2 - - struct - { - uint16_t enableLatencyTest : 1; - uint16_t reserved : 15; - } flags; // 2 - uint64_t network_enables_5; -} SRADMoon3Settings; - -#define SRADMoon3Settings_SIZE 68 - -typedef struct _SRADGigalogSettings -{ - uint32_t ecu_id; - - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - - uint16_t network_enables; - uint16_t network_enables_2; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - - uint16_t iso_msg_termination_1; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - STextAPISettings text_api; - uint64_t termination_enables; - uint8_t rsvd1[8]; // previously ETHERNET_SETTINGS - uint8_t rsvd2[8]; // previously ETHERNET10G_SETTINGS - - DISK_SETTINGS disk; - - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - ETHERNET_SETTINGS2 ethernet; - - SERDESCAM_SETTINGS serdescam1; - ETHERNET10G_SETTINGS ethernet10g; - - LIN_SETTINGS lin1; - - SERDESPOC_SETTINGS serdespoc; - LOGGER_SETTINGS logger; - SERDESCAM_SETTINGS serdescam2; - SERDESCAM_SETTINGS serdescam3; - SERDESCAM_SETTINGS serdescam4; - - ETHERNET_SETTINGS2 ethernet2; - uint16_t network_enables_4; - RAD_REPORTING_SETTINGS reporting; - SERDESGEN_SETTINGS serdesgen; - uint64_t network_enables_5; -} SRADGigalogSettings; - -#define SRADGigalogSettings_SIZE 706 - -typedef struct _SRADGigastarSettings -{ - uint32_t ecu_id; - - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - - uint16_t network_enables; - uint16_t network_enables_2; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - - uint16_t iso_msg_termination_1; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - STextAPISettings text_api; - uint64_t termination_enables; - - DISK_SETTINGS disk; - - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - ETHERNET_SETTINGS2 ethernet1; - ETHERNET_SETTINGS2 ethernet2; - - LIN_SETTINGS lin1; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - OP_ETH_SETTINGS opEth2; - - SERDESCAM_SETTINGS serdescam1; - SERDESPOC_SETTINGS serdespoc; - LOGGER_SETTINGS logger; - SERDESCAM_SETTINGS serdescam2; - SERDESCAM_SETTINGS serdescam3; - SERDESCAM_SETTINGS serdescam4; - RAD_REPORTING_SETTINGS reporting; - uint16_t network_enables_4; - SERDESGEN_SETTINGS serdesgen; - - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADGigastarSettings; - -#define SRADGigastarSettings_SIZE 710 - -typedef struct _SRADGalaxy2Settings -{ - uint32_t ecu_id; - uint16_t perf_en; - - /* CAN */ - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - - // SWCAN_SETTINGS swcan1; G2 does not have SWCAN. - uint16_t network_enables; - // SWCAN_SETTINGS swcan2; G2 does not have SWCAN. - uint16_t network_enables_2; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ - uint16_t iso15765_separation_time_offset; - - /* ISO9141 - Keyword */ - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - /* reserved for T1 networks such as BR1, BR2, etc.. */ - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - STextAPISettings text_api; - - uint64_t termination_enables; // New feature unlike Galaxy. - - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t reserved : 15; - } flags; - - LIN_SETTINGS lin1; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - OP_ETH_SETTINGS opEth2; - OP_ETH_SETTINGS opEth3; - OP_ETH_SETTINGS opEth4; - OP_ETH_SETTINGS opEth5; - OP_ETH_SETTINGS opEth6; - OP_ETH_SETTINGS opEth7; - OP_ETH_SETTINGS opEth8; - OP_ETH_SETTINGS opEth9; - OP_ETH_SETTINGS opEth10; - OP_ETH_SETTINGS opEth11; - OP_ETH_SETTINGS opEth12; - OP_ETH_SETTINGS opEth13; - OP_ETH_SETTINGS opEth14; - OP_ETH_SETTINGS opEth15; - OP_ETH_SETTINGS opEth16; - - ETHERNET10G_SETTINGS ethernet10g_3; - ETHERNET10G_SETTINGS ethernet10g; - ETHERNET10G_SETTINGS ethernet10g_2; - - uint16_t network_enables_4; - RAD_REPORTING_SETTINGS reporting; - RAD_GPTP_SETTINGS gPTP; - 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; - -} SRADGalaxy2Settings; -#define SRADGalaxy2Settings_SIZE 960 - -typedef struct _SVividCANSettings -{ - uint32_t ecu_id; - - CAN_SETTINGS can1; // 12 bytes - SWCAN_SETTINGS swcan1; // 14 bytes - CAN_SETTINGS lsftcan1; // 12 bytes - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t can_switch_mode; - uint16_t termination_enables; - - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; -} SVividCANSettings; -#define SVividCANSettings_SIZE 64 - -typedef struct _SOBD2SimSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd1; - CANFD_SETTINGS canfd2; - - uint64_t network_enables; - uint16_t network_enabled_on_boot; - - int16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t misc_io_analog_enable; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - struct - { - uint32_t : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; - - STextAPISettings text_api; -} SOBD2SimSettings; -#define SOBD2SimSettings_SIZE 148 - -typedef struct _CmProbeSettings -{ - // uint16_t perf_en; - - // ETHERNET_SETTINGS eth1; // 16 bytes - // OP_ETH_SETTINGS opEth1; - - uint16_t network_enables; - - // uint16_t misc_io_initial_ddr; - // uint16_t misc_io_initial_latch; - // uint16_t misc_io_report_period; - // uint16_t misc_io_on_report_events; - // uint16_t misc_io_analog_enable; - // uint16_t ain_sample_period; - // uint16_t ain_threshold; - // - // uint32_t pwr_man_timeout; - // uint16_t pwr_man_enable; - // - uint16_t network_enabled_on_boot; - // - // uint16_t idle_wakeup_network_enables_1; - -} CmProbeSettings, SCmProbeSettings; -#define CmProbeSettings_SIZE 4 - -typedef struct _OBD2ProSettings -{ - /* Performance Test */ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - - SWCAN_SETTINGS swcan1; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - ETHERNET_SETTINGS ethernet; - - /* ISO9141 - Keyword */ - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint64_t network_enables; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; - - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; - uint16_t can_switch_mode; - - uint16_t misc_io_analog_enable; - ETHERNET_SETTINGS2 ethernet2; -} OBD2ProSettings, SOBD2ProSettings; -#define OBD2ProSettings_SIZE 482 - -typedef struct _VCAN412Settings -{ - /* Performance Test */ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - - uint64_t network_enables; - uint64_t termination_enables; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; - - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; -} VCAN412Settings, SVCAN412Settings; -#define VCAN412Settings_SIZE 148 -#define SVCAN412Settings_SIZE VCAN412Settings_SIZE - -typedef struct _neoECU_AVBSettings -{ - /* Performance Test */ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - - uint64_t network_enables; - uint64_t termination_enables; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; - - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; -} ECU_AVBSettings, SECU_AVBSettings; -#define ECU_AVBSettings_SIZE 148 - -#define PLUTO_NUM_PORTS 5 -#define PLUTO_NUM_PRIORITY 8 -#define PLUTO_MAX_L2_POLICING 45 -#define PLUTO_MAX_L2_ADDRESS_LOOKUP 1024 -#define PLUTO_MAX_VLAN_LOOKUP 4096 -#define PLUTO_MAX_FORWARDING_ENTRIES 13 -#define PLUTO_MAX_MAC_CONFIG_ENTRIES 5 -#define PLUTO_MAX_RETAGGING_ENTRIES 32 -#define MAX_VL_POLICING_ENTRIES 1024 -#define MAX_VL_FORWARDING_ENTRIES 1024 - -typedef struct SPluto_L2AddressLookupEntry_s -{ - uint16_t index; - uint16_t vlanID; - uint8_t macaddr[6]; - uint8_t destports; - uint8_t enfport; - uint8_t learnedEntry; - uint8_t pad1; - uint8_t pad2; - uint8_t pad3; -} SPluto_L2AddressLookupEntry; // 16 - -typedef struct SPluto_L2AddressLookupParams_s -{ - uint16_t maxage; - uint8_t dyn_tbsz; - uint8_t poly; - uint8_t shared_learn; - uint8_t no_enf_hostprt; - uint8_t no_mgmt_learn; - uint8_t pad; -} SPluto_L2AddressLookupParams; // 8 - -typedef struct SPluto_L2ForwardingParams_s -{ - uint16_t part_spc[PLUTO_NUM_PRIORITY]; - uint8_t max_dynp; - uint8_t pad; -} SPluto_L2ForwardingParams; // 18 - -typedef struct SPluto_L2ForwardingEntry_s -{ - uint8_t vlan_pmap[PLUTO_NUM_PRIORITY]; - uint8_t bc_domain; - uint8_t reach_port; - uint8_t fl_domain; - uint8_t pad; -} SPluto_L2ForwardingEntry; // 12 - -typedef struct SPluto_L2Policing_s -{ - uint16_t smax; - uint16_t rate; - uint16_t maxlen; - uint8_t sharindx; - uint8_t partition; -} SPluto_L2Policing; // 8 - -typedef struct SPluto_VlanLookup_s -{ - uint16_t vlanid; - uint8_t ving_mirr; - uint8_t vegr_mirr; - uint8_t vmemb_port; - uint8_t vlan_bc; - uint8_t tag_port; - uint8_t pad; -} SPluto_VlanLookup; // 8 - -typedef struct SPluto_MacConfig_s -{ - uint16_t top[PLUTO_NUM_PRIORITY]; - uint16_t base[PLUTO_NUM_PRIORITY]; - uint16_t tp_delin; - uint16_t tp_delout; - uint16_t vlanid; - uint8_t enabled[PLUTO_NUM_PRIORITY]; - uint8_t ifg; - uint8_t speed; - uint8_t maxage; - uint8_t vlanprio; - uint8_t ing_mirr; - uint8_t egr_mirr; - uint8_t drpnona664; - uint8_t drpdtag; - uint8_t drpuntag; - uint8_t retag; - uint8_t dyn_learn; - uint8_t egress; - uint8_t ingress; - uint8_t pad; -} SPluto_MacConfig; // 60 - -typedef struct SPluto_RetaggingEntry_s -{ - uint16_t vlan_egr; - uint16_t vlan_ing; - uint8_t egr_port; - uint8_t ing_port; - uint8_t do_not_learn; - uint8_t use_dest_ports; - uint8_t destports; - uint8_t pad; -} SPluto_RetaggingEntry; // 10 - -typedef struct SPluto_GeneralParams_s -{ - uint64_t mac_fltres1; - uint64_t mac_fltres0; - uint64_t mac_flt1; - uint64_t mac_flt0; - uint32_t vlmarker; - uint32_t vlmask; - uint16_t tpid; - uint16_t tpid2; - uint8_t vllupformat; - uint8_t mirr_ptacu; - uint8_t switchid; - uint8_t hostprio; - uint8_t incl_srcpt1; - uint8_t incl_srcpt0; - uint8_t send_meta1; - uint8_t send_meta0; - uint8_t casc_port; - uint8_t host_port; - uint8_t mirr_port; - uint8_t ignore2stf; -} SPluto_GeneralParams; // 60 - -typedef struct SPluto_VlLookupEntry_s -{ - union - { - /* format == 0 */ - struct - { - uint64_t macaddr; - uint16_t vlanid; - uint8_t destports; - uint8_t iscritical; - uint8_t port; - uint8_t vlanprior; - } vllupformat0; // 14 - /* format == 1 */ - struct - { - uint16_t vlid; - uint8_t egrmirr; - uint8_t ingrmirr; - uint8_t port; - } vllupformat1; // 5 - }; -} SPluto_VlLookupEntry; // 14 - -typedef struct SPluto_VlPolicingEntry_s -{ - uint64_t type; - uint64_t maxlen; - uint64_t sharindx; - uint64_t bag; - uint64_t jitter; -} SPluto_VlPolicingEntry; // 40 - -typedef struct SPluto_VlForwardingParams_s -{ - uint16_t partspc[PLUTO_NUM_PRIORITY]; - uint8_t debugen; - uint8_t pad; -} SPluto_VlForwardingParams; // 18 - -typedef struct SPluto_VlForwardingEntry_s -{ - uint8_t type; - uint8_t priority; - uint8_t partition; - uint8_t destports; -} SPluto_VlForwardingEntry; // 4 - -typedef struct SPluto_AVBParams_s -{ - uint64_t destmeta; - uint64_t srcmeta; -} SPluto_AVBParams; // 16 - -typedef struct SPluto_ClockSyncParams_s -{ - uint64_t etssrcpcf; - uint32_t wfintmout; - uint32_t maxtranspclk; - uint32_t listentmout; - uint32_t intcydur; - uint32_t caentmout; - uint16_t pcfsze; - uint16_t obvwinsz; - uint16_t vlidout; - uint16_t vlidimnmin; - uint16_t vlidinmax; - uint16_t accdevwin; - uint8_t srcport[8]; - uint8_t waitthsync; - uint8_t unsytotsyth; - uint8_t unsytosyth; - uint8_t tsytosyth; - uint8_t tsyth; - uint8_t tsytousyth; - uint8_t syth; - uint8_t sytousyth; - uint8_t sypriority; - uint8_t sydomain; - uint8_t stth; - uint8_t sttointth; - uint8_t pcfpriority; - uint8_t numunstbcy; - uint8_t numstbcy; - uint8_t maxintegcy; - uint8_t inttotentth; - uint8_t inttosyncth; - uint8_t vlidselect; - uint8_t tentsyrelen; - uint8_t asytensyen; - uint8_t sytostben; - uint8_t syrelen; - uint8_t sysyen; - uint8_t syasyen; - uint8_t ipcframesy; - uint8_t stabasyen; - uint8_t swmaster; - uint8_t fullcbg; - uint8_t pad1; - uint8_t pad2; - uint8_t pad3; -} SPluto_ClockSyncParams; // 80 - -#define gPTP_ROLE_DISABLED 0 -#define gPTP_ROLE_PASSIVE 1 -#define gPTP_ROLE_MASTER 2 -#define gPTP_ROLE_SLAVE 3 - -#define gPTP_PROFILE_STANDARD 0 -#define gPTP_PROFILE_AUTOMOTIVE 1 - -#define gPTP_PORT_DISABLED 0 -#define gPTP_PORT_ENABLED 1 - -typedef struct SPlutoPtpParams_s -{ - uint32_t neighborPropDelayThresh; // ns - uint32_t sys_phc_sync_interval; // ns - int8_t logPDelayReqInterval; // log2ms - int8_t logSyncInterval; // log2ms - int8_t logAnnounceInterval; // log2ms - uint8_t profile; - uint8_t priority1; - uint8_t clockclass; - uint8_t clockaccuracy; - uint8_t priority2; - uint16_t offset_scaled_log_variance; - uint8_t gPTPportRole[PLUTO_NUM_PORTS - 1]; // the 5th port is used for SAM - uint8_t portEnable[PLUTO_NUM_PORTS - 1]; // the 5th port is used for SAM -} PlutoPtpParams_t; // 26 - -typedef struct SPluto_CustomParams_s -{ - uint8_t mode[PLUTO_MAX_MAC_CONFIG_ENTRIES]; - uint8_t speed[PLUTO_MAX_MAC_CONFIG_ENTRIES]; - uint8_t enablePhy[PLUTO_MAX_MAC_CONFIG_ENTRIES]; - uint8_t ae1Select; - uint8_t usbSelect; - uint8_t pad; - PlutoPtpParams_t ptpParams; -} SPluto_CustomParams; // 44 - -typedef struct SPlutoSwitchSettings_s -{ - ExtendedDataFlashHeader_t flashHeader; // all extended data must start with this header //8 - SPluto_L2AddressLookupParams l2_addressLookupParams; // 8 - SPluto_L2AddressLookupEntry l2_addressLookupEntries[PLUTO_MAX_L2_ADDRESS_LOOKUP]; // 16 * 1024 - SPluto_L2Policing l2_policing[PLUTO_MAX_L2_POLICING]; // 8 * 45 - SPluto_L2ForwardingParams l2_forwardingParams; // 18 - SPluto_L2ForwardingEntry l2_ForwardingEntries[PLUTO_MAX_FORWARDING_ENTRIES]; // 12 * 13 - SPluto_VlanLookup vlan_LookupEntries[PLUTO_MAX_VLAN_LOOKUP]; // 8 * 4096 - SPluto_MacConfig macConfig[PLUTO_MAX_MAC_CONFIG_ENTRIES]; // 60 * 5 - SPluto_GeneralParams generalParams; // 60 - SPluto_RetaggingEntry retagging[PLUTO_MAX_RETAGGING_ENTRIES]; // 10 * 32 -#if 0 - SPluto_VlPolicingEntry vl_policing[MAX_VL_POLICING_ENTRIES]; - SPluto_VlForwardingParams vl_forwardingParams; - SPluto_VlForwardingEntry vl_forwardingEntries[MAX_VL_FORWARDING_ENTRIES]; - SPluto_AVBParams avbParams; - SPluto_ClockSyncParams clkSyncParams; -#endif -} SPlutoSwitchSettings; -#define SPlutoSwitchSettings_SIZE 50378 - -typedef struct _RADPlutoSettings -{ - /* Performance Test */ - uint16_t perf_en; // 2 - - CAN_SETTINGS can1; // 12 - CANFD_SETTINGS canfd1; // 10 - CAN_SETTINGS can2; // 12 - CANFD_SETTINGS canfd2; // 10 - LIN_SETTINGS lin1; // 10 - - uint16_t network_enables; // 2 - uint16_t network_enables_2; // 2 - uint16_t network_enables_3; // 2 - uint64_t termination_enables; // 8 - uint16_t misc_io_analog_enable; // 2 - - uint32_t pwr_man_timeout; // 4 - uint16_t pwr_man_enable; // 2 - - uint16_t network_enabled_on_boot; // 2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; // 2 - uint16_t iso9141_kwp_enable_reserved; // 2 - uint16_t iso_tester_pullup_enable; // 2 - uint16_t iso_parity; // 2 - uint16_t iso_msg_termination; // 2 - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 - ETHERNET_SETTINGS ethernet; // 8 - - STextAPISettings text_api; // 72 - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; // 4 - - SPluto_CustomParams custom; // 44 - ETHERNET_SETTINGS2 ethernet2; // 16 -} SRADPlutoSettings; -#define SRADPlutoSettings_SIZE 348 - -typedef union -{ - uint32_t word; - struct - { - unsigned can_sleep_command_id : 29; - unsigned can_sleep_command_isExtended : 1; - unsigned reserved : 2; - } id; -} SCANSleepID; -typedef struct -{ - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - uint64_t network_enables; - uint64_t termination_enables; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; - uint32_t ecu_id; - SCANSleepID sleep_id; -} CANHubSettings, SCANHubSettings; -#define CANHubSettings_SIZE 56 - -typedef struct _SFlexVnetzSettings -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint16_t misc_io_on_report_events; - uint16_t pwr_man_enable; - int16_t iso15765_separation_time_offset; - uint16_t flex_mode; - uint16_t flex_termination; - uint16_t slaveVnetA; - uint64_t termination_enables; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - }; - } network_enables; - uint32_t pwr_man_timeout; - uint16_t slaveVnetB; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - ETHERNET_SETTINGS ethernet; - TIMESYNC_ICSHARDWARE_SETTINGS timeSync; - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved : 26; - } flags; - DISK_SETTINGS disk; - ETHERNET_SETTINGS2 ethernet2; -} SFlexVnetzSettings; -#define SFlexVnetzSettings_Size (310) - -typedef enum _flexVnetMode -{ - flexVnetModeDisabled, - flexVnetModeOneSingle, - flexVnetModeOneDual, - flexVnetModeTwoSingle, - flexVnetModeColdStart -} flexVnetMode; - -typedef struct _NeoECU12Settings -{ - uint32_t ecu_id; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - SWCAN_SETTINGS swcan1; - SWCAN_SETTINGS swcan2; - CAN_SETTINGS lsftcan1; - CAN_SETTINGS lsftcan2; - LIN_SETTINGS lin1; - - uint64_t network_enables; - uint16_t network_enabled_on_boot; - - uint64_t termination_enables; - uint16_t can_switch_mode; - - /* ISO9141 - Keyword */ - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t perf_en; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - int16_t iso15765_separation_time_offset; - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; - uint32_t reserved_field[2]; // #3166 reserved field for downgrade support -} SNeoECU12Settings; -#define SNeoECU12Settings_SIZE 358 - -typedef struct _VCAN4IndSettings -{ - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - ETHERNET_SETTINGS ethernet; - LIN_SETTINGS lin1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t perf_en; - int16_t iso15765_separation_time_offset; - uint16_t network_enabled_on_boot; - - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - }; - } network_enables; - uint64_t termination_enables; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 28; - } flags; - ETHERNET_SETTINGS2 ethernet2; -} VCAN4IndSettings, SVCAN4IndSettings; -#define VCAN4IndSettings_SIZE (228) - -typedef struct _SOBD2LCSettings -{ - /* Performance Test */ - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - SWCAN_SETTINGS swcan1; - LIN_SETTINGS lin1; - /* ISO9141 - Keyword */ - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - }; - } network_enables; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t network_enabled_on_boot; - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved : 26; - } flags; - uint16_t can_switch_mode; - uint16_t misc_io_on_report_events; - DISK_SETTINGS disk; - ETHERNET_SETTINGS ethernet; - ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings - uint16_t iso_tester_pullup_enable; -} OBD2LCSettings, SOBD2LCSettings; -#define OBD2LCSettings_SIZE 370 - -#define RADJUPITER_NUM_PORTS 8 - -typedef struct SJupiterPtpParams_s -{ - uint32_t neighborPropDelay; // ns - int8_t initLogPDelayReqInterval; // log2ms - int8_t initLogSyncInterval; // log2ms - int8_t operationLogPDelayReqInterval; // log2ms - int8_t operationLogSyncInterval; // log2ms - uint8_t gPTPportRole[RADJUPITER_NUM_PORTS]; // the 6th port is used for SAM -} JupiterPtpParams_t; // 16 - -typedef struct _SRADJupiterSwitchSettings -{ - uint8_t phyMode[RADJUPITER_NUM_PORTS]; // 8 - uint8_t enablePhy[RADJUPITER_NUM_PORTS]; // 8 - uint8_t port7Select; // 1 - uint8_t port8Select; // 1 - uint8_t port8Speed; - uint8_t port8Legacy; - uint8_t spoofMacFlag; - uint8_t spoofedMac[6]; - uint8_t pad; - JupiterPtpParams_t ptpParams_unused; // 16 -} SRADJupiterSwitchSettings; // 44 - -typedef struct _SRADJupiterSettings -{ - /* Performance Test */ - uint16_t perf_en; // 2 - - CAN_SETTINGS can1; // 12 - CANFD_SETTINGS canfd1; // 10 - CAN_SETTINGS can2; // 12 - CANFD_SETTINGS canfd2; // 10 - LIN_SETTINGS lin1; // 10 - - uint16_t network_enables; // 2 - uint16_t network_enables_2; // 2 - uint16_t network_enables_3; // 2 - uint64_t termination_enables; // 8 - uint16_t misc_io_analog_enable; // 2 - - uint32_t pwr_man_timeout; // 4 - uint16_t pwr_man_enable; // 2 - - uint16_t network_enabled_on_boot; // 2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; // 2 - uint16_t iso9141_kwp_enable_reserved; // 2 - uint16_t iso_tester_pullup_enable; // 2 - uint16_t iso_parity; // 2 - uint16_t iso_msg_termination; // 2 - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 - ETHERNET_SETTINGS ethernet; // 8 - - STextAPISettings text_api; // 72 - - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; // 4 - - SRADJupiterSwitchSettings switchSettings; // 44 - ETHERNET_SETTINGS2 ethernet2; -} SRADJupiterSettings; // 348 - -#define SRADJupiterSettings_SIZE 348 - -#define LINUX_BOOT_ALLOWED (1) - -#define WIFI_ANTENNA_INTERNAL (0) -#define WIFI_ANTENNA_EXTERNAL (1) - -#define LINUX_CONFIG_PORT_NONE (0) -#define LINUX_CONFIG_PORT_ETH_01 (1) -#define LINUX_CONFIG_PORT_ETH_02 (2) -typedef struct -{ - uint8_t allowBoot; // 0 - disable booting Linux, 1 - enable booting Linux, Others - Disable booting linux - uint8_t useExternalWifiAntenna; // 0 for internal, 1 for external, Others - Internal - uint8_t ethConfigurationPort; // 0 - both ports used by logger, 1 - ETH 01 for Linux Configuration, 2 - ETH 02 for Linux Configuration, Others - both ports used by logger - uint8_t reserved[5]; -} Fire3LinuxSettings; - -#define CMP_STREAMS_FIRE3 (10) -#define CMP_STREAMS_FIRE3FR (10) -#define CMP_STREAMS_RED2 (10) - -typedef struct -{ - uint8_t bStreamEnabled : 1; - uint8_t EthModule : 2; - uint8_t bControlEnabled : 1; - uint8_t spare : 4; - uint8_t streamId; - uint8_t dstMac[6]; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint16_t network_enables_4; - }; - } network_enables; - uint64_t network_enables_2; -} CMP_NETWORK_DATA; - -typedef struct -{ - uint8_t cmp_enabled : 1; - uint8_t sparebits : 7; - uint8_t spare; - uint16_t cmp_device_id; -} CMP_GLOBAL_DATA; - -typedef struct _SRed2Settings -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint16_t misc_io_on_report_events; - uint16_t pwr_man_enable; - int16_t iso15765_separation_time_offset; - uint16_t slaveVnetA; - uint32_t reserved; - uint64_t termination_enables; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint16_t network_enables_4; - }; - } network_enables; - uint32_t pwr_man_timeout; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - ETHERNET_SETTINGS ethernet_1; - TIMESYNC_ICSHARDWARE_SETTINGS timeSync; - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved : 26; - } flags; - DISK_SETTINGS disk; - uint16_t misc_io_report_period; - uint16_t ain_threshold; - uint16_t misc_io_analog_enable; - uint16_t digitalIoThresholdTicks; - uint16_t digitalIoThresholdEnable; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - ETHERNET_SETTINGS2 ethernet2_1; - ETHERNET_SETTINGS ethernet_2; - ETHERNET_SETTINGS2 ethernet2_2; - Fire3LinuxSettings os_settings; - RAD_GPTP_SETTINGS gPTP; - uint16_t iso_tester_pullup_enable; - CMP_GLOBAL_DATA cmp_global_data; - CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_RED2]; -} SRed2Settings; -#define SRed2Settings_SIZE (914) - -typedef struct _SFire3Settings -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint16_t misc_io_on_report_events; - uint16_t pwr_man_enable; - int16_t iso15765_separation_time_offset; - uint16_t slaveVnetA; - uint32_t reserved; - uint64_t termination_enables_1; - uint64_t network_enables; - uint32_t pwr_man_timeout; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - ETHERNET_SETTINGS ethernet_1; - TIMESYNC_ICSHARDWARE_SETTINGS timeSync; - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved : 26; - } flags; - DISK_SETTINGS disk; - uint16_t misc_io_report_period; - uint16_t ain_threshold; - uint16_t misc_io_analog_enable; - uint16_t digitalIoThresholdTicks; - uint16_t digitalIoThresholdEnable; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - ETHERNET_SETTINGS2 ethernet2_1; - ETHERNET_SETTINGS ethernet_2; - ETHERNET_SETTINGS2 ethernet2_2; - Fire3LinuxSettings os_settings; - RAD_GPTP_SETTINGS gPTP; - CAN_SETTINGS can9; - CANFD_SETTINGS canfd9; - CAN_SETTINGS can10; - CANFD_SETTINGS canfd10; - CAN_SETTINGS can11; - CANFD_SETTINGS canfd11; - CAN_SETTINGS can12; - CANFD_SETTINGS canfd12; - CAN_SETTINGS can13; - CANFD_SETTINGS canfd13; - CAN_SETTINGS can14; - CANFD_SETTINGS canfd14; - CAN_SETTINGS can15; - CANFD_SETTINGS canfd15; - CAN_SETTINGS can16; - CANFD_SETTINGS canfd16; - SWCAN_SETTINGS swcan1; - SWCAN_SETTINGS swcan2; - CAN_SETTINGS lsftcan1; - CAN_SETTINGS lsftcan2; - ETHERNET_SETTINGS ethernet_3; - ETHERNET_SETTINGS2 ethernet2_3; - LIN_SETTINGS lin3; - LIN_SETTINGS lin4; - LIN_SETTINGS lin5; - LIN_SETTINGS lin6; - LIN_SETTINGS lin7; - LIN_SETTINGS lin8; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - uint16_t iso_msg_termination_3; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - uint16_t iso_msg_termination_4; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5; - uint16_t iso_parity_5; - uint16_t iso_msg_termination_5; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6; - uint16_t iso_parity_6; - uint16_t iso_msg_termination_6; - uint16_t selectable_network_1; - uint16_t selectable_network_2; - uint64_t network_enables_2; - uint64_t termination_enables_2; - uint16_t iso_tester_pullup_enable; - CMP_GLOBAL_DATA cmp_global_data; - CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3]; -} SFire3Settings; -#define SFire3Settings_SIZE (1718) - -typedef struct _SFire3FlexraySettings -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint16_t misc_io_on_report_events; - uint16_t pwr_man_enable; - int16_t iso15765_separation_time_offset; - uint16_t slaveVnetA; - uint32_t reserved; - uint64_t termination_enables_1; - uint64_t network_enables; - uint32_t pwr_man_timeout; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - ETHERNET_SETTINGS ethernet_1; - TIMESYNC_ICSHARDWARE_SETTINGS timeSync; - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t reserved1 : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved : 26; - } flags; - DISK_SETTINGS disk; - uint16_t misc_io_report_period; - uint16_t ain_threshold; - uint16_t misc_io_analog_enable; - uint16_t digitalIoThresholdTicks; - uint16_t digitalIoThresholdEnable; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - ETHERNET_SETTINGS2 ethernet2_1; - ETHERNET_SETTINGS ethernet_2; - ETHERNET_SETTINGS2 ethernet2_2; - Fire3LinuxSettings os_settings; - RAD_GPTP_SETTINGS gPTP; - CAN_SETTINGS can9; - CANFD_SETTINGS canfd9; - CAN_SETTINGS can10; - CANFD_SETTINGS canfd10; - CAN_SETTINGS can11; - CANFD_SETTINGS canfd11; - CAN_SETTINGS can12; - CANFD_SETTINGS canfd12; - CAN_SETTINGS can13; - CANFD_SETTINGS canfd13; - CAN_SETTINGS can14; - CANFD_SETTINGS canfd14; - CAN_SETTINGS can15; - CANFD_SETTINGS canfd15; - ETHERNET_SETTINGS ethernet_3; - ETHERNET_SETTINGS2 ethernet2_3; - LIN_SETTINGS lin3; - LIN_SETTINGS lin4; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - uint16_t iso_msg_termination_3; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - uint16_t iso_msg_termination_4; - uint64_t network_enables_2; - uint64_t termination_enables_2; - uint16_t flex_mode; - uint16_t flex_termination; - uint16_t iso_tester_pullup_enable; - CMP_GLOBAL_DATA cmp_global_data; - CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3FR]; -} SFire3FlexraySettings; -#define SFire3FlexraySettings_SIZE (1368) - -typedef struct -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - RadMoonDuoConverterSettings converter; - uint64_t network_enables; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; -} RadMoonDuoSettings, SRadMoonDuoSettings; -#define RadMoonDuoSettings_SIZE 38 - -typedef struct _SEtherBadgeSettings -{ - /* Performance Test */ - uint16_t perf_en; // 2 - - CAN_SETTINGS can1; // 12 - CANFD_SETTINGS canfd1; // 10 - CAN_SETTINGS can2; // 12 - CANFD_SETTINGS canfd2; // 10 - LIN_SETTINGS lin1; // 10 - - uint16_t network_enables; // 2 - uint16_t network_enables_2; // 2 - uint16_t network_enables_3; // 2 - uint64_t termination_enables; // 8 - - uint32_t pwr_man_timeout; // 4 - uint16_t pwr_man_enable; // 2 - - uint16_t network_enabled_on_boot; // 2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; // 2 - uint16_t iso9141_kwp_enable_reserved; // 2 - uint16_t iso_tester_pullup_enable; // 2 - uint16_t iso_parity; // 2 - uint16_t iso_msg_termination; // 2 - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 - ETHERNET_SETTINGS ethernet; // 8 - - uint16_t misc_io_initial_ddr; // 2 - uint16_t misc_io_initial_latch; // 2 - uint16_t misc_io_report_period; // 2 - uint16_t misc_io_on_report_events; // 2 - uint16_t misc_io_analog_enable; // 2 - uint16_t ain_sample_period; // 2 - uint16_t ain_threshold; // 2 - - STextAPISettings text_api; // 72 - - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; // 4 - - ETHERNET_SETTINGS2 ethernet2; // 16 -} SEtherBadgeSettings; // 316 - -#define SEtherBadgeSettings_SIZE 316 - -#define RADEPSILON_NUM_PORTS 9 // ATSAM + PHYs -#define RADEPSILON_MAX_PHY 18 - -typedef struct _SRADEpsilonSwitchSettings -{ - uint8_t phyMode[RADEPSILON_MAX_PHY]; - uint8_t enablePhy[RADEPSILON_MAX_PHY]; - uint8_t speed[RADEPSILON_MAX_PHY]; - uint8_t legacy[RADEPSILON_MAX_PHY]; - uint8_t spoofedMac[6]; - uint8_t spoofMacFlag; - uint8_t pad; -} SRADEpsilonSwitchSettings; // 80 - -typedef struct _SRADEpsilonSettings -{ - /* Performance Test */ - uint16_t perf_en; // 2 - - CAN_SETTINGS can1; // 12 - CANFD_SETTINGS canfd1; // 10 - CAN_SETTINGS can2; // 12 - CANFD_SETTINGS canfd2; // 10 - LIN_SETTINGS lin1; // 10 - - uint16_t network_enables; // 2 - uint16_t network_enables_2; // 2 - uint16_t network_enables_3; // 2 - uint64_t termination_enables; // 8 - uint16_t misc_io_analog_enable; // 2 - - uint32_t pwr_man_timeout; // 4 - uint16_t pwr_man_enable; // 2 - - uint16_t network_enabled_on_boot; // 2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; // 2 - uint16_t iso9141_kwp_enable_reserved; // 2 - uint16_t iso_tester_pullup_enable; // 2 - uint16_t iso_parity; // 2 - uint16_t iso_msg_termination; // 2 - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; // 114 - ETHERNET_SETTINGS ethernet; // 8 - - STextAPISettings text_api; // 72 - - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; // 4 - - SRADEpsilonSwitchSettings switchSettings; // 80 - ETHERNET_SETTINGS2 ethernet2; // 16 - uint16_t misc_io_on_report_events; // 2 -} SRADEpsilonSettings; // 386 -#define SRADEpsilonSettings_SIZE 386 - -typedef struct -{ - uint8_t wBMSDeviceID; - uint8_t enabled; -} sWIL_FAULT_SERVICING_SETTINGS; // 2 - -typedef struct -{ - uint8_t enabled; -} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; // 1 - -typedef struct _sWIL_CONNECTION_SETTINGS -{ - uint8_t using_port_a; // 1 - uint8_t using_port_b; // 1 - uint8_t attemptConnect; // 1 - sWIL_FAULT_SERVICING_SETTINGS fault_servicing_config; // 2 - sWIL_NETWORK_DATA_CAPTURE_SETTINGS network_data_capture_config; // 1 - uint16_t sensor_buffer_size; // 2 -} sWIL_CONNECTION_SETTINGS; - -enum -{ - enumWILPortConfig_Single_Port_A = 0, - enumWILPortConfig_Single_Port_B, - enumWILPortConfig_Dual_Port_A_And_B, - enumWILPortConfig_Single_Port_A_And_B, - _enumWILPortConfig_Total, -}; - -enum -{ - SPI_PORT_ONBOARD = 0, - SPI_PORT_EXTERNAL, -}; - -enum -{ - SPI_TYPE_WIL = 0, - SPI_TYPE_RAW, -}; - -enum -{ - SPI_MODE_MASTER, - SPI_MODE_SLAVE, - SPI_MODE_PMS_EMULATION, -}; - -typedef union -{ - uint64_t dword; - struct - { - uint64_t can_id : 29; - uint64_t can_id_isExtended : 1; - uint64_t tcp_port : 16; - uint64_t reserved : 18; - } config; -} sWILBridgeConfig; - -typedef union -{ - uint8_t byte; - struct - { - uint8_t onboard_external : 1; - uint8_t type : 1; - uint8_t mode : 3; - uint8_t reserved : 3; - } config; -} sSPI_PORT_SETTING; - -typedef struct -{ - sSPI_PORT_SETTING port_a; // 1 - sSPI_PORT_SETTING port_b; // 1 -} sSPI_PORT_SETTINGS; - -// clang-format off -#define WBMS_GATEWAY_NETWORK_NONE (0) -#define WBMS_GATEWAY_NETWORK_DWCAN_01 (1) -#define WBMS_GATEWAY_NETWORK_DWCAN_02 (2) -#define WBMS_GATEWAY_NETWORK_UDP_MULTICAST (3) -// clang-format on - -typedef struct -{ - uint8_t wbms1_network; - uint8_t wbms1_canfd_enable; - uint8_t wbms2_network; - uint8_t wbms2_canfd_enable; - uint16_t reserved[6]; -} WBMSGatewaySettings; // 16 - -typedef struct _SRADBMSSettings -{ - /* Performance Test */ - uint16_t perf_en; // 2 - - uint64_t termination_enables; // 8 - - CAN_SETTINGS can1; // 12 - CANFD_SETTINGS canfd1; // 10 - - CAN_SETTINGS can2; // 12 - CANFD_SETTINGS canfd2; // 10 - - uint16_t network_enables; // 2 - uint16_t network_enables_2; // 2 - uint16_t network_enables_3; // 2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; // 2 - - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; // 4 - - ETHERNET_SETTINGS ethernet; // 8 - ETHERNET_SETTINGS2 ethernet2; // 16 - - uint32_t pwr_man_timeout; // 4 - uint16_t pwr_man_enable; // 2 - uint16_t network_enabled_on_boot; // 2 - - uint8_t rsvd[10]; // Was sWILBridgeConfig - - sSPI_PORT_SETTINGS spi_config; // 2 - - sWIL_CONNECTION_SETTINGS wbms_wil_1; // 8 - sWIL_CONNECTION_SETTINGS wbms_wil_2; // 8 - - uint16_t wil1_nwk_metadata_buff_count; // 2 - uint16_t wil2_nwk_metadata_buff_count; // 2 - - WBMSGatewaySettings gateway; // 16 - - uint16_t network_enables_4; // 2 - uint64_t network_enables_5; // 8 -} SRADBMSSettings; -#define SRADBMSSettings_SIZE 156 - -typedef struct _SRADCometSettings -{ - // ECU ID used in CAN communications. - // TX ID = ECU ID with bit28 cleared, - // RX ID = ECUID with bit28 set, - // ECU ID = 0 implies ECU ID = serial no with bit 27 set - uint32_t ecu_id; - uint16_t perf_en; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - uint16_t network_enabled_on_boot; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint16_t network_enables_4; - }; - } network_enables; - uint64_t termination_enables; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - RAD_REPORTING_SETTINGS reporting; - int16_t iso15765_separation_time_offset; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - RAD_GPTP_SETTINGS gPTP; - STextAPISettings text_api; - // Ethernet 10/100/1000 - ETHERNET_SETTINGS2 ethernet; - // Ethernet General - OP_ETH_GENERAL_SETTINGS opEthGen; - // 100/1000T1 - ETHERNET_SETTINGS2 ethT1; - OP_ETH_SETTINGS opEth1; - // 10T1S - ETHERNET_SETTINGS2 ethT1s1; - ETHERNET10T1S_SETTINGS t1s1; - // 10T1S - ETHERNET_SETTINGS2 ethT1s2; - ETHERNET10T1S_SETTINGS t1s2; - uint64_t network_enables_5; - LIN_SETTINGS lin1; - // 10T1S Extended settings - ETHERNET10T1S_SETTINGS_EXT t1s1Ext; - ETHERNET10T1S_SETTINGS_EXT t1s2Ext; -} SRADCometSettings; -#define SRADCometSettings_SIZE 498 - -typedef struct _SRADComet3Settings -{ - // ECU ID used in CAN communications. - // TX ID = ECU ID with bit28 cleared, - // RX ID = ECUID with bit28 set, - // ECU ID = 0 implies ECU ID = serial no with bit 27 set - uint32_t ecu_id; - uint16_t perf_en; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - uint16_t network_enabled_on_boot; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - uint64_t network_enables; - uint64_t network_enables_2; - uint64_t termination_enables; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - RAD_REPORTING_SETTINGS reporting; - int16_t iso15765_separation_time_offset; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - RAD_GPTP_SETTINGS gPTP; - STextAPISettings text_api; - // Ethernet 10/100/1000 - ETHERNET_SETTINGS2 ethernet; - // Ethernet General - OP_ETH_GENERAL_SETTINGS opEthGen; - // 100/1000T1 - ETHERNET_SETTINGS2 ethT1; - OP_ETH_SETTINGS opEth1; - // 10T1S - ETHERNET_SETTINGS2 ethT1s1; - ETHERNET10T1S_SETTINGS t1s1; - // 10T1S - ETHERNET_SETTINGS2 ethT1s2; - ETHERNET10T1S_SETTINGS t1s2; - // 10T1S - ETHERNET_SETTINGS2 ethT1s3; - ETHERNET10T1S_SETTINGS t1s3; - // 10T1S - ETHERNET_SETTINGS2 ethT1s4; - ETHERNET10T1S_SETTINGS t1s4; - // 10T1S - ETHERNET_SETTINGS2 ethT1s5; - ETHERNET10T1S_SETTINGS t1s5; - // 10T1S - ETHERNET_SETTINGS2 ethT1s6; - ETHERNET10T1S_SETTINGS t1s6; - LIN_SETTINGS lin1; - // 10T1S Extended Settings - ETHERNET10T1S_SETTINGS_EXT t1s1Ext; - ETHERNET10T1S_SETTINGS_EXT t1s2Ext; - ETHERNET10T1S_SETTINGS_EXT t1s3Ext; - ETHERNET10T1S_SETTINGS_EXT t1s4Ext; - ETHERNET10T1S_SETTINGS_EXT t1s5Ext; - ETHERNET10T1S_SETTINGS_EXT t1s6Ext; -} SRADComet3Settings; -#define SRADComet3Settings_SIZE 674 - -typedef struct _SRADGigaStar2Settings -{ - // ECU ID used in CAN communications. - // TX ID = ECU ID with bit28 cleared, - // RX ID = ECUID with bit28 set, - // ECU ID = 0 implies ECU ID = serial no with bit 27 set - uint32_t ecu_id; - uint16_t perf_en; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - uint16_t network_enabled_on_boot; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - uint16_t iso_msg_termination_3; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - uint16_t iso_msg_termination_4; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5; - uint16_t iso_parity_5; - uint16_t iso_msg_termination_5; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6; - uint16_t iso_parity_6; - uint16_t iso_msg_termination_6; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_7; - uint16_t iso_parity_7; - uint16_t iso_msg_termination_7; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_8; - uint16_t iso_parity_8; - uint16_t iso_msg_termination_8; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_9; - uint16_t iso_parity_9; - uint16_t iso_msg_termination_9; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_10; - uint16_t iso_parity_10; - uint16_t iso_msg_termination_10; - uint64_t network_enables; - uint64_t network_enables_2; - uint64_t termination_enables; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - RAD_REPORTING_SETTINGS reporting; - int16_t iso15765_separation_time_offset; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - RAD_GPTP_SETTINGS gPTP; - STextAPISettings text_api; - DISK_SETTINGS disk; - LOGGER_SETTINGS logger; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - LIN_SETTINGS lin3; - LIN_SETTINGS lin4; - LIN_SETTINGS lin5; - LIN_SETTINGS lin6; - LIN_SETTINGS lin7; - LIN_SETTINGS lin8; - LIN_SETTINGS lin9; - LIN_SETTINGS lin10; - // TODO more LIN - // Ethernet SFP - ETHERNET_SETTINGS2 ethernet1; - ETHERNET_SETTINGS2 ethernet2; - // Ethernet General - OP_ETH_GENERAL_SETTINGS opEthGen; - // 100/1000T1 - ETHERNET_SETTINGS2 ethT1; - OP_ETH_SETTINGS opEth1; - ETHERNET_SETTINGS2 ethT12; - OP_ETH_SETTINGS opEth2; - // 10T1S - ETHERNET_SETTINGS2 ethT1s1; - ETHERNET10T1S_SETTINGS t1s1; - ETHERNET10T1S_SETTINGS_EXT t1s1Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s2; - ETHERNET10T1S_SETTINGS t1s2; - ETHERNET10T1S_SETTINGS_EXT t1s2Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s3; - ETHERNET10T1S_SETTINGS t1s3; - ETHERNET10T1S_SETTINGS_EXT t1s3Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s4; - ETHERNET10T1S_SETTINGS t1s4; - ETHERNET10T1S_SETTINGS_EXT t1s4Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s5; - ETHERNET10T1S_SETTINGS t1s5; - ETHERNET10T1S_SETTINGS_EXT t1s5Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s6; - ETHERNET10T1S_SETTINGS t1s6; - ETHERNET10T1S_SETTINGS_EXT t1s6Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s7; - ETHERNET10T1S_SETTINGS t1s7; - ETHERNET10T1S_SETTINGS_EXT t1s7Ext; - // 10T1S - ETHERNET_SETTINGS2 ethT1s8; - ETHERNET10T1S_SETTINGS t1s8; - ETHERNET10T1S_SETTINGS_EXT t1s8Ext; -} SRADGigastar2Settings; -#define SRADGigastar2Settings_SIZE 2024 - -typedef struct _SRADMoonT1SSettings -{ - uint16_t perf_en; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - uint16_t network_enabled_on_boot; - uint64_t network_enables; - uint64_t network_enables_2; - RAD_REPORTING_SETTINGS reporting; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - // Ethernet 10/100/1000 - ETHERNET_SETTINGS2 ethernet; - // Ethernet General - OP_ETH_GENERAL_SETTINGS opEthGen; - // 10T1S - ETHERNET_SETTINGS2 ethT1s; - ETHERNET10T1S_SETTINGS t1s; - // 10T1S Extended Settings - ETHERNET10T1S_SETTINGS_EXT t1sExt; -} SRADMoonT1SSettings; -#define SRADMoonT1SSettings_SIZE 124 - -typedef struct _SNeoVIConnectSettings -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint16_t misc_io_on_report_events; - uint16_t pwr_man_enable; - int16_t iso15765_separation_time_offset; - uint16_t reservedA; - uint32_t pwr_man_timeout; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint16_t network_enables_4; - }; - } network_enables; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - ETHERNET_SETTINGS ethernet_1; - ETHERNET_SETTINGS2 ethernet2_1; - STextAPISettings text_api; - DISK_SETTINGS disk; - uint16_t misc_io_report_period; - uint16_t ain_threshold; - uint16_t misc_io_analog_enable; - uint16_t digitalIoThresholdTicks; - uint16_t digitalIoThresholdEnable; - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - Fire3LinuxSettings os_settings; - RAD_GPTP_SETTINGS gPTP; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enableDefaultLogger : 1; - uint32_t enableDefaultUpload : 1; - uint32_t reserved3 : 28; - } flags; -} SNeoVIConnectSettings; -#define SNeoVIConnectSettings_SIZE (628) - -#define GS_VERSION 5 -typedef struct _GLOBAL_SETTINGS -{ - uint16_t version; - uint16_t len; - uint16_t chksum; - union - { - SRedSettings red; - SFireSettings fire; - SFireVnetSettings firevnet; - SCyanSettings cyan; - SVCAN3Settings vcan3; - SVCAN4Settings vcan4; - SECUSettings ecu; - SIEVBSettings ievb; - SPendantSettings pendant; - SRADGalaxySettings radgalaxy; - SRADStar2Settings radstar2; - SOBD2SimSettings neoobd2_sim; - SCmProbeSettings cmprobe; - SOBD2ProSettings obd2pro; - SVCAN412Settings vcan412; - SVCAN412Settings vcan4_12; // backwards compatibility with older code - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; - SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SRADGigalogSettings radgigalog; - SCANHubSettings canhub; - SNeoECU12Settings neoecu12; - SEEVBSettings eevb; - SFlexVnetzSettings flexvnetz; - SVividCANSettings vividcan; - SVCAN4IndSettings vcan4_ind; - SOBD2LCSettings obd2lc; - SRADGigastarSettings radgigastar; - SRADGalaxy2Settings radGalaxy2; - SRADJupiterSettings jupiter; - SRed2Settings red2; - SFire3Settings fire3; - SFire3FlexraySettings fire3fr; - SRadMoonDuoSettings radmoonduo; - SEtherBadgeSettings etherBadge; - SRADA2BSettings rad_a2b; - SRADEpsilonSettings epsilon; - SRADBMSSettings rad_bms; - SRADMoon3Settings radmoon3; - SRADCometSettings radcomet; - SRADComet3Settings radcomet3; - SRADGigastar2Settings radgigastar2; - SRADMoonT1SSettings radmoont1s; - SNeoVIConnectSettings neovi_connect; - // Make sure SDeviceSettings matches this - }; -} GLOBAL_SETTINGS; -#define GLOBAL_SETTINGS_SIZE (SRADGigastar2Settings_SIZE + 6) - -#define NEOVI_3G_MAX_SETTINGS_SIZE sizeof(GLOBAL_SETTINGS) - -typedef enum _EDeviceSettingsType -{ - DeviceFireSettingsType, - DeviceFireVnetSettingsType, - DeviceFire2SettingsType, - DeviceVCAN3SettingsType, - DeviceRADGalaxySettingsType, - DeviceRADStar2SettingsType, - DeviceVCAN4SettingsType, - DeviceVCAN412SettingsType, - DeviceVividCANSettingsType, - DeviceECU_AVBSettingsType, - DeviceRADSuperMoonSettingsType, - DeviceRADMoon2SettingsType, - DeviceRADPlutoSettingsType, - DeviceRADGigalogSettingsType, - DeviceDeprecatedType, - DeviceEEVBSettingsType, - DeviceVCAN4IndSettingsType, - DeviceNeoECU12SettingsType, - DeviceFlexVnetzSettingsType, - DeviceCANHUBSettingsType, - DeviceIEVBSettingsType, - DeviceOBD2SimSettingsType, - DeviceCMProbeSettingsType, - DeviceOBD2ProSettingsType, - DeviceRedSettingsType, - DeviceRADPlutoSwitchSettingsType, - DeviceRADGigastarSettingsType, - DeviceRADJupiterSettingsType, - DeviceRed2SettingsType, - DeviceRadMoonDuoSettingsType, - DeviceEtherBadgeSettingsType, - DeviceRADA2BSettingsType, - DeviceRADEpsilonSettingsType, - DeviceOBD2LCSettingsType, - DeviceRADBMSSettingsType, - DeviceRADMoon3SettingsType, - DeviceFire3SettingsType, - DeviceFire3FlexraySettingsType, - DeviceRADCometSettingsType, - DeviceNeoVIConnectSettingsType, - DeviceRADComet3SettingsType, - DeviceRADGalaxy2SettingsType, - DeviceRADGigastar2SettingsType, - DeviceRADMoonT1SSettingsType, - // add new settings type here - // Also add to map inside cicsneoVI::Init() - DeviceSettingsTypeMax, - DeviceSettingsNone = 0xFFFFFFFF // just wanted to reserve this -} EDeviceSettingsType; - -typedef struct _SDeviceSettings -{ - EDeviceSettingsType DeviceSettingType; - union - { - SRedSettings red; - SFireSettings fire; - SFireVnetSettings firevnet; - SCyanSettings cyan; - SVCAN3Settings vcan3; - SVCAN4Settings vcan4; - SECUSettings ecu; - SIEVBSettings ievb; - SPendantSettings pendant; - SRADGalaxySettings radgalaxy; - SRADStar2Settings radstar2; - SOBD2SimSettings neoobd2_sim; - SCmProbeSettings cmprobe; - SOBD2ProSettings obd2pro; - SVCAN412Settings vcan412; - SVCAN412Settings vcan4_12; // backwards compatibility with older code - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; - SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SPlutoSwitchSettings plutoswitch; - SRADGigalogSettings radgigalog; - SCANHubSettings canhub; - SNeoECU12Settings neoecu12; - SEEVBSettings eevb; - SFlexVnetzSettings flexvnetz; - SVividCANSettings vividcan; - SVCAN4IndSettings vcan4_ind; - SOBD2LCSettings obd2lc; - SRADGigastarSettings radgigastar; - SRADGalaxy2Settings radGalaxy2; - SRADJupiterSettings jupiter; - SFire3Settings fire3; - SRed2Settings red2; - SRadMoonDuoSettings radmoon_duo; - SEtherBadgeSettings etherBadge; - SRADA2BSettings rad_a2b; - SRADEpsilonSettings epsilon; - SRADBMSSettings rad_bms; - SRADMoon3Settings radmoon3; - SFire3FlexraySettings fire3Flexray; - SRADCometSettings radcomet; - SRADComet3Settings radcomet3; - SRADGigastar2Settings radgigastar2; - SRADMoonT1SSettings radmoont1s; - SNeoVIConnectSettings neovi_connect; - // Make sure GLOBAL_SETTINGS matches this - // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; - } Settings; -} SDeviceSettings; - -typedef enum _EPlasmaIonVnetChannel_t -{ - PlasmaIonVnetChannelMain, // PLASMA = SLOT 2, ION = VNET2 - PlasmaIonVnetChannelA, // PLASMA = SLOT 1, ION = VNET1 - PlasmaIonVnetChannelB, // PLASMA = SLOT 3, ION = NA - eSoftCore, - eFpgaStatusResp, -} EPlasmaIonVnetChannel_t; - -typedef enum _EwBMSManagerPort_t -{ - eManagerPortA = 0, - eManagerPortB, -} EwBMSManagerPort_t; - -typedef enum _EwBMSManagerLockState_t -{ - eLockManager = 0, - eUnlockManager, -} EwBMSManagerLockState_t; - -typedef enum _EUartPort_t -{ - eUART0 = 0, - eUART1, -} EUartPort_t; - -typedef enum _eGenericAPIOptions -{ - eGENERIC_API = 0, - eADI_WIL_API = 1, -} eGenericAPIOptions; - -typedef enum _EwBMSInstance_t -{ - ewBMSInstance0 = 0, - ewBMSInstance1, -} EwBMSInstance_t; - -typedef struct _stCM_ISO157652_TxMessage -{ - uint16_t vs_netid; /* The netid of the message (determines which network to transmit on), not supported */ - - uint8_t padding; /* The padding byte to use to fill the unused portion of - * transmitted CAN frames (single frame, first frame, consecutive frame) */ - uint8_t tx_index; - - uint32_t id; /* arbId of transmitted frames (CAN id to transmit to) */ - uint32_t fc_id; /* flow control arb id filter value (response id from receiver) */ - uint32_t fc_id_mask; /* The flow control arb filter mask (response id from receiver) */ - - uint8_t stMin; /* Overrides the stMin that the receiver reports, see overrideSTmin. Set to J2534's STMIN_TX if <= 0xFF */ - uint8_t blockSize; /* Overrides the block size that the receiver reports, see overrideBlockSize. Set to J2534's BS_TX if <= 0xFF */ - uint8_t flowControlExtendedAddress; /* Expected Extended Address byte of response from receiver. see fc_ext_address_enable, not supported */ - uint8_t extendedAddress; /* Extended Address byte of transmitter. see ext_address_enable, not supported */ - - uint16_t fs_timeout; /* max timeout (ms) for waiting on flow control respons. Set this to N_BS_MAX's value if J2534 */ - uint16_t fs_wait; /* max timeout (ms) for waiting on flow control response after receiving flow control - * with flow status set to WAIT. Set this to N_BS_MAX's value if J2534. */ - - uint8_t data[4 * 1024]; /* The data */ - - uint32_t num_bytes; /* Number of data bytes */ - - union - { - struct - { - unsigned id_29_bit_enable : 1; /* Enables 29 bit arbId for transmitted frames. Set to 1 so transmitted frames use 29 bit ids, not supported */ - unsigned fc_id_29_bit_enable : 1; /* Enables 29 bit arbId for Flow Control filter. Set to 1 if receiver response uses 29 bit ids, not supported */ - unsigned ext_address_enable : 1; /* Enables Extended Addressing, Set to 1 if transmitted frames should have extended addres byte, not supported */ - unsigned fc_ext_address_enable : 1; /* Enables Extended Addressing for Flow Control filter. Set to 1 if receiver responds with extended address byte, not supported */ - - unsigned overrideSTmin : 1; /* Uses member stMin and not receiver's flow control's stMin */ - unsigned overrideBlockSize : 1; /* Uses member BlockSize and not receiver's flow control's BlockSize */ - unsigned paddingEnable : 1; /* Enables padding */ - unsigned iscanFD : 1; - unsigned isBRSEnabled : 1; - unsigned : 15; - unsigned tx_dl : 8; - }; - uint32_t flags; - }; -} stCM_ISO157652_TxMessage; -#define stCM_ISO157652_TxMessage_SIZE 4128 - -typedef struct -{ - uint16_t vs_netid; /* network id for transmitted/received frames */ - uint8_t padding; /* if paddingEnable is set, frames will be padded to full length (see tx_dl) with this byte */ - - uint8_t tx_index; /* identifier for this transmit message */ - - uint32_t id; /* ArbID of transmitted frames, see id_29_bit_enable */ - uint32_t fc_id; /* Flow control response ArbID Value, see fc_id_29_bit_enable */ - uint32_t fc_id_mask; /* Flow control response ArbID mask */ - - uint8_t stMin; /* If overrideSTmin is set, this value supercedes the value in the flow control responses */ - uint8_t blockSize; /* if overrideBlockSize is ser, this value supercedes the value in the flow control responses */ - - uint8_t flowControlExtendedAddress; /* Expected EA from the receiver, see fc_ext_address_enable */ - uint8_t extendedAddress; /* EA for transmitted frames, see ext_address_enable */ - - uint16_t fs_timeout; /* timeout in milliseconds for waiting on flow control response */ - uint16_t fs_wait; /* timeout in milliseconds for waiting on another flow control response after receiving flow control with status set to WAIT */ - - uint8_t* data; /* pointer to the data bytes, this needs to by dynamically allocated in the application */ - uint32_t num_bytes; /* number of data bytes, 0-4294967295. As of 06-22-2017, the embedded side has about 60MB of memory available to hold this data */ - - uint8_t tx_dl; /* Maximum CAN(FD) protocol length for transmitted frames. Valid values are 8, 12, 16, 20, 24, 32, 48, 64 */ - - union - { - struct - { - uint16_t id_29_bit_enable : 1; - uint16_t fc_id_29_bit_enable : 1; - uint16_t ext_address_enable : 1; - uint16_t fc_ext_address_enable : 1; - uint16_t overrideSTmin : 1; - uint16_t overrideBlockSize : 1; - uint16_t paddingEnable : 1; - uint16_t iscanFD : 1; - uint16_t isBRSEnabled : 1; - uint16_t : 7; - }; - uint16_t flags; - }; -} ISO15765_2015_TxMessage; -#define ISO15765_2015_TxMessage_SIZE (32 + sizeof(uint8_t*)) - -typedef struct _stCM_ISO157652_RxMessage -{ - uint16_t vs_netid; /* The netid of the message (determines which network to decode receives), not supported */ - - uint8_t padding; /* The padding byte to use to fill the unused portion of - * transmitted CAN frames (flow control), see paddingEnable. */ - - uint32_t id; /* ArbId filter value for frames from transmitter (from ECU to neoVI) */ - uint32_t id_mask; /* ArbId filter mask for frames from transmitter (from ECU to neoVI) */ - uint32_t fc_id; /* flow control arbId to transmit in flow control (from neoVI to ECU) */ - - uint8_t flowControlExtendedAddress; /* Extended Address byte used in flow control (from neoVI to ECU). see fc_ext_address_enable */ - uint8_t extendedAddress; /* Expected Extended Address byte of frames sent by transmitter (from ECU to neoVI). see ext_address_enable */ - - uint8_t blockSize; /* Block Size to report in flow control response */ - uint8_t stMin; /* Minimum seperation time (between consecutive frames) to report in flow control response */ - - uint16_t cf_timeout; /* max timeout (ms) for waiting on consecutive frame. Set this to N_CR_MAX's value in J2534 */ - - union - { - struct - { - unsigned id_29_bit_enable : 1; /* Enables 29 bit arbId filter for frames (from ECU to neoVI) */ - unsigned fc_id_29_bit_enable : 1; /* Enables 29 bit arbId for Flow Control (from neoVI to ECU) */ - unsigned ext_address_enable : 1; /* Enables Extended Addressing (from ECU to neoVI) */ - unsigned fc_ext_address_enable : 1; /* Enables Extended Addressing (from neoVI to ECU) */ - unsigned enableFlowControlTransmission : 1; /*< Enables Flow Control frame transmission (from neoVI to ECU) */ - unsigned paddingEnable : 1; /* Enables padding */ - unsigned iscanFD : 1; - unsigned isBRSEnabled : 1; - }; - uint32_t flags; - }; - uint8_t reserved[16]; -} stCM_ISO157652_RxMessage; -#define stCM_ISO157652_RxMessage_SIZE 42 - -#pragma pack(pop) - -typedef struct -{ - uint32_t StatusValue; - uint32_t StatusMask; - uint32_t Status2Value; - uint32_t Status2Mask; - uint32_t Header; - uint32_t HeaderMask; - uint32_t MiscData; - uint32_t MiscDataMask; - uint32_t ByteDataMSB; - uint32_t ByteDataLSB; - uint32_t ByteDataMaskMSB; - uint32_t ByteDataMaskLSB; - uint32_t HeaderLength; - uint32_t ByteDataLength; - uint32_t NetworkID; - uint16_t FrameMaster; - uint8_t bUseArbIdRangeFilter; - uint8_t bStuff2; - uint32_t ExpectedLength; - uint32_t NodeID; -} spyFilterLong; -#define spyFilterLong_SIZE 72 - -#if !defined(VSPY3_GUI) && !defined(WIVI_EXPORT) && !defined(VS4A) && !defined(CORELIB_CMAKE) && !defined(NEOVI3GEXPLORER) -typedef int16_t descIdType; -#else -typedef uint32_t descIdType; -#endif - -typedef struct _icsSpyMessage -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - descIdType DescriptionID; - uint32_t ArbIDOrHeader; - uint8_t Data[8]; - union - { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessage; - -typedef struct _icsSpyMessageFlexRay -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - descIdType DescriptionID; - union - { - uint32_t ArbIDOrHeader; - struct - { - uint32_t id : 12; - uint32_t res1 : 4; - uint32_t cycle : 6; - uint32_t chA : 1; - uint32_t chB : 1; - uint32_t startup : 1; - uint32_t sync : 1; - uint32_t null_frame : 1; - uint32_t payload_preamble : 1; - uint32_t frame_reserved : 1; - uint32_t dynamic : 1; - }; - }; - uint8_t Data[8]; - union - { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - struct - { - uint32_t hcrc_msbs : 3; - uint32_t res2 : 5; - uint32_t hcrc_lsbs : 8; - uint32_t frame_len_12_5ns : 16; - uint32_t fcrc0 : 8; - uint32_t fcrc1 : 8; - uint32_t fcrc2 : 8; - uint32_t tss_len_12_5ns : 8; - }; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessageFlexRay; - -typedef struct _icsSpyMessageMdio -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - descIdType DescriptionID; - union - { - uint32_t ArbIDOrHeader; - struct - { - uint32_t RegAddr : 16; - uint32_t PhyAddr : 5; - uint32_t DevType : 5; - uint32_t : 6; - }; - }; - uint8_t Data[8]; - union - { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessageMdio; - -typedef struct _icsSpyMessagewBMS -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - descIdType DescriptionID; - union - { - uint32_t ArbIDOrHeader; - struct - { - uint32_t : 8; - uint32_t PacketType : 8; - uint32_t PacketID : 8; - uint32_t PacketSource : 8; - }; - }; - uint8_t Data[8]; - union - { - struct - { - union - { - uint32_t StatusBitField3; - struct - { - uint32_t APICode : 8; - uint32_t : 24; - }; - }; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessagewBMS; - -#if defined(VSPY3_GUI) || defined(WIVI_EXPORT) || defined(VS4A) || defined(CORELIB_CMAKE) || defined(NEOVI3GEXPLORER) -#if defined(IS_64BIT_SYSTEM) -#define icsSpyMessage_SIZE 80 -#else -#define icsSpyMessage_SIZE 68 -#endif -#else -#if defined(IS_64BIT_SYSTEM) -#define icsSpyMessage_SIZE 72 -#else -#define icsSpyMessage_SIZE 64 -#endif -#endif - -typedef struct _icsSpyMessageLong -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - descIdType DescriptionID; - uint32_t ArbIDOrHeader; - uint32_t DataMsb; - uint32_t DataLsb; - union - { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessageLong; -#define icsSpyMessageLong_SIZE icsSpyMessage_SIZE - -typedef struct _icsSpyMessageJ1850 -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - descIdType DescriptionID; - uint8_t Header[4]; - uint8_t Data[8]; - union - { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessageJ1850; -#define icsSpyMessageJ1850_SIZE icsSpyMessage_SIZE - -typedef struct _icsSpyMessageVSB -{ - uint32_t StatusBitField; - uint32_t StatusBitField2; - uint32_t TimeHardware; - uint32_t TimeHardware2; - uint32_t TimeSystem; - uint32_t TimeSystem2; - uint8_t TimeStampHardwareID; - uint8_t TimeStampSystemID; - uint8_t NetworkID; - uint8_t NodeID; - uint8_t Protocol; - uint8_t MessagePieceID; - uint8_t ExtraDataPtrEnabled; - uint8_t NumberBytesHeader; - uint8_t NumberBytesData; - uint8_t NetworkID2; - int16_t DescriptionID; - uint32_t ArbIDOrHeader; - uint8_t Data[8]; - union - { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; - }; - uint32_t ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessageVSB; -#define icsSpyMessageVSB_SIZE 64 - -/** - * The network of a message is a combination of both NetworkID and NetworkID2. - * Be sure to use ICS_GET_NETWORKID and ICS_SET_NETWORKID, especially for slave VNETs. - */ - -#define ICS_GET_NETWORKID(m) ((((unsigned int)m.NetworkID2) << 8) | m.NetworkID) -#define ICS_SET_NETWORKID(m, X) \ - do { \ - m.NetworkID = X; \ - m.NetworkID2 = X >> 8; \ - } while (0) - -#pragma pack(push) -#pragma pack(1) -typedef struct _ethernetNetworkStatus_t -{ - uint16_t networkId; - uint8_t linkStatus; - uint8_t linkFullDuplex; - uint8_t linkSpeed; // see ethLinkSpeed - uint8_t linkMode; // for automotive networks - see opEthLinkMode -} ethernetNetworkStatus_t; -#pragma pack(pop) - -typedef struct -{ - uint8_t backupPowerGood; - uint8_t backupPowerEnabled; - uint8_t usbHostPowerEnabled; - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; -} icsFire2DeviceStatus; - -typedef struct -{ - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; -} icsFire2VnetDeviceStatus; - -typedef struct -{ - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; -} icsVcan4DeviceStatus; - -typedef struct -{ - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; -} icsFlexVnetzDeviceStatus; - -typedef struct -{ - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus[3]; - uint8_t ethernetActivationLineEnabled_2; -} icsFire3DeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus[4]; -} icsRadMoonDuoDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus[RADJUPITER_NUM_PORTS - 1]; -} icsRadJupiterDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus; -} icsOBD2ProDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus[4]; -} icsRadPlutoDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus; -} icsVcan4IndustrialDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus[RADEPSILON_NUM_PORTS]; -} icsRadEpsilonDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus; -} icsRadBMSDeviceStatus; - -#pragma pack(push) -#pragma pack(4) - -typedef union -{ - icsFire2DeviceStatus fire2Status; - icsVcan4DeviceStatus vcan4Status; - icsFlexVnetzDeviceStatus flexVnetzStatus; - icsFire3DeviceStatus fire3Status; - icsRadMoonDuoDeviceStatus radMoonDuoStatus; - icsRadJupiterDeviceStatus jupiterStatus; - icsOBD2ProDeviceStatus obd2proStatus; - icsRadPlutoDeviceStatus plutoStatus; - icsRadEpsilonDeviceStatus epsilonStatus; - icsVcan4IndustrialDeviceStatus vcan4indStatus; - icsRadBMSDeviceStatus radBMSStatus; -} icsDeviceStatus; - -#pragma pack(pop) - -typedef struct -{ - char szName[128]; // Adaptor name - ASCII Null terminated - char szDeviceName[64]; // Device name - ASCII Null terminated - unsigned long Status; // Adaptor Status, 0 for disabled, 1 for enabled - unsigned char bMAC_Address[6]; // The Media Access Control (MAC) Address of the Network interface in the PC that is to be connected to the vehicle. - unsigned char - bIPV6_Address[16]; // The Ipv6 address assigned to the Network interface. No compressed or short form notation// If not available, all bytes are set to zero to imply the absence of an address. - unsigned char bIPV4_Address[4]; // The Ipv4 address assigned to the Network interface. If not available, all bytes are set to zero. - unsigned long EthernetPinConfig; -} NDIS_ADAPTER_INFORMATION; - -#define MAX_PHY_REG_PKT_ENTRIES 128 -#define PHY_REG_PKT_VERSION 1 -typedef struct SPhyRegPktHdr -{ - uint16_t numEntries; - uint8_t version; - uint8_t entryBytes; -} PhyRegPktHdr_t; - -#define MAX_PHY_SETTINGS_STRUCT 128 -#define MAX_NUMBYTES_PHYSETTINGS MAX_PHY_SETTINGS_STRUCT * sizeof(PhyRegPktHdr_t) - -typedef struct SPhyRegPktClause22Mess -{ - uint8_t phyAddr; // 5 bits - uint8_t page; // 8 bits - uint16_t regAddr; // 5 bits - uint16_t regVal; -} PhyRegPktClause22Mess_t; // 6 bytes - -typedef struct SPhyRegPktClause45Mess -{ - uint8_t port; // 5 bits uint8_t device; //5 bits - uint8_t device; // 5 bits - uint16_t regAddr; - uint16_t regVal; -} PhyRegPktClause45Mess_t; // 6 bytes - -typedef enum SPhyRegPktStatus -{ - PHYREG_SUCCESS = 0, - PHYREG_FAILURE, - PHYREG_INVALID_MDIO_BUS_INDEX, - PHYREG_INVALID_PHY_ADDR, - PHYREG_UNSUPPORTED_MDIO_CLAUSE, - PHYREG_RESERVED1, - PHYREG_RESERVED2, - PHYREG_RESERVED3 -} PhyRegPktStatus_t; - -typedef enum SPhyRegPktRw -{ - PHYREG_READ = 0, - PHYREG_WRITE, - PHYREG_BOTH -} PhyRegPktRw_t; - -typedef struct SPhyRegPkt -{ - union - { - struct - { - uint16_t Enabled : 1; - uint16_t WriteEnable : 1; - uint16_t Clause45Enable : 1; - uint16_t status : 3; - uint16_t reserved : 2; - uint16_t BusIndex : 4; - uint16_t version : 4; - }; - uint16_t flags; - }; - - union - { - PhyRegPktClause22Mess_t clause22; - PhyRegPktClause45Mess_t clause45; - }; -} PhyRegPkt_t; - -typedef enum -{ - networkDWCAN01, - networkDWCAN02, - networkDWCAN03, - networkDWCAN04, - networkDWCAN05, - networkDWCAN06, - networkDWCAN07, - networkDWCAN08, - networkTerminationDWCAN01, - networkTerminationDWCAN02, - networkTerminationDWCAN03, - networkTerminationDWCAN04, - networkTerminationDWCAN05, - networkTerminationDWCAN06, - networkTerminationDWCAN07, - networkTerminationDWCAN08, - enhancedFlashDriver, - rtcCalibration, - rtcClosedLoopCalibration, - cmp, - NUM_VALID_DEVICE_FEATURES, - supportedFeatureMax = 0xFFFF, -} DeviceFeature; - -typedef enum PhyErrorType -{ - PhyOperationError = 0, - PhyOperationSuccess = 1, - PhyFlashingInitError = 2, - PhyFlashingEraseError = 3, - PhyFlashingWriteError = 4, - PhyFlashingReadError = 5, - PhyFlashingVerifyError = 6, - PhyFlashingDeinitError = 7, - PhyFlashingInvalidHardware = 8, - PhyFlashingInvalidDataFile = 9, - PhyGetVersionError = 10, - PhyIndexError = 11, -} PhyErrorType; - -// Update this assert when we add features to this enum -// static_assert(NUM_VALID_DEVICE_FEATURES == (networkTerminationDWCAN08 + 1)); -// static_assert(NUM_VALID_DEVICE_FEATURES <= supportedFeatureMax); -#define NUM_DEVICE_FEATURE_BITFIELDS ((NUM_VALID_DEVICE_FEATURES + 31) / 32) - -#if !defined(INTREPID_NO_CHECK_STRUCT_SIZE) && !defined(ics_static_assert) - -#if (defined(__cplusplus) && (__cplusplus > 199711L)) -#define ics_static_assert(e, msg) static_assert(e, msg) -#define CHECK_STRUCT_SIZE(X) ics_static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); -#else -#define ASSERT_CONCAT_(a, b) a##b -#define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b) -#define ics_static_assert(e, msg) \ - enum \ - { \ - ASSERT_CONCAT(assert_line_, __LINE__) = 1 / (int)(!!(e)) \ - } -#define CHECK_STRUCT_SIZE(X) ics_static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); -#endif - -CHECK_STRUCT_SIZE(CAN_SETTINGS); -CHECK_STRUCT_SIZE(CANFD_SETTINGS); -CHECK_STRUCT_SIZE(SWCAN_SETTINGS); -CHECK_STRUCT_SIZE(LIN_SETTINGS); -CHECK_STRUCT_SIZE(ISO9141_KEYWORD2000__INIT_STEP); -CHECK_STRUCT_SIZE(ISO9141_KEYWORD2000_SETTINGS); -CHECK_STRUCT_SIZE(UART_SETTINGS); -CHECK_STRUCT_SIZE(J1708_SETTINGS); -CHECK_STRUCT_SIZE(SRedSettings); -CHECK_STRUCT_SIZE(STextAPISettings); -CHECK_STRUCT_SIZE(stChipVersions); -CHECK_STRUCT_SIZE(SNeoMostGatewaySettings); -CHECK_STRUCT_SIZE(OP_ETH_GENERAL_SETTINGS); -CHECK_STRUCT_SIZE(OP_ETH_SETTINGS); -CHECK_STRUCT_SIZE(ETHERNET_SETTINGS); -CHECK_STRUCT_SIZE(ETHERNET_SETTINGS2); -CHECK_STRUCT_SIZE(ETHERNET10G_SETTINGS); -CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS); -CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS_EXT); -CHECK_STRUCT_SIZE(MACSEC_SETTINGS); -CHECK_STRUCT_SIZE(LOGGER_SETTINGS); -CHECK_STRUCT_SIZE(DISK_SETTINGS); -CHECK_STRUCT_SIZE(SERDESCAM_SETTINGS); -CHECK_STRUCT_SIZE(SERDESPOC_SETTINGS); -CHECK_STRUCT_SIZE(SERDESGEN_SETTINGS); -CHECK_STRUCT_SIZE(RAD_REPORTING_SETTINGS); -CHECK_STRUCT_SIZE(CANTERM_SETTINGS); -CHECK_STRUCT_SIZE(SFireSettings); -CHECK_STRUCT_SIZE(SFireVnetSettings); -CHECK_STRUCT_SIZE(SCyanSettings); -CHECK_STRUCT_SIZE(SVCAN3Settings); -CHECK_STRUCT_SIZE(SVCAN4Settings); -CHECK_STRUCT_SIZE(SECUSettings); -CHECK_STRUCT_SIZE(SPendantSettings); -CHECK_STRUCT_SIZE(SIEVBSettings); -CHECK_STRUCT_SIZE(SEEVBSettings); -CHECK_STRUCT_SIZE(SRADGalaxySettings); -CHECK_STRUCT_SIZE(SRADStar2Settings); -CHECK_STRUCT_SIZE(SOBD2SimSettings) -CHECK_STRUCT_SIZE(CmProbeSettings); -CHECK_STRUCT_SIZE(GLOBAL_SETTINGS); -CHECK_STRUCT_SIZE(stCM_ISO157652_TxMessage); -CHECK_STRUCT_SIZE(stCM_ISO157652_RxMessage); -CHECK_STRUCT_SIZE(spyFilterLong); -CHECK_STRUCT_SIZE(icsSpyMessage); -CHECK_STRUCT_SIZE(icsSpyMessageLong); -CHECK_STRUCT_SIZE(icsSpyMessageJ1850); -CHECK_STRUCT_SIZE(icsSpyMessageVSB); -CHECK_STRUCT_SIZE(OBD2ProSettings); -CHECK_STRUCT_SIZE(ISO15765_2015_TxMessage); -CHECK_STRUCT_SIZE(TIMESYNC_ICSHARDWARE_SETTINGS); -CHECK_STRUCT_SIZE(SRADSuperMoonSettings); -CHECK_STRUCT_SIZE(SRADMoon2Settings); -CHECK_STRUCT_SIZE(SRADGigalogSettings); -CHECK_STRUCT_SIZE(SRADGigastarSettings); -CHECK_STRUCT_SIZE(SRADGalaxy2Settings); -CHECK_STRUCT_SIZE(SExtSubCmdHdr); -CHECK_STRUCT_SIZE(SDiskStructure); -CHECK_STRUCT_SIZE(SDiskFormatProgress); -CHECK_STRUCT_SIZE(SDiskStatus); -CHECK_STRUCT_SIZE(SRADPlutoSettings); -CHECK_STRUCT_SIZE(CANHubSettings); -CHECK_STRUCT_SIZE(SNeoECU12Settings); -CHECK_STRUCT_SIZE(SPlutoSwitchSettings); -CHECK_STRUCT_SIZE(VCAN4IndSettings); -CHECK_STRUCT_SIZE(SRADJupiterSettings); -CHECK_STRUCT_SIZE(RadMoonDuoSettings); -CHECK_STRUCT_SIZE(SFire3Settings); -CHECK_STRUCT_SIZE(SRed2Settings); -CHECK_STRUCT_SIZE(SEtherBadgeSettings); -CHECK_STRUCT_SIZE(SRADA2BSettings); -CHECK_STRUCT_SIZE(A2BMonitorSettings); -CHECK_STRUCT_SIZE(SRADEpsilonSettings); -CHECK_STRUCT_SIZE(RAD_GPTP_SETTINGS); -CHECK_STRUCT_SIZE(SRADBMSSettings); -CHECK_STRUCT_SIZE(SRADMoon3Settings); -CHECK_STRUCT_SIZE(SFire3FlexraySettings); -CHECK_STRUCT_SIZE(CANHubSettings); -CHECK_STRUCT_SIZE(SRADCometSettings); -CHECK_STRUCT_SIZE(SRADComet3Settings); -CHECK_STRUCT_SIZE(SRADGigastar2Settings); -CHECK_STRUCT_SIZE(SRADMoonT1SSettings); -CHECK_STRUCT_SIZE(SNeoVIConnectSettings); -#endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ - -#endif /* _ICSNVC40_H */ diff --git a/icsnVC40_processed.h.enums.json b/icsnVC40_processed.h.enums.json deleted file mode 100644 index 9e26dfeeb..000000000 --- a/icsnVC40_processed.h.enums.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/icsnVC40_processed.h.json b/icsnVC40_processed.h.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 57ac37d8b..718e66301 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -465,6 +465,7 @@ typedef unsigned __int64 uint64_t; #define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 #define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 #define SPY_STATUS3_ETHERNET_TX_COLLISION 0x00000001 +#define SPY_STATUS3_ETHERNET_T1S_WAKE 0x00000002 /* FlexRay Specific - check protocol before handling */ #define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 @@ -1072,14 +1073,10 @@ typedef union _stChipVersions { uint8_t zynq_core_major; uint8_t zynq_core_minor; + uint8_t usb_core_major; + uint8_t usb_core_minor; } radgigastar_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigastar_usbz_versions; - struct { uint8_t zynq_core_major; @@ -1183,6 +1180,8 @@ typedef union _stChipVersions { uint8_t zynq_core_major; uint8_t zynq_core_minor; + uint8_t usb_core_major; + uint8_t usb_core_minor; } radgigastar2_versions; struct @@ -1359,6 +1358,7 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE 0x0200 // store and forward #define ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST 0x0400 #define ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT 0x0800 +#define ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE 0x1000 typedef enum { @@ -1402,6 +1402,7 @@ typedef struct ETHERNET_SETTINGS2_t * bit9: store and forward tap enabled (forward RX to tap partner) * bit10: disable tap frames to host * bit11: show TX receipt for tap frames + * bit12: enable static port for TCP comm */ uint16_t flags2; } ETHERNET_SETTINGS2; @@ -1426,6 +1427,7 @@ typedef struct ETHERNET_SETTINGS2_t #define ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST 0x00010000 #define ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE 0x00020000 #define ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT 0x00040000 +#define ETHERNET_SETTINGS10G_FLAG_TCP_COMM_STATIC_PORT_ENABLE 0x00080000 #define ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE 0x80000000 typedef struct ETHERNET10G_SETTINGS_t @@ -1450,6 +1452,7 @@ typedef struct ETHERNET10G_SETTINGS_t * bit16: disable tap frames to host * bit17: macsec enable * bit18: show TX receipt for tap frames + * bit19: enable static port for TCP comm * bit31: comm in use */ uint32_t flags; @@ -1969,12 +1972,14 @@ enum swUpdateValidateComponent = 6, swUpdateFinalize = 7, swUpdateGetCommunicationVersion = 8, + swUpdateCheckFwVersion = 9, }; typedef struct { uint32_t componentIdentifier; // unique id for the software component - analogous to what used to be "chip id" uint8_t commandType; // See enum + uint8_t expansionSlot; // aka vnet slot uint32_t offset; uint32_t commandSizeOrProgress; // size uint8_t commandData[0]; // max size TBD or per-device @@ -2022,6 +2027,38 @@ struct priority_vector struct port_identity portid; uint16_t port_number; }; +struct _scaled_ns { + int16_t nanoseconds_msb; + int64_t nanoseconds_lsb; + int16_t fractional_nanoseconds; +}; + +// IEEE 802.1AS-2020 14.3 +// This is a read-only data structure +struct _current_ds { + uint16_t steps_removed; + int64_t offset_from_master; + struct _scaled_ns last_gm_phase_change; + double last_gm_freq_change; + uint16_t gm_time_base_indicator; + uint32_t gm_change_count; + uint32_t time_of_last_gm_change_event; + uint32_t time_of_last_gm_phase_change_event; + uint32_t time_of_last_gm_freq_change_event; +}; + +// IEEE 802.1AS-2020 14.4 +// This is a read-only data structure +struct _parent_ds { + struct port_identity parent_port_identity; + int32_t cumulative_rate_ratio; + _clock_identity grandmaster_identity; + uint8_t gm_clock_quality_clock_class; + uint8_t gm_clock_quality_clock_accuracy; + uint16_t gm_clock_quality_offset_scaled_log_variance; + uint8_t gm_priority1; + uint8_t gm_priority2; +}; typedef struct _GPTPStatus { @@ -2029,15 +2066,16 @@ typedef struct _GPTPStatus struct priority_vector gm_priority; int64_t ms_offset_ns; uint8_t is_sync; - uint8_t link_status; int64_t link_delay_ns; uint8_t selected_role; uint8_t as_capable; - uint8_t is_syntonized; - uint8_t reserved[8]; + struct _timestamp last_rx_sync_ts; // t2 in IEEE 1588-2019 Figure-16 + struct _current_ds current_ds; + struct _parent_ds parent_ds; } GPTPStatus; + typedef struct _GenericBinaryStatus { uint32_t size; @@ -4311,6 +4349,14 @@ typedef struct uint16_t cmp_device_id; } CMP_GLOBAL_DATA; +enum +{ + NETWORK_TIMESYNC_OFF, + NETWORK_TIMESYNC_AUTO, + NETWORK_TIMESYNC_NTP_ONLY, + NETWORK_TIMESYNC_GPS_ONLY +}; + typedef struct _SRed2Settings { uint16_t perf_en; @@ -4386,8 +4432,9 @@ typedef struct _SRed2Settings uint16_t iso_tester_pullup_enable; CMP_GLOBAL_DATA cmp_global_data; CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_RED2]; + uint32_t networkTimeSync; } SRed2Settings; -#define SRed2Settings_SIZE (914) +#define SRed2Settings_SIZE (918) typedef struct _SFire3Settings { @@ -4498,8 +4545,9 @@ typedef struct _SFire3Settings uint16_t iso_tester_pullup_enable; CMP_GLOBAL_DATA cmp_global_data; CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3]; + uint32_t networkTimeSync; } SFire3Settings; -#define SFire3Settings_SIZE (1718) +#define SFire3Settings_SIZE (1722) typedef struct _SFire3FlexraySettings @@ -4595,8 +4643,9 @@ typedef struct _SFire3FlexraySettings uint16_t iso_tester_pullup_enable; CMP_GLOBAL_DATA cmp_global_data; CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3FR]; + uint32_t networkTimeSync; } SFire3FlexraySettings; -#define SFire3FlexraySettings_SIZE (1368) +#define SFire3FlexraySettings_SIZE (1372) typedef struct { @@ -4668,7 +4717,7 @@ typedef struct _SEtherBadgeSettings #define SEtherBadgeSettings_SIZE 316 -#define RADEPSILON_NUM_PORTS 9 // ATSAM + PHYs +#define RADEPSILON_NUM_PORTS 18 // ATSAM + PHYs #define RADEPSILON_MAX_PHY 18 typedef struct _SRADEpsilonSwitchSettings @@ -4726,8 +4775,10 @@ typedef struct _SRADEpsilonSettings SRADEpsilonSwitchSettings switchSettings; //80 ETHERNET_SETTINGS2 ethernet2; //16 uint16_t misc_io_on_report_events; //2 -} SRADEpsilonSettings; //386 -#define SRADEpsilonSettings_SIZE 386 + DISK_SETTINGS disk; //14 + +} SRADEpsilonSettings; //400 +#define SRADEpsilonSettings_SIZE 400 typedef struct { @@ -5153,8 +5204,9 @@ typedef struct _SRADMoonT1SSettings ETHERNET10T1S_SETTINGS t1s; // 10T1S Extended Settings ETHERNET10T1S_SETTINGS_EXT t1sExt; + RAD_GPTP_SETTINGS gPTP; } SRADMoonT1SSettings; -#define SRADMoonT1SSettings_SIZE 124 +#define SRADMoonT1SSettings_SIZE 160 typedef struct _SNeoVIConnectSettings { From 1b1e56329ef3f5a20209fa10f69f35c46aa6e341 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Mar 2025 12:56:36 -0400 Subject: [PATCH 10/38] add CIBW_BUILD_VERBOSITY --- pyproject.toml | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9b3631029..46da6f2b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,30 +1,26 @@ [project] name = "python_ics" dynamic = ["version"] -authors = [ - {name = "David Rebbe", email = "drebbe@intrepidcs.com"}, -] -maintainers = [ - {name = "David Rebbe", email = "drebbe@intrepidcs.com"}, -] +authors = [{ name = "David Rebbe", email = "drebbe@intrepidcs.com" }] +maintainers = [{ name = "David Rebbe", email = "drebbe@intrepidcs.com" }] description = "Python wrapper for interfacing to IntrepidCS Hardware." keywords = ["intrepidcs", "CAN", "Ethernet", "Automotive", "ICS"] -readme = {file = "README.md", content-type = "text/markdown"} +readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.9" -classifiers=[ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - "Topic :: Software Development :: Libraries :: Python Modules", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - ] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Topic :: Software Development :: Libraries :: Python Modules", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] [project.urls] Homepage = "https://intrepidcs.com" @@ -33,7 +29,7 @@ Repository = "https://github.com/intrepidcs/python_ics/" Issues = "https://github.com/intrepidcs/python_ics/issues" [tool.setuptools.dynamic] -version = {attr = "ics.__version__"} +version = { attr = "ics.__version__" } [build-system] requires = [ @@ -41,7 +37,7 @@ requires = [ "wheel", "dunamai", "hatchling", - "uv-dynamic-versioning" + "uv-dynamic-versioning", ] build-backend = "hatchling.build" @@ -66,7 +62,7 @@ dirty = true [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" skip = "cp36-* cp37-* pp* *-manylinux_i686 *-musllinux_*" -environment = {DISTUTILS_DEBUG=1, MACOSX_DEPLOYMENT_TARGET="10.13", CIBW_ARCHS_LINUX="auto aarch64"} +environment = { CIBW_BUILD_VERBOSITY = 1, DISTUTILS_DEBUG = 1, MACOSX_DEPLOYMENT_TARGET = "10.13", CIBW_ARCHS_LINUX = "auto aarch64" } before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" manylinux-aarch64-image = "quay.io/pypa/manylinux_2_28_aarch64" @@ -96,4 +92,4 @@ force-exclude = ''' | msvc | src )/ -''' \ No newline at end of file +''' From 5da1e8f795ba69cb970b778b3e997be6a70dfbaf Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 27 Mar 2025 16:30:45 -0400 Subject: [PATCH 11/38] removed hatch and sdist building. --- .github/workflows/sdist.yml | 51 ------------------------------------ MANIFEST.in | 6 ++--- generate_icsneo40_structs.py | 6 ++--- pyproject.toml | 22 +--------------- setup.py | 3 ++- 5 files changed, 9 insertions(+), 79 deletions(-) delete mode 100644 .github/workflows/sdist.yml diff --git a/.github/workflows/sdist.yml b/.github/workflows/sdist.yml deleted file mode 100644 index 69ba69dbc..000000000 --- a/.github/workflows/sdist.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: SDist - -on: [push, pull_request] - -jobs: - build_wheels: - name: Build wheels on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-22.04,] - - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 0 # needed for history/tags - - # Used to host cibuildwheel - - name: Set up Python 3.12 - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Get python_ics version - uses: mtkennerly/dunamai-action@v1 - with: - env-var: PYTHON_ICS_VERSION - args: --format "v{base}-{commit}-{timestamp}" - - name: Print python_ics version - run: echo $PYTHON_ICS_VERSION - - - name: Install requirements for sdist building - run: python -m pip install -r requirements.txt - - - name: Compiling sdist - run: python setup.py sdist - - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: python_ics-sdist-${{ matrix.os }}-${{ env.PYTHON_ICS_VERSION }} - path: ./dist/*.tar.gz - if-no-files-found: error - - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - pattern: python_ics-sdist-* - merge-multiple: true - path: ./dist/ diff --git a/MANIFEST.in b/MANIFEST.in index a1e6ebfc7..53ac05dab 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,4 +1,4 @@ recursive-include include *.h -include extract_icsneo40_defines.py -include generate_icsneo40_structs.py -include ics_utility.py \ No newline at end of file +include *.py +graft include +graft src diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index a393cbb8b..41699bd85 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -746,12 +746,12 @@ def generate(filename="include/ics/icsnVC40.h"): import_line = "from ics.structures import {}".format( re.sub(r'(\.py)', '', file_name)) try: - print(f"Importing / Verifying {output_dir / file_name}...") + print(f"Importing / Verifying {output_dir / file_name}...{' '*20}", end="\r") exec(import_line) except Exception as ex: - print(f"""ERROR: {ex} IMPORT LINE: '{import_line}'""") + print(f"""\nERROR: {ex} IMPORT LINE: '{import_line}'""") raise ex - print("Done.") + print("\nDone.") def _write_c_object(f, c_object): diff --git a/pyproject.toml b/pyproject.toml index 46da6f2b9..9ea73c27a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,10 +7,10 @@ description = "Python wrapper for interfacing to IntrepidCS Hardware." keywords = ["intrepidcs", "CAN", "Ethernet", "Automotive", "ICS"] readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.9" +license = "MIT" classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: Python", @@ -36,28 +36,8 @@ requires = [ "setuptools", "wheel", "dunamai", - "hatchling", - "uv-dynamic-versioning", ] -build-backend = "hatchling.build" -[tool.hatch.metadata] -allow-direct-references = true - -[tool.hatch.version] -source = "uv-dynamic-versioning" - -[tool.hatch.build.hooks.version] -path = "gen/_version.py" -template = ''' -version = "{version}" -''' - -[tool.uv-dynamic-versioning] -metadata = false # I couldn't get pypi to upload with this enabled. -strict = true -style = "pep440" -dirty = true [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" diff --git a/setup.py b/setup.py index 745d3a1ed..a87af189f 100644 --- a/setup.py +++ b/setup.py @@ -60,8 +60,9 @@ def run(self): if pathlib.Path(name).suffix == ".py" and 'icsdebug' not in name: src = (dirpath / name) dest = (gen_path / dirpath.relative_to(src_path) / name) - print(f"Copying {src} to {dest}") + print(f"Copying {src} to {dest}{' '*20}", end="") shutil.copy(src, dest) + print("") self.run_command("build_libicsneo") super().run() From 4c32dad8de25c9d606fd9cd6852d95b23b3e0783 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 27 Mar 2025 16:48:09 -0400 Subject: [PATCH 12/38] update version control to include dev version --- ics_utility.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ics_utility.py b/ics_utility.py index 869449cf7..80013c9a7 100644 --- a/ics_utility.py +++ b/ics_utility.py @@ -12,13 +12,14 @@ def get_pkg_version() -> str: Returns: str: The package version. """ - version = dunamai.Version.from_git() - # Set the dev version if the environment variable is set. - if os.getenv("PYTHON_ICS_DEV_BUILD") is not None: - pkg_version = version.serialize(format="v{base}.dev{distance}", style=dunamai.Style.Pep440) - else: - pkg_version = version.serialize(format="{base}", style=dunamai.Style.Pep440) - return pkg_version + # version = dunamai.Version.from_git() + # # Set the dev version if the environment variable is set. + # if os.getenv("PYTHON_ICS_DEV_BUILD") is not None: + # pkg_version = version.serialize(format="v{base}.dev{distance}", style=dunamai.Style.Pep440) + # else: + # pkg_version = version.serialize(format="{base}", style=dunamai.Style.Pep440) + return dunamai.Version.from_git().serialize(metadata=False) + # return pkg_version def create_version_py(path: pathlib.Path = pathlib.Path("gen/ics/__version.py")) -> None: """ From 7792aec5085e61b686e6537155a4a9e39a400917 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 28 Mar 2025 09:45:35 -0400 Subject: [PATCH 13/38] added deploy to pypi --- .github/workflows/wheels.yml | 41 +++++++++++++++++++++++++++++++ .gitignore | 4 +++ src/setup_module_auto_defines.cpp | 11 +++++++++ 3 files changed, 56 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index ed36548d5..848562c0d 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -56,3 +56,44 @@ jobs: pattern: python_ics-* merge-multiple: true path: ./wheelhouse/ + + deploy_pypi: + name: "Deploy PyPI" + runs-on: ubuntu-latest + needs: build_wheels + if: | + github.ref_name == 'master' || + startsWith(github.event.ref, 'refs/tags/v') + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + cache-dependency-glob: uv.lock + + - name: Set up Python + run: | + uv python install 3.12 + uv venv -p 3.12 + source .venv/bin/activate + uv pip install check-wheel-contents twine + + - uses: actions/download-artifact@v4 + with: + pattern: python_ics-* + merge-multiple: true + path: ./wheelhouse/ + + - name: "Publish to PyPI" + if: | + github.ref_name == 'master' || + startsWith(github.event.ref, 'refs/tags/v') + run: | + source .venv/bin/activate + uv pip install check-wheel-contents twine + check-wheel-contents ./wheelhouse/*.whl + twine upload -u __token__ -p ${{ secrets.PYPI_TOKEN }} --verbose ./wheelhouse/* \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1fcb4f10f..71562d15b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,10 @@ # python virtual environment .venv/ +icsnVC40_processed.h +icsnVC40.h.* +*.whl + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 3c67428d6..3dbdff9dc 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -383,6 +383,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_BURST); result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_ETHERNET); result += PyModule_AddIntMacro(module, SPY_STATUS3_ETHERNET_TX_COLLISION); + result += PyModule_AddIntMacro(module, SPY_STATUS3_ETHERNET_T1S_WAKE); result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB); result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_A); result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_B); @@ -584,6 +585,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE); // enum result += PyModule_AddIntMacro(module, SFP_ID_UNKNOWN); result += PyModule_AddIntMacro(module, SFP_ID_FINISAR_FCLF8522P2BTL); @@ -614,6 +616,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_TCP_COMM_STATIC_PORT_ENABLE); result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE); result += PyModule_AddIntMacro(module, ETHERNET10G_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_SIZE); @@ -713,6 +716,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, swUpdateValidateComponent); result += PyModule_AddIntMacro(module, swUpdateFinalize); result += PyModule_AddIntMacro(module, swUpdateGetCommunicationVersion); + result += PyModule_AddIntMacro(module, swUpdateCheckFwVersion); // end of enum - }; result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); @@ -1003,6 +1007,13 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3); result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3FR); result += PyModule_AddIntMacro(module, CMP_STREAMS_RED2); + // enum + result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_OFF); + result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_AUTO); + result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_NTP_ONLY); + result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_GPS_ONLY); + // end of enum - }; + result += PyModule_AddIntMacro(module, SRed2Settings_SIZE); result += PyModule_AddIntMacro(module, SFire3Settings_SIZE); result += PyModule_AddIntMacro(module, SFire3FlexraySettings_SIZE); From be82813b46ee5222f2d25d463c3a809a86483ec5 Mon Sep 17 00:00:00 2001 From: Kyle Schwarz Date: Mon, 31 Mar 2025 17:24:09 -0400 Subject: [PATCH 14/38] update libicsneo hash --- build_libicsneo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index a94ed6bc8..cc74617e5 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -14,7 +14,7 @@ LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" -LIBICSNEO_VERSION = "1ba3ede" +LIBICSNEO_VERSION = "830fe1a" LIBICSNEO_ROOT = f"{ROOT}/libicsneo/{LIBICSNEO_VERSION}" LIBICSNEO_SOURCE = f"{LIBICSNEO_ROOT}/source" LIBICSNEO_BUILD = f"{LIBICSNEO_ROOT}/build" From fb0a7363237ad2a1f9428b7e7fd31105c5c85eb7 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 1 Apr 2025 10:43:57 -0400 Subject: [PATCH 15/38] update header to v920.3 --- include/ics/icsnVC40.h | 47 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 718e66301..611b0afc9 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -1368,6 +1368,7 @@ typedef enum SFP_ID_ICS_MV2112A2, SFP_ID_ICS_MV2221MB1, SFP_ID_ICS_MV3244, + SFP_ID_ICS_MC8670, // add new entries here SFP_ID_MAX, } SfpId; @@ -1482,6 +1483,8 @@ typedef struct ETHERNET10T1S_SETTINGS_t #define ETHERNET10T1S_SETTINGS_FLAG_TERMINATION 0x02 #define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS 0x04 #define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL 0x08 +#define ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET 0x10 +#define ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK 0x20 typedef struct ETHERNET10T1S_SETTINGS_EXT_t { @@ -2084,6 +2087,22 @@ typedef struct _GenericBinaryStatus uint8_t reserved[8]; } GenericBinaryStatus; +//----------------------------------------------------------------- +#define MULTI_MAC__ADDR_LEN 6 +#define MULTI_MAC__MAX_MAC_CNT 32 +typedef struct _MacAddrEntry +{ + uint16_t mMacId; + uint8_t mMacAddr[MULTI_MAC__ADDR_LEN]; +} MacAddrEntry; + +typedef struct _MultiMacAddrInfo +{ + uint16_t mAddrCnt; + MacAddrEntry mMacEntries[MULTI_MAC__MAX_MAC_CNT]; +} MultiMacAddrInfo; +//----------------------------------------------------------------- + #define GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY 0x0001 #define GENERIC_BINARY_STATUS_ERROR_OVERSIZE 0x0002 #define GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY 0x0004 @@ -2884,9 +2903,15 @@ enum eGPTPPort ePortOpEth10 = 10, ePortOpEth11 = 11, ePortOpEth12 = 12, + ePortStdEth1 = 13, ePortStdEth2 = 14, ePortStdEth3 = 15, + + ePortOpEth13 = 16, + ePortOpEth14 = 17, + ePortOpEth15 = 18, + ePortOpEth16 = 19, }; /* GPTP port role options */ @@ -3345,9 +3370,14 @@ typedef struct _SRADGigastarSettings 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; } SRADGigastarSettings; -#define SRADGigastarSettings_SIZE 710 +#define SRADGigastarSettings_SIZE 766 typedef struct _SRADGalaxy2Settings { @@ -5177,8 +5207,13 @@ typedef struct _SRADGigaStar2Settings 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; } SRADGigastar2Settings; -#define SRADGigastar2Settings_SIZE 2024 +#define SRADGigastar2Settings_SIZE 2080 typedef struct _SRADMoonT1SSettings { @@ -6218,6 +6253,14 @@ typedef enum PhyErrorType PhyIndexError = 11, } PhyErrorType; +typedef enum _EDevNameType +{ + EDevNameTypeDefault, + EDevNameTypeNoSerial, + EDevNameTypeTCP, + EDevNameTypeTCPShort, +} EDevNameType; + // Update this assert when we add features to this enum //static_assert(NUM_VALID_DEVICE_FEATURES == (networkTerminationDWCAN08 + 1)); //static_assert(NUM_VALID_DEVICE_FEATURES <= supportedFeatureMax); From a3907b8ed40fb6b3fd2858f39bae04ed3a33c4c5 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 1 Apr 2025 21:39:36 -0400 Subject: [PATCH 16/38] add support for icsneoGetDeviceName --- include/methods.h | 359 ++++++++++++++------------ setup.py | 3 +- src/ics/py_neo_device_ex.py | 8 +- src/methods.cpp | 413 ++++++++++++++++++------------ src/setup_module_auto_defines.cpp | 16 ++ 5 files changed, 459 insertions(+), 340 deletions(-) diff --git a/include/methods.h b/include/methods.h index 54b9135b2..ba536f243 100644 --- a/include/methods.h +++ b/include/methods.h @@ -101,6 +101,7 @@ extern "C" PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args); PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args); PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args); + PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName #ifdef _cplusplus } @@ -113,16 +114,16 @@ extern "C" flags, \ "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ "` method.\n\n" }, \ - { \ - icsname_no_icsneo, (PyCFunction)meth, flags, \ - "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ - "` method.\n\n" \ - } + { icsname_no_icsneo, \ + (PyCFunction)meth, \ + flags, \ + "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ + "` method.\n\n" } #define _DOC_FIND_DEVICES \ MODULE_NAME ".find_devices(device_type=" MODULE_NAME ".NEODEVICE_ALL)\n" \ "\n" \ - "Finds all connected devices and returns a tuple of :class:` PyNeoDeviceEx" \ + "Finds all connected devices and returns a tuple of :class:` PyNeoDeviceEx" \ "` for use in :func:`" MODULE_NAME ".open_device`\n" \ "\n" \ "Args:\n" \ @@ -135,8 +136,8 @@ extern "C" "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ "\n" \ "Returns:\n" \ - "\tTuple of :class:` PyNeoDeviceEx" "` for use in :func:`" MODULE_NAME \ - ".open_device`\n" \ + "\tTuple of :class:` PyNeoDeviceEx" \ + "` for use in :func:`" MODULE_NAME ".open_device`\n" \ "\n" \ "\t>>> for device in ics.find_devices():\n" \ "\t... print(device.Name, device.SerialNumber)\n" \ @@ -152,13 +153,14 @@ extern "C" MODULE_NAME \ ".open_device(device)\n" \ "\n" \ - "Opens the device. `device` can be omitted to return a :class:` PyNeoDeviceEx" \ + "Opens the device. `device` can be omitted to return a :class:` PyNeoDeviceEx" \ "` of the\n" \ - "first free availible device, a :class:` PyNeoDeviceEx" \ + "first free availible device, a :class:` PyNeoDeviceEx" \ "`, or a serial number of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:` PyNeoDeviceEx" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:` PyNeoDeviceEx" \ "`\n\n" \ "\tdevice (int): Serial Number of the device\n\n" \ "\tnetwork_ids (List/Tuple): This is an array of number IDs which specify the NetworkID parameter of each " \ @@ -175,17 +177,18 @@ extern "C" "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ "\n" \ "Returns:\n" \ - "\tIf :class:` PyNeoDeviceEx" "` is passed as a parameter, None. \n" \ - "\tIf serial number is passed as a parameter, a :class:` PyNeoDeviceEx" \ + "\tIf :class:` PyNeoDeviceEx" \ + "` is passed as a parameter, None. \n" \ + "\tIf serial number is passed as a parameter, a :class:` PyNeoDeviceEx" \ "` will be returned. \n" \ - "\tIf `device` parameter is omitted, a :class:` PyNeoDeviceEx" \ + "\tIf `device` parameter is omitted, a :class:` PyNeoDeviceEx" \ "` will be returned with the first availible free device. \n" \ "\n" \ "\t>>> for device in ics.find_devices():\n" \ "\t... ics.open_device(device)\n" \ "\t...\n" \ "\n" \ - ".. note::\n\t:class:` PyNeoDeviceEx" \ + ".. note::\n\t:class:` PyNeoDeviceEx" \ "` will automatically close the device when it goes out of scope.\n\n" #define _DOC_CLOSE_DEVICES \ @@ -194,8 +197,8 @@ extern "C" "Closes the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -209,7 +212,7 @@ extern "C" "\t... ics.close_device(device)\n" \ "\t...\n" \ "\n" \ - ".. note::\n\t:class:` PyNeoDeviceEx" \ + ".. note::\n\t:class:` PyNeoDeviceEx" \ "` will automatically close the device when it goes out of scope.\n\n" #define _DOC_GET_RTC \ @@ -218,8 +221,8 @@ extern "C" "Gets the Real-Time Clock of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -237,8 +240,8 @@ extern "C" "Sets the Real-Time Clock of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\ttime (:class:`datetime.datetime`): Optional. Sets to current time, if omitted.\n\n" \ "\n" \ "Raises:\n" \ @@ -256,8 +259,8 @@ extern "C" "Loads the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tcoremini (str/tuple): Use string to load from file, Use Tuple if file data.\n\n" \ "\tlocation (int): Accepts :class:`" MODULE_NAME ".SCRIPT_LOCATION_FLASH_MEM`, :class:`" MODULE_NAME \ ".SCRIPT_LOCATION_SDCARD`, or :class:`" MODULE_NAME ".SCRIPT_LOCATION_VCAN3_MEM`\n\n" \ @@ -277,8 +280,8 @@ extern "C" "Starts the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tlocation (int): Accepts :class:`" MODULE_NAME ".SCRIPT_LOCATION_FLASH_MEM`, :class:`" MODULE_NAME \ ".SCRIPT_LOCATION_SDCARD`, or :class:`" MODULE_NAME ".SCRIPT_LOCATION_VCAN3_MEM`\n\n" \ "\n" \ @@ -297,8 +300,8 @@ extern "C" "Stops the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -315,8 +318,8 @@ extern "C" "Clears the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tlocation (int): Accepts :class:`" MODULE_NAME ".SCRIPT_LOCATION_FLASH_MEM`, :class:`" MODULE_NAME \ ".SCRIPT_LOCATION_SDCARD`, or :class:`" MODULE_NAME ".SCRIPT_LOCATION_VCAN3_MEM`\n\n" \ "\n" \ @@ -335,8 +338,8 @@ extern "C" "Gets the status of the CoreMini in the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -355,8 +358,8 @@ extern "C" "." SPY_MESSAGE_OBJECT_NAME "`\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tmessages (:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`): :class:`" MODULE_NAME \ "." SPY_MESSAGE_OBJECT_NAME "`\n\n" \ "\n" \ @@ -380,8 +383,8 @@ extern "C" "Gets the message(s) on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tj1850 (:class:`bool`): Return :class:`" MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME \ "` instead.\n\n" \ "\ttimeout (:class:`float`): Optional timeout to wait for messages in seconds (0.1 = 100ms).\n\n" \ @@ -411,8 +414,8 @@ extern "C" "Gets the error message(s) on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -453,7 +456,8 @@ extern "C" "Gets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:` PyNeoDeviceEx" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:` PyNeoDeviceEx" \ "`\n\n" \ "\tdevice_type (EDeviceSettingsType): Optional: Overrides default device setings type. Defaults to '-1'\n\n" \ "\tvnet_slot (PlasmaIonVnetChannelMain): Optional: Defaults to PlasmaIonVnetChannelMain, Used only for " \ @@ -493,8 +497,8 @@ extern "C" "Sets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tsettings (:class:`" MODULE_NAME "." \ "device_settings" \ "`): :class:`" MODULE_NAME "." \ @@ -529,8 +533,8 @@ extern "C" "Load the default settings in the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -578,8 +582,8 @@ extern "C" "Starts a Coremini Function Block at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the function block.\n\n" \ "\n" \ "Raises:\n" \ @@ -597,8 +601,8 @@ extern "C" "Stops a Coremini Function Block at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the function block.\n\n" \ "\n" \ "Raises:\n" \ @@ -616,8 +620,8 @@ extern "C" "Gets the status of a Coremini Function Block at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the function block.\n\n" \ "\n" \ "Raises:\n" \ @@ -636,8 +640,8 @@ extern "C" "Gets the value of a Coremini application signal at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the application signal.\n\n" \ "\n" \ "Raises:\n" \ @@ -656,8 +660,8 @@ extern "C" "Sets the value of a Coremini application signal at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the application signal.\n\n" \ "\tvalue (float): New value of the application signal.\n\n" \ "\n" \ @@ -677,8 +681,8 @@ extern "C" "Gets the value of a Coremini Message at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the application signal.\n\n" \ "\tj1850 (bool): Use :class:`" MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME "` instead.\n\n" \ "\n" \ @@ -697,8 +701,8 @@ extern "C" "Gets the value of a Coremini Message at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the application signal.\n\n" \ "\tj1850 (bool): Use :class:`" MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME "` instead.\n\n" \ "\n" \ @@ -725,8 +729,8 @@ extern "C" "Gets the Performance Parameters on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -745,8 +749,8 @@ extern "C" "Validates the handle is valid for a `device`. Handles are only valid when the device is open.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tor:\n\n" \ "\tdevice (int): c style integer handle to the device.\n\n" \ "\n" \ @@ -768,8 +772,8 @@ extern "C" "Gets the error message from the last API call.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -827,8 +831,8 @@ extern "C" "Gets the serial number out of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -848,8 +852,8 @@ extern "C" "This API allows Android/Linux applications to invoke power management.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\ttimeout_ms (int): 16bit word for how long to wait on idle bus before going to sleep. " \ "If caller does not want to change it pass in 65535 (0xFFFF) and it " \ @@ -887,8 +891,8 @@ extern "C" "create logical connections to found CAN Nodes.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -905,8 +909,8 @@ extern "C" "Forces the device to flash firmware.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -923,8 +927,8 @@ extern "C" "Determines if the device firmware needs flashing.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -941,8 +945,8 @@ extern "C" "Returns the DLL firmware info for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -966,8 +970,8 @@ extern "C" "Returns the device firmware info for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -991,8 +995,8 @@ extern "C" "Returns the device backup power enabled for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1007,8 +1011,8 @@ extern "C" "Sets the device backup power enabled for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1023,8 +1027,8 @@ extern "C" "Returns the device backup power is ready for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1042,8 +1046,8 @@ extern "C" "Transmits an ISO15765 Message.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tpMsg (:class:`" MODULE_NAME "." \ "st_cm_iso157652_tx_message" \ @@ -1065,8 +1069,8 @@ extern "C" "Setup rx ISO15765 Message.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tprx_msg (:class:`" MODULE_NAME "." \ "st_cm_iso157652_rx_message" \ @@ -1087,8 +1091,8 @@ extern "C" "Enables ISO15765 networks.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1103,8 +1107,8 @@ extern "C" "Disables ISO15765 networks.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1119,8 +1123,8 @@ extern "C" "Gets active vnet channel for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1135,8 +1139,8 @@ extern "C" "Sets active vnet channel for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1184,7 +1188,8 @@ extern "C" "For the network NETID_FIRE_CGI valid bit rates are 625000 and 115200\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:` PyNeoDeviceEx" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:` PyNeoDeviceEx" \ "`\n\n" \ "\n" \ "Raises:\n" \ @@ -1200,8 +1205,8 @@ extern "C" "Sets the FD bitrate for a given Network ID on the device..\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1216,8 +1221,8 @@ extern "C" "Sets the bitrate for a given Network ID on the device with extended options.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1232,8 +1237,8 @@ extern "C" "Calculates the timestamp for a message.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tmsg (:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`): :class:`" MODULE_NAME \ "." SPY_MESSAGE_OBJECT_NAME "`\n\n" \ @@ -1256,8 +1261,8 @@ extern "C" "Returns the device status.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1279,8 +1284,8 @@ extern "C" "Enable or disable network communication.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`bool`\n\n" \ "\n" \ @@ -1303,8 +1308,8 @@ extern "C" "Enable or disable bus voltage monitoring.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`int`\n\n" \ "\n" \ @@ -1327,8 +1332,8 @@ extern "C" "Reads bus voltage. (:class:`" MODULE_NAME ".enable_bus_voltage_monitor`) needs to be called first.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\treserved (:class:`int`): :class:`int`: Optional. Should be set to zero. Don't set, if unsure.\n\n" \ "\n" \ @@ -1351,8 +1356,8 @@ extern "C" "Reads firmware binary from a RAD-Jupiter. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tsize (:class:`int`): :class:`int`: size of the bytes to read of the firmware binary.\n\n" \ "\n" \ @@ -1371,8 +1376,8 @@ extern "C" "Writes firmware binary to a RAD-Jupiter. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tbytes (:class:`bytes`): :class:`bytes`: bytes of the firmware binary.\n\n" \ "\n" \ @@ -1391,8 +1396,8 @@ extern "C" "Returns the device disk details.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1414,8 +1419,8 @@ extern "C" "Starts disk formatting on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1436,8 +1441,8 @@ extern "C" "Cancel in progress disk formatting on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1457,8 +1462,8 @@ extern "C" "Returns the device disk formatting progress.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1481,8 +1486,8 @@ extern "C" "Activate or De-activate DOIP Line.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`bool`\n\n" \ "\n" \ @@ -1504,8 +1509,8 @@ extern "C" "ValueCAN4-4 and ValueCAN4-Industrial are supported.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`DeviceFeature`): :class:`DeviceFeature`\n\n" \ "\n" \ @@ -1527,8 +1532,8 @@ extern "C" "Gets the unique PCB serial number of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1547,8 +1552,8 @@ extern "C" "Sets the LED property on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tled (:class:`int`): Index or position of the LED\n\n" \ "\tprop (:class:`int`): Property of the LED\n\n" \ "\tvalue (:class:`int`): Value of the LED Property\n\n" \ @@ -1571,8 +1576,8 @@ extern "C" "Starts a DHCP Server.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tnetwork_id (:class:`int`): NetworkID\n\n" \ "\tdevice_ip_address (:class:`str`): Device IP Address\n\n" \ "\tsubnet_mask (:class:`str`): Subnet Mask\n\n" \ @@ -1600,8 +1605,8 @@ extern "C" "Stops the DHCP Server\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tnetwork_id (:class:`int`): NetworkID\n\n" \ "\n" \ "Raises:\n" \ @@ -1621,8 +1626,8 @@ extern "C" "Sets the lock state on the manager\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tmanager (:class:`" MODULE_NAME \ ".structures.ew_bms_manager_port_t.ew_bms_manager_port_t`): :class:`" MODULE_NAME \ ".structures.ew_bms_manager_port_t.ew_bms_manager_port_t`\n\n" \ @@ -1650,8 +1655,8 @@ extern "C" "Resets the manager\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tmanager (:class:`" MODULE_NAME \ ".structures.ew_bms_manager_port_t.ew_bms_manager_port_t`): :class:`" MODULE_NAME \ ".structures.ew_bms_manager_port_t.ew_bms_manager_port_t`\n\n" \ @@ -1674,8 +1679,8 @@ extern "C" "Writes UART on the given port\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tport (:class:`" MODULE_NAME ".structures.e_uart_port_t.e_uart_port_t`): :class:`" MODULE_NAME \ ".structures.e_uart_port_t.e_uart_port_t`\n\n" \ "\tdata (:class:`bytes`): :class:`bytes`\n\n" \ @@ -1698,8 +1703,8 @@ extern "C" "Reads UART on the given port. \n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tport (:class:`" MODULE_NAME ".structures.e_uart_port_t.e_uart_port_t`): :class:`" MODULE_NAME \ ".structures.e_uart_port_t.e_uart_port_t`\n\n" \ "\tbytes_to_read (:class:`int`): Optional. How many bytes to read from the UART, 256 if omitted.\n\n" \ @@ -1724,8 +1729,8 @@ extern "C" "Sets the UART baudrate on the given port. \n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tport (:class:`" MODULE_NAME ".structures.e_uart_port_t.e_uart_port_t`): :class:`" MODULE_NAME \ ".structures.e_uart_port_t.e_uart_port_t`\n\n" \ "\tbaudrate (:class:`int`): Baudrate of the UART to set.\n\n" \ @@ -1749,8 +1754,8 @@ extern "C" "Gets the UART baudrate on the given port. \n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tport (:class:`" MODULE_NAME ".structures.e_uart_port_t.e_uart_port_t`): :class:`" MODULE_NAME \ ".structures.e_uart_port_t.e_uart_port_t`\n\n" \ "\n" \ @@ -1772,8 +1777,8 @@ extern "C" "Sends a command in a generic way.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tapi_index (:class:`int`): api_index.\n\n" \ "\tinstance_index (:class:`int`): instance_index.\n\n" \ "\tfunction_index (:class:`int`): function_index.\n\n" \ @@ -1794,7 +1799,8 @@ extern "C" "Reads data in a generic way.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:` PyNeoDeviceEx" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:` PyNeoDeviceEx" \ "`\n\n" \ "\tapi_index (:class:`int`): api_index.\n\n" \ "\tinstance_index (:class:`int`): instance_index.\n\n" \ @@ -1815,8 +1821,8 @@ extern "C" "Reads data in a generic way.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\tapi_index (:class:`int`): api_index.\n\n" \ "\tinstance_index (:class:`int`): instance_index.\n\n" \ "\n" \ @@ -1833,8 +1839,8 @@ extern "C" "Gets the gPTP Status from the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1849,8 +1855,8 @@ extern "C" "Get all the chip (firmware) versions of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1860,18 +1866,18 @@ extern "C" "(:class:`ics.structures.st_chip_versions.st_chip_versions`)\n\n" \ "\n" -#define _DOC_FLASH_ACCESSORY_FIRMWARE \ - MODULE_NAME ".flash_accessory_firmware(device, data, index[, check_success])\n" \ +#define _DOC_FLASH_ACCESSORY_FIRMWARE \ + MODULE_NAME ".flash_accessory_firmware(device, data, index[, check_success])\n" \ "\n" \ - "Flashes Accessory Firmware. If not sure, don't use this method\n" \ + "Flashes Accessory Firmware. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tdata (:class:`bytes`): :class:`bytes`: data of the firmware binary.\n\n" \ "\n" \ - "\tindex (:class:`int`): :class:`int`: Index enum.\n\n" \ + "\tindex (:class:`int`): :class:`int`: Index enum.\n\n" \ "\n" \ "\tcheck_success (:class:`bool`): :class:`bool`: Optional, raises an exception if not successful \n\n" \ "\n" \ @@ -1882,16 +1888,16 @@ extern "C" "\tNone\n" \ "\n" -#define _DOC_GET_ACCESSORY_FIRMWARE_VERSION \ - MODULE_NAME ".get_Accessory_firmware_version(device, index[, check_success])\n" \ +#define _DOC_GET_ACCESSORY_FIRMWARE_VERSION \ + MODULE_NAME ".get_Accessory_firmware_version(device, index[, check_success])\n" \ "\n" \ - "Gets Accessory Firmware version. If not sure, don't use this method\n" \ + "Gets Accessory Firmware version. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" \ + "`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ - "\tindex (:class:`int`): :class:`int`: Index enum.\n\n" \ + "\tindex (:class:`int`): :class:`int`: Index enum.\n\n" \ "\n" \ "\tcheck_success (:class:`bool`): :class:`bool`: Optional, raises an exception if not successful \n\n" \ "\n" \ @@ -1909,8 +1915,7 @@ extern "C" "FIRE3 will reboot to safe boot mode when called with enable = True.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME \ - ".PyNeoDeviceEx`\n\n" \ + "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`bool`: Tells the device to enter safe boot mode upon restart.\n\n" \ "\n" \ @@ -1921,6 +1926,22 @@ extern "C" "\tNone\n" \ "\n" +#define _DOC_GET_DEVICE_NAME \ + MODULE_NAME ".get_device_name(device[, dev_name_type]) -> bool\n" \ + "\n" \ + "Gets the device name of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ + "\n" \ + "\tdev_name_type (:class:`int`): :class:`int`: See EDevNameType.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tstr\n" \ + "\n" extern PyMethodDef IcsMethods[]; diff --git a/setup.py b/setup.py index a87af189f..82661d13d 100644 --- a/setup.py +++ b/setup.py @@ -83,7 +83,8 @@ def get_ics_extension_compiler_arguments() -> List[str]: "/external:W0", "/wd4710", "/wd4711", - "/wd5045" + "/wd5045", + "/std:c++17", ] # mingw and clang python builds won't have MSC in the version string if "MSC" not in sys.version: diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 4fb343958..0389957c3 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -53,7 +53,7 @@ def _Handle(self): @property def Name(self) -> str: """Return the internal device name from python_ics""" - return self._name + return self._name.rstrip() @property def DeviceType(self) -> int: @@ -489,4 +489,8 @@ def set_safe_boot_mode(self, *args, **kwargs): def flash_devices(self, *args, **kwargs): "See ics.flash_devices for details on arguments. This is an internal intrepid function only." - return ics.flash_device(self, *args, **kwargs) \ No newline at end of file + return ics.flash_device(self, *args, **kwargs) + + def get_device_name(self, *args, **kwargs): + "see ics.get_device_name for details on arguments." + return ics.get_device_name(self, *args, **kwargs) \ No newline at end of file diff --git a/src/methods.cpp b/src/methods.cpp index 2082a0502..cad3db826 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -16,6 +16,8 @@ #include "setup_module_auto_defines.h" #include +#include +#include extern PyTypeObject spy_message_object_type; // __func__, __FUNCTION__ and __PRETTY_FUNCTION__ are not preprocessor macros. @@ -59,11 +61,10 @@ typedef struct #endif #endif - #pragma warning(push) -// warning C4191: 'type cast': unsafe conversion from 'PyObject *(__cdecl *)(PyObject *,PyObject *,PyObject *)' +// warning C4191: 'type cast': unsafe conversion from 'PyObject *(__cdecl *)(PyObject *,PyObject *,PyObject *)' // to 'PyCFunction' Making a function call using the resulting pointer may cause your program to fail -#pragma warning(disable: 4191) +#pragma warning(disable : 4191) PyMethodDef IcsMethods[] = { _EZ_ICS_STRUCT_METHOD("find_devices", "icsneoFindNeoDevices", @@ -579,6 +580,12 @@ PyMethodDef IcsMethods[] = { meth_set_safe_boot_mode, METH_VARARGS, _DOC_SET_SAFE_BOOT_MODE), + _EZ_ICS_STRUCT_METHOD("get_device_name", + "icsneoGetDeviceName", + "GetDeviceName", + meth_get_device_name, + METH_VARARGS, + _DOC_GET_DEVICE_NAME), { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, @@ -589,136 +596,165 @@ PyMethodDef IcsMethods[] = { #pragma warning(pop) // Internal function -const char* neodevice_to_string(unsigned long type) +auto device_name_from_nde(NeoDeviceEx* nde) -> std::string { - switch (type) { - case NEODEVICE_UNKNOWN: - return "Unknown"; - case NEODEVICE_BLUE: - return "neoVI BLUE"; - case NEODEVICE_ECU_AVB: - return "neoECU AVB/TSN"; - case NEODEVICE_RADSUPERMOON: - return "RAD-Supermoon"; - case NEODEVICE_DW_VCAN: - return "ValueCAN DW"; - case NEODEVICE_RADMOON2: - return "RAD-Moon 2"; - case NEODEVICE_RADGIGALOG: - return "RAD-Gigalog"; - case NEODEVICE_VCAN41: - return "ValueCAN 4-1"; - case NEODEVICE_FIRE: - return "neoVI FIRE"; - case NEODEVICE_RADPLUTO: - return "RAD-Pluto"; - case NEODEVICE_VCAN42_EL: - return "ValueCAN 4-2EL"; - case NEODEVICE_RADIO_CANHUB: - return "neoRAD-IO2-CANHUB"; - case NEODEVICE_NEOECU12: - return "neoECU12"; - case NEODEVICE_OBD2_LC: - return "neoOBD2-LC"; - case NEODEVICE_RAD_MOON_DUO: - return "RAD-Moon Duo"; - case NEODEVICE_VCAN3: - return "ValueCAN 3"; - case NEODEVICE_FIRE3: - return "neoVI FIRE 3"; - case NEODEVICE_RADJUPITER: - return "RAD-Jupiter"; - case NEODEVICE_VCAN4_IND: - return "ValueCAN 4 Industrial"; - case NEODEVICE_GIGASTAR: - return "RAD-Gigastar"; - case NEODEVICE_RED2: - return "neoVI RED 2"; - case NEODEVICE_FIRE2_REDLINE: - return "neoVI FIRE 2 Redline"; - case NEODEVICE_ETHER_BADGE: - return "EtherBADGE"; - case NEODEVICE_RAD_A2B: - return "RAD-A2B"; - case NEODEVICE_RADEPSILON: - return "RAD-Epsilon"; - case NEODEVICE_OBD2_SIM_DOIP: - case NEODEVICE_OBD2_SIM: - return "neoOBD2-SIM"; - case NEODEVICE_OBD2_DEV: - return "neoOBD2-DEV"; - case NEODEVICE_ECU22: - return "neoECU22"; - case NEODEVICE_RADEPSILON_T: - return "RAD-EpsilonT"; - case NEODEVICE_RADEPSILON_EXPRESS: - return "RAD-Epsilon Express"; - case NEODEVICE_RADPROXIMA: - return "RAD-Proxima"; - case NEODEVICE_RAD_BMS: - return "RAD-wBMS"; - case NEODEVICE_RADMOON3: - return "RAD-Moon3"; - case NEODEVICE_RADCOMET: - return "RAD-Comet"; - case NEODEVICE_FIRE3_FLEXRAY: - return "neoVI FIRE 3 Flexray"; - case NEODEVICE_NEOVI_CONNECT: - return "neoVI CONNECT"; - case NEODEVICE_RADCOMET3: - return "RAD-COMET3"; - case NEODEVICE_RADMOONT1S: - return "RAD-MOON-T1S"; - case NEODEVICE_GIGASTAR2: - return "RAD-GigaStar2"; - case NEODEVICE_RED: - return "neoVI RED"; - case NEODEVICE_ECU: - return "neoECU"; - case NEODEVICE_IEVB: // also NEODEVICE_NEOECUCHIP - return "IEVB"; - case NEODEVICE_PENDANT: - return "Pendant"; - case NEODEVICE_OBD2_PRO: - return "neoOBD2 PRO"; - case NEODEVICE_ECUCHIP_UART: - return "ECUCHIP"; - case NEODEVICE_PLASMA: // also NEODEVICE_ANY_PLASMA - return "neoVI PLASMA"; - case NEODEVICE_NEOANALOG: - return "neoAnalog"; - case NEODEVICE_CT_OBD: - return "neoOBD CT"; - case NEODEVICE_ION: // also NEODEVICE_ANY_ION - return "neoVI ION"; - case NEODEVICE_RADSTAR: - return "RAD-Star"; - case NEODEVICE_VCAN44: - return "ValueCAN 4-4"; - case NEODEVICE_VCAN42: - return "ValueCAN 4-2"; - case NEODEVICE_CMPROBE: - return "CM Probe"; - case NEODEVICE_EEVB: - return "EEVB"; - case NEODEVICE_FIRE2: - return "neoVI FIRE 2"; - case NEODEVICE_FLEX: - return "neoVI FLEX"; - case NEODEVICE_RADGALAXY: - return "RAD-Galaxy"; - case NEODEVICE_RADSTAR2: - return "RAD-Star 2"; - case NEODEVICE_VIVIDCAN: - return "VividCAN"; - case NEODEVICE_DONT_REUSE0: - case NEODEVICE_DONT_REUSE1: - case NEODEVICE_DONT_REUSE2: - case NEODEVICE_DONT_REUSE3: - case NEODEVICE_DONT_REUSE4: - default: - return "Unknown"; - }; + if (!nde) { + return std::string("Bug: nde invalid!"); + } + try { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return std::string(dll_get_error(buffer)); + } + std::string name; + name.reserve(255); + // Get the struct + Py_BEGIN_ALLOW_THREADS; + // int _stdcall icsneoGetDeviceName(const NeoDeviceEx* nde, char* name, const size_t length, const enum + // _EDevNameType devNameType) + ice::Function + icsneoGetDeviceName(lib, "icsneoGetDeviceName"); + if (auto length = + icsneoGetDeviceName(const_cast(nde), &name[0], name.capacity(), EDevNameTypeNoSerial); + length == 0) { + Py_BLOCK_THREADS; + return std::string("icsneoGetDeviceName() Failed"); + } + Py_END_ALLOW_THREADS; + return name; + } catch (ice::Exception& ex) { + // Legacy support - we are assuming icsneoGetDeviceName isn't available here + // and suppressing ex error message. + switch (nde->neoDevice.DeviceType) { + case NEODEVICE_UNKNOWN: + return "Unknown"; + case NEODEVICE_BLUE: + return "neoVI BLUE"; + case NEODEVICE_ECU_AVB: + return "neoECU AVB/TSN"; + case NEODEVICE_RADSUPERMOON: + return "RAD-Supermoon"; + case NEODEVICE_DW_VCAN: + return "ValueCAN DW"; + case NEODEVICE_RADMOON2: + return "RAD-Moon 2"; + case NEODEVICE_RADGIGALOG: + return "RAD-Gigalog"; + case NEODEVICE_VCAN41: + return "ValueCAN 4-1"; + case NEODEVICE_FIRE: + return "neoVI FIRE"; + case NEODEVICE_RADPLUTO: + return "RAD-Pluto"; + case NEODEVICE_VCAN42_EL: + return "ValueCAN 4-2EL"; + case NEODEVICE_RADIO_CANHUB: + return "neoRAD-IO2-CANHUB"; + case NEODEVICE_NEOECU12: + return "neoECU12"; + case NEODEVICE_OBD2_LC: + return "neoOBD2-LC"; + case NEODEVICE_RAD_MOON_DUO: + return "RAD-Moon Duo"; + case NEODEVICE_VCAN3: + return "ValueCAN 3"; + case NEODEVICE_FIRE3: + return "neoVI FIRE 3"; + case NEODEVICE_RADJUPITER: + return "RAD-Jupiter"; + case NEODEVICE_VCAN4_IND: + return "ValueCAN 4 Industrial"; + case NEODEVICE_GIGASTAR: + return "RAD-Gigastar"; + case NEODEVICE_RED2: + return "neoVI RED 2"; + case NEODEVICE_FIRE2_REDLINE: + return "neoVI FIRE 2 Redline"; + case NEODEVICE_ETHER_BADGE: + return "EtherBADGE"; + case NEODEVICE_RAD_A2B: + return "RAD-A2B"; + case NEODEVICE_RADEPSILON: + return "RAD-Epsilon"; + case NEODEVICE_OBD2_SIM_DOIP: + case NEODEVICE_OBD2_SIM: + return "neoOBD2-SIM"; + case NEODEVICE_OBD2_DEV: + return "neoOBD2-DEV"; + case NEODEVICE_ECU22: + return "neoECU22"; + case NEODEVICE_RADEPSILON_T: + return "RAD-EpsilonT"; + case NEODEVICE_RADEPSILON_EXPRESS: + return "RAD-Epsilon Express"; + case NEODEVICE_RADPROXIMA: + return "RAD-Proxima"; + case NEODEVICE_RAD_BMS: + return "RAD-wBMS"; + case NEODEVICE_RADMOON3: + return "RAD-Moon3"; + case NEODEVICE_RADCOMET: + return "RAD-Comet"; + case NEODEVICE_FIRE3_FLEXRAY: + return "neoVI FIRE 3 Flexray"; + case NEODEVICE_NEOVI_CONNECT: + return "neoVI CONNECT"; + case NEODEVICE_RADCOMET3: + return "RAD-COMET3"; + case NEODEVICE_RADMOONT1S: + return "RAD-MOON-T1S"; + case NEODEVICE_GIGASTAR2: + return "RAD-GigaStar2"; + case NEODEVICE_RED: + return "neoVI RED"; + case NEODEVICE_ECU: + return "neoECU"; + case NEODEVICE_IEVB: // also NEODEVICE_NEOECUCHIP + return "IEVB"; + case NEODEVICE_PENDANT: + return "Pendant"; + case NEODEVICE_OBD2_PRO: + return "neoOBD2 PRO"; + case NEODEVICE_ECUCHIP_UART: + return "ECUCHIP"; + case NEODEVICE_PLASMA: // also NEODEVICE_ANY_PLASMA + return "neoVI PLASMA"; + case NEODEVICE_NEOANALOG: + return "neoAnalog"; + case NEODEVICE_CT_OBD: + return "neoOBD CT"; + case NEODEVICE_ION: // also NEODEVICE_ANY_ION + return "neoVI ION"; + case NEODEVICE_RADSTAR: + return "RAD-Star"; + case NEODEVICE_VCAN44: + return "ValueCAN 4-4"; + case NEODEVICE_VCAN42: + return "ValueCAN 4-2"; + case NEODEVICE_CMPROBE: + return "CM Probe"; + case NEODEVICE_EEVB: + return "EEVB"; + case NEODEVICE_FIRE2: + return "neoVI FIRE 2"; + case NEODEVICE_FLEX: + return "neoVI FLEX"; + case NEODEVICE_RADGALAXY: + return "RAD-Galaxy"; + case NEODEVICE_RADSTAR2: + return "RAD-Star 2"; + case NEODEVICE_VIVIDCAN: + return "VividCAN"; + case NEODEVICE_DONT_REUSE0: + case NEODEVICE_DONT_REUSE1: + case NEODEVICE_DONT_REUSE2: + case NEODEVICE_DONT_REUSE3: + case NEODEVICE_DONT_REUSE4: + default: + return "Unknown"; + }; + } } bool _convertListOrTupleToArray(PyObject* obj, std::vector* results) @@ -987,10 +1023,10 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) (void)self; PyObject* device_types = NULL; int network_id = -1; -#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) +#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) const #endif - char* kwords[] = { "device_types", "network_id", NULL }; + char* kwords[] = { "device_types", "network_id", NULL }; if (!PyArg_ParseTupleAndKeywords( args, keywords, arg_parse("|Oi:", __FUNCTION__), kwords, &device_types, &network_id)) { return NULL; @@ -1061,8 +1097,7 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) if (!PyNeoDeviceEx_SetNeoDeviceEx(obj, &devices[i])) { return NULL; } - if (!PyNeoDeviceEx_SetName(obj, - PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)))) { + if (!PyNeoDeviceEx_SetName(obj, PyUnicode_FromString(device_name_from_nde(&devices[i]).c_str()))) { return NULL; } PyTuple_SetItem(tuple, i, obj); @@ -1084,10 +1119,10 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) int network_id = -1; bool use_neovi_server = false; bool device_need_ref_inc = false; -#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) +#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) const #endif - char* kwords[] = { "device", "network_ids", "config_read", "options", "network_id", "use_server", NULL }; + char* kwords[] = { "device", "network_ids", "config_read", "options", "network_id", "use_server", NULL }; if (!PyArg_ParseTupleAndKeywords(args, keywords, arg_parse("|OOiiib:", __FUNCTION__), @@ -1201,8 +1236,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) if (!PyNeoDeviceEx_SetNeoDeviceEx(device, &devices[i])) { return NULL; } - if (!PyNeoDeviceEx_SetName( - device, PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)))) { + if (!PyNeoDeviceEx_SetName(device, PyUnicode_FromString(device_name_from_nde(&devices[i]).c_str()))) { return NULL; } break; @@ -2049,8 +2083,7 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) void (*MessageCallback)(const char* message, bool success))> FlashDevice2(lib, "FlashDevice2"); Py_BEGIN_ALLOW_THREADS; - if (!FlashDevice2( - 0x3835C256, &nde->neoDevice, rc, reflash_count, network_id, iOptions, 0, &message_callback)) { + if (!FlashDevice2(0x3835C256, &nde->neoDevice, rc, reflash_count, network_id, iOptions, 0, &message_callback)) { Py_BLOCK_THREADS; PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "FlashDevice2() Failed"); @@ -2381,12 +2414,12 @@ PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObje int lsb = 0; int analog = 0; int relay_timeout = 0; -#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) +#if (PY_MAJOR_VERSION) >= 3 && (PY_MINOR_VERSION >= 13) const #endif - char* kwords[] = { "Relay1", "Relay2", "Relay3", "Relay4", "Relay5", - "LED5", "LED6", "MSB_report_rate", "LSB_report_rate", "analog_change_report_rate", - "relay_timeout" }; + char* kwords[] = { "Relay1", "Relay2", "Relay3", "Relay4", "Relay5", + "LED5", "LED6", "MSB_report_rate", "LSB_report_rate", "analog_change_report_rate", + "relay_timeout" }; // Accepts keywords: Relay1-Relay5 (boolean), LED5 (boolean), LED6 (boolean), MSB_report_rate (int), // LSB_report_rate (int), analog_change_report_rate (int), relay_timeout (int). if (!PyArg_ParseTupleAndKeywords(args, @@ -3153,21 +3186,21 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) return NULL; } void* handle = NULL; - if (!PyNeoDeviceEx_CheckExact(obj) && obj != Py_None && obj != Py_False && !(PyLong_Check(obj) && PyLong_AsLong(obj) == 0)) { + if (!PyNeoDeviceEx_CheckExact(obj) && obj != Py_None && obj != Py_False && + !(PyLong_Check(obj) && PyLong_AsLong(obj) == 0)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx, or False"); } - // Set 'handle' to NULL if 'obj' is None, False, or a zero-valued integer. + // Set 'handle' to NULL if 'obj' is None, False, or a zero-valued integer. // Otherwise, attempt to retrieve the handle using 'PyNeoDeviceEx_GetHandle'. // If handle retrieval fails, raise a runtime error exception. - if (obj == Py_None || obj == Py_False || (PyLong_Check(obj) && PyLong_AsLong(obj) == 0)){ - handle = NULL; - } else { - if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { - return set_ics_exception(exception_runtime_error(), - "Failed to retrieve handle."); - } - } + if (obj == Py_None || obj == Py_False || (PyLong_Check(obj) && PyLong_AsLong(obj) == 0)) { + handle = NULL; + } else { + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return set_ics_exception(exception_runtime_error(), "Failed to retrieve handle."); + } + } try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3361,7 +3394,6 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - } PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) @@ -4163,8 +4195,7 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) #else if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4179,8 +4210,10 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } int function_error = (int)AccessoryOperationError; - // int __stdcall icsneoFlashAccessoryFirmware(void* hObject, FlashAccessoryFirmwareParams* param, int* errorCode) - //int __stdcall icsneoFlashPhyFirmware(void* hObject, unsigned char phyIndx, unsigned char* fileData, size_t fileDataSize, int* errorCode) + // int __stdcall icsneoFlashAccessoryFirmware(void* hObject, FlashAccessoryFirmwareParams* param, int* + // errorCode) + // int __stdcall icsneoFlashPhyFirmware(void* hObject, unsigned char phyIndx, unsigned char* fileData, size_t + // fileDataSize, int* errorCode) ice::Function icsneoFlashAccessoryFirmware( lib, "icsneoFlashAccessoryFirmware"); @@ -4233,7 +4266,7 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) case AccessoryIndexError: ss << "AccessoryIndexError"; break; - case AccessoryParamApiVersionError : + case AccessoryParamApiVersionError: ss << "AccessoryParamApiVersionError "; break; case AccessoryParamSizeMismatchError: @@ -4271,8 +4304,7 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "Accessory API not enabled"); #else if (!PyNeoDeviceEx_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4285,7 +4317,8 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - // int __stdcall icsneoGetAccessoryFirmwareVersion(void* hObject, unsigned char index, unsigned int* fwVers, int* errorCode) + // int __stdcall icsneoGetAccessoryFirmwareVersion(void* hObject, unsigned char index, unsigned int* fwVers, + // int* errorCode) ice::Function icsneoGetAccessoryFirmwareVersion( lib, "icsneoGetAccessoryFirmwareVersion"); @@ -4293,7 +4326,8 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) int function_error = 0; Py_BEGIN_ALLOW_THREADS; if (!icsneoGetAccessoryFirmwareVersion(handle, accessory_indx, &accessory_version, &function_error)) { - Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGetAccessoryFirmwareVersion() Failed"); + Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), + "icsneoGetAccessoryFirmwareVersion() Failed"); } Py_END_ALLOW_THREADS; // check the return value to make sure we are good @@ -4337,7 +4371,7 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) case AccessoryIndexError: ss << "AccessoryIndexError"; break; - case AccessoryParamApiVersionError : + case AccessoryParamApiVersionError: ss << "AccessoryParamApiVersionError "; break; case AccessoryParamSizeMismatchError: @@ -5013,7 +5047,8 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); } Py_END_ALLOW_THREADS; - PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, static_cast(bytesActuallyRead)); + PyObject* ba_result = + PyByteArray_FromStringAndSize((const char*)buffer, static_cast(bytesActuallyRead)); // PyObject* value = Py_BuildValue("O", ba_result); free(buffer); buffer = NULL; @@ -5384,3 +5419,45 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } } + +PyObject* meth_get_device_name(PyObject* self, PyObject* args) // icsneoGetDeviceName +{ + (void)self; + PyObject* obj = NULL; + EDevNameType dev_name_type = EDevNameTypeDefault; + if (!PyArg_ParseTuple(args, arg_parse("O|I:", __FUNCTION__), &obj, &dev_name_type)) { + return NULL; + } + // Get the NeoDeviceEx from PyNeoDeviceEx + Py_buffer nde_buffer = {}; + NeoDeviceEx* nde = NULL; + if (!PyNeoDeviceEx_GetNeoDeviceEx(obj, &nde_buffer, &nde)) { + return NULL; + } + try { + ice::Library* lib = dll_get_library(); + if (!lib) { + PyBuffer_Release(&nde_buffer); + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + char name[255] = {}; + // Get the struct + Py_BEGIN_ALLOW_THREADS; + // int _stdcall icsneoGetDeviceName(const NeoDeviceEx* nde, char* name, const size_t length, const enum + // _EDevNameType devNameType) + ice::Function + icsneoGetDeviceName(lib, "icsneoGetDeviceName"); + if (auto length = icsneoGetDeviceName(const_cast(nde), name, 255, dev_name_type); length == 0) { + Py_BLOCK_THREADS; + PyBuffer_Release(&nde_buffer); + return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceName() Failed"); + } + Py_END_ALLOW_THREADS; + PyObject* value = Py_BuildValue("s", name); + return value; + } catch (ice::Exception& ex) { + PyBuffer_Release(&nde_buffer); + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 3dbdff9dc..5ca55390f 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -593,6 +593,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV2112A2); result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV2221MB1); result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV3244); + result += PyModule_AddIntMacro(module, SFP_ID_ICS_MC8670); result += PyModule_AddIntMacro(module, SFP_ID_MAX); // end of enum - } SfpId; @@ -624,6 +625,8 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_TERMINATION); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL); + result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET); + result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK); result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_EXT_SIZE); // enum result += PyModule_AddIntMacro(module, MACSEC_PACKET_NO_VLAN_OR_MPLS); @@ -720,6 +723,8 @@ int setup_module_auto_defines(PyObject * module) // end of enum - }; result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); + result += PyModule_AddIntMacro(module, MULTI_MAC__ADDR_LEN); + result += PyModule_AddIntMacro(module, MULTI_MAC__MAX_MAC_CNT); result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY); result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_OVERSIZE); result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY); @@ -919,6 +924,10 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, ePortStdEth1); result += PyModule_AddIntMacro(module, ePortStdEth2); result += PyModule_AddIntMacro(module, ePortStdEth3); + result += PyModule_AddIntMacro(module, ePortOpEth13); + result += PyModule_AddIntMacro(module, ePortOpEth14); + result += PyModule_AddIntMacro(module, ePortOpEth15); + result += PyModule_AddIntMacro(module, ePortOpEth16); // end of enum - }; // enum @@ -1213,6 +1222,13 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, PhyIndexError); // end of enum - } PhyErrorType; + // enum + result += PyModule_AddIntMacro(module, EDevNameTypeDefault); + result += PyModule_AddIntMacro(module, EDevNameTypeNoSerial); + result += PyModule_AddIntMacro(module, EDevNameTypeTCP); + result += PyModule_AddIntMacro(module, EDevNameTypeTCPShort); + // end of enum - } EDevNameType; + result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); // enum // end of enum - } From b5a295c7a8cbbf2beba85d11d1ecdc3dfd6b701c Mon Sep 17 00:00:00 2001 From: MJun77 Date: Wed, 16 Apr 2025 10:37:46 -0400 Subject: [PATCH 17/38] Remove deprecated devices (#211) --- src/methods.cpp | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index cad3db826..a86c63d35 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -631,22 +631,14 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "Unknown"; case NEODEVICE_BLUE: return "neoVI BLUE"; - case NEODEVICE_ECU_AVB: - return "neoECU AVB/TSN"; - case NEODEVICE_RADSUPERMOON: - return "RAD-Supermoon"; case NEODEVICE_DW_VCAN: return "ValueCAN DW"; case NEODEVICE_RADMOON2: return "RAD-Moon 2"; - case NEODEVICE_RADGIGALOG: - return "RAD-Gigalog"; case NEODEVICE_VCAN41: return "ValueCAN 4-1"; case NEODEVICE_FIRE: return "neoVI FIRE"; - case NEODEVICE_RADPLUTO: - return "RAD-Pluto"; case NEODEVICE_VCAN42_EL: return "ValueCAN 4-2EL"; case NEODEVICE_RADIO_CANHUB: @@ -655,8 +647,6 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "neoECU12"; case NEODEVICE_OBD2_LC: return "neoOBD2-LC"; - case NEODEVICE_RAD_MOON_DUO: - return "RAD-Moon Duo"; case NEODEVICE_VCAN3: return "ValueCAN 3"; case NEODEVICE_FIRE3: @@ -669,25 +659,12 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "RAD-Gigastar"; case NEODEVICE_RED2: return "neoVI RED 2"; - case NEODEVICE_FIRE2_REDLINE: - return "neoVI FIRE 2 Redline"; - case NEODEVICE_ETHER_BADGE: - return "EtherBADGE"; case NEODEVICE_RAD_A2B: return "RAD-A2B"; case NEODEVICE_RADEPSILON: return "RAD-Epsilon"; - case NEODEVICE_OBD2_SIM_DOIP: - case NEODEVICE_OBD2_SIM: - return "neoOBD2-SIM"; - case NEODEVICE_OBD2_DEV: - return "neoOBD2-DEV"; - case NEODEVICE_ECU22: - return "neoECU22"; case NEODEVICE_RADEPSILON_T: return "RAD-EpsilonT"; - case NEODEVICE_RADEPSILON_EXPRESS: - return "RAD-Epsilon Express"; case NEODEVICE_RADPROXIMA: return "RAD-Proxima"; case NEODEVICE_RAD_BMS: @@ -710,14 +687,8 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "neoVI RED"; case NEODEVICE_ECU: return "neoECU"; - case NEODEVICE_IEVB: // also NEODEVICE_NEOECUCHIP - return "IEVB"; case NEODEVICE_PENDANT: return "Pendant"; - case NEODEVICE_OBD2_PRO: - return "neoOBD2 PRO"; - case NEODEVICE_ECUCHIP_UART: - return "ECUCHIP"; case NEODEVICE_PLASMA: // also NEODEVICE_ANY_PLASMA return "neoVI PLASMA"; case NEODEVICE_NEOANALOG: @@ -726,20 +697,12 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "neoOBD CT"; case NEODEVICE_ION: // also NEODEVICE_ANY_ION return "neoVI ION"; - case NEODEVICE_RADSTAR: - return "RAD-Star"; case NEODEVICE_VCAN44: return "ValueCAN 4-4"; case NEODEVICE_VCAN42: return "ValueCAN 4-2"; - case NEODEVICE_CMPROBE: - return "CM Probe"; - case NEODEVICE_EEVB: - return "EEVB"; case NEODEVICE_FIRE2: return "neoVI FIRE 2"; - case NEODEVICE_FLEX: - return "neoVI FLEX"; case NEODEVICE_RADGALAXY: return "RAD-Galaxy"; case NEODEVICE_RADSTAR2: From d5ca65c62ad0d5321536c09423f3479953f3292d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 9 Jun 2025 10:17:14 -0400 Subject: [PATCH 18/38] update icnVC40.h to 920.14 Signed-off-by: David Rebbe --- include/ics/icsnVC40.h | 224 ++++++++++++++++++++++-------- src/setup_module_auto_defines.cpp | 73 +++++++--- 2 files changed, 221 insertions(+), 76 deletions(-) diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 611b0afc9..ae902a9bc 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -598,6 +598,11 @@ typedef struct _NeoDeviceEx #define DRIVER_USB1 (0x40) #define DRIVER_USB2 (0x80) #define DRIVER_USB3 (0xC0) +#define SERVD_DRIVER_MASK (0xFF00) +#define SERVD_DRIVER_VCP (0x0100) +#define SERVD_DRIVER_DXX (0x0200) +#define SERVD_DRIVER_CAB (0x0400) +#define SERVD_DRIVER_TCP (0x1000) uint32_t Options; void* pAvailWIFINetwork; @@ -682,6 +687,45 @@ typedef struct _stAPIFirmwareInfo /* Settings structures come are all packed to 2 bytes */ #pragma pack(push, 2) +/* Define number of CMP streams per device*/ +#define CMP_STREAMS_FIRE3 (10) +#define CMP_STREAMS_FIRE3FR (10) +#define CMP_STREAMS_RED2 (10) +#define CMP_STREAMS_A2B (3) +#define CMP_STREAMS_GIGASTAR (10) + +/* CMP Network Enables */ +typedef struct +{ + uint8_t bStreamEnabled : 1; + uint8_t EthModule : 2; + uint8_t bControlEnabled : 1; + uint8_t spare : 4; + uint8_t streamId; + uint8_t dstMac[6]; + union + { + uint64_t word; + struct + { + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + uint16_t network_enables_4; + }; + } network_enables; + uint64_t network_enables_2; +} CMP_NETWORK_DATA; + +/* Global CMP Data */ +typedef struct +{ + uint8_t cmp_enabled : 1; + uint8_t sparebits : 7; + uint8_t spare; + uint16_t cmp_device_id; +} CMP_GLOBAL_DATA; + /* SetBaudrate in CAN_SETTINGS */ enum { @@ -734,7 +778,10 @@ typedef struct uint8_t TqSync; uint16_t BRP; uint8_t auto_baud; - uint8_t innerFrameDelay25us; + uint8_t innerFrameDelay25us : 4; + uint8_t : 1; + uint8_t disableRetransmission : 1; + uint8_t canClk : 2; } CAN_SETTINGS; #define CAN_SETTINGS_SIZE 12 @@ -1275,7 +1322,42 @@ typedef struct SRAD_GPTP_SETTINGS_s uint8_t gPTPportRole; uint8_t gptpEnabledPort; uint8_t enableClockSyntonization; - uint8_t rsvd[15]; + uint8_t rsvd_1; + uint8_t icsGptpDrvVerHeader; + union { + uint8_t icsGptpDrvVerMajorMinor; + struct { + uint8_t icsGptpDrvVerMajor:4; + uint8_t icsGptpDrvVerMinor:4; + }; + }; + union{ + uint32_t multiPortsEnabledForMaster; + struct { + uint32_t PORT_AE01:1; // this is LSB in Little Endian + uint32_t PORT_AE02:1; + uint32_t PORT_AE03:1; + uint32_t PORT_AE04:1; + uint32_t PORT_AE05:1; + uint32_t PORT_AE06:1; + uint32_t PORT_AE07:1; + uint32_t PORT_AE08:1; + uint32_t PORT_AE09:1; + uint32_t PORT_AE10:1; + uint32_t PORT_AE11:1; + uint32_t PORT_AE12:1; + + uint32_t PORT_ETH1:1; + uint32_t PORT_ETH2:1; + uint32_t PORT_ETH3:1; + + uint32_t PORT_AE13:1; + uint32_t PORT_AE14:1; + uint32_t PORT_AE15:1; + uint32_t PORT_AE16:1; + }; + }; + uint8_t rsvd_2[8]; } RAD_GPTP_SETTINGS; //36 Bytes #define RAD_GPTP_SETTINGS_SIZE 36 @@ -1369,6 +1451,7 @@ typedef enum SFP_ID_ICS_MV2221MB1, SFP_ID_ICS_MV3244, SFP_ID_ICS_MC8670, + SFP_ID_ICS_EN11100, // add new entries here SFP_ID_MAX, } SfpId; @@ -2088,18 +2171,18 @@ typedef struct _GenericBinaryStatus } GenericBinaryStatus; //----------------------------------------------------------------- -#define MULTI_MAC__ADDR_LEN 6 -#define MULTI_MAC__MAX_MAC_CNT 32 +#define MACADDR_LEN 6 +#define MULTI_MACADDR_CNT 32 typedef struct _MacAddrEntry { uint16_t mMacId; - uint8_t mMacAddr[MULTI_MAC__ADDR_LEN]; + uint8_t mMacAddr[MACADDR_LEN]; } MacAddrEntry; typedef struct _MultiMacAddrInfo { uint16_t mAddrCnt; - MacAddrEntry mMacEntries[MULTI_MAC__MAX_MAC_CNT]; + MacAddrEntry mMacEntries[MULTI_MACADDR_CNT]; } MultiMacAddrInfo; //----------------------------------------------------------------- @@ -2923,6 +3006,12 @@ enum eGPTPRole eRoleSlave = 3, }; +enum eGPTPProfile +{ + eGPTP_PROFILE_STANDARD = 0, + eGPTP_PROFILE_AUTOMOTIVE = 1, +}; + typedef struct _SRADGalaxySettings { uint16_t perf_en; @@ -3165,9 +3254,11 @@ typedef struct _SRADA2BSettings 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]; } SRADA2BSettings; -#define SRADA2BSettings_SIZE 340 +#define SRADA2BSettings_SIZE 416 typedef struct _SRADMoon2Settings { @@ -3375,9 +3466,12 @@ typedef struct _SRADGigastarSettings 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]; } SRADGigastarSettings; -#define SRADGigastarSettings_SIZE 766 +#define SRADGigastarSettings_SIZE 1010 typedef struct _SRADGalaxy2Settings { @@ -4345,40 +4439,6 @@ typedef struct uint8_t reserved[5]; } Fire3LinuxSettings; -#define CMP_STREAMS_FIRE3 (10) -#define CMP_STREAMS_FIRE3FR (10) -#define CMP_STREAMS_RED2 (10) - -typedef struct -{ - uint8_t bStreamEnabled : 1; - uint8_t EthModule : 2; - uint8_t bControlEnabled : 1; - uint8_t spare : 4; - uint8_t streamId; - uint8_t dstMac[6]; - union - { - uint64_t word; - struct - { - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - uint16_t network_enables_4; - }; - } network_enables; - uint64_t network_enables_2; -} CMP_NETWORK_DATA; - -typedef struct -{ - uint8_t cmp_enabled : 1; - uint8_t sparebits : 7; - uint8_t spare; - uint16_t cmp_device_id; -} CMP_GLOBAL_DATA; - enum { NETWORK_TIMESYNC_OFF, @@ -4749,6 +4809,14 @@ typedef struct _SEtherBadgeSettings #define RADEPSILON_NUM_PORTS 18 // ATSAM + PHYs #define RADEPSILON_MAX_PHY 18 +#define EPSILON_88Q6113_SWITCH_A 1 +#define EPSILON_88Q6113_SWITCH_B 2 +#define EPSILON_88Q6113_SWITCH_AB 3 +typedef enum +{ + EPSILON_10G_PHY1 = (1 << 0), + EPSILON_10G_PHY2 = (1 << 1), +} Epsilon_10G_PHY_select; typedef struct _SRADEpsilonSwitchSettings { @@ -6003,7 +6071,7 @@ typedef struct _icsSpyMessageVSB }; uint8_t AckBytes[8]; }; - uint32_t ExtraDataPtr; + uint32_t ExtraDataPtr; //in the context of a vsb file, this is a size, not a pointer uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageVSB; @@ -6237,21 +6305,24 @@ typedef enum supportedFeatureMax = 0xFFFF, } DeviceFeature; -typedef enum PhyErrorType -{ - PhyOperationError = 0, - PhyOperationSuccess = 1, - PhyFlashingInitError = 2, - PhyFlashingEraseError = 3, - PhyFlashingWriteError = 4, - PhyFlashingReadError = 5, - PhyFlashingVerifyError = 6, - PhyFlashingDeinitError = 7, - PhyFlashingInvalidHardware = 8, - PhyFlashingInvalidDataFile = 9, - PhyGetVersionError = 10, - PhyIndexError = 11, -} PhyErrorType; +typedef enum AccessoryErrorType +{ + AccessoryOperationError = 0, + AccessoryOperationSuccess = 1, + AccessoryFlashingInitError = 2, + AccessoryFlashingEraseError = 3, + AccessoryFlashingWriteError = 4, + AccessoryFlashingReadError = 5, + AccessoryFlashingVerifyError = 6, + AccessoryFlashingDeinitError = 7, + AccessoryFlashingInvalidHardware = 8, + AccessoryFlashingInvalidDataFile = 9, + AccessoryGetVersionError = 10, + AccessoryIndexError = 11, + AccessoryParamApiVersionError = 12, + AccessoryParamSizeMismatchError = 13, + AccessoryParameterNull = 14, +} AccessoryOperationErrorType; typedef enum _EDevNameType { @@ -6261,6 +6332,41 @@ typedef enum _EDevNameType EDevNameTypeTCPShort, } EDevNameType; +#pragma pack(push, 1) +typedef struct _FlashAccessoryFirmwareParams +{ + // set to FlashAccessoryFirmwareAPIVersion - This should increment anytime there is a breakage of ABI / API. + uint32_t apiVersion; + // sizeof(FlashAccessoryFirmwareParams) + uint32_t size; + // Device specific Index - we should have an enum/preprocess define for all of these + uint8_t index; + // firmware data + uint8_t* data; + // size of firmware data + uint32_t dataSize; +} FlashAccessoryFirmwareParams; +#pragma pack(pop) +#if defined(IS_64BIT_SYSTEM) +#define FlashAccessoryFirmwareParams_SIZE (21) +#else +#define FlashAccessoryFirmwareParams_SIZE (17) +#endif + + +typedef enum _flashAccessoryIndex +{ + FLASH_ACCESSORY_EPSILON_10G_PHY1, + FLASH_ACCESSORY_EPSILON_10G_PHY2, + FLASH_ACCESSORY_EPSILON_SWITCH_A, + FLASH_ACCESSORY_EPSILON_SWITCH_B, +} flashAccessoryIndex; + +typedef enum _epsilon10GPHYFW +{ + FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0 +} epsilon10GPHYFW; + // Update this assert when we add features to this enum //static_assert(NUM_VALID_DEVICE_FEATURES == (networkTerminationDWCAN08 + 1)); //static_assert(NUM_VALID_DEVICE_FEATURES <= supportedFeatureMax); @@ -6367,6 +6473,8 @@ CHECK_STRUCT_SIZE(SRADComet3Settings); CHECK_STRUCT_SIZE(SRADGigastar2Settings); CHECK_STRUCT_SIZE(SRADMoonT1SSettings); CHECK_STRUCT_SIZE(SNeoVIConnectSettings); +CHECK_STRUCT_SIZE(FlashAccessoryFirmwareParams); + #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 5ca55390f..dadeee75e 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -457,6 +457,16 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, DRIVER_USB1); result += PyModule_AddIntMacro(module, DRIVER_USB2); result += PyModule_AddIntMacro(module, DRIVER_USB3); + result += PyModule_AddIntMacro(module, SERVD_DRIVER_MASK); + result += PyModule_AddIntMacro(module, SERVD_DRIVER_VCP); + result += PyModule_AddIntMacro(module, SERVD_DRIVER_DXX); + result += PyModule_AddIntMacro(module, SERVD_DRIVER_CAB); + result += PyModule_AddIntMacro(module, SERVD_DRIVER_TCP); + result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3); + result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3FR); + result += PyModule_AddIntMacro(module, CMP_STREAMS_RED2); + result += PyModule_AddIntMacro(module, CMP_STREAMS_A2B); + result += PyModule_AddIntMacro(module, CMP_STREAMS_GIGASTAR); // enum result += PyModule_AddIntMacro(module, AUTO); result += PyModule_AddIntMacro(module, USE_TQ); @@ -594,6 +604,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV2221MB1); result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV3244); result += PyModule_AddIntMacro(module, SFP_ID_ICS_MC8670); + result += PyModule_AddIntMacro(module, SFP_ID_ICS_EN11100); result += PyModule_AddIntMacro(module, SFP_ID_MAX); // end of enum - } SfpId; @@ -723,8 +734,8 @@ int setup_module_auto_defines(PyObject * module) // end of enum - }; result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); - result += PyModule_AddIntMacro(module, MULTI_MAC__ADDR_LEN); - result += PyModule_AddIntMacro(module, MULTI_MAC__MAX_MAC_CNT); + result += PyModule_AddIntMacro(module, MACADDR_LEN); + result += PyModule_AddIntMacro(module, MULTI_MACADDR_CNT); result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY); result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_OVERSIZE); result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY); @@ -937,6 +948,11 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, eRoleSlave); // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, eGPTP_PROFILE_STANDARD); + result += PyModule_AddIntMacro(module, eGPTP_PROFILE_AUTOMOTIVE); + // end of enum - }; + result += PyModule_AddIntMacro(module, SRADGalaxySettings_SIZE); result += PyModule_AddIntMacro(module, SRADStar2Settings_SIZE); result += PyModule_AddIntMacro(module, SRADSuperMoonSettings_SIZE); @@ -1013,9 +1029,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_NONE); result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_ETH_01); result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_ETH_02); - result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3); - result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3FR); - result += PyModule_AddIntMacro(module, CMP_STREAMS_RED2); // enum result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_OFF); result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_AUTO); @@ -1030,6 +1043,14 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SEtherBadgeSettings_SIZE); result += PyModule_AddIntMacro(module, RADEPSILON_NUM_PORTS); result += PyModule_AddIntMacro(module, RADEPSILON_MAX_PHY); + result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_A); + result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_B); + result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_AB); + // enum + result += PyModule_AddIntMacro(module, EPSILON_10G_PHY1); + result += PyModule_AddIntMacro(module, EPSILON_10G_PHY2); + // end of enum - } Epsilon_10G_PHY_select; + result += PyModule_AddIntMacro(module, SRADEpsilonSettings_SIZE); // enum result += PyModule_AddIntMacro(module, enumWILPortConfig_Single_Port_A); @@ -1208,19 +1229,22 @@ int setup_module_auto_defines(PyObject * module) // end of enum - } DeviceFeature; // enum - result += PyModule_AddIntMacro(module, PhyOperationError); - result += PyModule_AddIntMacro(module, PhyOperationSuccess); - result += PyModule_AddIntMacro(module, PhyFlashingInitError); - result += PyModule_AddIntMacro(module, PhyFlashingEraseError); - result += PyModule_AddIntMacro(module, PhyFlashingWriteError); - result += PyModule_AddIntMacro(module, PhyFlashingReadError); - result += PyModule_AddIntMacro(module, PhyFlashingVerifyError); - result += PyModule_AddIntMacro(module, PhyFlashingDeinitError); - result += PyModule_AddIntMacro(module, PhyFlashingInvalidHardware); - result += PyModule_AddIntMacro(module, PhyFlashingInvalidDataFile); - result += PyModule_AddIntMacro(module, PhyGetVersionError); - result += PyModule_AddIntMacro(module, PhyIndexError); - // end of enum - } PhyErrorType; + result += PyModule_AddIntMacro(module, AccessoryOperationError); + result += PyModule_AddIntMacro(module, AccessoryOperationSuccess); + result += PyModule_AddIntMacro(module, AccessoryFlashingInitError); + result += PyModule_AddIntMacro(module, AccessoryFlashingEraseError); + result += PyModule_AddIntMacro(module, AccessoryFlashingWriteError); + result += PyModule_AddIntMacro(module, AccessoryFlashingReadError); + result += PyModule_AddIntMacro(module, AccessoryFlashingVerifyError); + result += PyModule_AddIntMacro(module, AccessoryFlashingDeinitError); + result += PyModule_AddIntMacro(module, AccessoryFlashingInvalidHardware); + result += PyModule_AddIntMacro(module, AccessoryFlashingInvalidDataFile); + result += PyModule_AddIntMacro(module, AccessoryGetVersionError); + result += PyModule_AddIntMacro(module, AccessoryIndexError); + result += PyModule_AddIntMacro(module, AccessoryParamApiVersionError); + result += PyModule_AddIntMacro(module, AccessoryParamSizeMismatchError); + result += PyModule_AddIntMacro(module, AccessoryParameterNull); + // end of enum - } AccessoryOperationErrorType; // enum result += PyModule_AddIntMacro(module, EDevNameTypeDefault); @@ -1229,6 +1253,19 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, EDevNameTypeTCPShort); // end of enum - } EDevNameType; + result += PyModule_AddIntMacro(module, FlashAccessoryFirmwareParams_SIZE); + result += PyModule_AddIntMacro(module, FlashAccessoryFirmwareParams_SIZE); + // enum + result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY1); + result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY2); + result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_SWITCH_A); + result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_SWITCH_B); + // end of enum - } flashAccessoryIndex; + + // enum + result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0); + // end of enum - } epsilon10GPHYFW; + result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); // enum // end of enum - } From db2e61614a9188bf3d46113850d5625451b15717 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 9 Jun 2025 10:22:09 -0400 Subject: [PATCH 19/38] remove ENABLE_ACCESSORY_API guard --- src/methods.cpp | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index a86c63d35..fedea0d97 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -4153,9 +4153,6 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO|b:", __FUNCTION__), &obj, &parms, &check_success)) { return NULL; } -#ifndef ENABLE_ACCESSORY_API - return set_ics_exception(exception_runtime_error(), "Accessory API not enabled"); -#else if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); @@ -4250,7 +4247,6 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } -#endif // ENABLE_ACCESSORY_API } PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) @@ -4263,9 +4259,6 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) return NULL; } -#ifndef ENABLE_ACCESSORY_API - return set_ics_exception(exception_runtime_error(), "Accessory API not enabled"); -#else if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } @@ -4354,7 +4347,6 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } -#endif // ENABLE_ACCESSORY_API } PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) From 5ef2dc7296a46cbf7e89f28440fe8960f6f972bd Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 10 Jun 2025 08:19:52 -0400 Subject: [PATCH 20/38] Fixed _PyMem_DebugMalloc: Python memory allocator called without holding the GIL --- README.md | 13 +- pyproject.toml | 2 +- setup.py | 7 + src/main.cpp | 5 +- src/methods.cpp | 585 +++++++++++++++++++++++++----------------------- 5 files changed, 326 insertions(+), 286 deletions(-) diff --git a/README.md b/README.md index 2b6ddd2d7..ec0cf1f7a 100644 --- a/README.md +++ b/README.md @@ -83,10 +83,15 @@ PS > python -m pip install . - `.\.venv\Scripts\Activate.ps1` - Install dependencies: - `python -m pip install -r requirements.txt` - - Build in debug (`-g` flag): - - `python setup.py build -g` - - Install into our virtual environment: - - `python setup.py install --force` + - Set DEBUG environment variable: + - $env:DEBUG = "1" + - Build the extension: + - `python_d setup.py build --debug install --force` + - OUTDATED: + - Build in debug (`-g` flag): + - `python setup.py build -g` + - Install into our virtual environment: + - `python setup.py install --force` - Inside visual studio code: - Open the root python_ics directory - `code C:\Path\To\python_ics` diff --git a/pyproject.toml b/pyproject.toml index 9ea73c27a..7013cf0ba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ description = "Python wrapper for interfacing to IntrepidCS Hardware." keywords = ["intrepidcs", "CAN", "Ethernet", "Automotive", "ICS"] readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.9" -license = "MIT" +license = { file = "LICENSE.md" } classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", diff --git a/setup.py b/setup.py index 82661d13d..3ffd697f4 100644 --- a/setup.py +++ b/setup.py @@ -69,10 +69,15 @@ def run(self): def get_ics_extension_compiler_arguments() -> List[str]: """Return a list of compiler arguments to append for compiling the ics extension module""" + # Debug arguments + is_debug = True if os.environ.get("DEBUG") else False # gcc and clang arguments GCC_COMPILE_ARGS = [ "-Wno-unknown-pragmas", ] + if is_debug: + print("NOTICE: Building for DEBUG!") + GCC_COMPILE_ARGS.extend(["-g", "-O0"]) # Set compiler flags here if "WINDOWS" in platform.system().upper(): compile_args = [ @@ -86,6 +91,8 @@ def get_ics_extension_compiler_arguments() -> List[str]: "/wd5045", "/std:c++17", ] + if is_debug: + compile_args.extend(["CL=/Zi", "/Od", "/DEBUG"]) # mingw and clang python builds won't have MSC in the version string if "MSC" not in sys.version: compile_args = GCC_COMPILE_ARGS diff --git a/src/main.cpp b/src/main.cpp index 649b50075..f9897c398 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -69,15 +69,14 @@ extern "C" PyMODINIT_FUNC PyInit_ics(void) { - initialize_ics_library(); - PyObject* module = PyModule_Create(&IcsModule); - if (!module) { return module; } PyDateTime_IMPORT; + initialize_ics_library(); + #ifdef Py_GIL_DISABLED // Enable the experimental free threaded introduced in 3.13 PyUnstable_Module_SetGIL(module, Py_MOD_GIL_NOT_USED); diff --git a/src/methods.cpp b/src/methods.cpp index fedea0d97..25e00e786 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -19,6 +19,28 @@ #include #include +// This class allows RAII of the python GIL. This is a C++ replacement of +// Py_BEGIN_ALLOW_THREADS / Py_END_ALLOW_THREADS +class PyAllowThreads +{ + PyThreadState* _save = nullptr; + + public: + // Save the thread state and Release the GIL + PyAllowThreads() { _save = PyEval_SaveThread(); } + // Restore the thread state and Acquire the GIL + virtual ~PyAllowThreads() { restore(); } + + // Restore the thread and GIL state, this is safe to call multiple times. + void restore() + { + if (_save) { + PyEval_RestoreThread(_save); + } + _save = nullptr; + } +}; + extern PyTypeObject spy_message_object_type; // __func__, __FUNCTION__ and __PRETTY_FUNCTION__ are not preprocessor macros. // but MSVC doesn't follow c standard and treats __FUNCTION__ as a string literal macro... @@ -596,6 +618,7 @@ PyMethodDef IcsMethods[] = { #pragma warning(pop) // Internal function +// This function doesn't call any python methods and doesn't do anything with thread states or GIL auto device_name_from_nde(NeoDeviceEx* nde) -> std::string { if (!nde) { @@ -609,8 +632,8 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string } std::string name; name.reserve(255); + name.resize(255); // Get the struct - Py_BEGIN_ALLOW_THREADS; // int _stdcall icsneoGetDeviceName(const NeoDeviceEx* nde, char* name, const size_t length, const enum // _EDevNameType devNameType) ice::Function @@ -618,12 +641,10 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string if (auto length = icsneoGetDeviceName(const_cast(nde), &name[0], name.capacity(), EDevNameTypeNoSerial); length == 0) { - Py_BLOCK_THREADS; return std::string("icsneoGetDeviceName() Failed"); } - Py_END_ALLOW_THREADS; return name; - } catch (ice::Exception& ex) { + } catch (ice::Exception&) { // Legacy support - we are assuming icsneoGetDeviceName isn't available here // and suppressing ex error message. switch (nde->neoDevice.DeviceType) { @@ -1035,17 +1056,17 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) if (network_id != -1) popts = &opts; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoFindDevices(devices, &count, device_types_list.get(), device_types_list_size, (network_id != -1) ? &popts : NULL, 0)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoFindDevices() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* tuple = PyTuple_New(count); if (!tuple) { @@ -1060,7 +1081,10 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) if (!PyNeoDeviceEx_SetNeoDeviceEx(obj, &devices[i])) { return NULL; } - if (!PyNeoDeviceEx_SetName(obj, PyUnicode_FromString(device_name_from_nde(&devices[i]).c_str()))) { + std::string device_name = device_name_from_nde(&devices[i]); + PyObject* py_device_name = + PyUnicode_FromStringAndSize(device_name.c_str(), static_cast(device_name.length())); + if (!py_device_name || !PyNeoDeviceEx_SetName(obj, py_device_name)) { return NULL; } PyTuple_SetItem(tuple, i, obj); @@ -1175,12 +1199,12 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) if (network_id != -1) popts = &opts; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoFindDevices(devices, &count, NULL, 0, (network_id != -1) ? &popts : NULL, 0)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoFindDevices() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); // Find the first free device for (int i = 0; i < count; ++i) { // If we are looking for a serial number, check here @@ -1242,7 +1266,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) PyBuffer_Release(&buffer); return NULL; } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoOpenDevice(nde, &handle, use_network_ids ? network_ids_list.get() : NULL, @@ -1250,11 +1274,11 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) options, (network_id != -1) ? popts : NULL, 0)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "icsneoOpenDevice() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&buffer); if (!PyNeoDeviceEx_SetHandle(device, handle)) { return NULL; @@ -1298,13 +1322,13 @@ PyObject* meth_close_device(PyObject* self, PyObject* args) if (!handle) { return Py_BuildValue("i", error_count); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoClosePort(handle, &error_count)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoClosePort() Failed"); } icsneoFreeObject(handle); - Py_END_ALLOW_THREADS; + gil.restore(); if (!PyNeoDeviceEx_SetHandle(obj, NULL)) { return NULL; } @@ -1374,12 +1398,12 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoGetRTC(lib, "icsneoGetRTC"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetRTC(handle, &ics_time)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetRTC() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); time_t current_time = time(0); // Bug #6600 - icsneoSetRTC is utc, icsneoGetRTC is local // tm* current_utc_time = gmtime(¤t_time); // UTC @@ -1457,12 +1481,12 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoSetRTC(lib, "icsneoSetRTC"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetRTC(handle, &ics_time)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetRTC() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1539,12 +1563,12 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } ice::Function icsneoScriptLoad( lib, "icsneoScriptLoad"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptLoad(handle, data, static_cast(data_size), location)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptLoad() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1573,12 +1597,12 @@ PyObject* meth_coremini_start(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoScriptStart(lib, "icsneoScriptStart"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptStart(handle, location)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptStart() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1606,12 +1630,12 @@ PyObject* meth_coremini_stop(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoScriptStop(lib, "icsneoScriptStop"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptStop(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptStop() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1641,12 +1665,12 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoScriptClear(lib, "icsneoScriptClear"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptClear(handle, location)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptClear() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1676,12 +1700,12 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) } ice::Function icsneoScriptGetScriptStatus(lib, "icsneoScriptGetScriptStatus"); int status = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptGetScriptStatus(handle, &status)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptClear() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", status == 1); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1736,10 +1760,10 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) } msgs[i] = &(_obj->msg); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); for (int i = 0; i < TUPLE_COUNT; ++i) { if (!icsneoTxMessages(handle, msgs[i], (msgs[i]->NetworkID2 << 8) | msgs[i]->NetworkID, 1)) { - Py_BLOCK_THREADS; + gil.restore(); if (created_tuple) { Py_XDECREF(tuple); } @@ -1747,7 +1771,7 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoTxMessages() Failed"); } } - Py_END_ALLOW_THREADS; + gil.restore(); if (created_tuple) { Py_XDECREF(tuple); } @@ -1798,17 +1822,17 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) PyErr_Print(); return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (timeout == 0 || icsneoWaitForRxMessagesWithTimeOut(handle, (unsigned int)timeout)) { if (!icsneoGetMessages(handle, (icsSpyMessage*)msgs, &count, &errors)) { - Py_BLOCK_THREADS; + gil.restore(); PyMem_Free(msgs); return set_ics_exception(exception_runtime_error(), "icsneoGetMessages() Failed"); } } else { count = 0; } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* tuple = PyTuple_New(count); for (int i = 0; i < count; ++i) { PyObject* _obj = NULL; @@ -1871,13 +1895,13 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) } ice::Function icsneoScriptGetScriptStatusEx(lib, "icsneoScriptGetScriptStatusEx"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptGetScriptStatusEx( handle, parameters, sizeof(parameters) / sizeof(¶meters[0]), parameters_count)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptGetScriptStatusEx() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -1913,11 +1937,12 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoGetErrorMessages(lib, "icsneoGetErrorMessages"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetErrorMessages(handle, errors, &error_count)) { - Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGetErrorMessages() Failed"); + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoGetErrorMessages() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); ice::Function icsneoGetErrorInfo( lib, "icsneoGetErrorInfo"); PyObject* list = PyList_New(0); @@ -1927,7 +1952,7 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) int description_short_length = 255; int description_long_length = 255; int severity = 0, restart_needed = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetErrorInfo(errors[i], description_short, description_long, @@ -1935,11 +1960,11 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) &description_long_length, &severity, &restart_needed)) { - Py_BLOCK_THREADS; + gil.restore(); Py_XDECREF(list); return set_ics_exception(exception_runtime_error(), "icsneoGetErrorInfo() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* tuple = Py_BuildValue( "i, s, s, i, i", errors[i], description_short, description_long, severity, restart_needed); @@ -2045,13 +2070,13 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) unsigned long, void (*MessageCallback)(const char* message, bool success))> FlashDevice2(lib, "FlashDevice2"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!FlashDevice2(0x3835C256, &nde->neoDevice, rc, reflash_count, network_id, iOptions, 0, &message_callback)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "FlashDevice2() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&buffer); Py_RETURN_NONE; } catch (ice::Exception& ex) { @@ -2097,19 +2122,19 @@ PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args) } ice::Function icsneoSetReflashCallback( lib, "icsneoSetReflashCallback"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (callback == Py_None) { if (!icsneoSetReflashCallback(NULL)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetReflashCallback() Failed"); } } else { if (!icsneoSetReflashCallback(&message_reflash_callback)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetReflashCallback() Failed"); } } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2154,7 +2179,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // Set/Get the DeviceSettingsType - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); EDeviceSettingsType* setting_type = &((SDeviceSettings*)settings_buffer.buf)->DeviceSettingType; if (device_type_override == -1) { // int _stdcall icsneoGetDeviceSettingsType(void* hObject, EPlasmaIonVnetChannel_t vnetSlot, @@ -2162,7 +2187,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) ice::Function icsneoGetDeviceSettingsType(lib, "icsneoGetDeviceSettingsType"); if (!icsneoGetDeviceSettingsType(handle, vnet_slot, setting_type)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&settings_buffer); Py_DECREF(settings); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceSettingsType() Failed"); @@ -2174,12 +2199,12 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) lib, "icsneoGetDeviceSettings"); if (!icsneoGetDeviceSettings( handle, (SDeviceSettings*)settings_buffer.buf, static_cast(settings_buffer.len), vnet_slot)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&settings_buffer); Py_DECREF(settings); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceSettings() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&settings_buffer); return settings; } catch (ice::Exception& ex) { @@ -2219,17 +2244,17 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) icsneoSetDeviceSettings(lib, "icsneoSetDeviceSettings"); Py_buffer settings_buffer = {}; PyObject_GetBuffer(settings, &settings_buffer, PyBUF_CONTIG); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, static_cast(settings_buffer.len), save_to_eeprom, vnet_slot)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&settings_buffer); return set_ics_exception(exception_runtime_error(), "icsneoSetDeviceSettings() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&settings_buffer); Py_RETURN_NONE; } catch (ice::Exception& ex) { @@ -2258,12 +2283,12 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoLoadDefaultSettings(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoLoadDefaultSettings() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2298,12 +2323,12 @@ PyObject* meth_read_sdcard(PyObject* self, if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { return NULL; } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoReadSDCard(handle, index, data, &size)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoReadSDCard() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* tuple = PyTuple_New(size); if (!tuple) { return NULL; @@ -2351,12 +2376,12 @@ PyObject* meth_write_sdcard( if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { return NULL; } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoWriteSDCard(handle, index, (unsigned char*)PyByteArray_AsString(ba_obj))) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoWriteSDCard() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2439,12 +2464,12 @@ PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoScriptStartFBlock(lib, "icsneoScriptStartFBlock"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptStartFBlock(handle, index)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptStartFBlock() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2473,12 +2498,12 @@ PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoScriptStopFBlock(lib, "icsneoScriptStopFBlock"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptStopFBlock(handle, index)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptStopFBlock() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2509,12 +2534,12 @@ PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) ice::Function icsneoScriptGetFBlockStatus( lib, "icsneoScriptGetFBlockStatus"); int status = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptGetFBlockStatus(handle, index, &status)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptGetFBlockStatus() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", status == 1); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2545,12 +2570,12 @@ PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // Scrip ice::Function icsneoScriptReadAppSignal( lib, "icsneoScriptReadAppSignal"); double value = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptReadAppSignal(handle, index, &value)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptReadAppSignal() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("d", value); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2581,12 +2606,12 @@ PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // Scri } ice::Function icsneoScriptWriteAppSignal( lib, "icsneoScriptWriteAppSignal"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptWriteAppSignal(handle, index, value)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptWriteAppSignal() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2626,12 +2651,12 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_J1850_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptReadTxMessage(handle, index, &PySpyMessageJ1850_GetObject(msg)->msg)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptReadTxMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); } else { msg = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); if (!msg) { @@ -2639,12 +2664,12 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip PyErr_Print(); return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptReadTxMessage(handle, index, &PySpyMessage_GetObject(msg)->msg)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptReadTxMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); } return msg; } catch (ice::Exception& ex) { @@ -2693,15 +2718,15 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_J1850_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptReadRxMessage(handle, index, &PySpyMessageJ1850_GetObject(msg_mask)->msg, &PySpyMessageJ1850_GetObject(msg_mask)->msg)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptReadRxMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); } else { msg = PyObject_CallObject((PyObject*)&spy_message_object_type, NULL); if (!msg) { @@ -2715,13 +2740,13 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip PyErr_Print(); return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptReadRxMessage( handle, index, &PySpyMessage_GetObject(msg)->msg, &PySpyMessage_GetObject(msg_mask)->msg)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptReadRxMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); } return Py_BuildValue("(O,O)", msg, msg_mask); } catch (ice::Exception& ex) { @@ -2770,12 +2795,12 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn } ice::Function icsneoScriptWriteTxMessage( lib, "icsneoScriptWriteTxMessage"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptWriteTxMessage(handle, index, msg)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptWriteTxMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2876,7 +2901,7 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) int reserved3 = 0; int reserved4 = 0; int reserved5 = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetPerformanceParameters(handle, &buffer_count, &buffer_max, @@ -2886,10 +2911,10 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) &reserved3, &reserved4, &reserved5)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetPerformanceParameters() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("(i,i,i,i,i,i,i,i)", buffer_count, buffer_max, @@ -2927,12 +2952,12 @@ PyObject* meth_validate_hobject(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoValidateHObject(lib, "icsneoValidateHObject"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoValidateHObject(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return Py_BuildValue("b", false); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", true); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -2963,12 +2988,12 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) ice::Function icsneoGetErrorInfo( lib, "icsneoGetErrorInfo"); int error = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetLastAPIError(handle, &error)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetLastAPIError() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); char description_short[255] = { 0 }; char description_long[255] = { 0 }; int description_short_length = 255; @@ -3001,9 +3026,9 @@ PyObject* meth_get_dll_version(PyObject* self, PyObject* args) } ice::Function icsneoGetDLLVersion(lib, "icsneoGetDLLVersion"); int result = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); result = icsneoGetDLLVersion(); - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", result); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3032,12 +3057,12 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) } ice::Function icsneoGetSerialNumber(lib, "icsneoGetSerialNumber"); unsigned int serial = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetSerialNumber(handle, &serial)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetSerialNumber() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", serial); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3072,13 +3097,13 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) Py_buffer info_buffer = {}; PyObject_GetBuffer(info, &info_buffer, PyBUF_CONTIG); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetHWFirmwareInfo(handle, (stAPIFirmwareInfo*)info_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&info_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetHWFirmwareInfo() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return info; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3129,12 +3154,12 @@ PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) } ice::Function icsneoRequestEnterSleepMode( lib, "icsneoRequestEnterSleepMode"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoRequestEnterSleepMode(handle, timeout_ms, mode, reserved)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoRequestEnterSleepMode() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", true); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3171,12 +3196,12 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoSetContext(lib, "icsneoSetContext"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetContext(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetContext() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", true); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3204,12 +3229,12 @@ PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoForceFirmwareUpdate(lib, "icsneoForceFirmwareUpdate"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoForceFirmwareUpdate(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return Py_BuildValue("b", false); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", true); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3237,12 +3262,12 @@ PyObject* meth_firmware_update_required(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoFirmwareUpdateRequired(lib, "icsneoFirmwareUpdateRequired"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoFirmwareUpdateRequired(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return Py_BuildValue("b", false); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", true); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3277,12 +3302,12 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) } Py_buffer info_buffer = {}; PyObject_GetBuffer(info, &info_buffer, PyBUF_CONTIG); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetDLLFirmwareInfo(handle, (stAPIFirmwareInfo*)info_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetDLLFirmwareInfo() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return info; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3312,12 +3337,12 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) } ice::Function icsneoGetBackupPowerEnabled(lib, "icsneoGetBackupPowerEnabled"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetBackupPowerEnabled(handle, enabled)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetBackupPowerEnabled() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", enabled); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3347,12 +3372,12 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) } ice::Function icsneoSetBackupPowerEnabled(lib, "icsneoSetBackupPowerEnabled"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetBackupPowerEnabled(handle, enabled)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetBackupPowerEnabled() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", enabled); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3381,12 +3406,12 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoGetBackupPowerReady(lib, "icsneoGetBackupPowerReady"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetBackupPowerReady(handle, enabled)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetBackupPowerReady() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("b", enabled); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3464,12 +3489,12 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } ice::Function icsneoScriptLoadReadBin( lib, "icsneoScriptLoadReadBin"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoScriptLoadReadBin(handle, data, static_cast(data_size), location)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptLoadReadBin() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3510,14 +3535,14 @@ PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) } ice::Function icsneoISO15765_TransmitMessage(lib, "icsneoISO15765_TransmitMessage"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoISO15765_TransmitMessage( handle, ulNetworkID, (stCM_ISO157652_TxMessage*)obj_tx_msg_buffer.buf, ulBlockingTimeout)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&obj_tx_msg_buffer); return set_ics_exception(exception_runtime_error(), "icsneoISO15765_TransmitMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&obj_tx_msg_buffer); return Py_BuildValue("b", true); } catch (ice::Exception& ex) { @@ -3560,13 +3585,13 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) // memcpy(&rx_msg_temp, &(temp->s), sizeof(temp->s)); ice::Function icsneoISO15765_ReceiveMessage( lib, "icsneoISO15765_ReceiveMessage"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoISO15765_ReceiveMessage(handle, iIndex, (stCM_ISO157652_RxMessage*)obj_rx_msg_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&obj_rx_msg_buffer); return set_ics_exception(exception_runtime_error(), "icsneoISO15765_ReceiveMessage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&obj_rx_msg_buffer); Py_RETURN_NONE; } catch (ice::Exception& ex) { @@ -3598,12 +3623,12 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) } ice::Function icsneoISO15765_EnableNetworks( lib, "icsneoISO15765_EnableNetworks"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoISO15765_EnableNetworks(handle, networks)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoISO15765_EnableNetworks() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3631,12 +3656,12 @@ PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoISO15765_DisableNetworks(lib, "icsneoISO15765_DisableNetworks"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoISO15765_DisableNetworks(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoISO15765_DisableNetworks() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3666,12 +3691,12 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) } ice::Function icsneoGetActiveVNETChannel(lib, "icsneoGetActiveVNETChannel"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetActiveVNETChannel(handle, &channel)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetActiveVNETChannel() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", channel); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3701,12 +3726,12 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) } ice::Function icsneoSetActiveVNETChannel(lib, "icsneoSetActiveVNETChannel"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetActiveVNETChannel(handle, channel)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetActiveVNETChannel() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", channel); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3736,12 +3761,12 @@ PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoSetBitRate(lib, "icsneoSetBitRate"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetBitRate(handle, bitrate, net_id)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetBitRate() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3771,12 +3796,12 @@ PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoSetFDBitRate(lib, "icsneoSetFDBitRate"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetFDBitRate(handle, bitrate, net_id)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetFDBitRate() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3807,12 +3832,12 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetBitRateEx(handle, bitrate, net_id, options)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetBitRateEx() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3848,12 +3873,12 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) ice::Function icsneoGetTimeStampForMsg( lib, "icsneoGetTimeStampForMsg"); double timestamp = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetTimeStampForMsg(handle, msg, ×tamp)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetTimeStampForMsg() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("d", timestamp); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3891,20 +3916,20 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) size_t device_status_size = static_cast(device_status_buffer.len); ice::Function icsneoGetDeviceStatus(lib, "icsneoGetDeviceStatus"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetDeviceStatus(handle, (icsDeviceStatus*)device_status_buffer.buf, &device_status_size)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&device_status_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceStatus() Failed"); } if (throw_exception_on_size_mismatch) { if (device_status_size != (size_t)device_status_buffer.len) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&device_status_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceStatus() API mismatch detected!"); } } - Py_END_ALLOW_THREADS; + gil.restore(); return device_status; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3937,19 +3962,19 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) // int _stdcall icsneoEnableNetworkComEx(void* hObject, int iEnable, int iNetId) ice::Function icsneoEnableNetworkCom(lib, "icsneoEnableNetworkCom"); ice::Function icsneoEnableNetworkComEx(lib, "icsneoEnableNetworkComEx"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (net_id == -1) { if (!icsneoEnableNetworkCom(handle, enable)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoEnableNetworkCom() Failed"); } } else { if (!icsneoEnableNetworkComEx(handle, enable, net_id)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoEnableNetworkComEx() Failed"); } } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3981,12 +4006,12 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) // int _stdcall icsneoEnableBusVoltageMonitor(void* hObject, unsigned int enable, unsigned int reserved) ice::Function icsneoEnableBusVoltageMonitor( lib, "icsneoEnableBusVoltageMonitor"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoEnableBusVoltageMonitor(handle, enable, reserved)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoEnableBusVoltageMonitor() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4018,12 +4043,12 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) // int _stdcall icsneoGetBusVoltage(void* hObject, unsigned long* pVBusVoltage, unsigned int reserved ice::Function icsneoGetBusVoltage(lib, "icsneoGetBusVoltage"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetBusVoltage(handle, &mV, reserved)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetBusVoltage() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", mV); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4072,14 +4097,14 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) Py_buffer ba_buffer = {}; PyObject_GetBuffer(ba, &ba_buffer, PyBUF_CONTIG); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoReadJupiterFirmware(handle, (char*)ba_buffer.buf, &fileSize, channel)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&ba_buffer); return set_ics_exception(exception_runtime_error(), "icsneoReadJupiterFirmware() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&ba_buffer); return Py_BuildValue("Oi", ba, fileSize); } catch (ice::Exception& ex) { @@ -4127,15 +4152,15 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) return NULL; } - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); // if (!icsneoWriteJupiterFirmware(handle, (char*)bytes_buffer.buf, bytes_buffer.len, channel)) { if (!icsneoWriteJupiterFirmware(handle, bytes_str, static_cast(bsize), channel)) { - Py_BLOCK_THREADS; + gil.restore(); Py_DECREF(bytes); // PyBuffer_Release(&bytes_buffer); return set_ics_exception(exception_runtime_error(), "icsneoWriteJupiterFirmware() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_DECREF(bytes); // PyBuffer_Release(&bytes_buffer); Py_RETURN_NONE; @@ -4180,9 +4205,9 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) Py_buffer parms_buffer = {}; PyObject_GetBuffer(parms, &parms_buffer, PyBUF_CONTIG_RO); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoFlashAccessoryFirmware(handle, (FlashAccessoryFirmwareParams*)parms_buffer.buf, &function_error)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoFlashAccessoryFirmware() Failed"); } // check the return value to make sure we are good @@ -4241,7 +4266,7 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) }; return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", function_error); } catch (ice::Exception& ex) { @@ -4280,12 +4305,12 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) unsigned int accessory_version = 0; int function_error = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetAccessoryFirmwareVersion(handle, accessory_indx, &accessory_version, &function_error)) { - Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), - "icsneoGetAccessoryFirmwareVersion() Failed"); + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoGetAccessoryFirmwareVersion() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); // check the return value to make sure we are good if (check_success && function_error != AccessoryOperationSuccess) { std::stringstream ss; @@ -4375,11 +4400,12 @@ PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) // int _stdcall icsneoSetSafeBootMode(void* hObject, const uint8_t enable) ice::Function icsneoSetSafeBootMode(lib, "icsneoSetSafeBootMode"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetSafeBootMode(handle, enable)) { - Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoSetSafeBootMode() Failed"); + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoSetSafeBootMode() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4456,14 +4482,14 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) Py_buffer details_buffer = {}; PyObject_GetBuffer(details, &details_buffer, PyBUF_CONTIG); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoRequestDiskDetails(handle, (SDiskDetails*)details_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&details_buffer); Py_DECREF(details); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskDetails() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&details_buffer); return details; } catch (ice::Exception& ex) { @@ -4496,13 +4522,13 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) PyObject_GetBuffer(details, &details_buffer, PyBUF_CONTIG); ice::Function icsneoRequestDiskFormat(lib, "icsneoRequestDiskFormat"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoRequestDiskFormat(handle, (SDiskDetails*)details_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&details_buffer); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskFormat() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&details_buffer); Py_RETURN_NONE; } catch (ice::Exception& ex) { @@ -4532,12 +4558,12 @@ PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) } ice::Function icsneoRequestDiskFormatCancel(lib, "icsneoRequestDiskFormatCancel"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoRequestDiskFormatCancel(handle)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskFormatCancel() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4574,14 +4600,14 @@ PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) Py_buffer progress_buffer = {}; PyObject_GetBuffer(progress, &progress_buffer, PyBUF_CONTIG); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoRequestDiskFormatProgress(handle, (SDiskFormatProgress*)progress_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&progress_buffer); Py_DECREF(progress); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskFormatProgress() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&progress_buffer); return progress; } catch (ice::Exception& ex) { @@ -4611,12 +4637,12 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoEnableDOIPLine(lib, "icsneoEnableDOIPLine"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoEnableDOIPLine(handle, enable)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoEnableDOIPLine() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4647,12 +4673,12 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) unsigned int supported = 0; ice::Function icsneoIsDeviceFeatureSupported( lib, "icsneoIsDeviceFeatureSupported"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoIsDeviceFeatureSupported(handle, (DeviceFeature)feature, &supported)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoIsDeviceFeatureSupported() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("I", supported); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4682,12 +4708,12 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) char pcbsn[32] = { 0 }; size_t length = sizeof pcbsn / sizeof pcbsn[0]; ice::Function icsneoGetPCBSerialNumber(lib, "icsneoGetPCBSerialNumber"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetPCBSerialNumber() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("s", pcbsn); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4719,12 +4745,12 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) } ice::Function icsneoSetLedProperty( lib, "icsneoSetLedProperty"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoSetLedProperty(handle, led, prop, value)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoSetLedProperty() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4786,7 +4812,7 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) uint32_t, uint8_t)> icsneoStartDHCPServer(lib, "icsneoStartDHCPServer"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoStartDHCPServer(handle, NetworkID, pDeviceIPAddress, @@ -4797,10 +4823,10 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) bOverwriteDHCPSettings, leaseTime, reserved)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoStartDHCPServer() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4829,12 +4855,12 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoStopDHCPServer(handle, NetworkID)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoStopDHCPServer() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4865,12 +4891,12 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) } ice::Function icsneowBMSManagerWriteLock(lib, "icsneowBMSManagerWriteLock"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerWriteLock() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4900,12 +4926,12 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) } ice::Function icsneowBMSManagerReset(lib, "icsneowBMSManagerReset"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneowBMSManagerReset(handle, manager)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerReset() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4943,12 +4969,12 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) size_t bytesActuallySent = 0; ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoUartWrite(handle, port, data.buf, static_cast(data.len), &bytesActuallySent, &flags)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); if (check_size && (size_t)data.len != bytesActuallySent) { return set_ics_exception(exception_runtime_error(), "Bytes actually sent didn't match bytes to send length"); @@ -4994,14 +5020,14 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) // size_t* bytesActuallyRead, uint8_t* flags) ice::Function icsneoUartRead(lib, "icsneoUartRead"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { - Py_BLOCK_THREADS; + gil.restore(); free(buffer); buffer = NULL; return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, static_cast(bytesActuallyRead)); // PyObject* value = Py_BuildValue("O", ba_result); @@ -5041,12 +5067,12 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) // int _stdcall icsneoUartSetBaudrate(void* hObject, const EUartPort_t uart, const uint32_t baudrate) ice::Function icsneoUartSetBaudrate( lib, "icsneoUartSetBaudrate"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoUartSetBaudrate(handle, port, baudrate)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoUartSetBaudrate() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); Py_RETURN_NONE; } catch (ice::Exception& ex) { @@ -5080,12 +5106,12 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) // int _stdcall icsneoUartGetBaudrate(void* hObject, const EUartPort_t uart, uint32_t* baudrate) ice::Function icsneoUartGetBaudrate( lib, "icsneoUartGetBaudrate"); - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoUartGetBaudrate(handle, port, &baudrate)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoUartGetBaudrate() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("I", baudrate); } catch (ice::Exception& ex) { @@ -5132,7 +5158,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) void*, unsigned char, unsigned char, unsigned char, void*, unsigned int, unsigned char*)> icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); unsigned char functionError = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, @@ -5140,10 +5166,10 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) (void*)data.buf, static_cast(data.len), &functionError)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); return Py_BuildValue("i", functionError); } catch (ice::Exception& ex) { @@ -5192,14 +5218,14 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) ice::Function icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); unsigned char functionIndex = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGenericAPIReadData(handle, apiIndex, instanceIndex, &functionIndex, buffer, &length)) { - Py_BLOCK_THREADS; + gil.restore(); free(buffer); buffer = NULL; return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIReadData() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* ba = PyByteArray_FromStringAndSize((const char*)buffer, length); PyObject* value = Py_BuildValue("IO", functionIndex, ba); @@ -5252,13 +5278,13 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) unsigned char functionIndex = 0; unsigned char callbackError = 0; unsigned char finishedProcessing = 0; - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); if (!icsneoGenericAPIGetStatus( handle, apiIndex, instanceIndex, &functionIndex, &callbackError, &finishedProcessing)) { - Py_BLOCK_THREADS; + gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIGetStatus() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyObject* value = Py_BuildValue("III", functionIndex, callbackError, finishedProcessing); return value; @@ -5301,16 +5327,16 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // Get the gptp_status - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); // int _stdcall icsneoGetGPTPStatus(void* hObject, GPTPStatus* gptpStatus) ice::Function icsneoGetGPTPStatus(lib, "icsneoGetGPTPStatus"); if (!icsneoGetGPTPStatus(handle, (GPTPStatus*)status_buffer.buf)) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&status_buffer); Py_DECREF(status); return set_ics_exception(exception_runtime_error(), "icsneoGetGPTPStatus() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&status_buffer); return status; } catch (ice::Exception& ex) { @@ -5355,18 +5381,18 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // Get the struct - Py_BEGIN_ALLOW_THREADS; + auto gil = PyAllowThreads(); // int _stdcall icsneoGetAllChipVersions(void* hObject, stChipVersions* pInfo, int ipInfoSize) ice::Function icsneoGetAllChipVersions(lib, "icsneoGetAllChipVersions"); if (!icsneoGetAllChipVersions( handle, (stChipVersions*)py_struct_buffer.buf, static_cast(py_struct_buffer.len))) { - Py_BLOCK_THREADS; + gil.restore(); PyBuffer_Release(&py_struct_buffer); Py_DECREF(py_struct); return set_ics_exception(exception_runtime_error(), "icsneoGetAllChipVersions() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); PyBuffer_Release(&py_struct_buffer); return py_struct; } catch (ice::Exception& ex) { @@ -5396,19 +5422,22 @@ PyObject* meth_get_device_name(PyObject* self, PyObject* args) // icsneoGetDevic char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - char name[255] = {}; + const size_t NAME_SIZE = 255; + char name[NAME_SIZE] = {}; // Get the struct - Py_BEGIN_ALLOW_THREADS; // int _stdcall icsneoGetDeviceName(const NeoDeviceEx* nde, char* name, const size_t length, const enum // _EDevNameType devNameType) + auto gil = PyAllowThreads(); ice::Function icsneoGetDeviceName(lib, "icsneoGetDeviceName"); - if (auto length = icsneoGetDeviceName(const_cast(nde), name, 255, dev_name_type); length == 0) { - Py_BLOCK_THREADS; + if (auto length = icsneoGetDeviceName(const_cast(nde), name, NAME_SIZE, dev_name_type); + length == 0) { + gil.restore(); PyBuffer_Release(&nde_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceName() Failed"); } - Py_END_ALLOW_THREADS; + gil.restore(); + PyBuffer_Release(&nde_buffer); PyObject* value = Py_BuildValue("s", name); return value; } catch (ice::Exception& ex) { From 82d5c3fa15a2604b0d6bd23e15487a6685cf01a8 Mon Sep 17 00:00:00 2001 From: MJun77 Date: Tue, 10 Jun 2025 08:47:10 -0400 Subject: [PATCH 21/38] Recover EPSILON_EXPRESS missing (#212) --- src/methods.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/methods.cpp b/src/methods.cpp index 25e00e786..1e8995354 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -686,6 +686,8 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "RAD-Epsilon"; case NEODEVICE_RADEPSILON_T: return "RAD-EpsilonT"; + case NEODEVICE_RADEPSILON_EXPRESS: + return "RAD-Epsilon Express"; case NEODEVICE_RADPROXIMA: return "RAD-Proxima"; case NEODEVICE_RAD_BMS: From a6b3bdba13966cc5e49d577c31d24d19dfae7008 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 10 Jun 2025 09:40:25 -0400 Subject: [PATCH 22/38] add get_imei() --- include/methods.h | 26 ++++++++++++++++----- src/ics/py_neo_device_ex.py | 6 ++++- src/methods.cpp | 45 ++++++++++++++++++++++++++++++++++--- 3 files changed, 68 insertions(+), 9 deletions(-) diff --git a/include/methods.h b/include/methods.h index ba536f243..0e927cd67 100644 --- a/include/methods.h +++ b/include/methods.h @@ -102,6 +102,7 @@ extern "C" PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args); PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args); PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName + PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI #ifdef _cplusplus } @@ -114,11 +115,11 @@ extern "C" flags, \ "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ "` method.\n\n" }, \ - { icsname_no_icsneo, \ - (PyCFunction)meth, \ - flags, \ - "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ - "` method.\n\n" } + { \ + icsname_no_icsneo, (PyCFunction)meth, flags, \ + "\n.. note:: Compatibility Function: Identical to PEP8 compliant :func:`" MODULE_NAME "." name \ + "` method.\n\n" \ + } #define _DOC_FIND_DEVICES \ MODULE_NAME ".find_devices(device_type=" MODULE_NAME ".NEODEVICE_ALL)\n" \ @@ -1943,6 +1944,21 @@ extern "C" "\tstr\n" \ "\n" +#define _DOC_GET_IMEI \ + MODULE_NAME ".get_imei(device) -> int\n" \ + "\n" \ + "Gets the unique 15 digit IMEI from the device. raises RuntimeError if not supported.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tint\n" \ + "\n" + extern PyMethodDef IcsMethods[]; #endif // _METHODS_H_ diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 0389957c3..75ba69f9c 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -493,4 +493,8 @@ def flash_devices(self, *args, **kwargs): def get_device_name(self, *args, **kwargs): "see ics.get_device_name for details on arguments." - return ics.get_device_name(self, *args, **kwargs) \ No newline at end of file + return ics.get_device_name(self, *args, **kwargs) + + def get_imei(self, *args, **kwargs): + "see ics.get_imei for details on arguments." + return ics.get_imei(self, *args, **kwargs) \ No newline at end of file diff --git a/src/methods.cpp b/src/methods.cpp index 25e00e786..70d0704ec 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -608,6 +608,12 @@ PyMethodDef IcsMethods[] = { meth_get_device_name, METH_VARARGS, _DOC_GET_DEVICE_NAME), + _EZ_ICS_STRUCT_METHOD("get_imei", + "icsneoGetIMEI", + "GetIMEI", + meth_get_imei, + METH_VARARGS, + _DOC_GET_IMEI), { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, @@ -1952,7 +1958,7 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) int description_short_length = 255; int description_long_length = 255; int severity = 0, restart_needed = 0; - auto gil = PyAllowThreads(); + auto gil2 = PyAllowThreads(); if (!icsneoGetErrorInfo(errors[i], description_short, description_long, @@ -1960,11 +1966,11 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) &description_long_length, &severity, &restart_needed)) { - gil.restore(); + gil2.restore(); Py_XDECREF(list); return set_ics_exception(exception_runtime_error(), "icsneoGetErrorInfo() Failed"); } - gil.restore(); + gil2.restore(); PyObject* tuple = Py_BuildValue( "i, s, s, i, i", errors[i], description_short, description_long, severity, restart_needed); @@ -5445,3 +5451,36 @@ PyObject* meth_get_device_name(PyObject* self, PyObject* args) // icsneoGetDevic return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } } + +PyObject* meth_get_imei(PyObject* self, PyObject* args) { // icsneoGetIMEI + (void)self; + PyObject* obj = NULL; + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + return NULL; + } + if (!PyNeoDeviceEx_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } + try { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + uint64_t imei = 0; + ice::Function icsneoGetIMEI(lib, "icsneoGetIMEI"); + auto gil = PyAllowThreads(); + if (!icsneoGetIMEI(handle, &imei)) { + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoGetIMEI() Failed"); + } + gil.restore(); + return Py_BuildValue("K", imei); + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} From 8ebac5cb84c1fdd486d091c2820aec7a3635a671 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 11 Jun 2025 12:52:05 -0400 Subject: [PATCH 23/38] add get_component_versions --- include/methods.h | 20 +++++++++-- src/ics/py_neo_device_ex.py | 6 +++- src/icsdebug.py | 59 +++++++++++++++++++----------- src/methods.cpp | 71 +++++++++++++++++++++++++++++++++++++ 4 files changed, 133 insertions(+), 23 deletions(-) diff --git a/include/methods.h b/include/methods.h index 0e927cd67..c48fcb6ff 100644 --- a/include/methods.h +++ b/include/methods.h @@ -101,8 +101,9 @@ extern "C" PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args); PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args); PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args); - PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName - PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI + PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName + PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI + PyObject* meth_get_component_versions(PyObject* self, PyObject* args); // icsneoGetComponentVersions #ifdef _cplusplus } @@ -1959,6 +1960,21 @@ extern "C" "\tint\n" \ "\n" +#define _DOC_GET_COMPONENT_VERSIONS \ + MODULE_NAME ".get_component_versions(device[, force, length]) -> (ics.structures.version_report.version_report)\n" \ + "\n" \ + "Gets the component versions from the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\ttuple of ics.structures.version_report.version_report\n" \ + "\n" + extern PyMethodDef IcsMethods[]; #endif // _METHODS_H_ diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 75ba69f9c..2b9b805b4 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -497,4 +497,8 @@ def get_device_name(self, *args, **kwargs): def get_imei(self, *args, **kwargs): "see ics.get_imei for details on arguments." - return ics.get_imei(self, *args, **kwargs) \ No newline at end of file + return ics.get_imei(self, *args, **kwargs) + + def get_component_versions(self, *args, **kwargs): + "see ics.get_component_versions for details on arguments." + return ics.get_component_versions(self, *args, **kwargs) diff --git a/src/icsdebug.py b/src/icsdebug.py index 7b83b6c5c..af6a55819 100644 --- a/src/icsdebug.py +++ b/src/icsdebug.py @@ -1,24 +1,43 @@ +import os + +input(os.getpid()) + import ics +import struct + +ics.override_library_name(r"C:\dev\vspy3\Binaries\win64\icsneo40.dll") + +CHIP_IDs = { + 82: "FIRE3_ZCHIP_ID", + 109: "NEOVI_FIRE3_LINUX_ID", + 121: "NEOVI_CONNECT_ZCHIP_ID", + 126: "NEOVI_FIRE3_LINUX_ID", +} -def show_clients(): - for d in ics.find_devices(): - print(d, d.NumberOfClients) +def dot_version(version: int) -> str: + version = '.'.join(str(x) for x in struct.unpack("4B", version.to_bytes(4, byteorder='big'))) + return version.lstrip('0.') -print("Find...") -devices = ics.find_devices() -show_clients() -print("Devices: ", devices) -d = ics.open_device(devices[0]) -show_clients() -print("Opened", d) -print("Loading default settings...", d) -ics.load_default_settings(d) -print("Closing...") -print(ics.close_device(d)) -print("Done.") +def linux_state(component_info: int) -> str: + match component_info: + case 1: + return "SD Card/MMC Partition 2" + case 2: + return "SD Card/MMC Partition 3" + case 3: + return "RAM" + case _: + return f"Unknown {component_info}" -# New Style -d = devices[0] -d.open(config_read=0) -d.load_default_settings() -d.close() +d = ics.open_device() +print(str(d)) +versions = d.get_component_versions() +for version in versions: + print(f"\t{version.valid}") + print(f"\t{version.expansionSlot}") + print(f"\t{version.componentInfo}: {linux_state(version.componentInfo)}") + print(f"\t{version.reserved}") + print(f"\t{version.identifier}: {CHIP_IDs[version.identifier]}") + print(f"\t{version.dotVersion}: {dot_version(version.dotVersion)}") + print(f"\t{version.commitHash}") + print() diff --git a/src/methods.cpp b/src/methods.cpp index 9830519cd..012accb0c 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -614,6 +614,15 @@ PyMethodDef IcsMethods[] = { meth_get_imei, METH_VARARGS, _DOC_GET_IMEI), + _EZ_ICS_STRUCT_METHOD("get_component_versions", + "icsneoGetComponentVersions", + "GetComponentVersions", + meth_get_component_versions, + METH_VARARGS, + _DOC_GET_COMPONENT_VERSIONS), + + + { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, @@ -5486,3 +5495,65 @@ PyObject* meth_get_imei(PyObject* self, PyObject* args) { // icsneoGetIMEI return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } } + +PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoGetComponentVersions +{ + (void)self; + PyObject* obj = NULL; + bool force_update = true; + uint64_t length = 25; + if (!PyArg_ParseTuple(args, arg_parse("O|bK:", __FUNCTION__), &obj, &force_update, &length)) { + return NULL; + } + if (!PyNeoDeviceEx_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } + try { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + uint64_t imei = 0; + ice::Function icsneoGetComponentVersions(lib, "icsneoGetComponentVersions"); + auto gil = PyAllowThreads(); + std::vector version_reports; + version_reports.reserve(length); + version_reports.resize(length); + if (!icsneoGetComponentVersions(handle, version_reports.data(), &length, force_update)) { + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoGetComponentVersions() Failed"); + } + gil.restore(); + + PyObject* tuple = PyTuple_New(length); + if (!tuple) { + return NULL; + } + for (int i = 0; i < length; ++i) { + PyObject* obj = _getPythonModuleObject("ics.structures.version_report", "version_report"); + if (!obj) { + return set_ics_exception(exception_runtime_error(), "Failed to allocate version_report"); + } + + + + // Get the internal buffer from version_report + Py_buffer buffer = {}; + if (PyObject_GetBuffer(obj, &buffer, PyBUF_CONTIG) != 0) { + return NULL; + } + memcpy(buffer.buf, &version_reports[i], sizeof(version_reports[i])); + PyBuffer_Release(&buffer); + + PyTuple_SetItem(tuple, i, obj); + } + return tuple; + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} \ No newline at end of file From 2ec7bf65790a17b1885ada2cb288cf0bd4dd6618 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 19 Jun 2025 13:26:02 -0400 Subject: [PATCH 24/38] Fixed ics.SpyMessage.ExtraDataPtr can't handle larger than 255 length (#215) Issue #214 --- src/methods.cpp | 3 +-- src/object_spy_message.cpp | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 012accb0c..e6bd5f8c5 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -5518,7 +5518,6 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - uint64_t imei = 0; ice::Function icsneoGetComponentVersions(lib, "icsneoGetComponentVersions"); auto gil = PyAllowThreads(); std::vector version_reports; @@ -5534,7 +5533,7 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG if (!tuple) { return NULL; } - for (int i = 0; i < length; ++i) { + for (uint64_t i = 0; i < length; ++i) { PyObject* obj = _getPythonModuleObject("ics.structures.version_report", "version_report"); if (!obj) { return set_ics_exception(exception_runtime_error(), "Failed to allocate version_report"); diff --git a/src/object_spy_message.cpp b/src/object_spy_message.cpp index da82097b9..267c95aa0 100644 --- a/src/object_spy_message.cpp +++ b/src/object_spy_message.cpp @@ -142,7 +142,7 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val if (!data && !PyLong_Check(data)) { obj->msg.AckBytes[i] = 0; } else { - obj->msg.AckBytes[i] = (unsigned char)PyLong_AsLong(data); + obj->msg.AckBytes[i] = static_cast(PyLong_AsLong(data)); } } return 0; @@ -163,8 +163,8 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val } else { ((spy_message_j1850_object*)obj)->msg.Header[i] = (unsigned char)PyLong_AsLong(data); } - obj->msg.NumberBytesHeader = static_cast(PyObject_Length(value)); } + obj->msg.NumberBytesHeader = static_cast(PyObject_Length(value)); return 0; } else if (PyUnicode_CompareWithASCIIString(name, "Protocol") == 0) { // Ethernet behavior is backward to CAN and will crash if enabled. @@ -181,7 +181,7 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val return -1; } // Get tuple items and place them in array, set as 0 if error. - size_t length = static_cast(PyObject_Length(value)); + size_t length = static_cast(PyObject_Length(value)); if (obj->msg.ExtraDataPtr != NULL) delete[] (unsigned char*)obj->msg.ExtraDataPtr; obj->msg.ExtraDataPtr = new unsigned char[length]; From 91e62eb7f5ac4f8826efba5d8c6c231ff81c05db Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 30 Jun 2025 11:06:36 -0400 Subject: [PATCH 25/38] Fixed Device name formatting shows null characters (#217) #216 --- src/methods.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/methods.cpp b/src/methods.cpp index e6bd5f8c5..b71e29465 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -657,6 +657,8 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string icsneoGetDeviceName(const_cast(nde), &name[0], name.capacity(), EDevNameTypeNoSerial); length == 0) { return std::string("icsneoGetDeviceName() Failed"); + } else { + name.resize(length, '\0'); } return name; } catch (ice::Exception&) { From 42e2fcd047257079f67077e1df200558c74ca383 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 21 Aug 2025 11:00:45 -0400 Subject: [PATCH 26/38] Fixed new header cicsSpyStatusBits.h. (#218) * Fixed new header cicsSpyStatusBits.h. Signed-off-by: David Rebbe * fixed icsneoGetComponentVersions errors --------- Signed-off-by: David Rebbe --- extract_icsneo40_defines.py | 11 +- include/ics/cicsSpyStatusBits.h | 249 +++++++ include/ics/icsnVC40.h | 1190 +++---------------------------- src/methods.cpp | 7 + 4 files changed, 349 insertions(+), 1108 deletions(-) create mode 100644 include/ics/cicsSpyStatusBits.h diff --git a/extract_icsneo40_defines.py b/extract_icsneo40_defines.py index 8baf76af7..c5b725567 100644 --- a/extract_icsneo40_defines.py +++ b/extract_icsneo40_defines.py @@ -1,5 +1,6 @@ #!/usr/bin/env python from __future__ import print_function +from os import path import os.path import re from subprocess import run, PIPE @@ -78,8 +79,11 @@ def extract(): with open("src/setup_module_auto_defines.cpp", "w") as f: print(boiler_plate, file=f) # Include the header files needed for the defines - - print('#include "setup_module_auto_defines.h"\n#include \n#pragma warning(push, 0)\n#include "ics/icsnVC40.h"\n#pragma warning(pop)', file=f) + + print( + '#include "setup_module_auto_defines.h"\n#include \n#pragma warning(push, 0)\n#include "ics/icsnVC40.h"\n#pragma warning(pop)', + file=f, + ) if use_internal: print('#pragma warning(push, 0)\n#include "ics/icsnVC40Internal.h"\n#pragma warning(pop)', file=f) @@ -87,6 +91,9 @@ def extract(): print("\tint result = 0;\n", file=f) fnames = [] fnames.append(format_file("include/ics/icsnVC40.h")) + # Append cicsSpyStatusBits header included in v921 + if pathlib.Path("include/ics/cicsSpyStatusBits.h").exists(): + fnames.append(format_file("include/ics/cicsSpyStatusBits.h")) if use_internal: fnames.append(format_file("include/ics/icsnVC40Internal.h")) # Let's get to work here! diff --git a/include/ics/cicsSpyStatusBits.h b/include/ics/cicsSpyStatusBits.h new file mode 100644 index 000000000..53bcb8901 --- /dev/null +++ b/include/ics/cicsSpyStatusBits.h @@ -0,0 +1,249 @@ +// -------------------------------------------------------------------------- +// COPYRIGHT INTREPID CONTROL SYSTEMS, INC. (c) 1994-20xx +// Confidential and proprietary. This document and its contents are the +// property of Intrepid Control Systems, Inc. It is not to be copied, +// distributed, or otherwise disclosed or used without the prior written +// consent of Intrepid Control Systems Inc. +// All rights reserved. +// -------------------------------------------------------------------------- + +// SPY Status Bit Definitions +// Generated automatically - DO NOT MODIFY +// Modify cicsSpyStatusBits_config.yml and run cicsSpyStatusBits_gen.py +// Generated on: 2025-07-14 14:31:40 + + +#ifndef CICSSPYSTATUSBITS_H_ +#define CICSSPYSTATUSBITS_H_ 1 + +// WARNING: The following bit conflicts were detected: +// spystatus value 0x10000000: // VSI value 'SPY_STATUS_VSI_IFR_CRC_BIT' conflicts with common value 'SPY_STATUS_PDU' +// spystatus value 0x10000000: // A2B value 'SPY_STATUS_A2B_CONTROL' conflicts with common value 'SPY_STATUS_PDU' +// spystatus value 0x08: // A2B value 'SPY_STATUS_A2B_SCF_VALID_WAITING' conflicts with common value 'SPY_STATUS_REMOTE_FRAME' +// spystatus value 0x40000000: // A2B value 'SPY_STATUS_A2B_UPSTREAM' conflicts with common value 'SPY_STATUS_HIGH_SPEED' +// spystatus value 0x10000000: // FLEXRAY value 'SPY_STATUS_FLEXRAY_PDU' conflicts with common value 'SPY_STATUS_PDU' +// spystatus value 0x40000000: // FLEXRAY value 'SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET' conflicts with common value 'SPY_STATUS_HIGH_SPEED' +// spystatus value 0x08: // FLEXRAY value 'SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT' conflicts with common value 'SPY_STATUS_REMOTE_FRAME' + + +// Glyph definitions +// '|' - byte divider +// '.' - nibble divider +// '-' - unused bit +// 'o' - common bit +// 'x' - protocol specific bit +// '!' - conflict bit + +// SPYSTATUS bit definitions +// SPYSTATUS - Common bits +// |oo-o.oooo|oooo.oooo|oooo.oo-o|oo-o.oooo| +#define SPY_STATUS_GLOBAL_ERR 0x01 // Global error flag +#define SPY_STATUS_TX_MSG 0x02 // Transmitted message +#define SPY_STATUS_XTD_FRAME 0x04 // Extended frame +#define SPY_STATUS_REMOTE_FRAME 0x08 // Remote frame +#define SPY_STATUS_CRC_ERROR 0x10 // CRC error +#define SPY_STATUS_INCOMPLETE_FRAME 0x40 // Incomplete frame +#define SPY_STATUS_LOST_ARBITRATION 0x80 // Lost arbitration +#define SPY_STATUS_UNDEFINED_ERROR 0x0100 // Undefined error +#define SPY_STATUS_BUS_RECOVERED 0x0400 // Bus recovered +#define SPY_STATUS_BUS_SHORTED_PLUS 0x0800 // Bus shorted to plus +#define SPY_STATUS_BUS_SHORTED_GND 0x1000 // Bus shorted to ground +#define SPY_STATUS_CHECKSUM_ERROR 0x2000 // Checksum error +#define SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR 0x4000 // Bad message bit time error +#define SPY_STATUS_TX_NOMATCH 0x8000 // TX no match +#define SPY_STATUS_COMM_IN_OVERFLOW 0x010000 // Communication input overflow +#define SPY_STATUS_EXPECTED_LEN_MISMATCH 0x020000 // Expected length mismatch +#define SPY_STATUS_MSG_NO_MATCH 0x040000 // Message no match +#define SPY_STATUS_BREAK 0x080000 // Break detected +#define SPY_STATUS_AVSI_REC_OVERFLOW 0x100000 // AVSI record overflow +#define SPY_STATUS_TEST_TRIGGER 0x200000 // Test trigger +#define SPY_STATUS_AUDIO_COMMENT 0x400000 // Audio comment +#define SPY_STATUS_GPS_DATA 0x800000 // GPS data +#define SPY_STATUS_ANALOG_DIGITAL_INPUT 0x01000000 // Analog digital input +#define SPY_STATUS_TEXT_COMMENT 0x02000000 // Text comment +#define SPY_STATUS_NETWORK_MESSAGE_TYPE 0x04000000 // Network message type +#define SPY_STATUS_VSI_TX_UNDERRUN 0x08000000 // VSI TX underrun +#define SPY_STATUS_PDU 0x10000000 // PDU message +#define SPY_STATUS_HIGH_SPEED 0x40000000 // High speed +#define SPY_STATUS_EXTENDED 0x80000000 // Extended - if this bit is set than decode StatusBitField3 in AckBytes + +// SPYSTATUS - A2B protocol bits +// |o!x!.oooo|oooo.oooo|oooo.oo-o|oo-o.!ooo| +#define SPY_STATUS_A2B_SCF_VALID_WAITING 0x08 // A2B SCF valid waiting +#define SPY_STATUS_A2B_CONTROL 0x10000000 // A2B control message +#define SPY_STATUS_A2B_MONITOR 0x20000000 // A2B monitor message +#define SPY_STATUS_A2B_UPSTREAM 0x40000000 // A2B upstream message + +// SPYSTATUS - CAN protocol bits +// |ooxo.oooo|oooo.oooo|oooo.ooxo|ooxo.oooo| +#define SPY_STATUS_CAN_ERROR_PASSIVE 0x20 // CAN error passive state +#define SPY_STATUS_CAN_BUS_OFF 0x0200 // CAN bus off state +#define SPY_STATUS_CANFD 0x20000000 // CAN FD frame + +// SPYSTATUS - ETHERNET protocol bits +// |oo-o.oooo|oooo.oooo|oooo.oo-o|ooxo.oooo| +#define SPY_STATUS_HEADERCRC_ERROR 0x20 // Header CRC error + +// SPYSTATUS - FLEXRAY protocol bits +// |o!-!.oooo|oooo.oooo|oooo.oo-o|oo-o.!ooo| +#define SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT 0x08 // FlexRay PDU no update bit +#define SPY_STATUS_FLEXRAY_PDU 0x10000000 // FlexRay PDU (alias for SPY_STATUS_PDU) +#define SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET 0x40000000 // FlexRay PDU update bit set + +// SPYSTATUS - LIN protocol bits +// |ooxo.oooo|oooo.oooo|oooo.oo-o|oo-o.oooo| +#define SPY_STATUS_LIN_MASTER 0x20000000 // LIN master message + +// SPYSTATUS - VSI protocol bits +// |oox!.oooo|oooo.oooo|oooo.oo-o|oo-o.oooo| +#define SPY_STATUS_VSI_IFR_CRC_BIT 0x10000000 // VSI IFR CRC bit +#define SPY_STATUS_INIT_MESSAGE 0x20000000 // Initialization message + + +// SPYSTATUS2 bit definitions +// SPYSTATUS2 - Common bits +// |----.----|---o.--oo|----.----|----.oooo| +#define SPY_STATUS2_HAS_VALUE 0x01 +#define SPY_STATUS2_VALUE_IS_BOOLEAN 0x02 +#define SPY_STATUS2_HIGH_VOLTAGE 0x04 +#define SPY_STATUS2_LONG_MESSAGE 0x08 +#define SPY_STATUS2_GLOBAL_CHANGE 0x010000 +#define SPY_STATUS2_ERROR_FRAME 0x020000 +#define SPY_STATUS2_END_OF_LONG_MESSAGE 0x100000 + +// SPYSTATUS2 - CAN protocol bits +// |----.----|-xxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME 0x200000 +#define SPY_STATUS2_CAN_HAVE_LINK_DATA 0x400000 + +// SPYSTATUS2 - ETHERNET protocol bits +// |xxxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_ETHERNET_CRC_ERROR 0x200000 +#define SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT 0x400000 +#define SPY_STATUS2_ETHERNET_FCS_AVAILABLE 0x800000 // This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR) +#define SPY_STATUS2_ETHERNET_NO_PADDING 0x01000000 +#define SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED 0x02000000 +#define SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS 0x04000000 +#define SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED 0x08000000 +#define SPY_STATUS2_ETHERNET_FCS_VERIFIED 0x10000000 +#define SPY_STATUS2_ETHERNET_T1S_SYMBOL 0x20000000 +#define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 +#define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 + +// SPYSTATUS2 - FLEXRAY protocol bits +// |----.-xxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_A 0x400000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_B 0x800000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH 0x01000000 +#define SPY_STATUS2_FLEXRAY_NO_CRC 0x02000000 +#define SPY_STATUS2_FLEXRAY_NO_HEADERCRC 0x04000000 // + +// SPYSTATUS2 - I2C protocol bits +// |----.----|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_I2C_ERR_TIMEOUT 0x200000 +#define SPY_STATUS2_I2C_ERR_NACK 0x400000 +#define SPY_STATUS2_I2C_DIR_READ 0x800000 + +// SPYSTATUS2 - ISO protocol bits +// |-xxx.x---|---o.--oo|----.----|----.oooo| +#define SPY_STATUS2_ISO_FRAME_ERROR 0x08000000 // ISO frame error +#define SPY_STATUS2_ISO_OVERFLOW_ERROR 0x10000000 // ISO overflow error +#define SPY_STATUS2_ISO_PARITY_ERROR 0x20000000 // ISO parity error +#define SPY_STATUS2_ISO_RX_TIMEOUT_ERROR 0x40000000 // ISO specific timeout error + +// SPYSTATUS2 - LIN protocol bits +// |xxxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 0x200000 // LIN RX break not 0 error +#define SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT 0x400000 // LIN RX break too short error +#define SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 0x800000 // LIN RX sync not 0x55 error +#define SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 0x01000000 // LIN RX data greater than 8 bytes error +#define SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH 0x02000000 // LIN TX/RX mismatch error +#define SPY_STATUS2_LIN_ERR_MSG_ID_PARITY 0x04000000 // LIN message ID parity error +#define SPY_STATUS2_LIN_SYNC_FRAME_ERROR 0x08000000 // LIN sync frame error +#define SPY_STATUS2_LIN_ID_FRAME_ERROR 0x10000000 // LIN ID frame error +#define SPY_STATUS2_LIN_SLAVE_BYTE_ERROR 0x20000000 // LIN slave byte error +#define SPY_STATUS2_LIN_RX_TIMEOUT_ERROR 0x40000000 // RX timeout error +#define SPY_STATUS2_LIN_NO_SLAVE_DATA 0x80000000 // LIN no slave data + +// SPYSTATUS2 - MDIO protocol bits +// |-xxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_MDIO_ERR_TIMEOUT 0x200000 +#define SPY_STATUS2_MDIO_JOB_CANCELLED 0x400000 +#define SPY_STATUS2_MDIO_INVALID_BUS 0x800000 +#define SPY_STATUS2_MDIO_INVALID_PHYADDR 0x01000000 +#define SPY_STATUS2_MDIO_INVALID_REGADDR 0x02000000 +#define SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE 0x04000000 +#define SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE 0x08000000 +#define SPY_STATUS2_MDIO_OVERFLOW 0x10000000 +#define SPY_STATUS2_MDIO_CLAUSE45 0x20000000 +#define SPY_STATUS2_MDIO_READ 0x40000000 + +// SPYSTATUS2 - MOST protocol bits +// |xxxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_MOST_PACKET_DATA 0x200000 +#define SPY_STATUS2_MOST_STATUS 0x400000 // reflects changes in light/lock/MPR/SBC/etc... +#define SPY_STATUS2_MOST_LOW_LEVEL 0x800000 // MOST low level message, allocs, deallocs, remote requests...*/ +#define SPY_STATUS2_MOST_CONTROL_DATA 0x01000000 +#define SPY_STATUS2_MOST_MHP_USER_DATA 0x02000000 // MOST HIGH User Data Frame +#define SPY_STATUS2_MOST_MHP_CONTROL_DATA 0x04000000 // MOST HIGH Control Data +#define SPY_STATUS2_MOST_I2S_DUMP 0x08000000 +#define SPY_STATUS2_MOST_TOO_SHORT 0x10000000 +#define SPY_STATUS2_MOST_MOST50 0x20000000 // absence of MOST50 and MOST150 implies it's MOST25 +#define SPY_STATUS2_MOST_MOST150 0x40000000 +#define SPY_STATUS2_MOST_CHANGED_PAR 0x80000000 // first byte in ack reflects what changed. + +// SPYSTATUS2 - WBMS protocol bits +// |----.----|--xo.--oo|----.----|----.oooo| +#define SPY_STATUS2_WBMS_API_IS_CALLBACK 0x200000 + + +// SPYSTATUS3 bit definitions +// SPYSTATUS3 - CAN protocol bits +// |----.----|-xxx.xxxx|-xxx.xxxx|----.-xxx| +#define SPY_STATUS3_CAN_ERR_PASSIVE 0x01 // CAN error passive state: typically when error counter is > 127 +#define SPY_STATUS3_CAN_BUS_OFF 0x02 // CAN bus off state +#define SPY_STATUS3_CAN_ERR_WARNING 0x04 // CAN error warning: typically when error counter is > 96 +#define SPY_STATUS3_CAN_DATAERR_STUFF_ERROR 0x0100 // CAN stuff error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_FORM_ERROR 0x0200 // CAN form error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_ACK_ERROR 0x0400 // CAN ack error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_BIT1_ERROR 0x0800 // CAN bit1 error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_BIT0_ERROR 0x1000 // CAN bit0 error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_CRC_ERROR 0x2000 // CAN CRC error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_NOCHANGE 0x4000 // CAN data error occurred before and no change yet +#define SPY_STATUS3_CAN_GENERR_STUFF_ERROR 0x010000 // CAN stuff error at the general frame level +#define SPY_STATUS3_CAN_GENERR_FORM_ERROR 0x020000 // CAN form error at the general frame level +#define SPY_STATUS3_CAN_GENERR_ACK_ERROR 0x040000 // CAN ack error at the general frame level +#define SPY_STATUS3_CAN_GENERR_BIT1_ERROR 0x080000 // CAN bit1 error at the general frame level +#define SPY_STATUS3_CAN_GENERR_BIT0_ERROR 0x100000 // CAN bit0 error at the general frame level +#define SPY_STATUS3_CAN_GENERR_CRC_ERROR 0x200000 // CAN CRC error at the general frame level +#define SPY_STATUS3_CAN_GENERR_NOCHANGE 0x400000 // CAN frame Error occurred before and no change yet + +// SPYSTATUS3 - CANFD protocol bits +// |----.----|----.----|----.----|---x.xxxx| +#define SPY_STATUS3_CANFD_ESI 0x01 // CAN FD Error State Indicator (ESI) reflects the error state of the transmitting node +#define SPY_STATUS3_CANFD_IDE 0x02 // CAN FD Identifier Extension (IDE) indicates if standard or extended IDs are in use +#define SPY_STATUS3_CANFD_RTR 0x04 +#define SPY_STATUS3_CANFD_FDF 0x08 // CAN FD Format (FDF) flag -- distinguishes classic CAN from CANFD +#define SPY_STATUS3_CANFD_BRS 0x10 // CANFD Baud Rate Select (BRS) flag, indicates if the data portion transmits at a higher bitrate + +// SPYSTATUS3 - ETHERNET protocol bits +// |----.----|----.----|----.----|----.--xx| +#define SPY_STATUS3_ETHERNET_TX_COLLISION 0x01 +#define SPY_STATUS3_ETHERNET_T1S_WAKE 0x02 + +// SPYSTATUS3 - LIN protocol bits +// |----.----|----.----|----.----|----.-xxx| +#define SPY_STATUS3_LIN_JUST_BREAK_SYNC 0x01 +#define SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT 0x02 +#define SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE 0x04 + + +// SPYSTATUS4 bit definitions +// SPYSTATUS4 - ETHERNET protocol bits +// |----.----|----.----|----.----|----.--xx| +#define SPY_STATUS4_ETH_CRC_ERROR 0x01 // Ethernet CRC error +#define SPY_STATUS4_ETH_FRAME_TOO_LONG 0x02 // Ethernet frame too long + + +#endif // CICSSPYSTATUSBITS_H_ diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index ae902a9bc..5eaf45bc6 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -41,6 +41,8 @@ typedef unsigned __int64 uint64_t; #include #endif +#include "cicsSpyStatusBits.h" + #if defined(_MSC_VER) #pragma warning(disable : 4200) #endif @@ -51,6 +53,9 @@ typedef unsigned __int64 uint64_t; #define IS_64BIT_SYSTEM #endif +//deprecated old definition! Use either SPY_STATUS2_ISO_RX_TIMEOUT_ERROR or SPY_STATUS2_LIN_RX_TIMEOUT_ERROR! +#define SPY_STATUS2_RX_TIMEOUT_ERROR SPY_STATUS2_ISO_RX_TIMEOUT_ERROR + /* OpenPort "OpenType" Argument Constants -- deprecated, use OpenNeoDevice */ #define NEOVI_COMMTYPE_RS232 0 #define NEOVI_COMMTYPE_USB_BULK 1 @@ -206,32 +211,32 @@ typedef unsigned __int64 uint64_t; //clang-format off #define NEODEVICE_UNKNOWN (0x00000000) #define NEODEVICE_BLUE (0x00000001) -#define NEODEVICE_ECU_AVB (0x00000002) -#define NEODEVICE_RADSUPERMOON (0x00000003) +#define NEODEVICE_ECU_AVB_DEPRECATED (0x00000002) +#define NEODEVICE_RADSUPERMOON_DEPRECATED (0x00000003) #define NEODEVICE_DW_VCAN (0x00000004) #define NEODEVICE_RADMOON2 (0x00000005) -#define NEODEVICE_RADGIGALOG (0x00000006) /* AKA RADMARS */ +#define NEODEVICE_RADGIGALOG_DEPRECATED (0x00000006) /* AKA RADMARS */ #define NEODEVICE_VCAN41 (0x00000007) #define NEODEVICE_FIRE (0x00000008) -#define NEODEVICE_RADPLUTO (0x00000009) +#define NEODEVICE_RADPLUTO_DEPRECATED (0x00000009) #define NEODEVICE_VCAN42_EL (0x0000000a) #define NEODEVICE_RADIO_CANHUB (0x0000000b) #define NEODEVICE_NEOECU12 (0x0000000c) #define NEODEVICE_OBD2_LC (0x0000000d) -#define NEODEVICE_RAD_MOON_DUO (0x0000000e) +#define NEODEVICE_RAD_MOON_DUO_DEPRECATED (0x0000000e) #define NEODEVICE_FIRE3 (0x0000000f) #define NEODEVICE_VCAN3 (0x00000010) #define NEODEVICE_RADJUPITER (0x00000011) #define NEODEVICE_VCAN4_IND (0x00000012) #define NEODEVICE_GIGASTAR (0x00000013) #define NEODEVICE_RED2 (0x00000014) -#define NEODEVICE_FIRE2_REDLINE (0x00000015) -#define NEODEVICE_ETHER_BADGE (0x00000016) +#define NEODEVICE_FIRE2_REDLINE_DEPRECATED (0x00000015) +#define NEODEVICE_ETHER_BADGE_DEPRECATED (0x00000016) #define NEODEVICE_RAD_A2B (0x00000017) #define NEODEVICE_RADEPSILON (0x00000018) -#define NEODEVICE_OBD2_SIM_DOIP (0x00000019) -#define NEODEVICE_OBD2_DEV (0x0000001a) -#define NEODEVICE_ECU22 (0x0000001b) +#define NEODEVICE_OBD2_SIM_DOIP_DEPRECATED (0x00000019) +#define NEODEVICE_OBD2_DEV_DEPRECATED (0x0000001a) +#define NEODEVICE_ECU22_DEPRECATED (0x0000001b) #define NEODEVICE_RADEPSILON_T (0x0000001c) #define NEODEVICE_RADEPSILON_EXPRESS (0x0000001d) #define NEODEVICE_RADPROXIMA (0x0000001e) @@ -246,13 +251,15 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RADCOMET3 (0x00000027) #define NEODEVICE_RADMOONT1S (0x00000028) #define NEODEVICE_GIGASTAR2 (0x00000029) +#define NEODEVICE_FIRE3_T1S_LIN (0x0000002A) +#define NEODEVICE_FIRE3_T1S_SENT (0x0000002B) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) -#define NEODEVICE_IEVB (0x00000100) +#define NEODEVICE_IEVB_DEPRECATED (0x00000100) #define NEODEVICE_PENDANT (0x00000200) -#define NEODEVICE_OBD2_PRO (0x00000400) -#define NEODEVICE_ECUCHIP_UART (0x00000800) +#define NEODEVICE_OBD2_PRO_DEPRECATED (0x00000400) +#define NEODEVICE_ECUCHIP_UART_DEPRECATED (0x00000800) #define NEODEVICE_PLASMA (0x00001000) #define NEODEVICE_DONT_REUSE0 (0x00002000) //NEODEVICE_FIRE_VNET #define NEODEVICE_NEOANALOG (0x00004000) @@ -260,25 +267,25 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_DONT_REUSE1 (0x00010000) //NEODEVICE_PLASMA_1_12 #define NEODEVICE_DONT_REUSE2 (0x00020000) //NEODEVICE_PLASMA_1_13 #define NEODEVICE_ION (0x00040000) -#define NEODEVICE_RADSTAR (0x00080000) +#define NEODEVICE_RADSTAR_DEPRECATED (0x00080000) #define NEODEVICE_DONT_REUSE3 (0x00100000) //NEODEVICE_ION3 #define NEODEVICE_VCAN44 (0x00200000) #define NEODEVICE_VCAN42 (0x00400000) -#define NEODEVICE_CMPROBE (0x00800000) -#define NEODEVICE_EEVB (0x01000000) +#define NEODEVICE_CMPROBE_DEPRECATED (0x00800000) +#define NEODEVICE_EEVB_DEPRECATED (0x01000000) #define NEODEVICE_DONT_REUSE4 (0x02000000) #define NEODEVICE_FIRE2 (0x04000000) -#define NEODEVICE_FLEX (0x08000000) +#define NEODEVICE_FLEX_DEPRECATED (0x08000000) #define NEODEVICE_RADGALAXY (0x10000000) #define NEODEVICE_RADSTAR2 (0x20000000) #define NEODEVICE_VIVIDCAN (0x40000000) -#define NEODEVICE_OBD2_SIM (0x80000000) +#define NEODEVICE_OBD2_SIM_DEPRECATED (0x80000000) #define NEODEVICE_ANY_PLASMA (NEODEVICE_PLASMA) #define NEODEVICE_ANY_ION (NEODEVICE_ION) -#define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB +#define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB_DEPRECATED //clang-format on -#define DEVICECOUNT_FOR_EXPLORER (48) //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER (34) //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -348,148 +355,6 @@ typedef unsigned __int64 uint64_t; #define SPY_PROTOCOL_WBMS 36 #define SPY_PROTOCOL_MDIO 37 -/* Bitmasks for StatusBitField member of icsSpyMessage */ -#define SPY_STATUS_GLOBAL_ERR 0x01 -#define SPY_STATUS_TX_MSG 0x02 -#define SPY_STATUS_XTD_FRAME 0x04 -#define SPY_STATUS_REMOTE_FRAME 0x08 -#define SPY_STATUS_CRC_ERROR 0x10 -#define SPY_STATUS_CAN_ERROR_PASSIVE 0x20 -#define SPY_STATUS_HEADERCRC_ERROR 0x20 -#define SPY_STATUS_INCOMPLETE_FRAME 0x40 -#define SPY_STATUS_LOST_ARBITRATION 0x80 -#define SPY_STATUS_UNDEFINED_ERROR 0x100 -#define SPY_STATUS_CAN_BUS_OFF 0x200 -#define SPY_STATUS_BUS_RECOVERED 0x400 -#define SPY_STATUS_BUS_SHORTED_PLUS 0x800 -#define SPY_STATUS_BUS_SHORTED_GND 0x1000 -#define SPY_STATUS_CHECKSUM_ERROR 0x2000 -#define SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR 0x4000 -#define SPY_STATUS_TX_NOMATCH 0x8000 -#define SPY_STATUS_COMM_IN_OVERFLOW 0x10000 -#define SPY_STATUS_EXPECTED_LEN_MISMATCH 0x20000 -#define SPY_STATUS_MSG_NO_MATCH 0x40000 -#define SPY_STATUS_BREAK 0x80000 -#define SPY_STATUS_AVSI_REC_OVERFLOW 0x100000 -#define SPY_STATUS_TEST_TRIGGER 0x200000 -#define SPY_STATUS_AUDIO_COMMENT 0x400000 -#define SPY_STATUS_GPS_DATA 0x800000 -#define SPY_STATUS_ANALOG_DIGITAL_INPUT 0x1000000 -#define SPY_STATUS_TEXT_COMMENT 0x2000000 -#define SPY_STATUS_NETWORK_MESSAGE_TYPE 0x4000000 -#define SPY_STATUS_VSI_TX_UNDERRUN 0x8000000 -#define SPY_STATUS_VSI_IFR_CRC_BIT 0x10000000 -#define SPY_STATUS_INIT_MESSAGE 0x20000000 -#define SPY_STATUS_LIN_MASTER 0x20000000 -#define SPY_STATUS_CANFD 0x20000000 -#define SPY_STATUS_A2B_CONTROL 0x10000000 -#define SPY_STATUS_A2B_SCF_VALID_WAITING 0x08 -#define SPY_STATUS_A2B_MONITOR 0x20000000 -#define SPY_STATUS_A2B_UPSTREAM 0x40000000 -#define SPY_STATUS_PDU 0x10000000 -#define SPY_STATUS_FLEXRAY_PDU SPY_STATUS_PDU -#define SPY_STATUS_HIGH_SPEED 0x40000000 -#define SPY_STATUS_EXTENDED 0x80000000 /* if this bit is set than decode StatusBitField3 in AckBytes */ -#define SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET 0x40000000 -#define SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT 0x08 - -/* Bitmasks for StatusBitField2 member of icsSpyMessage */ -#define SPY_STATUS2_HAS_VALUE 0x1 -#define SPY_STATUS2_VALUE_IS_BOOLEAN 0x2 -#define SPY_STATUS2_HIGH_VOLTAGE 0x4 -#define SPY_STATUS2_LONG_MESSAGE 0x8 -#define SPY_STATUS2_GLOBAL_CHANGE 0x10000 -#define SPY_STATUS2_ERROR_FRAME 0x20000 -#define SPY_STATUS2_END_OF_LONG_MESSAGE 0x100000 - -/* I2C Specific - check protocol before handling */ -#define SPY_STATUS2_I2C_ERR_TIMEOUT 0x200000 -#define SPY_STATUS2_I2C_ERR_NACK 0x400000 -#define SPY_STATUS2_I2C_DIR_READ 0x800000 - -/* MDIO Specific - check protocol before handling */ -#define SPY_STATUS2_MDIO_ERR_TIMEOUT 0x200000 -#define SPY_STATUS2_MDIO_JOB_CANCELLED 0x400000 -#define SPY_STATUS2_MDIO_INVALID_BUS 0x800000 -#define SPY_STATUS2_MDIO_INVALID_PHYADDR 0x1000000 -#define SPY_STATUS2_MDIO_INVALID_REGADDR 0x2000000 -#define SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE 0x4000000 -#define SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE 0x8000000 -#define SPY_STATUS2_MDIO_OVERFLOW 0x10000000 -#define SPY_STATUS2_MDIO_CLAUSE45 0x20000000 -#define SPY_STATUS2_MDIO_READ 0x40000000 - -/* LIN/ISO Specific - check protocol before handling */ -#define SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 0x200000 -#define SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT 0x400000 -#define SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 0x800000 -#define SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 0x1000000 -#define SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH 0x2000000 -#define SPY_STATUS2_LIN_ERR_MSG_ID_PARITY 0x4000000 -#define SPY_STATUS2_ISO_FRAME_ERROR 0x8000000 -#define SPY_STATUS2_LIN_SYNC_FRAME_ERROR 0x8000000 -#define SPY_STATUS2_ISO_OVERFLOW_ERROR 0x10000000 -#define SPY_STATUS2_LIN_ID_FRAME_ERROR 0x10000000 -#define SPY_STATUS2_ISO_PARITY_ERROR 0x20000000 -#define SPY_STATUS2_LIN_SLAVE_BYTE_ERROR 0x20000000 -#define SPY_STATUS2_RX_TIMEOUT_ERROR 0x40000000 -#define SPY_STATUS2_LIN_NO_SLAVE_DATA 0x80000000 -#define SPY_STATUS3_LIN_JUST_BREAK_SYNC 0x1 -#define SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT 0x2 -#define SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE 0x4 - -/* MOST Specific - check protocol before handling */ -#define SPY_STATUS2_MOST_PACKET_DATA 0x200000 -#define SPY_STATUS2_MOST_STATUS 0x400000 /* reflects changes in light/lock/MPR/SBC/etc... */ -#define SPY_STATUS2_MOST_LOW_LEVEL 0x800000 /* MOST low level message, allocs, deallocs, remote requests...*/ -#define SPY_STATUS2_MOST_CONTROL_DATA 0x1000000 -#define SPY_STATUS2_MOST_MHP_USER_DATA 0x2000000 /* MOST HIGH User Data Frame */ -#define SPY_STATUS2_MOST_MHP_CONTROL_DATA 0x4000000 /* MOST HIGH Control Data */ -#define SPY_STATUS2_MOST_I2S_DUMP 0x8000000 -#define SPY_STATUS2_MOST_TOO_SHORT 0x10000000 -#define SPY_STATUS2_MOST_MOST50 0x20000000 /* absence of MOST50 and MOST150 implies it's MOST25 */ -#define SPY_STATUS2_MOST_MOST150 0x40000000 -#define SPY_STATUS2_MOST_CHANGED_PAR 0x80000000 /* first byte in ack reflects what changed. */ - -/* Ethernet Specific - check protocol before handling */ -#define SPY_STATUS2_ETHERNET_CRC_ERROR 0x200000 -#define SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT 0x400000 -#define SPY_STATUS2_ETHERNET_FCS_AVAILABLE \ - 0x800000 /* This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR) */ -#define SPY_STATUS2_ETHERNET_NO_PADDING 0x1000000 -#define SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED 0x2000000 -#define SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS 0x4000000 -#define SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED 0x8000000 -#define SPY_STATUS2_ETHERNET_FCS_VERIFIED 0x10000000 -#define SPY_STATUS2_ETHERNET_T1S_SYMBOL 0x20000000 -#define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 -#define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 -#define SPY_STATUS3_ETHERNET_TX_COLLISION 0x00000001 -#define SPY_STATUS3_ETHERNET_T1S_WAKE 0x00000002 - -/* FlexRay Specific - check protocol before handling */ -#define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 -#define SPY_STATUS2_FLEXRAY_TX_AB_NO_A 0x400000 -#define SPY_STATUS2_FLEXRAY_TX_AB_NO_B 0x800000 -#define SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH 0x1000000 -#define SPY_STATUS2_FLEXRAY_NO_CRC 0x2000000 -#define SPY_STATUS2_FLEXRAY_NO_HEADERCRC 0x4000000 - -/* CAN/CAN-FD Specific - check protocol before handling */ -#define SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME 0x200000 -#define SPY_STATUS2_CAN_HAVE_LINK_DATA 0x400000 - -/* wBMS Specific - check protocol before handling */ -#define SPY_STATUS2_WBMS_API_IS_CALLBACK 0x200000 - - -/* CAN-FD Specific - check protocol before handling */ -#define SPY_STATUS3_CANFD_ESI 0x01 -#define SPY_STATUS3_CANFD_IDE 0x02 -#define SPY_STATUS3_CANFD_RTR 0x04 -#define SPY_STATUS3_CANFD_FDF 0x08 -#define SPY_STATUS3_CANFD_BRS 0x10 - /* Configuration Array constants */ /* HSCAN neoVI or ValueCAN */ #define NEO_CFG_MPIC_HS_CAN_CNF1 (512 + 10) @@ -647,6 +512,19 @@ typedef struct tagicsneoVICommand uint8_t Data[14]; } icsneoVICommand; +typedef enum +{ + PHY_88Q211x_Z1 = 0, + PHY_88Q211x_A0 = 1, + PHY_88Q211x_A1 = 2, + PHY_88Q211x_A2 = 3, + PHY_88Q222xM_A0 = 4, + PHY_88Q222xM_B0 = 5, + PHY_88Q222xM_B1 = 6, + PHY_88Q222xM_B2 = 7, + PHY_UNKNOWN = 255, +} PhyId; + #pragma pack(push, 1) typedef struct _stAPIFirmwareInfo @@ -1047,22 +925,6 @@ typedef union _stChipVersions uint8_t nrf52_min; } vividcan_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } cmprobe_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - uint8_t core_major; - uint8_t core_minor; - } obd2pro_versions; - struct { uint8_t mchip_major; @@ -1075,16 +937,6 @@ typedef union _stChipVersions uint8_t mchip_minor; } vcan42_versions; struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } neoecu_avb_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radsupermoon_versions; - struct { uint8_t zynq_core_major; uint8_t zynq_core_minor; @@ -1099,22 +951,6 @@ typedef union _stChipVersions uint8_t mchip_major; uint8_t mchip_minor; } radmoon3_versions; - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } pluto_versions; - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigalog_versions; - - struct - { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } radgigalog3_versions; struct { @@ -1171,26 +1007,6 @@ typedef union _stChipVersions uint8_t vem_f_minor; } fire3_flexray_versions; - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } rad_moon_duo_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - uint8_t schip_major; - uint8_t schip_minor; - } obd2dev_versions; - - struct - { - uint8_t mchip_major; - uint8_t mchip_minor; - } ether_badge_versions; - struct { uint8_t zynq_core_major; @@ -1441,6 +1257,9 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST 0x0400 #define ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT 0x0800 #define ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE 0x1000 +#define ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT 13 +#define ETHERNET_SETTINGS2_FLAG2_TAP_DEST_MASK 0x3 +#define ETHERNET_SETTINGS2_FLAG2_TC10_FWD_TAP_ENABLE 0x8000 typedef enum { @@ -1568,6 +1387,7 @@ typedef struct ETHERNET10T1S_SETTINGS_t #define ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL 0x08 #define ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET 0x10 #define ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK 0x20 +#define ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING 0x40 typedef struct ETHERNET10T1S_SETTINGS_EXT_t { @@ -2014,69 +1834,6 @@ typedef struct _UartPortConfig uint8_t port; uint8_t reserve[7]; } UartPortConfig; - -#define GET_SUPPORTED_FEATURES_COMMAND_VERSION (1) -typedef struct -{ - uint16_t cmdVersion; - uint16_t numValidBits; - uint32_t featureBitfields[0]; -} GetSupportedFeaturesResponse; - -typedef struct _VersionReport -{ - uint8_t valid; - uint8_t expansionSlot; // aka vnet slot - uint8_t componentInfo; // used for any component specific data (e.g. Linux: boot device) - uint8_t reserved; - uint32_t identifier; - uint32_t dotVersion; // major.minor.release.build - uint32_t commitHash; -} VersionReport; - -typedef struct _GetComponentVersions -{ - uint32_t reserved[2]; -} GetComponentVersions; - -#define MAX_REPORTED_VERSIONS (16) -#define EXT_GET_VERSIONS_RESPONSE_SIZE(numVers) (((numVers) * sizeof(VersionReport)) + sizeof(SExtSubCmdHdr) + sizeof(uint16_t)) -typedef struct _ExtendedGetVersionsResponse -{ - uint16_t numVersions; - VersionReport versions[MAX_REPORTED_VERSIONS]; -} GetComponentVersionsResponse; - -enum -{ - swUpdateWrite = 0, - swUpdateErase = 1, - swUpdateGetProgress = 2, - swUpdateValidateAll = 3, - swUpdateGetBufferSize = 4, - swUpdateCheckHostVersion = 5, - swUpdateValidateComponent = 6, - swUpdateFinalize = 7, - swUpdateGetCommunicationVersion = 8, - swUpdateCheckFwVersion = 9, -}; - -typedef struct -{ - uint32_t componentIdentifier; // unique id for the software component - analogous to what used to be "chip id" - uint8_t commandType; // See enum - uint8_t expansionSlot; // aka vnet slot - uint32_t offset; - uint32_t commandSizeOrProgress; // size - uint8_t commandData[0]; // max size TBD or per-device -} SoftwareUpdateCommand; - -typedef struct _SExtSubCmdHdr -{ - uint16_t command; - uint16_t length; -} SExtSubCmdHdr; -#define SExtSubCmdHdr_SIZE 4 #pragma pack(push, 1) struct _timestamp @@ -2396,20 +2153,6 @@ typedef struct SERDESGEN_SETTINGS_t } SERDESGEN_SETTINGS; #define SERDESGEN_SETTINGS_SIZE 32 -typedef struct _RadMoonDuoConverterSettings -{ - // OPETH_LINK_AUTO/MASTER/SLAVE - uint8_t linkMode0; - uint8_t linkMode1; - // USB/CM or RJ45 selection - uint8_t converter1Mode; - // IP Settings if converter is hooked up to Coremini - uint32_t ipAddress; - uint32_t ipMask; - uint32_t ipGateway; -} RadMoonDuoConverterSettings; -#define RADMOONDUO_CONVERTER_SETTINGS_SIZE (16) - // clang-format off #define RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE 0x00000001 #define RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE 0x00000002 // USB port 1 @@ -2895,81 +2638,6 @@ typedef struct _SPendantSettings } SPendantSettings; #define SPendantSettings_SIZE 470 -typedef struct _SIEVBSettings -{ - /* see SECUSettings */ - uint32_t ecu_id; - - uint16_t selected_network; /* not supported yet - default to HSCAN */ - - CAN_SETTINGS can1; - LIN_SETTINGS lin1; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint16_t iso15765_separation_time_offset; - - CAN_SETTINGS can2; - LIN_SETTINGS lin2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; - - uint32_t reserved_1; - uint32_t reserved_2; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t misc_io_analog_enable_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - -} SIEVBSettings; -#define SIEVBSettings_SIZE 434 - -typedef struct _SEEVBSettings -{ - uint32_t ecu_id; - - CAN_SETTINGS can1; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint32_t rsvd; -} SEEVBSettings; -#define SEEVBSettings_SIZE 32 - /* GPTP portEnable options */ enum eGPTPPort { @@ -3161,32 +2829,6 @@ typedef struct _SRADStar2Settings #define SRADStar2Settings_SIZE 422 -typedef struct _SRADSuperMoonSettings -{ - uint16_t perf_en; - - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - uint16_t network_enables_3; - - STextAPISettings text_api; - - uint16_t pc_com_mode; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - uint16_t hwComLatencyTestEn; - - ETHERNET_SETTINGS2 Eth2; - - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; -} SRADSuperMoonSettings; - -#define SRADSuperMoonSettings_SIZE 186 - typedef enum { tdmModeTDM2 = 0, @@ -3306,87 +2948,6 @@ typedef struct _SRADMoon3Settings #define SRADMoon3Settings_SIZE 68 -typedef struct _SRADGigalogSettings -{ - uint32_t ecu_id; - - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - CAN_SETTINGS can5; - CANFD_SETTINGS canfd5; - CAN_SETTINGS can6; - CANFD_SETTINGS canfd6; - CAN_SETTINGS can7; - CANFD_SETTINGS canfd7; - CAN_SETTINGS can8; - CANFD_SETTINGS canfd8; - - uint16_t network_enables; - uint16_t network_enables_2; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso_9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - - uint16_t iso_msg_termination_1; - - uint16_t idle_wakeup_network_enables_1; - uint16_t idle_wakeup_network_enables_2; - - uint16_t network_enables_3; - uint16_t idle_wakeup_network_enables_3; - - STextAPISettings text_api; - uint64_t termination_enables; - uint8_t rsvd1[8]; // previously ETHERNET_SETTINGS - uint8_t rsvd2[8]; // previously ETHERNET10G_SETTINGS - - DISK_SETTINGS disk; - - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; - struct - { - uint16_t hwComLatencyTestEn : 1; - uint16_t disableUsbCheckOnBoot : 1; - uint16_t reserved : 14; - } flags; - ETHERNET_SETTINGS2 ethernet; - - SERDESCAM_SETTINGS serdescam1; - ETHERNET10G_SETTINGS ethernet10g; - - LIN_SETTINGS lin1; - - SERDESPOC_SETTINGS serdespoc; - LOGGER_SETTINGS logger; - SERDESCAM_SETTINGS serdescam2; - SERDESCAM_SETTINGS serdescam3; - SERDESCAM_SETTINGS serdescam4; - - ETHERNET_SETTINGS2 ethernet2; - uint16_t network_enables_4; - RAD_REPORTING_SETTINGS reporting; - SERDESGEN_SETTINGS serdesgen; - uint64_t network_enables_5; -} SRADGigalogSettings; - -#define SRADGigalogSettings_SIZE 706 - typedef struct _SRADGigastarSettings { uint32_t ecu_id; @@ -3530,7 +3091,8 @@ typedef struct _SRADGalaxy2Settings struct { uint16_t hwComLatencyTestEn : 1; - uint16_t reserved : 15; + uint16_t hwFramePackerEn : 1; + uint16_t reserved : 14; } flags; LIN_SETTINGS lin1; @@ -3601,139 +3163,25 @@ typedef struct _SVividCANSettings } SVividCANSettings; #define SVividCANSettings_SIZE 64 -typedef struct _SOBD2SimSettings +typedef struct _VCAN412Settings { + /* Performance Test */ + uint16_t perf_en; + CAN_SETTINGS can1; - CAN_SETTINGS can2; CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; CANFD_SETTINGS canfd2; uint64_t network_enables; + uint64_t termination_enables; + + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t misc_io_analog_enable; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - struct - { - uint32_t : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; - - STextAPISettings text_api; -} SOBD2SimSettings; -#define SOBD2SimSettings_SIZE 148 - -typedef struct _CmProbeSettings -{ - // uint16_t perf_en; - - // ETHERNET_SETTINGS eth1; // 16 bytes - // OP_ETH_SETTINGS opEth1; - - uint16_t network_enables; - - // uint16_t misc_io_initial_ddr; - // uint16_t misc_io_initial_latch; - // uint16_t misc_io_report_period; - // uint16_t misc_io_on_report_events; - // uint16_t misc_io_analog_enable; - // uint16_t ain_sample_period; - // uint16_t ain_threshold; - // - // uint32_t pwr_man_timeout; - // uint16_t pwr_man_enable; - // - uint16_t network_enabled_on_boot; - // - // uint16_t idle_wakeup_network_enables_1; - -} CmProbeSettings, SCmProbeSettings; -#define CmProbeSettings_SIZE 4 - -typedef struct _OBD2ProSettings -{ - /* Performance Test */ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - CAN_SETTINGS can3; - CANFD_SETTINGS canfd3; - CAN_SETTINGS can4; - CANFD_SETTINGS canfd4; - - SWCAN_SETTINGS swcan1; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - ETHERNET_SETTINGS ethernet; - - /* ISO9141 - Keyword */ - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint64_t network_enables; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; - - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; - uint16_t can_switch_mode; - - uint16_t misc_io_analog_enable; - ETHERNET_SETTINGS2 ethernet2; -} OBD2ProSettings, SOBD2ProSettings; -#define OBD2ProSettings_SIZE 482 - -typedef struct _VCAN412Settings -{ - /* Performance Test */ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - - uint64_t network_enables; - uint64_t termination_enables; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ + /* ISO15765-2 Transport Layer */ int16_t iso15765_separation_time_offset; STextAPISettings text_api; @@ -3747,272 +3195,6 @@ typedef struct _VCAN412Settings #define VCAN412Settings_SIZE 148 #define SVCAN412Settings_SIZE VCAN412Settings_SIZE -typedef struct _neoECU_AVBSettings -{ - /* Performance Test */ - uint16_t perf_en; - - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - - uint64_t network_enables; - uint64_t termination_enables; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t network_enabled_on_boot; - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; - - STextAPISettings text_api; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; -} ECU_AVBSettings, SECU_AVBSettings; -#define ECU_AVBSettings_SIZE 148 - -#define PLUTO_NUM_PORTS 5 -#define PLUTO_NUM_PRIORITY 8 -#define PLUTO_MAX_L2_POLICING 45 -#define PLUTO_MAX_L2_ADDRESS_LOOKUP 1024 -#define PLUTO_MAX_VLAN_LOOKUP 4096 -#define PLUTO_MAX_FORWARDING_ENTRIES 13 -#define PLUTO_MAX_MAC_CONFIG_ENTRIES 5 -#define PLUTO_MAX_RETAGGING_ENTRIES 32 -#define MAX_VL_POLICING_ENTRIES 1024 -#define MAX_VL_FORWARDING_ENTRIES 1024 - -typedef struct SPluto_L2AddressLookupEntry_s -{ - uint16_t index; - uint16_t vlanID; - uint8_t macaddr[6]; - uint8_t destports; - uint8_t enfport; - uint8_t learnedEntry; - uint8_t pad1; - uint8_t pad2; - uint8_t pad3; -} SPluto_L2AddressLookupEntry; //16 - -typedef struct SPluto_L2AddressLookupParams_s -{ - uint16_t maxage; - uint8_t dyn_tbsz; - uint8_t poly; - uint8_t shared_learn; - uint8_t no_enf_hostprt; - uint8_t no_mgmt_learn; - uint8_t pad; -} SPluto_L2AddressLookupParams; //8 - -typedef struct SPluto_L2ForwardingParams_s -{ - uint16_t part_spc[PLUTO_NUM_PRIORITY]; - uint8_t max_dynp; - uint8_t pad; -} SPluto_L2ForwardingParams; //18 - -typedef struct SPluto_L2ForwardingEntry_s -{ - uint8_t vlan_pmap[PLUTO_NUM_PRIORITY]; - uint8_t bc_domain; - uint8_t reach_port; - uint8_t fl_domain; - uint8_t pad; -} SPluto_L2ForwardingEntry; //12 - -typedef struct SPluto_L2Policing_s -{ - uint16_t smax; - uint16_t rate; - uint16_t maxlen; - uint8_t sharindx; - uint8_t partition; -} SPluto_L2Policing; //8 - -typedef struct SPluto_VlanLookup_s -{ - uint16_t vlanid; - uint8_t ving_mirr; - uint8_t vegr_mirr; - uint8_t vmemb_port; - uint8_t vlan_bc; - uint8_t tag_port; - uint8_t pad; -} SPluto_VlanLookup; //8 - -typedef struct SPluto_MacConfig_s -{ - uint16_t top[PLUTO_NUM_PRIORITY]; - uint16_t base[PLUTO_NUM_PRIORITY]; - uint16_t tp_delin; - uint16_t tp_delout; - uint16_t vlanid; - uint8_t enabled[PLUTO_NUM_PRIORITY]; - uint8_t ifg; - uint8_t speed; - uint8_t maxage; - uint8_t vlanprio; - uint8_t ing_mirr; - uint8_t egr_mirr; - uint8_t drpnona664; - uint8_t drpdtag; - uint8_t drpuntag; - uint8_t retag; - uint8_t dyn_learn; - uint8_t egress; - uint8_t ingress; - uint8_t pad; -} SPluto_MacConfig; //60 - -typedef struct SPluto_RetaggingEntry_s -{ - uint16_t vlan_egr; - uint16_t vlan_ing; - uint8_t egr_port; - uint8_t ing_port; - uint8_t do_not_learn; - uint8_t use_dest_ports; - uint8_t destports; - uint8_t pad; -} SPluto_RetaggingEntry; //10 - -typedef struct SPluto_GeneralParams_s -{ - uint64_t mac_fltres1; - uint64_t mac_fltres0; - uint64_t mac_flt1; - uint64_t mac_flt0; - uint32_t vlmarker; - uint32_t vlmask; - uint16_t tpid; - uint16_t tpid2; - uint8_t vllupformat; - uint8_t mirr_ptacu; - uint8_t switchid; - uint8_t hostprio; - uint8_t incl_srcpt1; - uint8_t incl_srcpt0; - uint8_t send_meta1; - uint8_t send_meta0; - uint8_t casc_port; - uint8_t host_port; - uint8_t mirr_port; - uint8_t ignore2stf; -} SPluto_GeneralParams; //60 - -typedef struct SPluto_VlLookupEntry_s -{ - union - { - /* format == 0 */ - struct - { - uint64_t macaddr; - uint16_t vlanid; - uint8_t destports; - uint8_t iscritical; - uint8_t port; - uint8_t vlanprior; - } vllupformat0; //14 - /* format == 1 */ - struct - { - uint16_t vlid; - uint8_t egrmirr; - uint8_t ingrmirr; - uint8_t port; - } vllupformat1; //5 - }; -} SPluto_VlLookupEntry; //14 - -typedef struct SPluto_VlPolicingEntry_s -{ - uint64_t type; - uint64_t maxlen; - uint64_t sharindx; - uint64_t bag; - uint64_t jitter; -} SPluto_VlPolicingEntry; //40 - -typedef struct SPluto_VlForwardingParams_s -{ - uint16_t partspc[PLUTO_NUM_PRIORITY]; - uint8_t debugen; - uint8_t pad; -} SPluto_VlForwardingParams; //18 - -typedef struct SPluto_VlForwardingEntry_s -{ - uint8_t type; - uint8_t priority; - uint8_t partition; - uint8_t destports; -} SPluto_VlForwardingEntry; //4 - -typedef struct SPluto_AVBParams_s -{ - uint64_t destmeta; - uint64_t srcmeta; -} SPluto_AVBParams; //16 - -typedef struct SPluto_ClockSyncParams_s -{ - uint64_t etssrcpcf; - uint32_t wfintmout; - uint32_t maxtranspclk; - uint32_t listentmout; - uint32_t intcydur; - uint32_t caentmout; - uint16_t pcfsze; - uint16_t obvwinsz; - uint16_t vlidout; - uint16_t vlidimnmin; - uint16_t vlidinmax; - uint16_t accdevwin; - uint8_t srcport[8]; - uint8_t waitthsync; - uint8_t unsytotsyth; - uint8_t unsytosyth; - uint8_t tsytosyth; - uint8_t tsyth; - uint8_t tsytousyth; - uint8_t syth; - uint8_t sytousyth; - uint8_t sypriority; - uint8_t sydomain; - uint8_t stth; - uint8_t sttointth; - uint8_t pcfpriority; - uint8_t numunstbcy; - uint8_t numstbcy; - uint8_t maxintegcy; - uint8_t inttotentth; - uint8_t inttosyncth; - uint8_t vlidselect; - uint8_t tentsyrelen; - uint8_t asytensyen; - uint8_t sytostben; - uint8_t syrelen; - uint8_t sysyen; - uint8_t syasyen; - uint8_t ipcframesy; - uint8_t stabasyen; - uint8_t swmaster; - uint8_t fullcbg; - uint8_t pad1; - uint8_t pad2; - uint8_t pad3; -} SPluto_ClockSyncParams; //80 - #define gPTP_ROLE_DISABLED 0 #define gPTP_ROLE_PASSIVE 1 #define gPTP_ROLE_MASTER 2 @@ -4024,101 +3206,6 @@ typedef struct SPluto_ClockSyncParams_s #define gPTP_PORT_DISABLED 0 #define gPTP_PORT_ENABLED 1 -typedef struct SPlutoPtpParams_s -{ - uint32_t neighborPropDelayThresh; //ns - uint32_t sys_phc_sync_interval; //ns - int8_t logPDelayReqInterval; // log2ms - int8_t logSyncInterval; // log2ms - int8_t logAnnounceInterval; // log2ms - uint8_t profile; - uint8_t priority1; - uint8_t clockclass; - uint8_t clockaccuracy; - uint8_t priority2; - uint16_t offset_scaled_log_variance; - uint8_t gPTPportRole[PLUTO_NUM_PORTS - 1]; // the 5th port is used for SAM - uint8_t portEnable[PLUTO_NUM_PORTS - 1]; // the 5th port is used for SAM -} PlutoPtpParams_t; //26 - -typedef struct SPluto_CustomParams_s -{ - uint8_t mode[PLUTO_MAX_MAC_CONFIG_ENTRIES]; - uint8_t speed[PLUTO_MAX_MAC_CONFIG_ENTRIES]; - uint8_t enablePhy[PLUTO_MAX_MAC_CONFIG_ENTRIES]; - uint8_t ae1Select; - uint8_t usbSelect; - uint8_t pad; - PlutoPtpParams_t ptpParams; -} SPluto_CustomParams; //44 - -typedef struct SPlutoSwitchSettings_s -{ - ExtendedDataFlashHeader_t flashHeader; //all extended data must start with this header //8 - SPluto_L2AddressLookupParams l2_addressLookupParams; // 8 - SPluto_L2AddressLookupEntry l2_addressLookupEntries[PLUTO_MAX_L2_ADDRESS_LOOKUP]; // 16 * 1024 - SPluto_L2Policing l2_policing[PLUTO_MAX_L2_POLICING]; // 8 * 45 - SPluto_L2ForwardingParams l2_forwardingParams; // 18 - SPluto_L2ForwardingEntry l2_ForwardingEntries[PLUTO_MAX_FORWARDING_ENTRIES]; // 12 * 13 - SPluto_VlanLookup vlan_LookupEntries[PLUTO_MAX_VLAN_LOOKUP]; // 8 * 4096 - SPluto_MacConfig macConfig[PLUTO_MAX_MAC_CONFIG_ENTRIES]; // 60 * 5 - SPluto_GeneralParams generalParams; // 60 - SPluto_RetaggingEntry retagging[PLUTO_MAX_RETAGGING_ENTRIES]; // 10 * 32 -#if 0 - SPluto_VlPolicingEntry vl_policing[MAX_VL_POLICING_ENTRIES]; - SPluto_VlForwardingParams vl_forwardingParams; - SPluto_VlForwardingEntry vl_forwardingEntries[MAX_VL_FORWARDING_ENTRIES]; - SPluto_AVBParams avbParams; - SPluto_ClockSyncParams clkSyncParams; -#endif -} SPlutoSwitchSettings; -#define SPlutoSwitchSettings_SIZE 50378 - -typedef struct _RADPlutoSettings -{ - /* Performance Test */ - uint16_t perf_en; //2 - - CAN_SETTINGS can1; //12 - CANFD_SETTINGS canfd1; //10 - CAN_SETTINGS can2; //12 - CANFD_SETTINGS canfd2; //10 - LIN_SETTINGS lin1; //10 - - uint16_t network_enables; //2 - uint16_t network_enables_2; //2 - uint16_t network_enables_3; //2 - uint64_t termination_enables; //8 - uint16_t misc_io_analog_enable; //2 - - uint32_t pwr_man_timeout; //4 - uint16_t pwr_man_enable; //2 - - uint16_t network_enabled_on_boot; //2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; //2 - uint16_t iso9141_kwp_enable_reserved; //2 - uint16_t iso_tester_pullup_enable; //2 - uint16_t iso_parity; //2 - uint16_t iso_msg_termination; //2 - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; //114 - ETHERNET_SETTINGS ethernet; //8 - - STextAPISettings text_api; //72 - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; //4 - - SPluto_CustomParams custom; //44 - ETHERNET_SETTINGS2 ethernet2; //16 -} SRADPlutoSettings; -#define SRADPlutoSettings_SIZE 348 - typedef union { uint32_t word; @@ -4737,76 +3824,6 @@ typedef struct _SFire3FlexraySettings } SFire3FlexraySettings; #define SFire3FlexraySettings_SIZE (1372) -typedef struct -{ - uint16_t perf_en; - uint16_t network_enabled_on_boot; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - RadMoonDuoConverterSettings converter; - uint64_t network_enables; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t reserved : 30; - } flags; -} RadMoonDuoSettings, SRadMoonDuoSettings; -#define RadMoonDuoSettings_SIZE 38 - -typedef struct _SEtherBadgeSettings -{ - /* Performance Test */ - uint16_t perf_en; //2 - - CAN_SETTINGS can1; //12 - CANFD_SETTINGS canfd1; //10 - CAN_SETTINGS can2; //12 - CANFD_SETTINGS canfd2; //10 - LIN_SETTINGS lin1; //10 - - uint16_t network_enables; //2 - uint16_t network_enables_2; //2 - uint16_t network_enables_3; //2 - uint64_t termination_enables; //8 - - uint32_t pwr_man_timeout; //4 - uint16_t pwr_man_enable; //2 - - uint16_t network_enabled_on_boot; //2 - - /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset; //2 - uint16_t iso9141_kwp_enable_reserved; //2 - uint16_t iso_tester_pullup_enable; //2 - uint16_t iso_parity; //2 - uint16_t iso_msg_termination; //2 - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; //114 - ETHERNET_SETTINGS ethernet; //8 - - uint16_t misc_io_initial_ddr; //2 - uint16_t misc_io_initial_latch; //2 - uint16_t misc_io_report_period; //2 - uint16_t misc_io_on_report_events; //2 - uint16_t misc_io_analog_enable; //2 - uint16_t ain_sample_period; //2 - uint16_t ain_threshold; //2 - - STextAPISettings text_api; //72 - - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; //4 - - ETHERNET_SETTINGS2 ethernet2; //16 -} SEtherBadgeSettings; //316 - -#define SEtherBadgeSettings_SIZE 316 - #define RADEPSILON_NUM_PORTS 18 // ATSAM + PHYs #define RADEPSILON_MAX_PHY 18 #define EPSILON_88Q6113_SWITCH_A 1 @@ -5280,8 +4297,22 @@ typedef struct _SRADGigaStar2Settings 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; } SRADGigastar2Settings; -#define SRADGigastar2Settings_SIZE 2080 +#define SRADGigastar2Settings_SIZE 2140 + +// variants to be used with icsneoSetFirmwareVariant +enum Gigastar2FwVariants +{ + GIGASTAR2_FW_VARIANT_6T1S_1CAN_16LIN = 0, + GIGASTAR2_FW_VARIANT_8T1S_4CAN_6LIN = 1, + GIGASTAR2_FW_VARIANT_COUNT, +}; typedef struct _SRADMoonT1SSettings { @@ -5394,23 +4425,14 @@ typedef struct _GLOBAL_SETTINGS SVCAN3Settings vcan3; SVCAN4Settings vcan4; SECUSettings ecu; - SIEVBSettings ievb; SPendantSettings pendant; SRADGalaxySettings radgalaxy; SRADStar2Settings radstar2; - SOBD2SimSettings neoobd2_sim; - SCmProbeSettings cmprobe; - SOBD2ProSettings obd2pro; SVCAN412Settings vcan412; SVCAN412Settings vcan4_12; // backwards compatibility with older code - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SRADGigalogSettings radgigalog; SCANHubSettings canhub; SNeoECU12Settings neoecu12; - SEEVBSettings eevb; SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; SVCAN4IndSettings vcan4_ind; @@ -5421,8 +4443,6 @@ typedef struct _GLOBAL_SETTINGS SRed2Settings red2; SFire3Settings fire3; SFire3FlexraySettings fire3fr; - SRadMoonDuoSettings radmoonduo; - SEtherBadgeSettings etherBadge; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; @@ -5450,28 +4470,28 @@ typedef enum _EDeviceSettingsType DeviceVCAN4SettingsType, DeviceVCAN412SettingsType, DeviceVividCANSettingsType, - DeviceECU_AVBSettingsType, - DeviceRADSuperMoonSettingsType, + DeviceECU_AVBSettingsTypeDeprecated, + DeviceRADSuperMoonSettingsTypeDeprecated, DeviceRADMoon2SettingsType, - DeviceRADPlutoSettingsType, - DeviceRADGigalogSettingsType, + DeviceRADPlutoSettingsTypeDeprecated, + DeviceRADGigalogSettingsTypeDeprecated, DeviceDeprecatedType, - DeviceEEVBSettingsType, + DeviceEEVBSettingsTypeDeprecated, DeviceVCAN4IndSettingsType, DeviceNeoECU12SettingsType, DeviceFlexVnetzSettingsType, DeviceCANHUBSettingsType, - DeviceIEVBSettingsType, - DeviceOBD2SimSettingsType, - DeviceCMProbeSettingsType, - DeviceOBD2ProSettingsType, + DeviceIEVBSettingsTypeDeprecated, + DeviceOBD2SimSettingsTypeDeprecated, + DeviceCMProbeSettingsTypeDeprecated, + DeviceOBD2ProSettingsTypeDeprecated, DeviceRedSettingsType, - DeviceRADPlutoSwitchSettingsType, + DeviceRADPlutoSwitchSettingsTypeDeprecated, DeviceRADGigastarSettingsType, DeviceRADJupiterSettingsType, DeviceRed2SettingsType, - DeviceRadMoonDuoSettingsType, - DeviceEtherBadgeSettingsType, + DeviceRadMoonDuoSettingsTypeDeprecated, + DeviceEtherBadgeSettingsTypeDeprecated, DeviceRADA2BSettingsType, DeviceRADEpsilonSettingsType, DeviceOBD2LCSettingsType, @@ -5503,24 +4523,14 @@ typedef struct _SDeviceSettings SVCAN3Settings vcan3; SVCAN4Settings vcan4; SECUSettings ecu; - SIEVBSettings ievb; SPendantSettings pendant; SRADGalaxySettings radgalaxy; SRADStar2Settings radstar2; - SOBD2SimSettings neoobd2_sim; - SCmProbeSettings cmprobe; - SOBD2ProSettings obd2pro; SVCAN412Settings vcan412; SVCAN412Settings vcan4_12; // backwards compatibility with older code - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SPlutoSwitchSettings plutoswitch; - SRADGigalogSettings radgigalog; SCANHubSettings canhub; SNeoECU12Settings neoecu12; - SEEVBSettings eevb; SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; SVCAN4IndSettings vcan4_ind; @@ -5530,8 +4540,6 @@ typedef struct _SDeviceSettings SRADJupiterSettings jupiter; SFire3Settings fire3; SRed2Settings red2; - SRadMoonDuoSettings radmoon_duo; - SEtherBadgeSettings etherBadge; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; @@ -6140,26 +5148,11 @@ typedef struct uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus[4]; -} icsRadMoonDuoDeviceStatus; - typedef struct { ethernetNetworkStatus_t ethernetStatus[RADJUPITER_NUM_PORTS - 1]; } icsRadJupiterDeviceStatus; -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus; -} icsOBD2ProDeviceStatus; - -typedef struct -{ - ethernetNetworkStatus_t ethernetStatus[4]; -} icsRadPlutoDeviceStatus; - typedef struct { ethernetNetworkStatus_t ethernetStatus; @@ -6184,10 +5177,7 @@ typedef union icsVcan4DeviceStatus vcan4Status; icsFlexVnetzDeviceStatus flexVnetzStatus; icsFire3DeviceStatus fire3Status; - icsRadMoonDuoDeviceStatus radMoonDuoStatus; icsRadJupiterDeviceStatus jupiterStatus; - icsOBD2ProDeviceStatus obd2proStatus; - icsRadPlutoDeviceStatus plutoStatus; icsRadEpsilonDeviceStatus epsilonStatus; icsVcan4IndustrialDeviceStatus vcan4indStatus; icsRadBMSDeviceStatus radBMSStatus; @@ -6424,12 +5414,8 @@ CHECK_STRUCT_SIZE(SVCAN3Settings); CHECK_STRUCT_SIZE(SVCAN4Settings); CHECK_STRUCT_SIZE(SECUSettings); CHECK_STRUCT_SIZE(SPendantSettings); -CHECK_STRUCT_SIZE(SIEVBSettings); -CHECK_STRUCT_SIZE(SEEVBSettings); CHECK_STRUCT_SIZE(SRADGalaxySettings); CHECK_STRUCT_SIZE(SRADStar2Settings); -CHECK_STRUCT_SIZE(SOBD2SimSettings) -CHECK_STRUCT_SIZE(CmProbeSettings); CHECK_STRUCT_SIZE(GLOBAL_SETTINGS); CHECK_STRUCT_SIZE(stCM_ISO157652_TxMessage); CHECK_STRUCT_SIZE(stCM_ISO157652_RxMessage); @@ -6438,28 +5424,20 @@ CHECK_STRUCT_SIZE(icsSpyMessage); CHECK_STRUCT_SIZE(icsSpyMessageLong); CHECK_STRUCT_SIZE(icsSpyMessageJ1850); CHECK_STRUCT_SIZE(icsSpyMessageVSB); -CHECK_STRUCT_SIZE(OBD2ProSettings); CHECK_STRUCT_SIZE(ISO15765_2015_TxMessage); CHECK_STRUCT_SIZE(TIMESYNC_ICSHARDWARE_SETTINGS); -CHECK_STRUCT_SIZE(SRADSuperMoonSettings); CHECK_STRUCT_SIZE(SRADMoon2Settings); -CHECK_STRUCT_SIZE(SRADGigalogSettings); CHECK_STRUCT_SIZE(SRADGigastarSettings); CHECK_STRUCT_SIZE(SRADGalaxy2Settings); -CHECK_STRUCT_SIZE(SExtSubCmdHdr); CHECK_STRUCT_SIZE(SDiskStructure); CHECK_STRUCT_SIZE(SDiskFormatProgress); CHECK_STRUCT_SIZE(SDiskStatus); -CHECK_STRUCT_SIZE(SRADPlutoSettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SNeoECU12Settings); -CHECK_STRUCT_SIZE(SPlutoSwitchSettings); CHECK_STRUCT_SIZE(VCAN4IndSettings); CHECK_STRUCT_SIZE(SRADJupiterSettings); -CHECK_STRUCT_SIZE(RadMoonDuoSettings); CHECK_STRUCT_SIZE(SFire3Settings); CHECK_STRUCT_SIZE(SRed2Settings); -CHECK_STRUCT_SIZE(SEtherBadgeSettings); CHECK_STRUCT_SIZE(SRADA2BSettings); CHECK_STRUCT_SIZE(A2BMonitorSettings); CHECK_STRUCT_SIZE(SRADEpsilonSettings); diff --git a/src/methods.cpp b/src/methods.cpp index b71e29465..940558ad1 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -5500,6 +5500,12 @@ PyObject* meth_get_imei(PyObject* self, PyObject* args) { // icsneoGetIMEI PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoGetComponentVersions { +#ifndef _USE_INTERNAL_HEADER_ + (void)self; + (void)args; + return set_ics_exception(exception_runtime_error(), + "icsneoGetComponentVersions is not available"); +#else (void)self; PyObject* obj = NULL; bool force_update = true; @@ -5557,4 +5563,5 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } +#endif } \ No newline at end of file From 2182de14105249d43768c5815de43c5d72acd07a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 26 Sep 2025 14:12:16 -0400 Subject: [PATCH 27/38] update to v921 header (#220) * update documentation versioning * Fix Wrong constant values #219 * added tests CI fixes remove python 3.9 fixed ARCHFLAGS removed free-threaded-support CI fixes --- .github/workflows/tests.yml | 74 +- .github/workflows/wheels.yml | 2 +- .vscode/settings.json | 14 + cicsSpyStatusBits_processed.h | 243 +++ doc/requirements.txt | 3 +- doc/source/conf.py | 25 +- extract_icsneo40_defines.py | 28 +- pyproject.toml | 15 +- setup.py | 3 +- src/setup_module_auto_defines.cpp | 2215 +++++++++++----------- tests/obsolete/cmvspy.h | 517 ----- tests/obsolete/cmvspy.py | 519 ----- tests/obsolete/cmvspyconvert.py | 43 - tests/obsolete/test_coremini.py | 75 - tests/obsolete/test_find_devices.py | 120 -- tests/obsolete/test_get_device_status.py | 19 - tests/obsolete/test_network_fire.py | 129 -- tests/obsolete/test_open_close.py | 59 - tests/obsolete/test_structs.py | 249 --- tests/runner/Readme.md | 14 - tests/runner/__init__.py | 0 tests/runner/test_network.py | 118 -- tests/runner/test_open_close.py | 114 -- tests/runner/test_settings.py | 71 - tests/test_defines.py | 26 + uv.lock | 2 +- 26 files changed, 1502 insertions(+), 3195 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 cicsSpyStatusBits_processed.h delete mode 100644 tests/obsolete/cmvspy.h delete mode 100644 tests/obsolete/cmvspy.py delete mode 100644 tests/obsolete/cmvspyconvert.py delete mode 100644 tests/obsolete/test_coremini.py delete mode 100644 tests/obsolete/test_find_devices.py delete mode 100644 tests/obsolete/test_get_device_status.py delete mode 100644 tests/obsolete/test_network_fire.py delete mode 100644 tests/obsolete/test_open_close.py delete mode 100644 tests/obsolete/test_structs.py delete mode 100644 tests/runner/Readme.md delete mode 100644 tests/runner/__init__.py delete mode 100644 tests/runner/test_network.py delete mode 100644 tests/runner/test_open_close.py delete mode 100644 tests/runner/test_settings.py create mode 100644 tests/test_defines.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9437fb748..4a585c0f4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,32 +1,54 @@ -name: Run Unit Tests +name: Test + on: push: - branches: - -'arm/**' + branches: [ master ] pull_request: - branches: - -'arm/**' jobs: - test_arm64: - if: github.repository == 'intrepidcs/python_ics' - name: Linux ARM64 unit tests - runs-on: [ self-hosted, Linux, ARM64, Hardware ] - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 0 # needed for history/tags + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: ["3.10", "3.11", "3.12", "3.13"] - - name: Setup Python - run: | - python -m venv .venv - source .venv/bin/activate - python -m pip install --upgrade pip - pip install . - - - name: Run unit tests - run: | - source .venv/bin/activate - sudo setcap cap_net_admin,cap_net_raw+ep $(realpath $(which python)) - python -m unittest discover -s tests.runner --verbose \ No newline at end of file + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + submodules: recursive + + # Install system dependencies + - name: Install system dependencies (Ubuntu) + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y cmake clang clang-format clang-tools flex bison build-essential + + - name: Install system dependencies (macOS) + if: runner.os == 'macOS' + run: | + brew install cmake clang-format + + - name: Install system dependencies (Windows) + if: runner.os == 'Windows' + run: | + choco install llvm cmake + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Install uv + uses: astral-sh/setup-uv@v3 + + - name: Install dependencies + run: | + uv sync --group test + + - name: Run tests + run: | + uv run pytest tests/ --verbose \ No newline at end of file diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 848562c0d..a8c5cea26 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -38,7 +38,7 @@ jobs: run: echo $PYTHON_ICS_VERSION - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.22.0 + run: python -m pip install cibuildwheel - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..94d4d895e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "python.analysis.autoImportCompletions": false, + "python.analysis.indexing": false, + "python.analysis.packageIndexDepths": [ + { + "name": "ics", + "depth": 0 + } + ], + "python.analysis.exclude": [ + "**/gen/**", + "**/.venv/**" + ] +} \ No newline at end of file diff --git a/cicsSpyStatusBits_processed.h b/cicsSpyStatusBits_processed.h new file mode 100644 index 000000000..b2f3b37c9 --- /dev/null +++ b/cicsSpyStatusBits_processed.h @@ -0,0 +1,243 @@ +// -------------------------------------------------------------------------- +// COPYRIGHT INTREPID CONTROL SYSTEMS, INC. (c) 1994-20xx +// Confidential and proprietary. This document and its contents are the +// property of Intrepid Control Systems, Inc. It is not to be copied, +// distributed, or otherwise disclosed or used without the prior written +// consent of Intrepid Control Systems Inc. +// All rights reserved. +// -------------------------------------------------------------------------- + +// SPY Status Bit Definitions +// Generated automatically - DO NOT MODIFY +// Modify cicsSpyStatusBits_config.yml and run cicsSpyStatusBits_gen.py +// Generated on: 2025-07-14 14:31:40 + +#ifndef CICSSPYSTATUSBITS_H_ +#define CICSSPYSTATUSBITS_H_ 1 + +// WARNING: The following bit conflicts were detected: +// spystatus value 0x10000000: // VSI value 'SPY_STATUS_VSI_IFR_CRC_BIT' conflicts with common value 'SPY_STATUS_PDU' +// spystatus value 0x10000000: // A2B value 'SPY_STATUS_A2B_CONTROL' conflicts with common value 'SPY_STATUS_PDU' +// spystatus value 0x08: // A2B value 'SPY_STATUS_A2B_SCF_VALID_WAITING' conflicts with common value 'SPY_STATUS_REMOTE_FRAME' +// spystatus value 0x40000000: // A2B value 'SPY_STATUS_A2B_UPSTREAM' conflicts with common value 'SPY_STATUS_HIGH_SPEED' +// spystatus value 0x10000000: // FLEXRAY value 'SPY_STATUS_FLEXRAY_PDU' conflicts with common value 'SPY_STATUS_PDU' +// spystatus value 0x40000000: // FLEXRAY value 'SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET' conflicts with common value 'SPY_STATUS_HIGH_SPEED' +// spystatus value 0x08: // FLEXRAY value 'SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT' conflicts with common value 'SPY_STATUS_REMOTE_FRAME' + +// Glyph definitions +// '|' - byte divider +// '.' - nibble divider +// '-' - unused bit +// 'o' - common bit +// 'x' - protocol specific bit +// '!' - conflict bit + +// SPYSTATUS bit definitions +// SPYSTATUS - Common bits +// |oo-o.oooo|oooo.oooo|oooo.oo-o|oo-o.oooo| +#define SPY_STATUS_GLOBAL_ERR 0x01 // Global error flag +#define SPY_STATUS_TX_MSG 0x02 // Transmitted message +#define SPY_STATUS_XTD_FRAME 0x04 // Extended frame +#define SPY_STATUS_REMOTE_FRAME 0x08 // Remote frame +#define SPY_STATUS_CRC_ERROR 0x10 // CRC error +#define SPY_STATUS_INCOMPLETE_FRAME 0x40 // Incomplete frame +#define SPY_STATUS_LOST_ARBITRATION 0x80 // Lost arbitration +#define SPY_STATUS_UNDEFINED_ERROR 0x0100 // Undefined error +#define SPY_STATUS_BUS_RECOVERED 0x0400 // Bus recovered +#define SPY_STATUS_BUS_SHORTED_PLUS 0x0800 // Bus shorted to plus +#define SPY_STATUS_BUS_SHORTED_GND 0x1000 // Bus shorted to ground +#define SPY_STATUS_CHECKSUM_ERROR 0x2000 // Checksum error +#define SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR 0x4000 // Bad message bit time error +#define SPY_STATUS_TX_NOMATCH 0x8000 // TX no match +#define SPY_STATUS_COMM_IN_OVERFLOW 0x010000 // Communication input overflow +#define SPY_STATUS_EXPECTED_LEN_MISMATCH 0x020000 // Expected length mismatch +#define SPY_STATUS_MSG_NO_MATCH 0x040000 // Message no match +#define SPY_STATUS_BREAK 0x080000 // Break detected +#define SPY_STATUS_AVSI_REC_OVERFLOW 0x100000 // AVSI record overflow +#define SPY_STATUS_TEST_TRIGGER 0x200000 // Test trigger +#define SPY_STATUS_AUDIO_COMMENT 0x400000 // Audio comment +#define SPY_STATUS_GPS_DATA 0x800000 // GPS data +#define SPY_STATUS_ANALOG_DIGITAL_INPUT 0x01000000 // Analog digital input +#define SPY_STATUS_TEXT_COMMENT 0x02000000 // Text comment +#define SPY_STATUS_NETWORK_MESSAGE_TYPE 0x04000000 // Network message type +#define SPY_STATUS_VSI_TX_UNDERRUN 0x08000000 // VSI TX underrun +#define SPY_STATUS_PDU 0x10000000 // PDU message +#define SPY_STATUS_HIGH_SPEED 0x40000000 // High speed +#define SPY_STATUS_EXTENDED 0x80000000 // Extended - if this bit is set than decode StatusBitField3 in AckBytes + +// SPYSTATUS - A2B protocol bits +// |o!x!.oooo|oooo.oooo|oooo.oo-o|oo-o.!ooo| +#define SPY_STATUS_A2B_SCF_VALID_WAITING 0x08 // A2B SCF valid waiting +#define SPY_STATUS_A2B_CONTROL 0x10000000 // A2B control message +#define SPY_STATUS_A2B_MONITOR 0x20000000 // A2B monitor message +#define SPY_STATUS_A2B_UPSTREAM 0x40000000 // A2B upstream message + +// SPYSTATUS - CAN protocol bits +// |ooxo.oooo|oooo.oooo|oooo.ooxo|ooxo.oooo| +#define SPY_STATUS_CAN_ERROR_PASSIVE 0x20 // CAN error passive state +#define SPY_STATUS_CAN_BUS_OFF 0x0200 // CAN bus off state +#define SPY_STATUS_CANFD 0x20000000 // CAN FD frame + +// SPYSTATUS - ETHERNET protocol bits +// |oo-o.oooo|oooo.oooo|oooo.oo-o|ooxo.oooo| +#define SPY_STATUS_HEADERCRC_ERROR 0x20 // Header CRC error + +// SPYSTATUS - FLEXRAY protocol bits +// |o!-!.oooo|oooo.oooo|oooo.oo-o|oo-o.!ooo| +#define SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT 0x08 // FlexRay PDU no update bit +#define SPY_STATUS_FLEXRAY_PDU 0x10000000 // FlexRay PDU (alias for SPY_STATUS_PDU) +#define SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET 0x40000000 // FlexRay PDU update bit set + +// SPYSTATUS - LIN protocol bits +// |ooxo.oooo|oooo.oooo|oooo.oo-o|oo-o.oooo| +#define SPY_STATUS_LIN_MASTER 0x20000000 // LIN master message + +// SPYSTATUS - VSI protocol bits +// |oox!.oooo|oooo.oooo|oooo.oo-o|oo-o.oooo| +#define SPY_STATUS_VSI_IFR_CRC_BIT 0x10000000 // VSI IFR CRC bit +#define SPY_STATUS_INIT_MESSAGE 0x20000000 // Initialization message + +// SPYSTATUS2 bit definitions +// SPYSTATUS2 - Common bits +// |----.----|---o.--oo|----.----|----.oooo| +#define SPY_STATUS2_HAS_VALUE 0x01 +#define SPY_STATUS2_VALUE_IS_BOOLEAN 0x02 +#define SPY_STATUS2_HIGH_VOLTAGE 0x04 +#define SPY_STATUS2_LONG_MESSAGE 0x08 +#define SPY_STATUS2_GLOBAL_CHANGE 0x010000 +#define SPY_STATUS2_ERROR_FRAME 0x020000 +#define SPY_STATUS2_END_OF_LONG_MESSAGE 0x100000 + +// SPYSTATUS2 - CAN protocol bits +// |----.----|-xxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME 0x200000 +#define SPY_STATUS2_CAN_HAVE_LINK_DATA 0x400000 + +// SPYSTATUS2 - ETHERNET protocol bits +// |xxxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_ETHERNET_CRC_ERROR 0x200000 +#define SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT 0x400000 +#define SPY_STATUS2_ETHERNET_FCS_AVAILABLE 0x800000 // This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR) +#define SPY_STATUS2_ETHERNET_NO_PADDING 0x01000000 +#define SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED 0x02000000 +#define SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS 0x04000000 +#define SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED 0x08000000 +#define SPY_STATUS2_ETHERNET_FCS_VERIFIED 0x10000000 +#define SPY_STATUS2_ETHERNET_T1S_SYMBOL 0x20000000 +#define SPY_STATUS2_ETHERNET_T1S_BURST 0x40000000 +#define SPY_STATUS2_ETHERNET_T1S_ETHERNET 0x80000000 + +// SPYSTATUS2 - FLEXRAY protocol bits +// |----.-xxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_A 0x400000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_B 0x800000 +#define SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH 0x01000000 +#define SPY_STATUS2_FLEXRAY_NO_CRC 0x02000000 +#define SPY_STATUS2_FLEXRAY_NO_HEADERCRC 0x04000000 // + +// SPYSTATUS2 - I2C protocol bits +// |----.----|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_I2C_ERR_TIMEOUT 0x200000 +#define SPY_STATUS2_I2C_ERR_NACK 0x400000 +#define SPY_STATUS2_I2C_DIR_READ 0x800000 + +// SPYSTATUS2 - ISO protocol bits +// |-xxx.x---|---o.--oo|----.----|----.oooo| +#define SPY_STATUS2_ISO_FRAME_ERROR 0x08000000 // ISO frame error +#define SPY_STATUS2_ISO_OVERFLOW_ERROR 0x10000000 // ISO overflow error +#define SPY_STATUS2_ISO_PARITY_ERROR 0x20000000 // ISO parity error +#define SPY_STATUS2_ISO_RX_TIMEOUT_ERROR 0x40000000 // ISO specific timeout error + +// SPYSTATUS2 - LIN protocol bits +// |xxxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 0x200000 // LIN RX break not 0 error +#define SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT 0x400000 // LIN RX break too short error +#define SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 0x800000 // LIN RX sync not 0x55 error +#define SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 0x01000000 // LIN RX data greater than 8 bytes error +#define SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH 0x02000000 // LIN TX/RX mismatch error +#define SPY_STATUS2_LIN_ERR_MSG_ID_PARITY 0x04000000 // LIN message ID parity error +#define SPY_STATUS2_LIN_SYNC_FRAME_ERROR 0x08000000 // LIN sync frame error +#define SPY_STATUS2_LIN_ID_FRAME_ERROR 0x10000000 // LIN ID frame error +#define SPY_STATUS2_LIN_SLAVE_BYTE_ERROR 0x20000000 // LIN slave byte error +#define SPY_STATUS2_LIN_RX_TIMEOUT_ERROR 0x40000000 // RX timeout error +#define SPY_STATUS2_LIN_NO_SLAVE_DATA 0x80000000 // LIN no slave data + +// SPYSTATUS2 - MDIO protocol bits +// |-xxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_MDIO_ERR_TIMEOUT 0x200000 +#define SPY_STATUS2_MDIO_JOB_CANCELLED 0x400000 +#define SPY_STATUS2_MDIO_INVALID_BUS 0x800000 +#define SPY_STATUS2_MDIO_INVALID_PHYADDR 0x01000000 +#define SPY_STATUS2_MDIO_INVALID_REGADDR 0x02000000 +#define SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE 0x04000000 +#define SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE 0x08000000 +#define SPY_STATUS2_MDIO_OVERFLOW 0x10000000 +#define SPY_STATUS2_MDIO_CLAUSE45 0x20000000 +#define SPY_STATUS2_MDIO_READ 0x40000000 + +// SPYSTATUS2 - MOST protocol bits +// |xxxx.xxxx|xxxo.--oo|----.----|----.oooo| +#define SPY_STATUS2_MOST_PACKET_DATA 0x200000 +#define SPY_STATUS2_MOST_STATUS 0x400000 // reflects changes in light/lock/MPR/SBC/etc... +#define SPY_STATUS2_MOST_LOW_LEVEL 0x800000 // MOST low level message, allocs, deallocs, remote requests...*/ +#define SPY_STATUS2_MOST_CONTROL_DATA 0x01000000 +#define SPY_STATUS2_MOST_MHP_USER_DATA 0x02000000 // MOST HIGH User Data Frame +#define SPY_STATUS2_MOST_MHP_CONTROL_DATA 0x04000000 // MOST HIGH Control Data +#define SPY_STATUS2_MOST_I2S_DUMP 0x08000000 +#define SPY_STATUS2_MOST_TOO_SHORT 0x10000000 +#define SPY_STATUS2_MOST_MOST50 0x20000000 // absence of MOST50 and MOST150 implies it's MOST25 +#define SPY_STATUS2_MOST_MOST150 0x40000000 +#define SPY_STATUS2_MOST_CHANGED_PAR 0x80000000 // first byte in ack reflects what changed. + +// SPYSTATUS2 - WBMS protocol bits +// |----.----|--xo.--oo|----.----|----.oooo| +#define SPY_STATUS2_WBMS_API_IS_CALLBACK 0x200000 + +// SPYSTATUS3 bit definitions +// SPYSTATUS3 - CAN protocol bits +// |----.----|-xxx.xxxx|-xxx.xxxx|----.-xxx| +#define SPY_STATUS3_CAN_ERR_PASSIVE 0x01 // CAN error passive state: typically when error counter is > 127 +#define SPY_STATUS3_CAN_BUS_OFF 0x02 // CAN bus off state +#define SPY_STATUS3_CAN_ERR_WARNING 0x04 // CAN error warning: typically when error counter is > 96 +#define SPY_STATUS3_CAN_DATAERR_STUFF_ERROR 0x0100 // CAN stuff error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_FORM_ERROR 0x0200 // CAN form error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_ACK_ERROR 0x0400 // CAN ack error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_BIT1_ERROR 0x0800 // CAN bit1 error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_BIT0_ERROR 0x1000 // CAN bit0 error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_CRC_ERROR 0x2000 // CAN CRC error during the data payload phase +#define SPY_STATUS3_CAN_DATAERR_NOCHANGE 0x4000 // CAN data error occurred before and no change yet +#define SPY_STATUS3_CAN_GENERR_STUFF_ERROR 0x010000 // CAN stuff error at the general frame level +#define SPY_STATUS3_CAN_GENERR_FORM_ERROR 0x020000 // CAN form error at the general frame level +#define SPY_STATUS3_CAN_GENERR_ACK_ERROR 0x040000 // CAN ack error at the general frame level +#define SPY_STATUS3_CAN_GENERR_BIT1_ERROR 0x080000 // CAN bit1 error at the general frame level +#define SPY_STATUS3_CAN_GENERR_BIT0_ERROR 0x100000 // CAN bit0 error at the general frame level +#define SPY_STATUS3_CAN_GENERR_CRC_ERROR 0x200000 // CAN CRC error at the general frame level +#define SPY_STATUS3_CAN_GENERR_NOCHANGE 0x400000 // CAN frame Error occurred before and no change yet + +// SPYSTATUS3 - CANFD protocol bits +// |----.----|----.----|----.----|---x.xxxx| +#define SPY_STATUS3_CANFD_ESI 0x01 // CAN FD Error State Indicator (ESI) reflects the error state of the transmitting node +#define SPY_STATUS3_CANFD_IDE 0x02 // CAN FD Identifier Extension (IDE) indicates if standard or extended IDs are in use +#define SPY_STATUS3_CANFD_RTR 0x04 +#define SPY_STATUS3_CANFD_FDF 0x08 // CAN FD Format (FDF) flag -- distinguishes classic CAN from CANFD +#define SPY_STATUS3_CANFD_BRS 0x10 // CANFD Baud Rate Select (BRS) flag, indicates if the data portion transmits at a higher bitrate + +// SPYSTATUS3 - ETHERNET protocol bits +// |----.----|----.----|----.----|----.--xx| +#define SPY_STATUS3_ETHERNET_TX_COLLISION 0x01 +#define SPY_STATUS3_ETHERNET_T1S_WAKE 0x02 + +// SPYSTATUS3 - LIN protocol bits +// |----.----|----.----|----.----|----.-xxx| +#define SPY_STATUS3_LIN_JUST_BREAK_SYNC 0x01 +#define SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT 0x02 +#define SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE 0x04 + +// SPYSTATUS4 bit definitions +// SPYSTATUS4 - ETHERNET protocol bits +// |----.----|----.----|----.----|----.--xx| +#define SPY_STATUS4_ETH_CRC_ERROR 0x01 // Ethernet CRC error +#define SPY_STATUS4_ETH_FRAME_TOO_LONG 0x02 // Ethernet frame too long + +#endif // CICSSPYSTATUSBITS_H_ diff --git a/doc/requirements.txt b/doc/requirements.txt index c52969dba..a10b57ea8 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,4 +1,5 @@ cython>=0.20 m2r2 docutils>=0.18.1,<0.21 -furo \ No newline at end of file +furo +dunamai \ No newline at end of file diff --git a/doc/source/conf.py b/doc/source/conf.py index 1ba003306..5170346de 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,10 +56,27 @@ # |version| and |release|, also used in various other places throughout the # built documents. # -# The short X.Y version. -version = "918.14" -# The full version, including alpha/beta/rc tags. -release = version +# Get version dynamically from the same source as pyproject.toml +try: + # First, try to import from the generated ics module (same as pyproject.toml) + sys.path.insert(0, os.path.abspath("../../gen")) + import ics + version = ics.__version__ + release = ics.__full_version__ +except ImportError: + try: + # Fallback: try dunamai directly (for build environments) + import dunamai + version = dunamai.Version.from_git().serialize(metadata=False) + release = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") + except ImportError: + # Fallback if neither is available + version = "unknown" + release = version + except Exception: + # Fallback if not in a git repository or other issues + version = "unknown" + release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/extract_icsneo40_defines.py b/extract_icsneo40_defines.py index c5b725567..868c16885 100644 --- a/extract_icsneo40_defines.py +++ b/extract_icsneo40_defines.py @@ -134,7 +134,8 @@ def extract(): sline[0] = sline[0].split(",")[0] # This removes anything after the equal sign as we don't need it sline[0] = sline[0].split("=")[0] - print("\tresult += PyModule_AddIntMacro(module, %s);" % sline[0].replace(",", ""), file=f) + value = sline[0].replace(",", "") + print(f"\tresult += PyModule_AddObjectRef(module, \"{value}\", PyLong_FromLongLong({value}));", file=f) continue if "#define" in line: sline = line.split("//")[0].split() @@ -144,21 +145,36 @@ def extract(): if len(sline) >= 3 and re.match(r"^\d+?\.\d+?$", sline[2]) is not None: # Value is a float print( - '\tresult += PyModule_AddObject(module, "{0}", PyFloat_FromDouble({0}));'.format( + '\tresult += PyModule_AddObjectRef(module, "{0}", PyFloat_FromDouble({0}));'.format( sline[1] ), file=f, ) + elif len(sline) >= 3 and re.match(r"^\d+$", sline[2]) is not None: + # We should be an integer at this point + try: + if int(sline[2]) < 0: + # Integer Value is negative + print(f"\tresult += PyModule_AddObjectRef(module, \"{sline[1]}\", PyLong_FromLongLong({sline[1]}));", file=f) + else: + # Integer Value is positive + print(f"\tresult += PyModule_AddObjectRef(module, \"{sline[1]}\", PyLong_FromUnsignedLongLong({sline[1]}));", file=f) + except ValueError: + # Not an integer, probably another define + # This comes here: #define SPY_STATUS2_RX_TIMEOUT_ERROR SPY_STATUS2_ISO_RX_TIMEOUT_ERROR + print(f"ERROR: {sline[1]} {sline[2]}") + print(f"\tresult += PyModule_AddObjectRef(module, \"{sline[1]}\", PyLong_FromLongLong({sline[1]}));", file=f) + elif len(sline) == 2: # There is no value, this is used for preprocessor only # and really shouldn't care about it in python. Going to set it as 0 "just in case" print( - '\tresult += PyModule_AddObject(module, "{}", PyLong_FromLong(0));'.format(sline[1]), + '\tresult += PyModule_AddObjectRef(module, "{}", PyLong_FromLong(0));'.format(sline[1]), file=f, ) else: - print("\tresult += PyModule_AddIntMacro(module, %s);" % sline[1], file=f) - + print(f"\tresult += PyModule_AddObjectRef(module, \"{sline[1]}\", PyLong_FromLongLong({sline[1]}));", file=f) + elif "/*" in line: inside_comment = True continue @@ -172,7 +188,7 @@ def extract(): # Remove =X assignments if present. sline = [x.split("=")[0] for x in sline] for e in sline: - print("\tresult += PyModule_AddIntMacro(module, %s);" % e, file=f) + print(f"\tresult += PyModule_AddObjectRef(module, \"{e}\", PyLong_FromLongLong({e}));", file=f) inside_enum = False continue if "icsnVC40Internal" in header_file: diff --git a/pyproject.toml b/pyproject.toml index 7013cf0ba..4a3015ed2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ maintainers = [{ name = "David Rebbe", email = "drebbe@intrepidcs.com" }] description = "Python wrapper for interfacing to IntrepidCS Hardware." keywords = ["intrepidcs", "CAN", "Ethernet", "Automotive", "ICS"] readme = { file = "README.md", content-type = "text/markdown" } -requires-python = ">=3.9" +requires-python = ">=3.10" license = { file = "LICENSE.md" } classifiers = [ "Development Status :: 5 - Production/Stable", @@ -15,11 +15,11 @@ classifiers = [ "Topic :: Software Development :: Libraries :: Python Modules", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] [project.urls] @@ -28,6 +28,11 @@ Documentation = "http://python-ics.readthedocs.io/" Repository = "https://github.com/intrepidcs/python_ics/" Issues = "https://github.com/intrepidcs/python_ics/issues" +[dependency-groups] +test = [ + "pytest>=8.4.2", +] + [tool.setuptools.dynamic] version = { attr = "ics.__version__" } @@ -36,17 +41,17 @@ requires = [ "setuptools", "wheel", "dunamai", + "pytest>=8.4.2", ] [tool.cibuildwheel] -build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" -skip = "cp36-* cp37-* pp* *-manylinux_i686 *-musllinux_*" +build = "cp{310,311,312,313,314}-{win32,win_amd64,macosx_universal2,manylinux_x86_64,manylinux_aarch64}" +skip = "cp36-* cp37-* cp38-* cp39-* pp* *-manylinux_i686 *-musllinux_*" environment = { CIBW_BUILD_VERBOSITY = 1, DISTUTILS_DEBUG = 1, MACOSX_DEPLOYMENT_TARGET = "10.13", CIBW_ARCHS_LINUX = "auto aarch64" } before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" manylinux-aarch64-image = "quay.io/pypa/manylinux_2_28_aarch64" -free-threaded-support = true [tool.cibuildwheel.linux] before-build = "dnf install -y cmake clang clang-tools-extra flex bison" diff --git a/setup.py b/setup.py index 3ffd697f4..105e93ae8 100644 --- a/setup.py +++ b/setup.py @@ -100,7 +100,8 @@ def get_ics_extension_compiler_arguments() -> List[str]: compile_args = GCC_COMPILE_ARGS elif "DARWIN" in platform.system().upper(): # Mac doesn't respect the compiler args, but will append with ARCHFLAGS environment variable - os.environ["ARCHFLAGS"] += " -std=c++17" + archflags = os.environ.get("ARCHFLAGS", "") + os.environ["ARCHFLAGS"] = archflags + " -std=c++17" compile_args = [] else: compile_args = [] diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index dadeee75e..0a390264b 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -14,1262 +14,1271 @@ int setup_module_auto_defines(PyObject * module) { int result = 0; - result += PyModule_AddIntMacro(module, NEOVI_COMMTYPE_RS232); - result += PyModule_AddIntMacro(module, NEOVI_COMMTYPE_USB_BULK); - result += PyModule_AddIntMacro(module, NEOVI_COMMTYPE_TCPIP); - result += PyModule_AddIntMacro(module, NEOVI_COMMTYPE_FIRE_USB); - result += PyModule_AddIntMacro(module, NETID_DEVICE); - result += PyModule_AddIntMacro(module, NETID_HSCAN); - result += PyModule_AddIntMacro(module, NETID_MSCAN); - result += PyModule_AddIntMacro(module, NETID_SWCAN); - result += PyModule_AddIntMacro(module, NETID_LSFTCAN); - result += PyModule_AddIntMacro(module, NETID_FORDSCP); - result += PyModule_AddIntMacro(module, NETID_J1708); - result += PyModule_AddIntMacro(module, NETID_AUX); - result += PyModule_AddIntMacro(module, NETID_JVPW); - result += PyModule_AddIntMacro(module, NETID_ISO); - result += PyModule_AddIntMacro(module, NETID_ISOPIC); - result += PyModule_AddIntMacro(module, NETID_MAIN51); - result += PyModule_AddIntMacro(module, NETID_RED); - result += PyModule_AddIntMacro(module, NETID_SCI); - result += PyModule_AddIntMacro(module, NETID_ISO2); - result += PyModule_AddIntMacro(module, NETID_ISO14230); - result += PyModule_AddIntMacro(module, NETID_LIN); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET1); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET2); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET3); - result += PyModule_AddIntMacro(module, NETID_ISO3); - result += PyModule_AddIntMacro(module, NETID_HSCAN2); - result += PyModule_AddIntMacro(module, NETID_HSCAN3); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET4); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET5); - result += PyModule_AddIntMacro(module, NETID_ISO4); - result += PyModule_AddIntMacro(module, NETID_LIN2); - result += PyModule_AddIntMacro(module, NETID_LIN3); - result += PyModule_AddIntMacro(module, NETID_LIN4); - result += PyModule_AddIntMacro(module, NETID_MOST); - result += PyModule_AddIntMacro(module, NETID_RED_APP_ERROR); - result += PyModule_AddIntMacro(module, NETID_CGI); - result += PyModule_AddIntMacro(module, NETID_3G_RESET_STATUS); - result += PyModule_AddIntMacro(module, NETID_3G_FB_STATUS); - result += PyModule_AddIntMacro(module, NETID_3G_APP_SIGNAL_STATUS); - result += PyModule_AddIntMacro(module, NETID_3G_READ_DATALINK_CM_TX_MSG); - result += PyModule_AddIntMacro(module, NETID_3G_READ_DATALINK_CM_RX_MSG); - result += PyModule_AddIntMacro(module, NETID_3G_LOGGING_OVERFLOW); - result += PyModule_AddIntMacro(module, NETID_3G_READ_SETTINGS_EX); - result += PyModule_AddIntMacro(module, NETID_HSCAN4); - result += PyModule_AddIntMacro(module, NETID_HSCAN5); - result += PyModule_AddIntMacro(module, NETID_RS232); - result += PyModule_AddIntMacro(module, NETID_UART); - result += PyModule_AddIntMacro(module, NETID_UART2); - result += PyModule_AddIntMacro(module, NETID_UART3); - result += PyModule_AddIntMacro(module, NETID_UART4); - result += PyModule_AddIntMacro(module, NETID_SWCAN2); - result += PyModule_AddIntMacro(module, NETID_ETHERNET_DAQ); - result += PyModule_AddIntMacro(module, NETID_DATA_TO_HOST); - result += PyModule_AddIntMacro(module, NETID_TEXTAPI_TO_HOST); - result += PyModule_AddIntMacro(module, NETID_SPI1); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET6); - result += PyModule_AddIntMacro(module, NETID_RED_VBAT); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET7); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET8); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET9); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET10); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET11); - result += PyModule_AddIntMacro(module, NETID_FLEXRAY1A); - result += PyModule_AddIntMacro(module, NETID_FLEXRAY1B); - result += PyModule_AddIntMacro(module, NETID_FLEXRAY2A); - result += PyModule_AddIntMacro(module, NETID_FLEXRAY2B); - result += PyModule_AddIntMacro(module, NETID_LIN5); - result += PyModule_AddIntMacro(module, NETID_FLEXRAY); - result += PyModule_AddIntMacro(module, NETID_FLEXRAY2); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET12); - result += PyModule_AddIntMacro(module, NETID_I2C1); - result += PyModule_AddIntMacro(module, NETID_MOST25); - result += PyModule_AddIntMacro(module, NETID_MOST50); - result += PyModule_AddIntMacro(module, NETID_MOST150); - result += PyModule_AddIntMacro(module, NETID_ETHERNET); - result += PyModule_AddIntMacro(module, NETID_GMFSA); - result += PyModule_AddIntMacro(module, NETID_TCP); - result += PyModule_AddIntMacro(module, NETID_HSCAN6); - result += PyModule_AddIntMacro(module, NETID_HSCAN7); - result += PyModule_AddIntMacro(module, NETID_LIN6); - result += PyModule_AddIntMacro(module, NETID_LSFTCAN2); - result += PyModule_AddIntMacro(module, NETID_HW_COM_LATENCY_TEST); - result += PyModule_AddIntMacro(module, NETID_DEVICE_STATUS); - result += PyModule_AddIntMacro(module, NETID_UDP); - result += PyModule_AddIntMacro(module, NETID_AUTOSAR); - result += PyModule_AddIntMacro(module, NETID_FORWARDED_MESSAGE); - result += PyModule_AddIntMacro(module, NETID_I2C2); - result += PyModule_AddIntMacro(module, NETID_I2C3); - result += PyModule_AddIntMacro(module, NETID_I2C4); - result += PyModule_AddIntMacro(module, NETID_ETHERNET2); - result += PyModule_AddIntMacro(module, NETID_ETHERNET_TX_WRAP); - result += PyModule_AddIntMacro(module, NETID_A2B_01); - result += PyModule_AddIntMacro(module, NETID_A2B_02); - result += PyModule_AddIntMacro(module, NETID_ETHERNET3); - result += PyModule_AddIntMacro(module, NETID_ISM_LOGGER); - result += PyModule_AddIntMacro(module, NETID_CAN_SWITCH); - result += PyModule_AddIntMacro(module, NETID_WBMS); - result += PyModule_AddIntMacro(module, NETID_WBMS2); - result += PyModule_AddIntMacro(module, NETID_DWCAN_09); - result += PyModule_AddIntMacro(module, NETID_DWCAN_10); - result += PyModule_AddIntMacro(module, NETID_DWCAN_11); - result += PyModule_AddIntMacro(module, NETID_DWCAN_12); - result += PyModule_AddIntMacro(module, NETID_DWCAN_13); - result += PyModule_AddIntMacro(module, NETID_DWCAN_14); - result += PyModule_AddIntMacro(module, NETID_DWCAN_15); - result += PyModule_AddIntMacro(module, NETID_DWCAN_16); - result += PyModule_AddIntMacro(module, NETID_LIN_07); - result += PyModule_AddIntMacro(module, NETID_LIN_08); - result += PyModule_AddIntMacro(module, NETID_SPI2); - result += PyModule_AddIntMacro(module, NETID_MDIO_01); - result += PyModule_AddIntMacro(module, NETID_MDIO_02); - result += PyModule_AddIntMacro(module, NETID_MDIO_03); - result += PyModule_AddIntMacro(module, NETID_MDIO_04); - result += PyModule_AddIntMacro(module, NETID_MDIO_05); - result += PyModule_AddIntMacro(module, NETID_MDIO_06); - result += PyModule_AddIntMacro(module, NETID_MDIO_07); - result += PyModule_AddIntMacro(module, NETID_MDIO_08); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET13); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET14); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET15); - result += PyModule_AddIntMacro(module, NETID_OP_ETHERNET16); - result += PyModule_AddIntMacro(module, NETID_SPI3); - result += PyModule_AddIntMacro(module, NETID_SPI4); - result += PyModule_AddIntMacro(module, NETID_SPI5); - result += PyModule_AddIntMacro(module, NETID_SPI6); - result += PyModule_AddIntMacro(module, NETID_SPI7); - result += PyModule_AddIntMacro(module, NETID_SPI8); - result += PyModule_AddIntMacro(module, NETID_LIN_09); - result += PyModule_AddIntMacro(module, NETID_LIN_10); - result += PyModule_AddIntMacro(module, NETID_LIN_11); - result += PyModule_AddIntMacro(module, NETID_LIN_12); - result += PyModule_AddIntMacro(module, NETID_LIN_13); - result += PyModule_AddIntMacro(module, NETID_LIN_14); - result += PyModule_AddIntMacro(module, NETID_LIN_15); - result += PyModule_AddIntMacro(module, NETID_LIN_16); - result += PyModule_AddIntMacro(module, NETID_MAX); - result += PyModule_AddIntMacro(module, NETID_INVALID); - result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); - result += PyModule_AddIntMacro(module, NEODEVICE_BLUE); - result += PyModule_AddIntMacro(module, NEODEVICE_ECU_AVB); - result += PyModule_AddIntMacro(module, NEODEVICE_RADSUPERMOON); - result += PyModule_AddIntMacro(module, NEODEVICE_DW_VCAN); - result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON2); - result += PyModule_AddIntMacro(module, NEODEVICE_RADGIGALOG); - result += PyModule_AddIntMacro(module, NEODEVICE_VCAN41); - result += PyModule_AddIntMacro(module, NEODEVICE_FIRE); - result += PyModule_AddIntMacro(module, NEODEVICE_RADPLUTO); - result += PyModule_AddIntMacro(module, NEODEVICE_VCAN42_EL); - result += PyModule_AddIntMacro(module, NEODEVICE_RADIO_CANHUB); - result += PyModule_AddIntMacro(module, NEODEVICE_NEOECU12); - result += PyModule_AddIntMacro(module, NEODEVICE_OBD2_LC); - result += PyModule_AddIntMacro(module, NEODEVICE_RAD_MOON_DUO); - result += PyModule_AddIntMacro(module, NEODEVICE_FIRE3); - result += PyModule_AddIntMacro(module, NEODEVICE_VCAN3); - result += PyModule_AddIntMacro(module, NEODEVICE_RADJUPITER); - result += PyModule_AddIntMacro(module, NEODEVICE_VCAN4_IND); - result += PyModule_AddIntMacro(module, NEODEVICE_GIGASTAR); - result += PyModule_AddIntMacro(module, NEODEVICE_RED2); - result += PyModule_AddIntMacro(module, NEODEVICE_FIRE2_REDLINE); - result += PyModule_AddIntMacro(module, NEODEVICE_ETHER_BADGE); - result += PyModule_AddIntMacro(module, NEODEVICE_RAD_A2B); - result += PyModule_AddIntMacro(module, NEODEVICE_RADEPSILON); - result += PyModule_AddIntMacro(module, NEODEVICE_OBD2_SIM_DOIP); - result += PyModule_AddIntMacro(module, NEODEVICE_OBD2_DEV); - result += PyModule_AddIntMacro(module, NEODEVICE_ECU22); - result += PyModule_AddIntMacro(module, NEODEVICE_RADEPSILON_T); - result += PyModule_AddIntMacro(module, NEODEVICE_RADEPSILON_EXPRESS); - result += PyModule_AddIntMacro(module, NEODEVICE_RADPROXIMA); - result += PyModule_AddIntMacro(module, NEODEVICE_RAD_GALAXY_2); - result += PyModule_AddIntMacro(module, NEODEVICE_RAD_BMS); - result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON3); - result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET); - result += PyModule_AddIntMacro(module, NEODEVICE_FIRE3_FLEXRAY); - result += PyModule_AddIntMacro(module, NEODEVICE_NEOVI_CONNECT); - result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET3); - result += PyModule_AddIntMacro(module, NEODEVICE_RADMOONT1S); - result += PyModule_AddIntMacro(module, NEODEVICE_GIGASTAR2); - result += PyModule_AddIntMacro(module, NEODEVICE_RED); - result += PyModule_AddIntMacro(module, NEODEVICE_ECU); - result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); - result += PyModule_AddIntMacro(module, NEODEVICE_PENDANT); - result += PyModule_AddIntMacro(module, NEODEVICE_OBD2_PRO); - result += PyModule_AddIntMacro(module, NEODEVICE_ECUCHIP_UART); - result += PyModule_AddIntMacro(module, NEODEVICE_PLASMA); - result += PyModule_AddIntMacro(module, NEODEVICE_DONT_REUSE0); - result += PyModule_AddIntMacro(module, NEODEVICE_NEOANALOG); - result += PyModule_AddIntMacro(module, NEODEVICE_CT_OBD); - result += PyModule_AddIntMacro(module, NEODEVICE_DONT_REUSE1); - result += PyModule_AddIntMacro(module, NEODEVICE_DONT_REUSE2); - result += PyModule_AddIntMacro(module, NEODEVICE_ION); - result += PyModule_AddIntMacro(module, NEODEVICE_RADSTAR); - result += PyModule_AddIntMacro(module, NEODEVICE_DONT_REUSE3); - result += PyModule_AddIntMacro(module, NEODEVICE_VCAN44); - result += PyModule_AddIntMacro(module, NEODEVICE_VCAN42); - result += PyModule_AddIntMacro(module, NEODEVICE_CMPROBE); - result += PyModule_AddIntMacro(module, NEODEVICE_EEVB); - result += PyModule_AddIntMacro(module, NEODEVICE_DONT_REUSE4); - result += PyModule_AddIntMacro(module, NEODEVICE_FIRE2); - result += PyModule_AddIntMacro(module, NEODEVICE_FLEX); - result += PyModule_AddIntMacro(module, NEODEVICE_RADGALAXY); - result += PyModule_AddIntMacro(module, NEODEVICE_RADSTAR2); - result += PyModule_AddIntMacro(module, NEODEVICE_VIVIDCAN); - result += PyModule_AddIntMacro(module, NEODEVICE_OBD2_SIM); - result += PyModule_AddIntMacro(module, NEODEVICE_ANY_PLASMA); - result += PyModule_AddIntMacro(module, NEODEVICE_ANY_ION); - result += PyModule_AddIntMacro(module, NEODEVICE_NEOECUCHIP); - result += PyModule_AddIntMacro(module, DEVICECOUNT_FOR_EXPLORER); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_MSCAN); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN2); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN3); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_SWCAN); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN4); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN5); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN6); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_HSCAN7); - result += PyModule_AddIntMacro(module, ISO15765_2_NETWORK_SWCAN2); - result += PyModule_AddIntMacro(module, PLASMA_SLAVE1_OFFSET); - result += PyModule_AddIntMacro(module, PLASMA_SLAVE2_OFFSET); - result += PyModule_AddIntMacro(module, PLASMA_SLAVE_NUM); - result += PyModule_AddIntMacro(module, PLASMA_SLAVE1_OFFSET_RANGE2); - result += PyModule_AddIntMacro(module, PLASMA_SLAVE2_OFFSET_RANGE2); - result += PyModule_AddIntMacro(module, PLASMA_SLAVE3_OFFSET_RANGE2); - result += PyModule_AddIntMacro(module, SCRIPT_STATUS_STOPPED); - result += PyModule_AddIntMacro(module, SCRIPT_STATUS_RUNNING); - result += PyModule_AddIntMacro(module, SCRIPT_LOCATION_FLASH_MEM); - result += PyModule_AddIntMacro(module, SCRIPT_LOCATION_INTERNAL_FLASH); - result += PyModule_AddIntMacro(module, SCRIPT_LOCATION_SDCARD); - result += PyModule_AddIntMacro(module, SCRIPT_LOCATION_VCAN3_MEM); - result += PyModule_AddIntMacro(module, SCRIPT_LOCATION_EMMC); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CUSTOM); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CAN); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_GMLAN); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_J1850VPW); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_J1850PWM); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_ISO9141); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_Keyword2000); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_GM_ALDL_UART); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CHRYSLER_CCD); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CHRYSLER_SCI); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_FORD_UBP); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_BEAN); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_LIN); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_J1708); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CHRYSLER_JVPW); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_J1939); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_FLEXRAY); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_MOST); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CGI); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_GME_CIM_SCL_KLINE); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_SPI); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_I2C); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_GENERIC_UART); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_JTAG); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_UNIO); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_DALLAS_1WIRE); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_GENERIC_MANCHSESTER); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_SENT_PROTOCOL); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_UART); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_ETHERNET); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_CANFD); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_GMFSA); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_TCP); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_UDP); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_AUTOSAR); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_A2B); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_WBMS); - result += PyModule_AddIntMacro(module, SPY_PROTOCOL_MDIO); - result += PyModule_AddIntMacro(module, SPY_STATUS_GLOBAL_ERR); - result += PyModule_AddIntMacro(module, SPY_STATUS_TX_MSG); - result += PyModule_AddIntMacro(module, SPY_STATUS_XTD_FRAME); - result += PyModule_AddIntMacro(module, SPY_STATUS_REMOTE_FRAME); - result += PyModule_AddIntMacro(module, SPY_STATUS_CRC_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS_CAN_ERROR_PASSIVE); - result += PyModule_AddIntMacro(module, SPY_STATUS_HEADERCRC_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS_INCOMPLETE_FRAME); - result += PyModule_AddIntMacro(module, SPY_STATUS_LOST_ARBITRATION); - result += PyModule_AddIntMacro(module, SPY_STATUS_UNDEFINED_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS_CAN_BUS_OFF); - result += PyModule_AddIntMacro(module, SPY_STATUS_BUS_RECOVERED); - result += PyModule_AddIntMacro(module, SPY_STATUS_BUS_SHORTED_PLUS); - result += PyModule_AddIntMacro(module, SPY_STATUS_BUS_SHORTED_GND); - result += PyModule_AddIntMacro(module, SPY_STATUS_CHECKSUM_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS_TX_NOMATCH); - result += PyModule_AddIntMacro(module, SPY_STATUS_COMM_IN_OVERFLOW); - result += PyModule_AddIntMacro(module, SPY_STATUS_EXPECTED_LEN_MISMATCH); - result += PyModule_AddIntMacro(module, SPY_STATUS_MSG_NO_MATCH); - result += PyModule_AddIntMacro(module, SPY_STATUS_BREAK); - result += PyModule_AddIntMacro(module, SPY_STATUS_AVSI_REC_OVERFLOW); - result += PyModule_AddIntMacro(module, SPY_STATUS_TEST_TRIGGER); - result += PyModule_AddIntMacro(module, SPY_STATUS_AUDIO_COMMENT); - result += PyModule_AddIntMacro(module, SPY_STATUS_GPS_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS_ANALOG_DIGITAL_INPUT); - result += PyModule_AddIntMacro(module, SPY_STATUS_TEXT_COMMENT); - result += PyModule_AddIntMacro(module, SPY_STATUS_NETWORK_MESSAGE_TYPE); - result += PyModule_AddIntMacro(module, SPY_STATUS_VSI_TX_UNDERRUN); - result += PyModule_AddIntMacro(module, SPY_STATUS_VSI_IFR_CRC_BIT); - result += PyModule_AddIntMacro(module, SPY_STATUS_INIT_MESSAGE); - result += PyModule_AddIntMacro(module, SPY_STATUS_LIN_MASTER); - result += PyModule_AddIntMacro(module, SPY_STATUS_CANFD); - result += PyModule_AddIntMacro(module, SPY_STATUS_A2B_CONTROL); - result += PyModule_AddIntMacro(module, SPY_STATUS_A2B_SCF_VALID_WAITING); - result += PyModule_AddIntMacro(module, SPY_STATUS_A2B_MONITOR); - result += PyModule_AddIntMacro(module, SPY_STATUS_A2B_UPSTREAM); - result += PyModule_AddIntMacro(module, SPY_STATUS_PDU); - result += PyModule_AddIntMacro(module, SPY_STATUS_FLEXRAY_PDU); - result += PyModule_AddIntMacro(module, SPY_STATUS_HIGH_SPEED); - result += PyModule_AddIntMacro(module, SPY_STATUS_EXTENDED); - result += PyModule_AddIntMacro(module, SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET); - result += PyModule_AddIntMacro(module, SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT); - result += PyModule_AddIntMacro(module, SPY_STATUS2_HAS_VALUE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_VALUE_IS_BOOLEAN); - result += PyModule_AddIntMacro(module, SPY_STATUS2_HIGH_VOLTAGE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LONG_MESSAGE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_GLOBAL_CHANGE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ERROR_FRAME); - result += PyModule_AddIntMacro(module, SPY_STATUS2_END_OF_LONG_MESSAGE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_ERR_TIMEOUT); - result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_ERR_NACK); - result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_DIR_READ); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_ERR_TIMEOUT); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_JOB_CANCELLED); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_INVALID_BUS); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_INVALID_PHYADDR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_INVALID_REGADDR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_OVERFLOW); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_CLAUSE45); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MDIO_READ); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ERR_MSG_ID_PARITY); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ISO_FRAME_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_SYNC_FRAME_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ISO_OVERFLOW_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_ID_FRAME_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ISO_PARITY_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_SLAVE_BYTE_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_RX_TIMEOUT_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_LIN_NO_SLAVE_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS3_LIN_JUST_BREAK_SYNC); - result += PyModule_AddIntMacro(module, SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT); - result += PyModule_AddIntMacro(module, SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_PACKET_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_LOW_LEVEL); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_CONTROL_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_MHP_USER_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_MHP_CONTROL_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_I2S_DUMP); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_TOO_SHORT); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_MOST50); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_MOST150); - result += PyModule_AddIntMacro(module, SPY_STATUS2_MOST_CHANGED_PAR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_CRC_ERROR); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_NO_PADDING); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_FCS_VERIFIED); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_SYMBOL); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_BURST); - result += PyModule_AddIntMacro(module, SPY_STATUS2_ETHERNET_T1S_ETHERNET); - result += PyModule_AddIntMacro(module, SPY_STATUS3_ETHERNET_TX_COLLISION); - result += PyModule_AddIntMacro(module, SPY_STATUS3_ETHERNET_T1S_WAKE); - result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB); - result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_A); - result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_B); - result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH); - result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_NO_CRC); - result += PyModule_AddIntMacro(module, SPY_STATUS2_FLEXRAY_NO_HEADERCRC); - result += PyModule_AddIntMacro(module, SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME); - result += PyModule_AddIntMacro(module, SPY_STATUS2_CAN_HAVE_LINK_DATA); - result += PyModule_AddIntMacro(module, SPY_STATUS2_WBMS_API_IS_CALLBACK); - result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_ESI); - result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_IDE); - result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_RTR); - result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_FDF); - result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_BRS); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_HS_CAN_CNF1); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_HS_CAN_CNF2); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_HS_CAN_CNF3); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_HS_CAN_MODE); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_MS_CAN_CNF1); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_MS_CAN_CNF2); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_MS_CAN_CNF3); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_SW_CAN_CNF1); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_SW_CAN_CNF2); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_SW_CAN_CNF3); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_LSFT_CAN_CNF1); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_LSFT_CAN_CNF2); - result += PyModule_AddIntMacro(module, NEO_CFG_MPIC_LSFT_CAN_CNF3); - result += PyModule_AddObject(module, "NEOVI_TIMESTAMP_2", PyFloat_FromDouble(NEOVI_TIMESTAMP_2)); - result += PyModule_AddObject(module, "NEOVI_TIMESTAMP_1", PyFloat_FromDouble(NEOVI_TIMESTAMP_1)); - result += PyModule_AddObject(module, "NEOVIPRO_VCAN_TIMESTAMP_2", PyFloat_FromDouble(NEOVIPRO_VCAN_TIMESTAMP_2)); - result += PyModule_AddObject(module, "NEOVIPRO_VCAN_TIMESTAMP_1", PyFloat_FromDouble(NEOVIPRO_VCAN_TIMESTAMP_1)); - result += PyModule_AddObject(module, "NEOVI6_VCAN_TIMESTAMP_2", PyFloat_FromDouble(NEOVI6_VCAN_TIMESTAMP_2)); - result += PyModule_AddObject(module, "NEOVI6_VCAN_TIMESTAMP_1", PyFloat_FromDouble(NEOVI6_VCAN_TIMESTAMP_1)); - result += PyModule_AddObject(module, "NEOVI_RED_TIMESTAMP_2_25NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_2_25NS)); - result += PyModule_AddObject(module, "NEOVI_RED_TIMESTAMP_1_25NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_1_25NS)); - result += PyModule_AddObject(module, "NEOVI_RED_TIMESTAMP_2_10NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_2_10NS)); - result += PyModule_AddObject(module, "NEOVI_RED_TIMESTAMP_1_10NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_1_10NS)); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NONE); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_VSI); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_AVT_716); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NI_CAN); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NEOVI); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_AVT_717); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NEOv6_VCAN); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_DOUBLE_SEC); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NEORED_10US); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NEORED_25NS); - result += PyModule_AddIntMacro(module, HARDWARE_TIMESTAMP_ID_NEORED_10NS); - result += PyModule_AddIntMacro(module, HADRWARE_TIMESTAMP_ID_FIXED); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_PERIODIC); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_EMISC1_DIGITAL); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_EMISC2_DIGITAL); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_MISC5_DIGITAL); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_MISC6_DIGITAL); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_EMISC1_ANALOG); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_EMISC2_ANALOG); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_VBATT_ANALOG); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_TEMP_ANALOG); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_PWM_IN); - result += PyModule_AddIntMacro(module, FIRE2_REPORT_GPS); - result += PyModule_AddIntMacro(module, FIRE3_REPORT_ORIENTATION); - result += PyModule_AddIntMacro(module, CANNODE_STATUS_COREMINI_IS_RUNNING); - result += PyModule_AddIntMacro(module, CANNODE_STATUS_IN_BOOTLOADER); - result += PyModule_AddIntMacro(module, MAIN_VNET); - result += PyModule_AddIntMacro(module, SLAVE_VNET_A); - result += PyModule_AddIntMacro(module, SLAVE_VNET_B); - result += PyModule_AddIntMacro(module, WIFI_CONNECTION); - result += PyModule_AddIntMacro(module, REGISTER_BY_SERIAL); - result += PyModule_AddIntMacro(module, TCP_SUPPORTED); - result += PyModule_AddIntMacro(module, DRIVER_MASK); - result += PyModule_AddIntMacro(module, DRIVER_USB1); - result += PyModule_AddIntMacro(module, DRIVER_USB2); - result += PyModule_AddIntMacro(module, DRIVER_USB3); - result += PyModule_AddIntMacro(module, SERVD_DRIVER_MASK); - result += PyModule_AddIntMacro(module, SERVD_DRIVER_VCP); - result += PyModule_AddIntMacro(module, SERVD_DRIVER_DXX); - result += PyModule_AddIntMacro(module, SERVD_DRIVER_CAB); - result += PyModule_AddIntMacro(module, SERVD_DRIVER_TCP); - result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3); - result += PyModule_AddIntMacro(module, CMP_STREAMS_FIRE3FR); - result += PyModule_AddIntMacro(module, CMP_STREAMS_RED2); - result += PyModule_AddIntMacro(module, CMP_STREAMS_A2B); - result += PyModule_AddIntMacro(module, CMP_STREAMS_GIGASTAR); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_RX_TIMEOUT_ERROR", PyLong_FromLongLong(SPY_STATUS2_RX_TIMEOUT_ERROR)); + result += PyModule_AddObjectRef(module, "NEOVI_COMMTYPE_RS232", PyLong_FromUnsignedLongLong(NEOVI_COMMTYPE_RS232)); + result += PyModule_AddObjectRef(module, "NEOVI_COMMTYPE_USB_BULK", PyLong_FromUnsignedLongLong(NEOVI_COMMTYPE_USB_BULK)); + result += PyModule_AddObjectRef(module, "NEOVI_COMMTYPE_TCPIP", PyLong_FromUnsignedLongLong(NEOVI_COMMTYPE_TCPIP)); + result += PyModule_AddObjectRef(module, "NEOVI_COMMTYPE_FIRE_USB", PyLong_FromUnsignedLongLong(NEOVI_COMMTYPE_FIRE_USB)); + result += PyModule_AddObjectRef(module, "NETID_DEVICE", PyLong_FromUnsignedLongLong(NETID_DEVICE)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN", PyLong_FromUnsignedLongLong(NETID_HSCAN)); + result += PyModule_AddObjectRef(module, "NETID_MSCAN", PyLong_FromUnsignedLongLong(NETID_MSCAN)); + result += PyModule_AddObjectRef(module, "NETID_SWCAN", PyLong_FromUnsignedLongLong(NETID_SWCAN)); + result += PyModule_AddObjectRef(module, "NETID_LSFTCAN", PyLong_FromUnsignedLongLong(NETID_LSFTCAN)); + result += PyModule_AddObjectRef(module, "NETID_FORDSCP", PyLong_FromUnsignedLongLong(NETID_FORDSCP)); + result += PyModule_AddObjectRef(module, "NETID_J1708", PyLong_FromUnsignedLongLong(NETID_J1708)); + result += PyModule_AddObjectRef(module, "NETID_AUX", PyLong_FromUnsignedLongLong(NETID_AUX)); + result += PyModule_AddObjectRef(module, "NETID_JVPW", PyLong_FromUnsignedLongLong(NETID_JVPW)); + result += PyModule_AddObjectRef(module, "NETID_ISO", PyLong_FromUnsignedLongLong(NETID_ISO)); + result += PyModule_AddObjectRef(module, "NETID_ISOPIC", PyLong_FromUnsignedLongLong(NETID_ISOPIC)); + result += PyModule_AddObjectRef(module, "NETID_MAIN51", PyLong_FromUnsignedLongLong(NETID_MAIN51)); + result += PyModule_AddObjectRef(module, "NETID_RED", PyLong_FromUnsignedLongLong(NETID_RED)); + result += PyModule_AddObjectRef(module, "NETID_SCI", PyLong_FromUnsignedLongLong(NETID_SCI)); + result += PyModule_AddObjectRef(module, "NETID_ISO2", PyLong_FromUnsignedLongLong(NETID_ISO2)); + result += PyModule_AddObjectRef(module, "NETID_ISO14230", PyLong_FromUnsignedLongLong(NETID_ISO14230)); + result += PyModule_AddObjectRef(module, "NETID_LIN", PyLong_FromUnsignedLongLong(NETID_LIN)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET1", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET1)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET2", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET2)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET3", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET3)); + result += PyModule_AddObjectRef(module, "NETID_ISO3", PyLong_FromUnsignedLongLong(NETID_ISO3)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN2", PyLong_FromUnsignedLongLong(NETID_HSCAN2)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN3", PyLong_FromUnsignedLongLong(NETID_HSCAN3)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET4", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET4)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET5", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET5)); + result += PyModule_AddObjectRef(module, "NETID_ISO4", PyLong_FromUnsignedLongLong(NETID_ISO4)); + result += PyModule_AddObjectRef(module, "NETID_LIN2", PyLong_FromUnsignedLongLong(NETID_LIN2)); + result += PyModule_AddObjectRef(module, "NETID_LIN3", PyLong_FromUnsignedLongLong(NETID_LIN3)); + result += PyModule_AddObjectRef(module, "NETID_LIN4", PyLong_FromUnsignedLongLong(NETID_LIN4)); + result += PyModule_AddObjectRef(module, "NETID_MOST", PyLong_FromUnsignedLongLong(NETID_MOST)); + result += PyModule_AddObjectRef(module, "NETID_RED_APP_ERROR", PyLong_FromUnsignedLongLong(NETID_RED_APP_ERROR)); + result += PyModule_AddObjectRef(module, "NETID_CGI", PyLong_FromUnsignedLongLong(NETID_CGI)); + result += PyModule_AddObjectRef(module, "NETID_3G_RESET_STATUS", PyLong_FromUnsignedLongLong(NETID_3G_RESET_STATUS)); + result += PyModule_AddObjectRef(module, "NETID_3G_FB_STATUS", PyLong_FromUnsignedLongLong(NETID_3G_FB_STATUS)); + result += PyModule_AddObjectRef(module, "NETID_3G_APP_SIGNAL_STATUS", PyLong_FromUnsignedLongLong(NETID_3G_APP_SIGNAL_STATUS)); + result += PyModule_AddObjectRef(module, "NETID_3G_READ_DATALINK_CM_TX_MSG", PyLong_FromUnsignedLongLong(NETID_3G_READ_DATALINK_CM_TX_MSG)); + result += PyModule_AddObjectRef(module, "NETID_3G_READ_DATALINK_CM_RX_MSG", PyLong_FromUnsignedLongLong(NETID_3G_READ_DATALINK_CM_RX_MSG)); + result += PyModule_AddObjectRef(module, "NETID_3G_LOGGING_OVERFLOW", PyLong_FromUnsignedLongLong(NETID_3G_LOGGING_OVERFLOW)); + result += PyModule_AddObjectRef(module, "NETID_3G_READ_SETTINGS_EX", PyLong_FromUnsignedLongLong(NETID_3G_READ_SETTINGS_EX)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN4", PyLong_FromUnsignedLongLong(NETID_HSCAN4)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN5", PyLong_FromUnsignedLongLong(NETID_HSCAN5)); + result += PyModule_AddObjectRef(module, "NETID_RS232", PyLong_FromUnsignedLongLong(NETID_RS232)); + result += PyModule_AddObjectRef(module, "NETID_UART", PyLong_FromUnsignedLongLong(NETID_UART)); + result += PyModule_AddObjectRef(module, "NETID_UART2", PyLong_FromUnsignedLongLong(NETID_UART2)); + result += PyModule_AddObjectRef(module, "NETID_UART3", PyLong_FromUnsignedLongLong(NETID_UART3)); + result += PyModule_AddObjectRef(module, "NETID_UART4", PyLong_FromUnsignedLongLong(NETID_UART4)); + result += PyModule_AddObjectRef(module, "NETID_SWCAN2", PyLong_FromUnsignedLongLong(NETID_SWCAN2)); + result += PyModule_AddObjectRef(module, "NETID_ETHERNET_DAQ", PyLong_FromUnsignedLongLong(NETID_ETHERNET_DAQ)); + result += PyModule_AddObjectRef(module, "NETID_DATA_TO_HOST", PyLong_FromUnsignedLongLong(NETID_DATA_TO_HOST)); + result += PyModule_AddObjectRef(module, "NETID_TEXTAPI_TO_HOST", PyLong_FromUnsignedLongLong(NETID_TEXTAPI_TO_HOST)); + result += PyModule_AddObjectRef(module, "NETID_SPI1", PyLong_FromUnsignedLongLong(NETID_SPI1)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET6", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET6)); + result += PyModule_AddObjectRef(module, "NETID_RED_VBAT", PyLong_FromUnsignedLongLong(NETID_RED_VBAT)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET7", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET7)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET8", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET8)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET9", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET9)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET10", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET10)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET11", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET11)); + result += PyModule_AddObjectRef(module, "NETID_FLEXRAY1A", PyLong_FromUnsignedLongLong(NETID_FLEXRAY1A)); + result += PyModule_AddObjectRef(module, "NETID_FLEXRAY1B", PyLong_FromUnsignedLongLong(NETID_FLEXRAY1B)); + result += PyModule_AddObjectRef(module, "NETID_FLEXRAY2A", PyLong_FromUnsignedLongLong(NETID_FLEXRAY2A)); + result += PyModule_AddObjectRef(module, "NETID_FLEXRAY2B", PyLong_FromUnsignedLongLong(NETID_FLEXRAY2B)); + result += PyModule_AddObjectRef(module, "NETID_LIN5", PyLong_FromUnsignedLongLong(NETID_LIN5)); + result += PyModule_AddObjectRef(module, "NETID_FLEXRAY", PyLong_FromUnsignedLongLong(NETID_FLEXRAY)); + result += PyModule_AddObjectRef(module, "NETID_FLEXRAY2", PyLong_FromUnsignedLongLong(NETID_FLEXRAY2)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET12", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET12)); + result += PyModule_AddObjectRef(module, "NETID_I2C1", PyLong_FromUnsignedLongLong(NETID_I2C1)); + result += PyModule_AddObjectRef(module, "NETID_MOST25", PyLong_FromUnsignedLongLong(NETID_MOST25)); + result += PyModule_AddObjectRef(module, "NETID_MOST50", PyLong_FromUnsignedLongLong(NETID_MOST50)); + result += PyModule_AddObjectRef(module, "NETID_MOST150", PyLong_FromUnsignedLongLong(NETID_MOST150)); + result += PyModule_AddObjectRef(module, "NETID_ETHERNET", PyLong_FromUnsignedLongLong(NETID_ETHERNET)); + result += PyModule_AddObjectRef(module, "NETID_GMFSA", PyLong_FromUnsignedLongLong(NETID_GMFSA)); + result += PyModule_AddObjectRef(module, "NETID_TCP", PyLong_FromUnsignedLongLong(NETID_TCP)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN6", PyLong_FromUnsignedLongLong(NETID_HSCAN6)); + result += PyModule_AddObjectRef(module, "NETID_HSCAN7", PyLong_FromUnsignedLongLong(NETID_HSCAN7)); + result += PyModule_AddObjectRef(module, "NETID_LIN6", PyLong_FromUnsignedLongLong(NETID_LIN6)); + result += PyModule_AddObjectRef(module, "NETID_LSFTCAN2", PyLong_FromUnsignedLongLong(NETID_LSFTCAN2)); + result += PyModule_AddObjectRef(module, "NETID_HW_COM_LATENCY_TEST", PyLong_FromUnsignedLongLong(NETID_HW_COM_LATENCY_TEST)); + result += PyModule_AddObjectRef(module, "NETID_DEVICE_STATUS", PyLong_FromUnsignedLongLong(NETID_DEVICE_STATUS)); + result += PyModule_AddObjectRef(module, "NETID_UDP", PyLong_FromUnsignedLongLong(NETID_UDP)); + result += PyModule_AddObjectRef(module, "NETID_AUTOSAR", PyLong_FromUnsignedLongLong(NETID_AUTOSAR)); + result += PyModule_AddObjectRef(module, "NETID_FORWARDED_MESSAGE", PyLong_FromUnsignedLongLong(NETID_FORWARDED_MESSAGE)); + result += PyModule_AddObjectRef(module, "NETID_I2C2", PyLong_FromUnsignedLongLong(NETID_I2C2)); + result += PyModule_AddObjectRef(module, "NETID_I2C3", PyLong_FromUnsignedLongLong(NETID_I2C3)); + result += PyModule_AddObjectRef(module, "NETID_I2C4", PyLong_FromUnsignedLongLong(NETID_I2C4)); + result += PyModule_AddObjectRef(module, "NETID_ETHERNET2", PyLong_FromUnsignedLongLong(NETID_ETHERNET2)); + result += PyModule_AddObjectRef(module, "NETID_ETHERNET_TX_WRAP", PyLong_FromUnsignedLongLong(NETID_ETHERNET_TX_WRAP)); + result += PyModule_AddObjectRef(module, "NETID_A2B_01", PyLong_FromUnsignedLongLong(NETID_A2B_01)); + result += PyModule_AddObjectRef(module, "NETID_A2B_02", PyLong_FromUnsignedLongLong(NETID_A2B_02)); + result += PyModule_AddObjectRef(module, "NETID_ETHERNET3", PyLong_FromUnsignedLongLong(NETID_ETHERNET3)); + result += PyModule_AddObjectRef(module, "NETID_ISM_LOGGER", PyLong_FromUnsignedLongLong(NETID_ISM_LOGGER)); + result += PyModule_AddObjectRef(module, "NETID_CAN_SWITCH", PyLong_FromUnsignedLongLong(NETID_CAN_SWITCH)); + result += PyModule_AddObjectRef(module, "NETID_WBMS", PyLong_FromUnsignedLongLong(NETID_WBMS)); + result += PyModule_AddObjectRef(module, "NETID_WBMS2", PyLong_FromUnsignedLongLong(NETID_WBMS2)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_09", PyLong_FromUnsignedLongLong(NETID_DWCAN_09)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_10", PyLong_FromUnsignedLongLong(NETID_DWCAN_10)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_11", PyLong_FromUnsignedLongLong(NETID_DWCAN_11)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_12", PyLong_FromUnsignedLongLong(NETID_DWCAN_12)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_13", PyLong_FromUnsignedLongLong(NETID_DWCAN_13)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_14", PyLong_FromUnsignedLongLong(NETID_DWCAN_14)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_15", PyLong_FromUnsignedLongLong(NETID_DWCAN_15)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_16", PyLong_FromUnsignedLongLong(NETID_DWCAN_16)); + result += PyModule_AddObjectRef(module, "NETID_LIN_07", PyLong_FromUnsignedLongLong(NETID_LIN_07)); + result += PyModule_AddObjectRef(module, "NETID_LIN_08", PyLong_FromUnsignedLongLong(NETID_LIN_08)); + result += PyModule_AddObjectRef(module, "NETID_SPI2", PyLong_FromUnsignedLongLong(NETID_SPI2)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_01", PyLong_FromUnsignedLongLong(NETID_MDIO_01)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_02", PyLong_FromUnsignedLongLong(NETID_MDIO_02)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_03", PyLong_FromUnsignedLongLong(NETID_MDIO_03)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_04", PyLong_FromUnsignedLongLong(NETID_MDIO_04)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_05", PyLong_FromUnsignedLongLong(NETID_MDIO_05)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_06", PyLong_FromUnsignedLongLong(NETID_MDIO_06)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_07", PyLong_FromUnsignedLongLong(NETID_MDIO_07)); + result += PyModule_AddObjectRef(module, "NETID_MDIO_08", PyLong_FromUnsignedLongLong(NETID_MDIO_08)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET13", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET13)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET14", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET14)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET15", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET15)); + result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET16", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET16)); + result += PyModule_AddObjectRef(module, "NETID_SPI3", PyLong_FromUnsignedLongLong(NETID_SPI3)); + result += PyModule_AddObjectRef(module, "NETID_SPI4", PyLong_FromUnsignedLongLong(NETID_SPI4)); + result += PyModule_AddObjectRef(module, "NETID_SPI5", PyLong_FromUnsignedLongLong(NETID_SPI5)); + result += PyModule_AddObjectRef(module, "NETID_SPI6", PyLong_FromUnsignedLongLong(NETID_SPI6)); + result += PyModule_AddObjectRef(module, "NETID_SPI7", PyLong_FromUnsignedLongLong(NETID_SPI7)); + result += PyModule_AddObjectRef(module, "NETID_SPI8", PyLong_FromUnsignedLongLong(NETID_SPI8)); + result += PyModule_AddObjectRef(module, "NETID_LIN_09", PyLong_FromUnsignedLongLong(NETID_LIN_09)); + result += PyModule_AddObjectRef(module, "NETID_LIN_10", PyLong_FromUnsignedLongLong(NETID_LIN_10)); + result += PyModule_AddObjectRef(module, "NETID_LIN_11", PyLong_FromUnsignedLongLong(NETID_LIN_11)); + result += PyModule_AddObjectRef(module, "NETID_LIN_12", PyLong_FromUnsignedLongLong(NETID_LIN_12)); + result += PyModule_AddObjectRef(module, "NETID_LIN_13", PyLong_FromUnsignedLongLong(NETID_LIN_13)); + result += PyModule_AddObjectRef(module, "NETID_LIN_14", PyLong_FromUnsignedLongLong(NETID_LIN_14)); + result += PyModule_AddObjectRef(module, "NETID_LIN_15", PyLong_FromUnsignedLongLong(NETID_LIN_15)); + result += PyModule_AddObjectRef(module, "NETID_LIN_16", PyLong_FromUnsignedLongLong(NETID_LIN_16)); + result += PyModule_AddObjectRef(module, "NETID_MAX", PyLong_FromUnsignedLongLong(NETID_MAX)); + result += PyModule_AddObjectRef(module, "NETID_INVALID", PyLong_FromLongLong(NETID_INVALID)); + result += PyModule_AddObjectRef(module, "NEODEVICE_UNKNOWN", PyLong_FromLongLong(NEODEVICE_UNKNOWN)); + result += PyModule_AddObjectRef(module, "NEODEVICE_BLUE", PyLong_FromLongLong(NEODEVICE_BLUE)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ECU_AVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ECU_AVB_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADSUPERMOON_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADSUPERMOON_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DW_VCAN", PyLong_FromLongLong(NEODEVICE_DW_VCAN)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADMOON2", PyLong_FromLongLong(NEODEVICE_RADMOON2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADGIGALOG_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADGIGALOG_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN41", PyLong_FromLongLong(NEODEVICE_VCAN41)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE", PyLong_FromLongLong(NEODEVICE_FIRE)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADPLUTO_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADPLUTO_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN42_EL", PyLong_FromLongLong(NEODEVICE_VCAN42_EL)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADIO_CANHUB", PyLong_FromLongLong(NEODEVICE_RADIO_CANHUB)); + result += PyModule_AddObjectRef(module, "NEODEVICE_NEOECU12", PyLong_FromLongLong(NEODEVICE_NEOECU12)); + result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_LC", PyLong_FromLongLong(NEODEVICE_OBD2_LC)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RAD_MOON_DUO_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RAD_MOON_DUO_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3", PyLong_FromLongLong(NEODEVICE_FIRE3)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN3", PyLong_FromLongLong(NEODEVICE_VCAN3)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADJUPITER", PyLong_FromLongLong(NEODEVICE_RADJUPITER)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN4_IND", PyLong_FromLongLong(NEODEVICE_VCAN4_IND)); + result += PyModule_AddObjectRef(module, "NEODEVICE_GIGASTAR", PyLong_FromLongLong(NEODEVICE_GIGASTAR)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RED2", PyLong_FromLongLong(NEODEVICE_RED2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE2_REDLINE_DEPRECATED", PyLong_FromLongLong(NEODEVICE_FIRE2_REDLINE_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ETHER_BADGE_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ETHER_BADGE_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RAD_A2B", PyLong_FromLongLong(NEODEVICE_RAD_A2B)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADEPSILON", PyLong_FromLongLong(NEODEVICE_RADEPSILON)); + result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_SIM_DOIP_DEPRECATED", PyLong_FromLongLong(NEODEVICE_OBD2_SIM_DOIP_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_DEV_DEPRECATED", PyLong_FromLongLong(NEODEVICE_OBD2_DEV_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ECU22_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ECU22_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADEPSILON_T", PyLong_FromLongLong(NEODEVICE_RADEPSILON_T)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADEPSILON_EXPRESS", PyLong_FromLongLong(NEODEVICE_RADEPSILON_EXPRESS)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADPROXIMA", PyLong_FromLongLong(NEODEVICE_RADPROXIMA)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RAD_GALAXY_2", PyLong_FromLongLong(NEODEVICE_RAD_GALAXY_2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RAD_BMS", PyLong_FromLongLong(NEODEVICE_RAD_BMS)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADMOON3", PyLong_FromLongLong(NEODEVICE_RADMOON3)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADCOMET", PyLong_FromLongLong(NEODEVICE_RADCOMET)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_FLEXRAY", PyLong_FromLongLong(NEODEVICE_FIRE3_FLEXRAY)); + result += PyModule_AddObjectRef(module, "NEODEVICE_NEOVI_CONNECT", PyLong_FromLongLong(NEODEVICE_NEOVI_CONNECT)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADCOMET3", PyLong_FromLongLong(NEODEVICE_RADCOMET3)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADMOONT1S", PyLong_FromLongLong(NEODEVICE_RADMOONT1S)); + result += PyModule_AddObjectRef(module, "NEODEVICE_GIGASTAR2", PyLong_FromLongLong(NEODEVICE_GIGASTAR2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_LIN", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_LIN)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_SENT", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_SENT)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RED", PyLong_FromLongLong(NEODEVICE_RED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ECU", PyLong_FromLongLong(NEODEVICE_ECU)); + result += PyModule_AddObjectRef(module, "NEODEVICE_IEVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_IEVB_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_PENDANT", PyLong_FromLongLong(NEODEVICE_PENDANT)); + result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_PRO_DEPRECATED", PyLong_FromLongLong(NEODEVICE_OBD2_PRO_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ECUCHIP_UART_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ECUCHIP_UART_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_PLASMA", PyLong_FromLongLong(NEODEVICE_PLASMA)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE0", PyLong_FromLongLong(NEODEVICE_DONT_REUSE0)); + result += PyModule_AddObjectRef(module, "NEODEVICE_NEOANALOG", PyLong_FromLongLong(NEODEVICE_NEOANALOG)); + result += PyModule_AddObjectRef(module, "NEODEVICE_CT_OBD", PyLong_FromLongLong(NEODEVICE_CT_OBD)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE1", PyLong_FromLongLong(NEODEVICE_DONT_REUSE1)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE2", PyLong_FromLongLong(NEODEVICE_DONT_REUSE2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ION", PyLong_FromLongLong(NEODEVICE_ION)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADSTAR_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADSTAR_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE3", PyLong_FromLongLong(NEODEVICE_DONT_REUSE3)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN44", PyLong_FromLongLong(NEODEVICE_VCAN44)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN42", PyLong_FromLongLong(NEODEVICE_VCAN42)); + result += PyModule_AddObjectRef(module, "NEODEVICE_CMPROBE_DEPRECATED", PyLong_FromLongLong(NEODEVICE_CMPROBE_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_EEVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_EEVB_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE4", PyLong_FromLongLong(NEODEVICE_DONT_REUSE4)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE2", PyLong_FromLongLong(NEODEVICE_FIRE2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FLEX_DEPRECATED", PyLong_FromLongLong(NEODEVICE_FLEX_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADGALAXY", PyLong_FromLongLong(NEODEVICE_RADGALAXY)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADSTAR2", PyLong_FromLongLong(NEODEVICE_RADSTAR2)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VIVIDCAN", PyLong_FromLongLong(NEODEVICE_VIVIDCAN)); + result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_SIM_DEPRECATED", PyLong_FromLongLong(NEODEVICE_OBD2_SIM_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ANY_PLASMA", PyLong_FromLongLong(NEODEVICE_ANY_PLASMA)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ANY_ION", PyLong_FromLongLong(NEODEVICE_ANY_ION)); + result += PyModule_AddObjectRef(module, "NEODEVICE_NEOECUCHIP", PyLong_FromLongLong(NEODEVICE_NEOECUCHIP)); + result += PyModule_AddObjectRef(module, "DEVICECOUNT_FOR_EXPLORER", PyLong_FromLongLong(DEVICECOUNT_FOR_EXPLORER)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_MSCAN", PyLong_FromLongLong(ISO15765_2_NETWORK_MSCAN)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN2", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN2)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN3", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN3)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_SWCAN", PyLong_FromLongLong(ISO15765_2_NETWORK_SWCAN)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN4", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN4)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN5", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN5)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN6", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN6)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_HSCAN7", PyLong_FromLongLong(ISO15765_2_NETWORK_HSCAN7)); + result += PyModule_AddObjectRef(module, "ISO15765_2_NETWORK_SWCAN2", PyLong_FromLongLong(ISO15765_2_NETWORK_SWCAN2)); + result += PyModule_AddObjectRef(module, "PLASMA_SLAVE1_OFFSET", PyLong_FromUnsignedLongLong(PLASMA_SLAVE1_OFFSET)); + result += PyModule_AddObjectRef(module, "PLASMA_SLAVE2_OFFSET", PyLong_FromUnsignedLongLong(PLASMA_SLAVE2_OFFSET)); + result += PyModule_AddObjectRef(module, "PLASMA_SLAVE_NUM", PyLong_FromUnsignedLongLong(PLASMA_SLAVE_NUM)); + result += PyModule_AddObjectRef(module, "PLASMA_SLAVE1_OFFSET_RANGE2", PyLong_FromUnsignedLongLong(PLASMA_SLAVE1_OFFSET_RANGE2)); + result += PyModule_AddObjectRef(module, "PLASMA_SLAVE2_OFFSET_RANGE2", PyLong_FromUnsignedLongLong(PLASMA_SLAVE2_OFFSET_RANGE2)); + result += PyModule_AddObjectRef(module, "PLASMA_SLAVE3_OFFSET_RANGE2", PyLong_FromUnsignedLongLong(PLASMA_SLAVE3_OFFSET_RANGE2)); + result += PyModule_AddObjectRef(module, "SCRIPT_STATUS_STOPPED", PyLong_FromUnsignedLongLong(SCRIPT_STATUS_STOPPED)); + result += PyModule_AddObjectRef(module, "SCRIPT_STATUS_RUNNING", PyLong_FromUnsignedLongLong(SCRIPT_STATUS_RUNNING)); + result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_FLASH_MEM", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_FLASH_MEM)); + result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_INTERNAL_FLASH", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_INTERNAL_FLASH)); + result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_SDCARD", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_SDCARD)); + result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_VCAN3_MEM", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_VCAN3_MEM)); + result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_EMMC", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_EMMC)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CUSTOM", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CUSTOM)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CAN", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CAN)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_GMLAN", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_GMLAN)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_J1850VPW", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_J1850VPW)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_J1850PWM", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_J1850PWM)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_ISO9141", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_ISO9141)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_Keyword2000", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_Keyword2000)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_GM_ALDL_UART", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_GM_ALDL_UART)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CHRYSLER_CCD", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CHRYSLER_CCD)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CHRYSLER_SCI", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CHRYSLER_SCI)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_FORD_UBP", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_FORD_UBP)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_BEAN", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_BEAN)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_LIN", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_LIN)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_J1708", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_J1708)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CHRYSLER_JVPW", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CHRYSLER_JVPW)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_J1939", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_J1939)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_FLEXRAY", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_FLEXRAY)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_MOST", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_MOST)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CGI", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CGI)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_GME_CIM_SCL_KLINE", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_GME_CIM_SCL_KLINE)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_SPI", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_SPI)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_I2C", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_I2C)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_GENERIC_UART", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_GENERIC_UART)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_JTAG", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_JTAG)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_UNIO", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_UNIO)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_DALLAS_1WIRE", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_DALLAS_1WIRE)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_GENERIC_MANCHSESTER", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_GENERIC_MANCHSESTER)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_SENT_PROTOCOL", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_SENT_PROTOCOL)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_UART", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_UART)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_ETHERNET", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_ETHERNET)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CANFD", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CANFD)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_GMFSA", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_GMFSA)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_TCP", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_TCP)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_UDP", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_UDP)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_AUTOSAR", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_AUTOSAR)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_A2B", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_A2B)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_WBMS", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_WBMS)); + result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_MDIO", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_MDIO)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_HS_CAN_CNF1", PyLong_FromLongLong(NEO_CFG_MPIC_HS_CAN_CNF1)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_HS_CAN_CNF2", PyLong_FromLongLong(NEO_CFG_MPIC_HS_CAN_CNF2)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_HS_CAN_CNF3", PyLong_FromLongLong(NEO_CFG_MPIC_HS_CAN_CNF3)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_HS_CAN_MODE", PyLong_FromLongLong(NEO_CFG_MPIC_HS_CAN_MODE)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_MS_CAN_CNF1", PyLong_FromLongLong(NEO_CFG_MPIC_MS_CAN_CNF1)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_MS_CAN_CNF2", PyLong_FromLongLong(NEO_CFG_MPIC_MS_CAN_CNF2)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_MS_CAN_CNF3", PyLong_FromLongLong(NEO_CFG_MPIC_MS_CAN_CNF3)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_SW_CAN_CNF1", PyLong_FromLongLong(NEO_CFG_MPIC_SW_CAN_CNF1)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_SW_CAN_CNF2", PyLong_FromLongLong(NEO_CFG_MPIC_SW_CAN_CNF2)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_SW_CAN_CNF3", PyLong_FromLongLong(NEO_CFG_MPIC_SW_CAN_CNF3)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_LSFT_CAN_CNF1", PyLong_FromLongLong(NEO_CFG_MPIC_LSFT_CAN_CNF1)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_LSFT_CAN_CNF2", PyLong_FromLongLong(NEO_CFG_MPIC_LSFT_CAN_CNF2)); + result += PyModule_AddObjectRef(module, "NEO_CFG_MPIC_LSFT_CAN_CNF3", PyLong_FromLongLong(NEO_CFG_MPIC_LSFT_CAN_CNF3)); + result += PyModule_AddObjectRef(module, "NEOVI_TIMESTAMP_2", PyFloat_FromDouble(NEOVI_TIMESTAMP_2)); + result += PyModule_AddObjectRef(module, "NEOVI_TIMESTAMP_1", PyFloat_FromDouble(NEOVI_TIMESTAMP_1)); + result += PyModule_AddObjectRef(module, "NEOVIPRO_VCAN_TIMESTAMP_2", PyFloat_FromDouble(NEOVIPRO_VCAN_TIMESTAMP_2)); + result += PyModule_AddObjectRef(module, "NEOVIPRO_VCAN_TIMESTAMP_1", PyFloat_FromDouble(NEOVIPRO_VCAN_TIMESTAMP_1)); + result += PyModule_AddObjectRef(module, "NEOVI6_VCAN_TIMESTAMP_2", PyFloat_FromDouble(NEOVI6_VCAN_TIMESTAMP_2)); + result += PyModule_AddObjectRef(module, "NEOVI6_VCAN_TIMESTAMP_1", PyFloat_FromDouble(NEOVI6_VCAN_TIMESTAMP_1)); + result += PyModule_AddObjectRef(module, "NEOVI_RED_TIMESTAMP_2_25NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_2_25NS)); + result += PyModule_AddObjectRef(module, "NEOVI_RED_TIMESTAMP_1_25NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_1_25NS)); + result += PyModule_AddObjectRef(module, "NEOVI_RED_TIMESTAMP_2_10NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_2_10NS)); + result += PyModule_AddObjectRef(module, "NEOVI_RED_TIMESTAMP_1_10NS", PyFloat_FromDouble(NEOVI_RED_TIMESTAMP_1_10NS)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NONE", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NONE)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_VSI", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_VSI)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_AVT_716", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_AVT_716)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NI_CAN", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NI_CAN)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NEOVI", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NEOVI)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_AVT_717", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_AVT_717)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NEOv6_VCAN", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NEOv6_VCAN)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_DOUBLE_SEC", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_DOUBLE_SEC)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NEORED_10US", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NEORED_10US)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NEORED_25NS", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NEORED_25NS)); + result += PyModule_AddObjectRef(module, "HARDWARE_TIMESTAMP_ID_NEORED_10NS", PyLong_FromLongLong(HARDWARE_TIMESTAMP_ID_NEORED_10NS)); + result += PyModule_AddObjectRef(module, "HADRWARE_TIMESTAMP_ID_FIXED", PyLong_FromLongLong(HADRWARE_TIMESTAMP_ID_FIXED)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_PERIODIC", PyLong_FromLongLong(FIRE2_REPORT_PERIODIC)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_EMISC1_DIGITAL", PyLong_FromLongLong(FIRE2_REPORT_EMISC1_DIGITAL)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_EMISC2_DIGITAL", PyLong_FromLongLong(FIRE2_REPORT_EMISC2_DIGITAL)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_MISC5_DIGITAL", PyLong_FromLongLong(FIRE2_REPORT_MISC5_DIGITAL)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_MISC6_DIGITAL", PyLong_FromLongLong(FIRE2_REPORT_MISC6_DIGITAL)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_EMISC1_ANALOG", PyLong_FromLongLong(FIRE2_REPORT_EMISC1_ANALOG)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_EMISC2_ANALOG", PyLong_FromLongLong(FIRE2_REPORT_EMISC2_ANALOG)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_VBATT_ANALOG", PyLong_FromLongLong(FIRE2_REPORT_VBATT_ANALOG)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_TEMP_ANALOG", PyLong_FromLongLong(FIRE2_REPORT_TEMP_ANALOG)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_PWM_IN", PyLong_FromLongLong(FIRE2_REPORT_PWM_IN)); + result += PyModule_AddObjectRef(module, "FIRE2_REPORT_GPS", PyLong_FromLongLong(FIRE2_REPORT_GPS)); + result += PyModule_AddObjectRef(module, "FIRE3_REPORT_ORIENTATION", PyLong_FromLongLong(FIRE3_REPORT_ORIENTATION)); + result += PyModule_AddObjectRef(module, "CANNODE_STATUS_COREMINI_IS_RUNNING", PyLong_FromLongLong(CANNODE_STATUS_COREMINI_IS_RUNNING)); + result += PyModule_AddObjectRef(module, "CANNODE_STATUS_IN_BOOTLOADER", PyLong_FromLongLong(CANNODE_STATUS_IN_BOOTLOADER)); + result += PyModule_AddObjectRef(module, "MAIN_VNET", PyLong_FromLongLong(MAIN_VNET)); + result += PyModule_AddObjectRef(module, "SLAVE_VNET_A", PyLong_FromLongLong(SLAVE_VNET_A)); + result += PyModule_AddObjectRef(module, "SLAVE_VNET_B", PyLong_FromLongLong(SLAVE_VNET_B)); + result += PyModule_AddObjectRef(module, "WIFI_CONNECTION", PyLong_FromLongLong(WIFI_CONNECTION)); + result += PyModule_AddObjectRef(module, "REGISTER_BY_SERIAL", PyLong_FromLongLong(REGISTER_BY_SERIAL)); + result += PyModule_AddObjectRef(module, "TCP_SUPPORTED", PyLong_FromLongLong(TCP_SUPPORTED)); + result += PyModule_AddObjectRef(module, "DRIVER_MASK", PyLong_FromLongLong(DRIVER_MASK)); + result += PyModule_AddObjectRef(module, "DRIVER_USB1", PyLong_FromLongLong(DRIVER_USB1)); + result += PyModule_AddObjectRef(module, "DRIVER_USB2", PyLong_FromLongLong(DRIVER_USB2)); + result += PyModule_AddObjectRef(module, "DRIVER_USB3", PyLong_FromLongLong(DRIVER_USB3)); + result += PyModule_AddObjectRef(module, "SERVD_DRIVER_MASK", PyLong_FromLongLong(SERVD_DRIVER_MASK)); + result += PyModule_AddObjectRef(module, "SERVD_DRIVER_VCP", PyLong_FromLongLong(SERVD_DRIVER_VCP)); + result += PyModule_AddObjectRef(module, "SERVD_DRIVER_DXX", PyLong_FromLongLong(SERVD_DRIVER_DXX)); + result += PyModule_AddObjectRef(module, "SERVD_DRIVER_CAB", PyLong_FromLongLong(SERVD_DRIVER_CAB)); + result += PyModule_AddObjectRef(module, "SERVD_DRIVER_TCP", PyLong_FromLongLong(SERVD_DRIVER_TCP)); // enum - result += PyModule_AddIntMacro(module, AUTO); - result += PyModule_AddIntMacro(module, USE_TQ); + result += PyModule_AddObjectRef(module, "PHY_88Q211x_Z1", PyLong_FromLongLong(PHY_88Q211x_Z1)); + result += PyModule_AddObjectRef(module, "PHY_88Q211x_A0", PyLong_FromLongLong(PHY_88Q211x_A0)); + result += PyModule_AddObjectRef(module, "PHY_88Q211x_A1", PyLong_FromLongLong(PHY_88Q211x_A1)); + result += PyModule_AddObjectRef(module, "PHY_88Q211x_A2", PyLong_FromLongLong(PHY_88Q211x_A2)); + result += PyModule_AddObjectRef(module, "PHY_88Q222xM_A0", PyLong_FromLongLong(PHY_88Q222xM_A0)); + result += PyModule_AddObjectRef(module, "PHY_88Q222xM_B0", PyLong_FromLongLong(PHY_88Q222xM_B0)); + result += PyModule_AddObjectRef(module, "PHY_88Q222xM_B1", PyLong_FromLongLong(PHY_88Q222xM_B1)); + result += PyModule_AddObjectRef(module, "PHY_88Q222xM_B2", PyLong_FromLongLong(PHY_88Q222xM_B2)); + result += PyModule_AddObjectRef(module, "PHY_UNKNOWN", PyLong_FromLongLong(PHY_UNKNOWN)); + // end of enum - } PhyId; + + result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3", PyLong_FromLongLong(CMP_STREAMS_FIRE3)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3FR", PyLong_FromLongLong(CMP_STREAMS_FIRE3FR)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_RED2", PyLong_FromLongLong(CMP_STREAMS_RED2)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_A2B", PyLong_FromLongLong(CMP_STREAMS_A2B)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_GIGASTAR", PyLong_FromLongLong(CMP_STREAMS_GIGASTAR)); + // enum + result += PyModule_AddObjectRef(module, "AUTO", PyLong_FromLongLong(AUTO)); + result += PyModule_AddObjectRef(module, "USE_TQ", PyLong_FromLongLong(USE_TQ)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, BPS20); - result += PyModule_AddIntMacro(module, BPS33); - result += PyModule_AddIntMacro(module, BPS50); - result += PyModule_AddIntMacro(module, BPS62); - result += PyModule_AddIntMacro(module, BPS83); - result += PyModule_AddIntMacro(module, BPS100); - result += PyModule_AddIntMacro(module, BPS125); - result += PyModule_AddIntMacro(module, BPS250); - result += PyModule_AddIntMacro(module, BPS500); - result += PyModule_AddIntMacro(module, BPS800); - result += PyModule_AddIntMacro(module, BPS1000); - result += PyModule_AddIntMacro(module, BPS666); - result += PyModule_AddIntMacro(module, BPS2000); - result += PyModule_AddIntMacro(module, BPS4000); - result += PyModule_AddIntMacro(module, CAN_BPS5000); - result += PyModule_AddIntMacro(module, CAN_BPS6667); - result += PyModule_AddIntMacro(module, CAN_BPS8000); - result += PyModule_AddIntMacro(module, CAN_BPS10000); + result += PyModule_AddObjectRef(module, "BPS20", PyLong_FromLongLong(BPS20)); + result += PyModule_AddObjectRef(module, "BPS33", PyLong_FromLongLong(BPS33)); + result += PyModule_AddObjectRef(module, "BPS50", PyLong_FromLongLong(BPS50)); + result += PyModule_AddObjectRef(module, "BPS62", PyLong_FromLongLong(BPS62)); + result += PyModule_AddObjectRef(module, "BPS83", PyLong_FromLongLong(BPS83)); + result += PyModule_AddObjectRef(module, "BPS100", PyLong_FromLongLong(BPS100)); + result += PyModule_AddObjectRef(module, "BPS125", PyLong_FromLongLong(BPS125)); + result += PyModule_AddObjectRef(module, "BPS250", PyLong_FromLongLong(BPS250)); + result += PyModule_AddObjectRef(module, "BPS500", PyLong_FromLongLong(BPS500)); + result += PyModule_AddObjectRef(module, "BPS800", PyLong_FromLongLong(BPS800)); + result += PyModule_AddObjectRef(module, "BPS1000", PyLong_FromLongLong(BPS1000)); + result += PyModule_AddObjectRef(module, "BPS666", PyLong_FromLongLong(BPS666)); + result += PyModule_AddObjectRef(module, "BPS2000", PyLong_FromLongLong(BPS2000)); + result += PyModule_AddObjectRef(module, "BPS4000", PyLong_FromLongLong(BPS4000)); + result += PyModule_AddObjectRef(module, "CAN_BPS5000", PyLong_FromLongLong(CAN_BPS5000)); + result += PyModule_AddObjectRef(module, "CAN_BPS6667", PyLong_FromLongLong(CAN_BPS6667)); + result += PyModule_AddObjectRef(module, "CAN_BPS8000", PyLong_FromLongLong(CAN_BPS8000)); + result += PyModule_AddObjectRef(module, "CAN_BPS10000", PyLong_FromLongLong(CAN_BPS10000)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, NORMAL); - result += PyModule_AddIntMacro(module, DISABLE); - result += PyModule_AddIntMacro(module, LOOPBACK); - result += PyModule_AddIntMacro(module, LISTEN_ONLY); - result += PyModule_AddIntMacro(module, LISTEN_ALL); + result += PyModule_AddObjectRef(module, "NORMAL", PyLong_FromLongLong(NORMAL)); + result += PyModule_AddObjectRef(module, "DISABLE", PyLong_FromLongLong(DISABLE)); + result += PyModule_AddObjectRef(module, "LOOPBACK", PyLong_FromLongLong(LOOPBACK)); + result += PyModule_AddObjectRef(module, "LISTEN_ONLY", PyLong_FromLongLong(LISTEN_ONLY)); + result += PyModule_AddObjectRef(module, "LISTEN_ALL", PyLong_FromLongLong(LISTEN_ALL)); // end of enum - }; - result += PyModule_AddIntMacro(module, CAN_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "CAN_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(CAN_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, NO_CANFD); - result += PyModule_AddIntMacro(module, CANFD_ENABLED); - result += PyModule_AddIntMacro(module, CANFD_BRS_ENABLED); - result += PyModule_AddIntMacro(module, CANFD_ENABLED_ISO); - result += PyModule_AddIntMacro(module, CANFD_BRS_ENABLED_ISO); + result += PyModule_AddObjectRef(module, "NO_CANFD", PyLong_FromLongLong(NO_CANFD)); + result += PyModule_AddObjectRef(module, "CANFD_ENABLED", PyLong_FromLongLong(CANFD_ENABLED)); + result += PyModule_AddObjectRef(module, "CANFD_BRS_ENABLED", PyLong_FromLongLong(CANFD_BRS_ENABLED)); + result += PyModule_AddObjectRef(module, "CANFD_ENABLED_ISO", PyLong_FromLongLong(CANFD_ENABLED_ISO)); + result += PyModule_AddObjectRef(module, "CANFD_BRS_ENABLED_ISO", PyLong_FromLongLong(CANFD_BRS_ENABLED_ISO)); // end of enum - }; - result += PyModule_AddIntMacro(module, CANFD_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "CANFD_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(CANFD_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, SWCAN_AUTOSWITCH_DISABLED); - result += PyModule_AddIntMacro(module, SWCAN_AUTOSWITCH_NO_RESISTOR); - result += PyModule_AddIntMacro(module, SWCAN_AUTOSWITCH_WITH_RESISTOR); - result += PyModule_AddIntMacro(module, SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED); + result += PyModule_AddObjectRef(module, "SWCAN_AUTOSWITCH_DISABLED", PyLong_FromLongLong(SWCAN_AUTOSWITCH_DISABLED)); + result += PyModule_AddObjectRef(module, "SWCAN_AUTOSWITCH_NO_RESISTOR", PyLong_FromLongLong(SWCAN_AUTOSWITCH_NO_RESISTOR)); + result += PyModule_AddObjectRef(module, "SWCAN_AUTOSWITCH_WITH_RESISTOR", PyLong_FromLongLong(SWCAN_AUTOSWITCH_WITH_RESISTOR)); + result += PyModule_AddObjectRef(module, "SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED", PyLong_FromLongLong(SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED)); // end of enum - }; - result += PyModule_AddIntMacro(module, SWCAN_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "SWCAN_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(SWCAN_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, BPS5000); - result += PyModule_AddIntMacro(module, BPS10400); - result += PyModule_AddIntMacro(module, BPS33333); - result += PyModule_AddIntMacro(module, BPS50000); - result += PyModule_AddIntMacro(module, BPS62500); - result += PyModule_AddIntMacro(module, BPS71429); - result += PyModule_AddIntMacro(module, BPS83333); - result += PyModule_AddIntMacro(module, BPS100000); - result += PyModule_AddIntMacro(module, BPS117647); + result += PyModule_AddObjectRef(module, "BPS5000", PyLong_FromLongLong(BPS5000)); + result += PyModule_AddObjectRef(module, "BPS10400", PyLong_FromLongLong(BPS10400)); + result += PyModule_AddObjectRef(module, "BPS33333", PyLong_FromLongLong(BPS33333)); + result += PyModule_AddObjectRef(module, "BPS50000", PyLong_FromLongLong(BPS50000)); + result += PyModule_AddObjectRef(module, "BPS62500", PyLong_FromLongLong(BPS62500)); + result += PyModule_AddObjectRef(module, "BPS71429", PyLong_FromLongLong(BPS71429)); + result += PyModule_AddObjectRef(module, "BPS83333", PyLong_FromLongLong(BPS83333)); + result += PyModule_AddObjectRef(module, "BPS100000", PyLong_FromLongLong(BPS100000)); + result += PyModule_AddObjectRef(module, "BPS117647", PyLong_FromLongLong(BPS117647)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, RESISTOR_ON); - result += PyModule_AddIntMacro(module, RESISTOR_OFF); + result += PyModule_AddObjectRef(module, "RESISTOR_ON", PyLong_FromLongLong(RESISTOR_ON)); + result += PyModule_AddObjectRef(module, "RESISTOR_OFF", PyLong_FromLongLong(RESISTOR_OFF)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, SLEEP_MODE); - result += PyModule_AddIntMacro(module, SLOW_MODE); - result += PyModule_AddIntMacro(module, NORMAL_MODE); - result += PyModule_AddIntMacro(module, FAST_MODE); + result += PyModule_AddObjectRef(module, "SLEEP_MODE", PyLong_FromLongLong(SLEEP_MODE)); + result += PyModule_AddObjectRef(module, "SLOW_MODE", PyLong_FromLongLong(SLOW_MODE)); + result += PyModule_AddObjectRef(module, "NORMAL_MODE", PyLong_FromLongLong(NORMAL_MODE)); + result += PyModule_AddObjectRef(module, "FAST_MODE", PyLong_FromLongLong(FAST_MODE)); // end of enum - }; - result += PyModule_AddIntMacro(module, LIN_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, ISO9141_KEYWORD2000__INIT_STEP_SIZE); - result += PyModule_AddIntMacro(module, ISO9141_KEYWORD2000_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, UART_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, J1708_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, SRedSettings_SIZE); - result += PyModule_AddIntMacro(module, STextAPISettings_SIZE); - result += PyModule_AddIntMacro(module, stChipVersions_SIZE); - result += PyModule_AddIntMacro(module, SNeoMostGatewaySettings_SIZE); + result += PyModule_AddObjectRef(module, "LIN_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(LIN_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "ISO9141_KEYWORD2000__INIT_STEP_SIZE", PyLong_FromUnsignedLongLong(ISO9141_KEYWORD2000__INIT_STEP_SIZE)); + result += PyModule_AddObjectRef(module, "ISO9141_KEYWORD2000_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ISO9141_KEYWORD2000_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "UART_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(UART_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "J1708_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(J1708_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "SRedSettings_SIZE", PyLong_FromUnsignedLongLong(SRedSettings_SIZE)); + result += PyModule_AddObjectRef(module, "STextAPISettings_SIZE", PyLong_FromUnsignedLongLong(STextAPISettings_SIZE)); + result += PyModule_AddObjectRef(module, "stChipVersions_SIZE", PyLong_FromUnsignedLongLong(stChipVersions_SIZE)); + result += PyModule_AddObjectRef(module, "SNeoMostGatewaySettings_SIZE", PyLong_FromUnsignedLongLong(SNeoMostGatewaySettings_SIZE)); // enum - result += PyModule_AddIntMacro(module, OPETH_FUNC_TAP); - result += PyModule_AddIntMacro(module, OPETH_FUNC_MEDIACONVERTER); - result += PyModule_AddIntMacro(module, OPETH_FUNC_TAP_LOW_LATENCY); - result += PyModule_AddIntMacro(module, OPETH_FUNC_RAW_MEDIA_CONVERTER); - result += PyModule_AddIntMacro(module, OPETH_FUNC_RAW_MEDIA_CONVERTER2); - result += PyModule_AddIntMacro(module, OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY); + result += PyModule_AddObjectRef(module, "OPETH_FUNC_TAP", PyLong_FromLongLong(OPETH_FUNC_TAP)); + result += PyModule_AddObjectRef(module, "OPETH_FUNC_MEDIACONVERTER", PyLong_FromLongLong(OPETH_FUNC_MEDIACONVERTER)); + result += PyModule_AddObjectRef(module, "OPETH_FUNC_TAP_LOW_LATENCY", PyLong_FromLongLong(OPETH_FUNC_TAP_LOW_LATENCY)); + result += PyModule_AddObjectRef(module, "OPETH_FUNC_RAW_MEDIA_CONVERTER", PyLong_FromLongLong(OPETH_FUNC_RAW_MEDIA_CONVERTER)); + result += PyModule_AddObjectRef(module, "OPETH_FUNC_RAW_MEDIA_CONVERTER2", PyLong_FromLongLong(OPETH_FUNC_RAW_MEDIA_CONVERTER2)); + result += PyModule_AddObjectRef(module, "OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY", PyLong_FromLongLong(OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY)); // end of enum - }; - result += PyModule_AddIntMacro(module, OP_ETH_GENERAL_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, RAD_GPTP_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, RAD_GPTP_AND_TAP_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "OP_ETH_GENERAL_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(OP_ETH_GENERAL_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "RAD_GPTP_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(RAD_GPTP_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "RAD_GPTP_AND_TAP_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(RAD_GPTP_AND_TAP_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, OPETH_LINK_AUTO); - result += PyModule_AddIntMacro(module, OPETH_LINK_MASTER); - result += PyModule_AddIntMacro(module, OPETH_LINK_SLAVE); + result += PyModule_AddObjectRef(module, "OPETH_LINK_AUTO", PyLong_FromLongLong(OPETH_LINK_AUTO)); + result += PyModule_AddObjectRef(module, "OPETH_LINK_MASTER", PyLong_FromLongLong(OPETH_LINK_MASTER)); + result += PyModule_AddObjectRef(module, "OPETH_LINK_SLAVE", PyLong_FromLongLong(OPETH_LINK_SLAVE)); // end of enum - } opEthLinkMode; // enum - result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_DST_ADDR); - result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_SRC_ADDR); + result += PyModule_AddObjectRef(module, "OPETH_MAC_SPOOF_DST_ADDR", PyLong_FromLongLong(OPETH_MAC_SPOOF_DST_ADDR)); + result += PyModule_AddObjectRef(module, "OPETH_MAC_SPOOF_SRC_ADDR", PyLong_FromLongLong(OPETH_MAC_SPOOF_SRC_ADDR)); // end of enum - }; - result += PyModule_AddIntMacro(module, OP_ETH_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_AUTO_NEG); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_TCPIP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_RTSP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_DEVICE_HOSTING_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_CONFIG_NOT_ALLOWED); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_ICS_SFP); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG_COMM_IN_USE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_LINK_MODE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_PHY_MODE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE); + result += PyModule_AddObjectRef(module, "OP_ETH_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(OP_ETH_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ETHERNET_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_AUTO_NEG", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_AUTO_NEG)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_TCPIP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_TCPIP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_RTSP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_RTSP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_DEVICE_HOSTING_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_DEVICE_HOSTING_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_CONFIG_NOT_ALLOWED", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_CONFIG_NOT_ALLOWED)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_ICS_SFP", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_ICS_SFP)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG_COMM_IN_USE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG_COMM_IN_USE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_LINK_MODE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_LINK_MODE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_PHY_MODE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_PHY_MODE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT", PyLong_FromUnsignedLongLong(ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT", PyLong_FromUnsignedLongLong(ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_TAP_DEST_MASK", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_TAP_DEST_MASK)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_FLAG2_TC10_FWD_TAP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS2_FLAG2_TC10_FWD_TAP_ENABLE)); // enum - result += PyModule_AddIntMacro(module, SFP_ID_UNKNOWN); - result += PyModule_AddIntMacro(module, SFP_ID_FINISAR_FCLF8522P2BTL); - result += PyModule_AddIntMacro(module, SFP_ID_FS_GB_GE_T); - result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV2112A2); - result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV2221MB1); - result += PyModule_AddIntMacro(module, SFP_ID_ICS_MV3244); - result += PyModule_AddIntMacro(module, SFP_ID_ICS_MC8670); - result += PyModule_AddIntMacro(module, SFP_ID_ICS_EN11100); - result += PyModule_AddIntMacro(module, SFP_ID_MAX); + result += PyModule_AddObjectRef(module, "SFP_ID_UNKNOWN", PyLong_FromLongLong(SFP_ID_UNKNOWN)); + result += PyModule_AddObjectRef(module, "SFP_ID_FINISAR_FCLF8522P2BTL", PyLong_FromLongLong(SFP_ID_FINISAR_FCLF8522P2BTL)); + result += PyModule_AddObjectRef(module, "SFP_ID_FS_GB_GE_T", PyLong_FromLongLong(SFP_ID_FS_GB_GE_T)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MV2112A2", PyLong_FromLongLong(SFP_ID_ICS_MV2112A2)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MV2221MB1", PyLong_FromLongLong(SFP_ID_ICS_MV2221MB1)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MV3244", PyLong_FromLongLong(SFP_ID_ICS_MV3244)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MC8670", PyLong_FromLongLong(SFP_ID_ICS_MC8670)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_EN11100", PyLong_FromLongLong(SFP_ID_ICS_EN11100)); + result += PyModule_AddObjectRef(module, "SFP_ID_MAX", PyLong_FromLongLong(SFP_ID_MAX)); // end of enum - } SfpId; - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_SIZE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_AUTO_NEG); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_ICS_SFP); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_LINK_MODE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PHY_MODE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_COMPL_MODE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PKT_CHECK); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_PKT_GEN); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_TCP_COMM_STATIC_PORT_ENABLE); - result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE); - result += PyModule_AddIntMacro(module, ETHERNET10G_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_TERMINATION); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK); - result += PyModule_AddIntMacro(module, ETHERNET10T1S_SETTINGS_EXT_SIZE); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS2_SIZE", PyLong_FromUnsignedLongLong(ETHERNET_SETTINGS2_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_AUTO_NEG", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_AUTO_NEG)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_ICS_SFP", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_ICS_SFP)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_LINK_MODE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_LINK_MODE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_PHY_MODE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_PHY_MODE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_COMPL_MODE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_COMPL_MODE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_PKT_CHECK", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_PKT_CHECK)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_PKT_GEN", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_PKT_GEN)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_TCP_COMM_STATIC_PORT_ENABLE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_TCP_COMM_STATIC_PORT_ENABLE)); + result += PyModule_AddObjectRef(module, "ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE", PyLong_FromLongLong(ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE)); + result += PyModule_AddObjectRef(module, "ETHERNET10G_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10G_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10T1S_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_TERMINATION", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_TERMINATION)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_EXT_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10T1S_SETTINGS_EXT_SIZE)); // enum - result += PyModule_AddIntMacro(module, MACSEC_PACKET_NO_VLAN_OR_MPLS); - result += PyModule_AddIntMacro(module, MACSEC_PACKET_SINGLE_VLAN); - result += PyModule_AddIntMacro(module, MACSEC_PACKET_DUAL_VLAN); - result += PyModule_AddIntMacro(module, MACSEC_PACKET_MPLS); - result += PyModule_AddIntMacro(module, MACSEC_PACKET_SINGLE_VLAN_FOLLOW_BY_MPLS); - result += PyModule_AddIntMacro(module, MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS); - result += PyModule_AddIntMacro(module, MACSEC_PACKET_UNSUPPORTED_TYPE); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_NO_VLAN_OR_MPLS", PyLong_FromLongLong(MACSEC_PACKET_NO_VLAN_OR_MPLS)); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_SINGLE_VLAN", PyLong_FromLongLong(MACSEC_PACKET_SINGLE_VLAN)); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_DUAL_VLAN", PyLong_FromLongLong(MACSEC_PACKET_DUAL_VLAN)); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_MPLS", PyLong_FromLongLong(MACSEC_PACKET_MPLS)); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_SINGLE_VLAN_FOLLOW_BY_MPLS", PyLong_FromLongLong(MACSEC_PACKET_SINGLE_VLAN_FOLLOW_BY_MPLS)); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS", PyLong_FromLongLong(MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS)); + result += PyModule_AddObjectRef(module, "MACSEC_PACKET_UNSUPPORTED_TYPE", PyLong_FromLongLong(MACSEC_PACKET_UNSUPPORTED_TYPE)); // end of enum - } MACSEC_PACKET_TYPE; - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_RULE_SIZE); - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_MAP_SIZE); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_RULE_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_RULE_SIZE)); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_MAP_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_MAP_SIZE)); // enum - result += PyModule_AddIntMacro(module, MACSEC_VF_DISABLED); - result += PyModule_AddIntMacro(module, MACSEC_VF_CHECK); - result += PyModule_AddIntMacro(module, MACSEC_VF_STRICT); - result += PyModule_AddIntMacro(module, MACSEC_VF_NA); + result += PyModule_AddObjectRef(module, "MACSEC_VF_DISABLED", PyLong_FromLongLong(MACSEC_VF_DISABLED)); + result += PyModule_AddObjectRef(module, "MACSEC_VF_CHECK", PyLong_FromLongLong(MACSEC_VF_CHECK)); + result += PyModule_AddObjectRef(module, "MACSEC_VF_STRICT", PyLong_FromLongLong(MACSEC_VF_STRICT)); + result += PyModule_AddObjectRef(module, "MACSEC_VF_NA", PyLong_FromLongLong(MACSEC_VF_NA)); // end of enum - } MACSEC_VALIDATEFRAME; // enum - result += PyModule_AddIntMacro(module, MACSEC_SECTAG_ICV_BOTH_STRIP); - result += PyModule_AddIntMacro(module, MACSEC_SECTAG_ICV_RESERVED); - result += PyModule_AddIntMacro(module, MACSEC_SECTAG_ICV_STRIP_ICV_ONLY); - result += PyModule_AddIntMacro(module, MACSEC_SECTAG_ICV_NO_STRIP); + result += PyModule_AddObjectRef(module, "MACSEC_SECTAG_ICV_BOTH_STRIP", PyLong_FromLongLong(MACSEC_SECTAG_ICV_BOTH_STRIP)); + result += PyModule_AddObjectRef(module, "MACSEC_SECTAG_ICV_RESERVED", PyLong_FromLongLong(MACSEC_SECTAG_ICV_RESERVED)); + result += PyModule_AddObjectRef(module, "MACSEC_SECTAG_ICV_STRIP_ICV_ONLY", PyLong_FromLongLong(MACSEC_SECTAG_ICV_STRIP_ICV_ONLY)); + result += PyModule_AddObjectRef(module, "MACSEC_SECTAG_ICV_NO_STRIP", PyLong_FromLongLong(MACSEC_SECTAG_ICV_NO_STRIP)); // end of enum - } MACSEC_STRIP_SECTAG_ICV; // enum - result += PyModule_AddIntMacro(module, MACSEC_CIPHER_GCM_AES_128); - result += PyModule_AddIntMacro(module, MACSEC_CIPHER_GCM_AES_256); - result += PyModule_AddIntMacro(module, MACSEC_CIPHER_GCM_AES_128_XPN); - result += PyModule_AddIntMacro(module, MACSEC_CIPHER_GCM_AES_256_XPN); + result += PyModule_AddObjectRef(module, "MACSEC_CIPHER_GCM_AES_128", PyLong_FromLongLong(MACSEC_CIPHER_GCM_AES_128)); + result += PyModule_AddObjectRef(module, "MACSEC_CIPHER_GCM_AES_256", PyLong_FromLongLong(MACSEC_CIPHER_GCM_AES_256)); + result += PyModule_AddObjectRef(module, "MACSEC_CIPHER_GCM_AES_128_XPN", PyLong_FromLongLong(MACSEC_CIPHER_GCM_AES_128_XPN)); + result += PyModule_AddObjectRef(module, "MACSEC_CIPHER_GCM_AES_256_XPN", PyLong_FromLongLong(MACSEC_CIPHER_GCM_AES_256_XPN)); // end of enum - } MACSEC_CIPHER_SUITE; - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_SECY_SIZE); - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_SC_SIZE); - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_SA_SIZE); - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_FLAGS_SIZE); - result += PyModule_AddIntMacro(module, MACSEC_NUM_FLAGS_PER_CONFIG); - result += PyModule_AddIntMacro(module, MACSEC_NUM_RULES_PER_CONFIG); - result += PyModule_AddIntMacro(module, MACSEC_NUM_MAPS_PER_CONFIG); - result += PyModule_AddIntMacro(module, MACSEC_NUM_SECY_PER_CONFIG); - result += PyModule_AddIntMacro(module, MACSEC_NUM_SC_PER_CONFIG); - result += PyModule_AddIntMacro(module, MACSEC_NUM_SA_PER_CONFIG); - result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, LOGGER_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, DISK_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, CANTERM_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, TIMESYNC_ICSHARDWARE_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_SECY_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_SECY_SIZE)); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_SC_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_SC_SIZE)); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_SA_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_SA_SIZE)); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_FLAGS_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_FLAGS_SIZE)); + result += PyModule_AddObjectRef(module, "MACSEC_NUM_FLAGS_PER_CONFIG", PyLong_FromLongLong(MACSEC_NUM_FLAGS_PER_CONFIG)); + result += PyModule_AddObjectRef(module, "MACSEC_NUM_RULES_PER_CONFIG", PyLong_FromLongLong(MACSEC_NUM_RULES_PER_CONFIG)); + result += PyModule_AddObjectRef(module, "MACSEC_NUM_MAPS_PER_CONFIG", PyLong_FromLongLong(MACSEC_NUM_MAPS_PER_CONFIG)); + result += PyModule_AddObjectRef(module, "MACSEC_NUM_SECY_PER_CONFIG", PyLong_FromLongLong(MACSEC_NUM_SECY_PER_CONFIG)); + result += PyModule_AddObjectRef(module, "MACSEC_NUM_SC_PER_CONFIG", PyLong_FromLongLong(MACSEC_NUM_SC_PER_CONFIG)); + result += PyModule_AddObjectRef(module, "MACSEC_NUM_SA_PER_CONFIG", PyLong_FromLongLong(MACSEC_NUM_SA_PER_CONFIG)); + result += PyModule_AddObjectRef(module, "MACSEC_SETTINGS_SIZE", PyLong_FromLongLong(MACSEC_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "LOGGER_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(LOGGER_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "DISK_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(DISK_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "CANTERM_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(CANTERM_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "TIMESYNC_ICSHARDWARE_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(TIMESYNC_ICSHARDWARE_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, DiskFormatUnknown); - result += PyModule_AddIntMacro(module, DiskFormatFAT32); - result += PyModule_AddIntMacro(module, DiskFormatexFAT); + result += PyModule_AddObjectRef(module, "DiskFormatUnknown", PyLong_FromLongLong(DiskFormatUnknown)); + result += PyModule_AddObjectRef(module, "DiskFormatFAT32", PyLong_FromLongLong(DiskFormatFAT32)); + result += PyModule_AddObjectRef(module, "DiskFormatexFAT", PyLong_FromLongLong(DiskFormatexFAT)); // end of enum - } EDiskFormat; // enum - result += PyModule_AddIntMacro(module, DiskLayoutSpanned); - result += PyModule_AddIntMacro(module, DiskLayoutRAID0); - result += PyModule_AddIntMacro(module, DiskLayoutRAID1); - result += PyModule_AddIntMacro(module, DiskLayoutRAID5); - result += PyModule_AddIntMacro(module, DiskLayoutIndividual); + result += PyModule_AddObjectRef(module, "DiskLayoutSpanned", PyLong_FromLongLong(DiskLayoutSpanned)); + result += PyModule_AddObjectRef(module, "DiskLayoutRAID0", PyLong_FromLongLong(DiskLayoutRAID0)); + result += PyModule_AddObjectRef(module, "DiskLayoutRAID1", PyLong_FromLongLong(DiskLayoutRAID1)); + result += PyModule_AddObjectRef(module, "DiskLayoutRAID5", PyLong_FromLongLong(DiskLayoutRAID5)); + result += PyModule_AddObjectRef(module, "DiskLayoutIndividual", PyLong_FromLongLong(DiskLayoutIndividual)); // end of enum - } EDiskLayout; - result += PyModule_AddIntMacro(module, DISK_STATUS_FLAG_PRESENT); - result += PyModule_AddIntMacro(module, DISK_STATUS_FLAG_INITIALIZED); - result += PyModule_AddIntMacro(module, SDiskStatus_SIZE); - result += PyModule_AddIntMacro(module, DISK_STRUCTURE_FLAG_FULL_FORMAT); - result += PyModule_AddIntMacro(module, SDiskStructure_SIZE); - result += PyModule_AddIntMacro(module, SDiskDetails_SIZE); - result += PyModule_AddIntMacro(module, SDiskFormatProgress_SIZE); + result += PyModule_AddObjectRef(module, "DISK_STATUS_FLAG_PRESENT", PyLong_FromLongLong(DISK_STATUS_FLAG_PRESENT)); + result += PyModule_AddObjectRef(module, "DISK_STATUS_FLAG_INITIALIZED", PyLong_FromLongLong(DISK_STATUS_FLAG_INITIALIZED)); + result += PyModule_AddObjectRef(module, "SDiskStatus_SIZE", PyLong_FromUnsignedLongLong(SDiskStatus_SIZE)); + result += PyModule_AddObjectRef(module, "DISK_STRUCTURE_FLAG_FULL_FORMAT", PyLong_FromLongLong(DISK_STRUCTURE_FLAG_FULL_FORMAT)); + result += PyModule_AddObjectRef(module, "SDiskStructure_SIZE", PyLong_FromUnsignedLongLong(SDiskStructure_SIZE)); + result += PyModule_AddObjectRef(module, "SDiskDetails_SIZE", PyLong_FromUnsignedLongLong(SDiskDetails_SIZE)); + result += PyModule_AddObjectRef(module, "SDiskFormatProgress_SIZE", PyLong_FromUnsignedLongLong(SDiskFormatProgress_SIZE)); // enum - result += PyModule_AddIntMacro(module, EXTENDED_RESPONSE_OK); - result += PyModule_AddIntMacro(module, EXTENDED_RESPONSE_INVALID_COMMAND); - result += PyModule_AddIntMacro(module, EXTENDED_RESPONSE_INVALID_STATE); - result += PyModule_AddIntMacro(module, EXTENDED_RESPONSE_OPERATION_FAILED); - result += PyModule_AddIntMacro(module, EXTENDED_RESPONSE_OPERATION_PENDING); - result += PyModule_AddIntMacro(module, EXTENDED_RESPONSE_INVALID_PARAMETER); + result += PyModule_AddObjectRef(module, "EXTENDED_RESPONSE_OK", PyLong_FromLongLong(EXTENDED_RESPONSE_OK)); + result += PyModule_AddObjectRef(module, "EXTENDED_RESPONSE_INVALID_COMMAND", PyLong_FromLongLong(EXTENDED_RESPONSE_INVALID_COMMAND)); + result += PyModule_AddObjectRef(module, "EXTENDED_RESPONSE_INVALID_STATE", PyLong_FromLongLong(EXTENDED_RESPONSE_INVALID_STATE)); + result += PyModule_AddObjectRef(module, "EXTENDED_RESPONSE_OPERATION_FAILED", PyLong_FromLongLong(EXTENDED_RESPONSE_OPERATION_FAILED)); + result += PyModule_AddObjectRef(module, "EXTENDED_RESPONSE_OPERATION_PENDING", PyLong_FromLongLong(EXTENDED_RESPONSE_OPERATION_PENDING)); + result += PyModule_AddObjectRef(module, "EXTENDED_RESPONSE_INVALID_PARAMETER", PyLong_FromLongLong(EXTENDED_RESPONSE_INVALID_PARAMETER)); // end of enum - } ExtendedResponseCode; - result += PyModule_AddIntMacro(module, GENERIC_API_DATA_BUFFER_SIZE); - result += PyModule_AddIntMacro(module, GET_SUPPORTED_FEATURES_COMMAND_VERSION); - result += PyModule_AddIntMacro(module, MAX_REPORTED_VERSIONS); - // enum - result += PyModule_AddIntMacro(module, swUpdateWrite); - result += PyModule_AddIntMacro(module, swUpdateErase); - result += PyModule_AddIntMacro(module, swUpdateGetProgress); - result += PyModule_AddIntMacro(module, swUpdateValidateAll); - result += PyModule_AddIntMacro(module, swUpdateGetBufferSize); - result += PyModule_AddIntMacro(module, swUpdateCheckHostVersion); - result += PyModule_AddIntMacro(module, swUpdateValidateComponent); - result += PyModule_AddIntMacro(module, swUpdateFinalize); - result += PyModule_AddIntMacro(module, swUpdateGetCommunicationVersion); - result += PyModule_AddIntMacro(module, swUpdateCheckFwVersion); - // end of enum - }; - - result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); - result += PyModule_AddIntMacro(module, MACADDR_LEN); - result += PyModule_AddIntMacro(module, MULTI_MACADDR_CNT); - result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY); - result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_OVERSIZE); - result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY); - result += PyModule_AddIntMacro(module, GENERIC_BINARY_STATUS_ERROR_ANY_MASK); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_AUTO_DET_RES_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_CONFIG_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_LOGGING_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_TX0_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_TX1_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_TX2_ENABLE); - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_TX3_ENABLE); + result += PyModule_AddObjectRef(module, "GENERIC_API_DATA_BUFFER_SIZE", PyLong_FromUnsignedLongLong(GENERIC_API_DATA_BUFFER_SIZE)); + result += PyModule_AddObjectRef(module, "MACADDR_LEN", PyLong_FromUnsignedLongLong(MACADDR_LEN)); + result += PyModule_AddObjectRef(module, "MULTI_MACADDR_CNT", PyLong_FromUnsignedLongLong(MULTI_MACADDR_CNT)); + result += PyModule_AddObjectRef(module, "GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY", PyLong_FromLongLong(GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY)); + result += PyModule_AddObjectRef(module, "GENERIC_BINARY_STATUS_ERROR_OVERSIZE", PyLong_FromLongLong(GENERIC_BINARY_STATUS_ERROR_OVERSIZE)); + result += PyModule_AddObjectRef(module, "GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY", PyLong_FromLongLong(GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY)); + result += PyModule_AddObjectRef(module, "GENERIC_BINARY_STATUS_ERROR_ANY_MASK", PyLong_FromLongLong(GENERIC_BINARY_STATUS_ERROR_ANY_MASK)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_AUTO_DET_RES_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_AUTO_DET_RES_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_CONFIG_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_CONFIG_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_LOGGING_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_LOGGING_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_TX0_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_TX0_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_TX1_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_TX1_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_TX2_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_TX2_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_FLAG_TX3_ENABLE", PyLong_FromLongLong(SERDESCAM_SETTINGS_FLAG_TX3_ENABLE)); // enum - result += PyModule_AddIntMacro(module, SERDESCAM_MODE_TAP_REPEATER); - result += PyModule_AddIntMacro(module, SERDESCAM_MODE_SPLITTER); - result += PyModule_AddIntMacro(module, SERDESCAM_MODE_LOG_ONLY); - result += PyModule_AddIntMacro(module, SERDESCAM_MODE_CUSTOM); - result += PyModule_AddIntMacro(module, SERDESCAM_MODE_COUNT); + result += PyModule_AddObjectRef(module, "SERDESCAM_MODE_TAP_REPEATER", PyLong_FromLongLong(SERDESCAM_MODE_TAP_REPEATER)); + result += PyModule_AddObjectRef(module, "SERDESCAM_MODE_SPLITTER", PyLong_FromLongLong(SERDESCAM_MODE_SPLITTER)); + result += PyModule_AddObjectRef(module, "SERDESCAM_MODE_LOG_ONLY", PyLong_FromLongLong(SERDESCAM_MODE_LOG_ONLY)); + result += PyModule_AddObjectRef(module, "SERDESCAM_MODE_CUSTOM", PyLong_FromLongLong(SERDESCAM_MODE_CUSTOM)); + result += PyModule_AddObjectRef(module, "SERDESCAM_MODE_COUNT", PyLong_FromLongLong(SERDESCAM_MODE_COUNT)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, SERDESCAM_PIXEL_BIT_POS_0); - result += PyModule_AddIntMacro(module, SERDESCAM_PIXEL_BIT_POS_1); - result += PyModule_AddIntMacro(module, SERDESCAM_PIXEL_BIT_POS_2); - result += PyModule_AddIntMacro(module, SERDESCAM_PIXEL_BIT_POS_3); + result += PyModule_AddObjectRef(module, "SERDESCAM_PIXEL_BIT_POS_0", PyLong_FromLongLong(SERDESCAM_PIXEL_BIT_POS_0)); + result += PyModule_AddObjectRef(module, "SERDESCAM_PIXEL_BIT_POS_1", PyLong_FromLongLong(SERDESCAM_PIXEL_BIT_POS_1)); + result += PyModule_AddObjectRef(module, "SERDESCAM_PIXEL_BIT_POS_2", PyLong_FromLongLong(SERDESCAM_PIXEL_BIT_POS_2)); + result += PyModule_AddObjectRef(module, "SERDESCAM_PIXEL_BIT_POS_3", PyLong_FromLongLong(SERDESCAM_PIXEL_BIT_POS_3)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_NONE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_UYVY_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YUYV_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YVYU_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_VYUY_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_10); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_12); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_16); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_20); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_24); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_30); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_32); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_36); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RGB888); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_JPEG); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RGB565); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RGB666); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_11x2); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_12x2); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_RAW_14); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RGB565); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RGB666); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RGB888); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_11x2); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12x2); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_14); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_36); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_8); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED); - result += PyModule_AddIntMacro(module, SERDESCAM_VIDEO_FORMAT_COUNT); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_NONE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_NONE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_UYVY_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_UYVY_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YUYV_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YUYV_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YVYU_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YVYU_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_VYUY_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_VYUY_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_10", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_10)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_12", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_12)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_16", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_16)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_20", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_20)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_24", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_24)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_30", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_30)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_32", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_32)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_36", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_36)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RGB888", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RGB888)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_UYVY_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YUYV_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YVYU_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_VYUY_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16LE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_BGGR_16BE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_JPEG", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_JPEG)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_UYVY_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YUYV_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YVYU_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_VYUY_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YUV422_10LE_PLANAR)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_YUV422_16LE_PLANAR)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RGB565", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RGB565)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RGB666", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RGB666)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_11x2", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_11x2)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_12x2", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_12x2)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_RAW_14", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_RAW_14)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_UYVY_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_YUYV_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_YVYU_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_VYUY_422_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RGB565", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RGB565)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RGB666", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RGB666)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RGB888", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RGB888)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_BGGR_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_10)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_11x2", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_11x2)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12x2", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_12x2)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_14", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_14)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_16)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_20)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_24)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_RAW_36", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_RAW_36)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16LE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_RGGB_16BE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16LE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_16BE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16LE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_16BE)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_8", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_8)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED)); + result += PyModule_AddObjectRef(module, "SERDESCAM_VIDEO_FORMAT_COUNT", PyLong_FromLongLong(SERDESCAM_VIDEO_FORMAT_COUNT)); // end of enum - }; - result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, SERDESPOC_SETTINGS_MODE_DISABLED); - result += PyModule_AddIntMacro(module, SERDESPOC_SETTINGS_MODE_SUPPLY); - result += PyModule_AddIntMacro(module, SERDESPOC_SETTINGS_MODE_SERIALIZER); - result += PyModule_AddIntMacro(module, SERDESPOC_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "SERDESCAM_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(SERDESCAM_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "SERDESPOC_SETTINGS_MODE_DISABLED", PyLong_FromLongLong(SERDESPOC_SETTINGS_MODE_DISABLED)); + result += PyModule_AddObjectRef(module, "SERDESPOC_SETTINGS_MODE_SUPPLY", PyLong_FromLongLong(SERDESPOC_SETTINGS_MODE_SUPPLY)); + result += PyModule_AddObjectRef(module, "SERDESPOC_SETTINGS_MODE_SERIALIZER", PyLong_FromLongLong(SERDESPOC_SETTINGS_MODE_SERIALIZER)); + result += PyModule_AddObjectRef(module, "SERDESPOC_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(SERDESPOC_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, SERDESGEN_MOD_ID_NONE); - result += PyModule_AddIntMacro(module, SERDESGEN_MOD_ID_FPD3_2x2); - result += PyModule_AddIntMacro(module, SERDESGEN_MOD_ID_GMSL2_2x2); - result += PyModule_AddIntMacro(module, SERDESGEN_MOD_ID_GMSL1_4x4); - result += PyModule_AddIntMacro(module, SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2); - result += PyModule_AddIntMacro(module, SERDESGEN_MOD_ID_UNKNOWN); + result += PyModule_AddObjectRef(module, "SERDESGEN_MOD_ID_NONE", PyLong_FromLongLong(SERDESGEN_MOD_ID_NONE)); + result += PyModule_AddObjectRef(module, "SERDESGEN_MOD_ID_FPD3_2x2", PyLong_FromLongLong(SERDESGEN_MOD_ID_FPD3_2x2)); + result += PyModule_AddObjectRef(module, "SERDESGEN_MOD_ID_GMSL2_2x2", PyLong_FromLongLong(SERDESGEN_MOD_ID_GMSL2_2x2)); + result += PyModule_AddObjectRef(module, "SERDESGEN_MOD_ID_GMSL1_4x4", PyLong_FromLongLong(SERDESGEN_MOD_ID_GMSL1_4x4)); + result += PyModule_AddObjectRef(module, "SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2", PyLong_FromLongLong(SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2)); + result += PyModule_AddObjectRef(module, "SERDESGEN_MOD_ID_UNKNOWN", PyLong_FromLongLong(SERDESGEN_MOD_ID_UNKNOWN)); // end of enum - }; - result += PyModule_AddIntMacro(module, SERDESGEN_SETTINGS_FLAG_TX_PATGEN_ENABLE); - result += PyModule_AddIntMacro(module, SERDESGEN_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, RADMOONDUO_CONVERTER_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_AIN1); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE); - result += PyModule_AddIntMacro(module, RAD_REPORTING_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "SERDESGEN_SETTINGS_FLAG_TX_PATGEN_ENABLE", PyLong_FromLongLong(SERDESGEN_SETTINGS_FLAG_TX_PATGEN_ENABLE)); + result += PyModule_AddObjectRef(module, "SERDESGEN_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(SERDESGEN_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_TEMP_ENABLE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_INT_GPS_ENABLE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_MIC2_GPS_ENABLE2)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_MISC1_DIN)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_MISC2_DIN)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_MISC1_PWMIN)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_AIN1", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_AIN1)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_FAN_SPEED_ENABLE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE", PyLong_FromLongLong(RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE)); + result += PyModule_AddObjectRef(module, "RAD_REPORTING_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(RAD_REPORTING_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, REPORT_ON_PERIODIC); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC1); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC2); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC3); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC4); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC5); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC6); - result += PyModule_AddIntMacro(module, REPORT_ON_LED1); - result += PyModule_AddIntMacro(module, REPORT_ON_LED2); - result += PyModule_AddIntMacro(module, REPORT_ON_KLINE); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC3_AIN); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC4_AIN); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC5_AIN); - result += PyModule_AddIntMacro(module, REPORT_ON_MISC6_AIN); - result += PyModule_AddIntMacro(module, REPORT_ON_GPS); + result += PyModule_AddObjectRef(module, "REPORT_ON_PERIODIC", PyLong_FromLongLong(REPORT_ON_PERIODIC)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC1", PyLong_FromLongLong(REPORT_ON_MISC1)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC2", PyLong_FromLongLong(REPORT_ON_MISC2)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC3", PyLong_FromLongLong(REPORT_ON_MISC3)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC4", PyLong_FromLongLong(REPORT_ON_MISC4)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC5", PyLong_FromLongLong(REPORT_ON_MISC5)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC6", PyLong_FromLongLong(REPORT_ON_MISC6)); + result += PyModule_AddObjectRef(module, "REPORT_ON_LED1", PyLong_FromLongLong(REPORT_ON_LED1)); + result += PyModule_AddObjectRef(module, "REPORT_ON_LED2", PyLong_FromLongLong(REPORT_ON_LED2)); + result += PyModule_AddObjectRef(module, "REPORT_ON_KLINE", PyLong_FromLongLong(REPORT_ON_KLINE)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC3_AIN", PyLong_FromLongLong(REPORT_ON_MISC3_AIN)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC4_AIN", PyLong_FromLongLong(REPORT_ON_MISC4_AIN)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC5_AIN", PyLong_FromLongLong(REPORT_ON_MISC5_AIN)); + result += PyModule_AddObjectRef(module, "REPORT_ON_MISC6_AIN", PyLong_FromLongLong(REPORT_ON_MISC6_AIN)); + result += PyModule_AddObjectRef(module, "REPORT_ON_GPS", PyLong_FromLongLong(REPORT_ON_GPS)); // end of enum - }; - result += PyModule_AddIntMacro(module, VNETBITS_FEATURE_ANDROID_MSGS); - result += PyModule_AddIntMacro(module, SFireSettings_SIZE); - result += PyModule_AddIntMacro(module, VNETBITS_FEATURE_ANDROID_MSGS); - result += PyModule_AddIntMacro(module, VNETBITS_FEATURE_DISABLE_USB_CHECK); - result += PyModule_AddIntMacro(module, SFireVnetSettings_SIZE); - result += PyModule_AddIntMacro(module, SCyanSettings_SIZE); - result += PyModule_AddIntMacro(module, SVCAN3Settings_SIZE); - result += PyModule_AddIntMacro(module, SVCAN4Settings_SIZE); - result += PyModule_AddIntMacro(module, SECUSettings_SIZE); - result += PyModule_AddIntMacro(module, SPendantSettings_SIZE); - result += PyModule_AddIntMacro(module, SIEVBSettings_SIZE); - result += PyModule_AddIntMacro(module, SEEVBSettings_SIZE); + result += PyModule_AddObjectRef(module, "VNETBITS_FEATURE_ANDROID_MSGS", PyLong_FromLongLong(VNETBITS_FEATURE_ANDROID_MSGS)); + result += PyModule_AddObjectRef(module, "SFireSettings_SIZE", PyLong_FromUnsignedLongLong(SFireSettings_SIZE)); + result += PyModule_AddObjectRef(module, "VNETBITS_FEATURE_ANDROID_MSGS", PyLong_FromLongLong(VNETBITS_FEATURE_ANDROID_MSGS)); + result += PyModule_AddObjectRef(module, "VNETBITS_FEATURE_DISABLE_USB_CHECK", PyLong_FromLongLong(VNETBITS_FEATURE_DISABLE_USB_CHECK)); + result += PyModule_AddObjectRef(module, "SFireVnetSettings_SIZE", PyLong_FromUnsignedLongLong(SFireVnetSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SCyanSettings_SIZE", PyLong_FromUnsignedLongLong(SCyanSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SVCAN3Settings_SIZE", PyLong_FromUnsignedLongLong(SVCAN3Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SVCAN4Settings_SIZE", PyLong_FromUnsignedLongLong(SVCAN4Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SECUSettings_SIZE", PyLong_FromUnsignedLongLong(SECUSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SPendantSettings_SIZE", PyLong_FromUnsignedLongLong(SPendantSettings_SIZE)); // enum - result += PyModule_AddIntMacro(module, ePortDisabled); - result += PyModule_AddIntMacro(module, ePortOpEth1); - result += PyModule_AddIntMacro(module, ePortOpEth2); - result += PyModule_AddIntMacro(module, ePortOpEth3); - result += PyModule_AddIntMacro(module, ePortOpEth4); - result += PyModule_AddIntMacro(module, ePortOpEth5); - result += PyModule_AddIntMacro(module, ePortOpEth6); - result += PyModule_AddIntMacro(module, ePortOpEth7); - result += PyModule_AddIntMacro(module, ePortOpEth8); - result += PyModule_AddIntMacro(module, ePortOpEth9); - result += PyModule_AddIntMacro(module, ePortOpEth10); - result += PyModule_AddIntMacro(module, ePortOpEth11); - result += PyModule_AddIntMacro(module, ePortOpEth12); - result += PyModule_AddIntMacro(module, ePortStdEth1); - result += PyModule_AddIntMacro(module, ePortStdEth2); - result += PyModule_AddIntMacro(module, ePortStdEth3); - result += PyModule_AddIntMacro(module, ePortOpEth13); - result += PyModule_AddIntMacro(module, ePortOpEth14); - result += PyModule_AddIntMacro(module, ePortOpEth15); - result += PyModule_AddIntMacro(module, ePortOpEth16); + result += PyModule_AddObjectRef(module, "ePortDisabled", PyLong_FromLongLong(ePortDisabled)); + result += PyModule_AddObjectRef(module, "ePortOpEth1", PyLong_FromLongLong(ePortOpEth1)); + result += PyModule_AddObjectRef(module, "ePortOpEth2", PyLong_FromLongLong(ePortOpEth2)); + result += PyModule_AddObjectRef(module, "ePortOpEth3", PyLong_FromLongLong(ePortOpEth3)); + result += PyModule_AddObjectRef(module, "ePortOpEth4", PyLong_FromLongLong(ePortOpEth4)); + result += PyModule_AddObjectRef(module, "ePortOpEth5", PyLong_FromLongLong(ePortOpEth5)); + result += PyModule_AddObjectRef(module, "ePortOpEth6", PyLong_FromLongLong(ePortOpEth6)); + result += PyModule_AddObjectRef(module, "ePortOpEth7", PyLong_FromLongLong(ePortOpEth7)); + result += PyModule_AddObjectRef(module, "ePortOpEth8", PyLong_FromLongLong(ePortOpEth8)); + result += PyModule_AddObjectRef(module, "ePortOpEth9", PyLong_FromLongLong(ePortOpEth9)); + result += PyModule_AddObjectRef(module, "ePortOpEth10", PyLong_FromLongLong(ePortOpEth10)); + result += PyModule_AddObjectRef(module, "ePortOpEth11", PyLong_FromLongLong(ePortOpEth11)); + result += PyModule_AddObjectRef(module, "ePortOpEth12", PyLong_FromLongLong(ePortOpEth12)); + result += PyModule_AddObjectRef(module, "ePortStdEth1", PyLong_FromLongLong(ePortStdEth1)); + result += PyModule_AddObjectRef(module, "ePortStdEth2", PyLong_FromLongLong(ePortStdEth2)); + result += PyModule_AddObjectRef(module, "ePortStdEth3", PyLong_FromLongLong(ePortStdEth3)); + result += PyModule_AddObjectRef(module, "ePortOpEth13", PyLong_FromLongLong(ePortOpEth13)); + result += PyModule_AddObjectRef(module, "ePortOpEth14", PyLong_FromLongLong(ePortOpEth14)); + result += PyModule_AddObjectRef(module, "ePortOpEth15", PyLong_FromLongLong(ePortOpEth15)); + result += PyModule_AddObjectRef(module, "ePortOpEth16", PyLong_FromLongLong(ePortOpEth16)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, eRoleDisabled); - result += PyModule_AddIntMacro(module, eRolePassive); - result += PyModule_AddIntMacro(module, eRoleMaster); - result += PyModule_AddIntMacro(module, eRoleSlave); + result += PyModule_AddObjectRef(module, "eRoleDisabled", PyLong_FromLongLong(eRoleDisabled)); + result += PyModule_AddObjectRef(module, "eRolePassive", PyLong_FromLongLong(eRolePassive)); + result += PyModule_AddObjectRef(module, "eRoleMaster", PyLong_FromLongLong(eRoleMaster)); + result += PyModule_AddObjectRef(module, "eRoleSlave", PyLong_FromLongLong(eRoleSlave)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, eGPTP_PROFILE_STANDARD); - result += PyModule_AddIntMacro(module, eGPTP_PROFILE_AUTOMOTIVE); + result += PyModule_AddObjectRef(module, "eGPTP_PROFILE_STANDARD", PyLong_FromLongLong(eGPTP_PROFILE_STANDARD)); + result += PyModule_AddObjectRef(module, "eGPTP_PROFILE_AUTOMOTIVE", PyLong_FromLongLong(eGPTP_PROFILE_AUTOMOTIVE)); // end of enum - }; - result += PyModule_AddIntMacro(module, SRADGalaxySettings_SIZE); - result += PyModule_AddIntMacro(module, SRADStar2Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADSuperMoonSettings_SIZE); + result += PyModule_AddObjectRef(module, "SRADGalaxySettings_SIZE", PyLong_FromUnsignedLongLong(SRADGalaxySettings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADStar2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADStar2Settings_SIZE)); // enum - result += PyModule_AddIntMacro(module, tdmModeTDM2); - result += PyModule_AddIntMacro(module, tdmModeTDM4); - result += PyModule_AddIntMacro(module, tdmModeTDM8); - result += PyModule_AddIntMacro(module, tdmModeTDM12); - result += PyModule_AddIntMacro(module, tdmModeTDM16); - result += PyModule_AddIntMacro(module, tdmModeTDM20); - result += PyModule_AddIntMacro(module, tdmModeTDM24); - result += PyModule_AddIntMacro(module, tdmModeTDM32); + result += PyModule_AddObjectRef(module, "tdmModeTDM2", PyLong_FromLongLong(tdmModeTDM2)); + result += PyModule_AddObjectRef(module, "tdmModeTDM4", PyLong_FromLongLong(tdmModeTDM4)); + result += PyModule_AddObjectRef(module, "tdmModeTDM8", PyLong_FromLongLong(tdmModeTDM8)); + result += PyModule_AddObjectRef(module, "tdmModeTDM12", PyLong_FromLongLong(tdmModeTDM12)); + result += PyModule_AddObjectRef(module, "tdmModeTDM16", PyLong_FromLongLong(tdmModeTDM16)); + result += PyModule_AddObjectRef(module, "tdmModeTDM20", PyLong_FromLongLong(tdmModeTDM20)); + result += PyModule_AddObjectRef(module, "tdmModeTDM24", PyLong_FromLongLong(tdmModeTDM24)); + result += PyModule_AddObjectRef(module, "tdmModeTDM32", PyLong_FromLongLong(tdmModeTDM32)); // end of enum - } A2BTDMMode; // enum - result += PyModule_AddIntMacro(module, a2bNodeTypeMonitor); - result += PyModule_AddIntMacro(module, a2bNodeTypeMaster); - result += PyModule_AddIntMacro(module, a2bNodeTypeSlave); + result += PyModule_AddObjectRef(module, "a2bNodeTypeMonitor", PyLong_FromLongLong(a2bNodeTypeMonitor)); + result += PyModule_AddObjectRef(module, "a2bNodeTypeMaster", PyLong_FromLongLong(a2bNodeTypeMaster)); + result += PyModule_AddObjectRef(module, "a2bNodeTypeSlave", PyLong_FromLongLong(a2bNodeTypeSlave)); // end of enum - } A2BNodeType; - result += PyModule_AddIntMacro(module, A2B_SETTINGS_FLAG_16BIT); - result += PyModule_AddIntMacro(module, A2BMonitorSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADA2BSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADMoon2Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADMoon3Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADGigalogSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADGigastarSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADGalaxy2Settings_SIZE); - result += PyModule_AddIntMacro(module, SVividCANSettings_SIZE); - result += PyModule_AddIntMacro(module, SOBD2SimSettings_SIZE); - result += PyModule_AddIntMacro(module, CmProbeSettings_SIZE); - result += PyModule_AddIntMacro(module, OBD2ProSettings_SIZE); - result += PyModule_AddIntMacro(module, VCAN412Settings_SIZE); - result += PyModule_AddIntMacro(module, SVCAN412Settings_SIZE); - result += PyModule_AddIntMacro(module, ECU_AVBSettings_SIZE); - result += PyModule_AddIntMacro(module, PLUTO_NUM_PORTS); - result += PyModule_AddIntMacro(module, PLUTO_NUM_PRIORITY); - result += PyModule_AddIntMacro(module, PLUTO_MAX_L2_POLICING); - result += PyModule_AddIntMacro(module, PLUTO_MAX_L2_ADDRESS_LOOKUP); - result += PyModule_AddIntMacro(module, PLUTO_MAX_VLAN_LOOKUP); - result += PyModule_AddIntMacro(module, PLUTO_MAX_FORWARDING_ENTRIES); - result += PyModule_AddIntMacro(module, PLUTO_MAX_MAC_CONFIG_ENTRIES); - result += PyModule_AddIntMacro(module, PLUTO_MAX_RETAGGING_ENTRIES); - result += PyModule_AddIntMacro(module, MAX_VL_POLICING_ENTRIES); - result += PyModule_AddIntMacro(module, MAX_VL_FORWARDING_ENTRIES); - result += PyModule_AddIntMacro(module, gPTP_ROLE_DISABLED); - result += PyModule_AddIntMacro(module, gPTP_ROLE_PASSIVE); - result += PyModule_AddIntMacro(module, gPTP_ROLE_MASTER); - result += PyModule_AddIntMacro(module, gPTP_ROLE_SLAVE); - result += PyModule_AddIntMacro(module, gPTP_PROFILE_STANDARD); - result += PyModule_AddIntMacro(module, gPTP_PROFILE_AUTOMOTIVE); - result += PyModule_AddIntMacro(module, gPTP_PORT_DISABLED); - result += PyModule_AddIntMacro(module, gPTP_PORT_ENABLED); - result += PyModule_AddIntMacro(module, SPlutoSwitchSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADPlutoSettings_SIZE); - result += PyModule_AddIntMacro(module, CANHubSettings_SIZE); - result += PyModule_AddIntMacro(module, SFlexVnetzSettings_Size); + result += PyModule_AddObjectRef(module, "A2B_SETTINGS_FLAG_16BIT", PyLong_FromLongLong(A2B_SETTINGS_FLAG_16BIT)); + result += PyModule_AddObjectRef(module, "A2BMonitorSettings_SIZE", PyLong_FromUnsignedLongLong(A2BMonitorSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADA2BSettings_SIZE", PyLong_FromUnsignedLongLong(SRADA2BSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADMoon2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADMoon2Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADMoon3Settings_SIZE", PyLong_FromUnsignedLongLong(SRADMoon3Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADGigastarSettings_SIZE", PyLong_FromUnsignedLongLong(SRADGigastarSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADGalaxy2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADGalaxy2Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SVividCANSettings_SIZE", PyLong_FromUnsignedLongLong(SVividCANSettings_SIZE)); + result += PyModule_AddObjectRef(module, "VCAN412Settings_SIZE", PyLong_FromUnsignedLongLong(VCAN412Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SVCAN412Settings_SIZE", PyLong_FromLongLong(SVCAN412Settings_SIZE)); + result += PyModule_AddObjectRef(module, "gPTP_ROLE_DISABLED", PyLong_FromUnsignedLongLong(gPTP_ROLE_DISABLED)); + result += PyModule_AddObjectRef(module, "gPTP_ROLE_PASSIVE", PyLong_FromUnsignedLongLong(gPTP_ROLE_PASSIVE)); + result += PyModule_AddObjectRef(module, "gPTP_ROLE_MASTER", PyLong_FromUnsignedLongLong(gPTP_ROLE_MASTER)); + result += PyModule_AddObjectRef(module, "gPTP_ROLE_SLAVE", PyLong_FromUnsignedLongLong(gPTP_ROLE_SLAVE)); + result += PyModule_AddObjectRef(module, "gPTP_PROFILE_STANDARD", PyLong_FromUnsignedLongLong(gPTP_PROFILE_STANDARD)); + result += PyModule_AddObjectRef(module, "gPTP_PROFILE_AUTOMOTIVE", PyLong_FromUnsignedLongLong(gPTP_PROFILE_AUTOMOTIVE)); + result += PyModule_AddObjectRef(module, "gPTP_PORT_DISABLED", PyLong_FromUnsignedLongLong(gPTP_PORT_DISABLED)); + result += PyModule_AddObjectRef(module, "gPTP_PORT_ENABLED", PyLong_FromUnsignedLongLong(gPTP_PORT_ENABLED)); + result += PyModule_AddObjectRef(module, "CANHubSettings_SIZE", PyLong_FromUnsignedLongLong(CANHubSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SFlexVnetzSettings_Size", PyLong_FromLongLong(SFlexVnetzSettings_Size)); // enum - result += PyModule_AddIntMacro(module, flexVnetModeDisabled); - result += PyModule_AddIntMacro(module, flexVnetModeOneSingle); - result += PyModule_AddIntMacro(module, flexVnetModeOneDual); - result += PyModule_AddIntMacro(module, flexVnetModeTwoSingle); - result += PyModule_AddIntMacro(module, flexVnetModeColdStart); + result += PyModule_AddObjectRef(module, "flexVnetModeDisabled", PyLong_FromLongLong(flexVnetModeDisabled)); + result += PyModule_AddObjectRef(module, "flexVnetModeOneSingle", PyLong_FromLongLong(flexVnetModeOneSingle)); + result += PyModule_AddObjectRef(module, "flexVnetModeOneDual", PyLong_FromLongLong(flexVnetModeOneDual)); + result += PyModule_AddObjectRef(module, "flexVnetModeTwoSingle", PyLong_FromLongLong(flexVnetModeTwoSingle)); + result += PyModule_AddObjectRef(module, "flexVnetModeColdStart", PyLong_FromLongLong(flexVnetModeColdStart)); // end of enum - } flexVnetMode; - result += PyModule_AddIntMacro(module, SNeoECU12Settings_SIZE); - result += PyModule_AddIntMacro(module, VCAN4IndSettings_SIZE); - result += PyModule_AddIntMacro(module, OBD2LCSettings_SIZE); - result += PyModule_AddIntMacro(module, RADJUPITER_NUM_PORTS); - result += PyModule_AddIntMacro(module, SRADJupiterSettings_SIZE); - result += PyModule_AddIntMacro(module, LINUX_BOOT_ALLOWED); - result += PyModule_AddIntMacro(module, WIFI_ANTENNA_INTERNAL); - result += PyModule_AddIntMacro(module, WIFI_ANTENNA_EXTERNAL); - result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_NONE); - result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_ETH_01); - result += PyModule_AddIntMacro(module, LINUX_CONFIG_PORT_ETH_02); + result += PyModule_AddObjectRef(module, "SNeoECU12Settings_SIZE", PyLong_FromUnsignedLongLong(SNeoECU12Settings_SIZE)); + result += PyModule_AddObjectRef(module, "VCAN4IndSettings_SIZE", PyLong_FromLongLong(VCAN4IndSettings_SIZE)); + result += PyModule_AddObjectRef(module, "OBD2LCSettings_SIZE", PyLong_FromUnsignedLongLong(OBD2LCSettings_SIZE)); + result += PyModule_AddObjectRef(module, "RADJUPITER_NUM_PORTS", PyLong_FromUnsignedLongLong(RADJUPITER_NUM_PORTS)); + result += PyModule_AddObjectRef(module, "SRADJupiterSettings_SIZE", PyLong_FromUnsignedLongLong(SRADJupiterSettings_SIZE)); + result += PyModule_AddObjectRef(module, "LINUX_BOOT_ALLOWED", PyLong_FromLongLong(LINUX_BOOT_ALLOWED)); + result += PyModule_AddObjectRef(module, "WIFI_ANTENNA_INTERNAL", PyLong_FromLongLong(WIFI_ANTENNA_INTERNAL)); + result += PyModule_AddObjectRef(module, "WIFI_ANTENNA_EXTERNAL", PyLong_FromLongLong(WIFI_ANTENNA_EXTERNAL)); + result += PyModule_AddObjectRef(module, "LINUX_CONFIG_PORT_NONE", PyLong_FromLongLong(LINUX_CONFIG_PORT_NONE)); + result += PyModule_AddObjectRef(module, "LINUX_CONFIG_PORT_ETH_01", PyLong_FromLongLong(LINUX_CONFIG_PORT_ETH_01)); + result += PyModule_AddObjectRef(module, "LINUX_CONFIG_PORT_ETH_02", PyLong_FromLongLong(LINUX_CONFIG_PORT_ETH_02)); // enum - result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_OFF); - result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_AUTO); - result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_NTP_ONLY); - result += PyModule_AddIntMacro(module, NETWORK_TIMESYNC_GPS_ONLY); + result += PyModule_AddObjectRef(module, "NETWORK_TIMESYNC_OFF", PyLong_FromLongLong(NETWORK_TIMESYNC_OFF)); + result += PyModule_AddObjectRef(module, "NETWORK_TIMESYNC_AUTO", PyLong_FromLongLong(NETWORK_TIMESYNC_AUTO)); + result += PyModule_AddObjectRef(module, "NETWORK_TIMESYNC_NTP_ONLY", PyLong_FromLongLong(NETWORK_TIMESYNC_NTP_ONLY)); + result += PyModule_AddObjectRef(module, "NETWORK_TIMESYNC_GPS_ONLY", PyLong_FromLongLong(NETWORK_TIMESYNC_GPS_ONLY)); // end of enum - }; - result += PyModule_AddIntMacro(module, SRed2Settings_SIZE); - result += PyModule_AddIntMacro(module, SFire3Settings_SIZE); - result += PyModule_AddIntMacro(module, SFire3FlexraySettings_SIZE); - result += PyModule_AddIntMacro(module, RadMoonDuoSettings_SIZE); - result += PyModule_AddIntMacro(module, SEtherBadgeSettings_SIZE); - result += PyModule_AddIntMacro(module, RADEPSILON_NUM_PORTS); - result += PyModule_AddIntMacro(module, RADEPSILON_MAX_PHY); - result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_A); - result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_B); - result += PyModule_AddIntMacro(module, EPSILON_88Q6113_SWITCH_AB); + result += PyModule_AddObjectRef(module, "SRed2Settings_SIZE", PyLong_FromLongLong(SRed2Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SFire3Settings_SIZE", PyLong_FromLongLong(SFire3Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SFire3FlexraySettings_SIZE", PyLong_FromLongLong(SFire3FlexraySettings_SIZE)); + result += PyModule_AddObjectRef(module, "RADEPSILON_NUM_PORTS", PyLong_FromUnsignedLongLong(RADEPSILON_NUM_PORTS)); + result += PyModule_AddObjectRef(module, "RADEPSILON_MAX_PHY", PyLong_FromUnsignedLongLong(RADEPSILON_MAX_PHY)); + result += PyModule_AddObjectRef(module, "EPSILON_88Q6113_SWITCH_A", PyLong_FromUnsignedLongLong(EPSILON_88Q6113_SWITCH_A)); + result += PyModule_AddObjectRef(module, "EPSILON_88Q6113_SWITCH_B", PyLong_FromUnsignedLongLong(EPSILON_88Q6113_SWITCH_B)); + result += PyModule_AddObjectRef(module, "EPSILON_88Q6113_SWITCH_AB", PyLong_FromUnsignedLongLong(EPSILON_88Q6113_SWITCH_AB)); // enum - result += PyModule_AddIntMacro(module, EPSILON_10G_PHY1); - result += PyModule_AddIntMacro(module, EPSILON_10G_PHY2); + result += PyModule_AddObjectRef(module, "EPSILON_10G_PHY1", PyLong_FromLongLong(EPSILON_10G_PHY1)); + result += PyModule_AddObjectRef(module, "EPSILON_10G_PHY2", PyLong_FromLongLong(EPSILON_10G_PHY2)); // end of enum - } Epsilon_10G_PHY_select; - result += PyModule_AddIntMacro(module, SRADEpsilonSettings_SIZE); + result += PyModule_AddObjectRef(module, "SRADEpsilonSettings_SIZE", PyLong_FromUnsignedLongLong(SRADEpsilonSettings_SIZE)); + // enum + result += PyModule_AddObjectRef(module, "enumWILPortConfig_Single_Port_A", PyLong_FromLongLong(enumWILPortConfig_Single_Port_A)); + result += PyModule_AddObjectRef(module, "enumWILPortConfig_Single_Port_B", PyLong_FromLongLong(enumWILPortConfig_Single_Port_B)); + result += PyModule_AddObjectRef(module, "enumWILPortConfig_Dual_Port_A_And_B", PyLong_FromLongLong(enumWILPortConfig_Dual_Port_A_And_B)); + result += PyModule_AddObjectRef(module, "enumWILPortConfig_Single_Port_A_And_B", PyLong_FromLongLong(enumWILPortConfig_Single_Port_A_And_B)); + result += PyModule_AddObjectRef(module, "_enumWILPortConfig_Total", PyLong_FromLongLong(_enumWILPortConfig_Total)); + // end of enum - }; + // enum - result += PyModule_AddIntMacro(module, enumWILPortConfig_Single_Port_A); - result += PyModule_AddIntMacro(module, enumWILPortConfig_Single_Port_B); - result += PyModule_AddIntMacro(module, enumWILPortConfig_Dual_Port_A_And_B); - result += PyModule_AddIntMacro(module, enumWILPortConfig_Single_Port_A_And_B); - result += PyModule_AddIntMacro(module, _enumWILPortConfig_Total); + result += PyModule_AddObjectRef(module, "SPI_PORT_ONBOARD", PyLong_FromLongLong(SPI_PORT_ONBOARD)); + result += PyModule_AddObjectRef(module, "SPI_PORT_EXTERNAL", PyLong_FromLongLong(SPI_PORT_EXTERNAL)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); - result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); + result += PyModule_AddObjectRef(module, "SPI_TYPE_WIL", PyLong_FromLongLong(SPI_TYPE_WIL)); + result += PyModule_AddObjectRef(module, "SPI_TYPE_RAW", PyLong_FromLongLong(SPI_TYPE_RAW)); // end of enum - }; // enum - result += PyModule_AddIntMacro(module, SPI_TYPE_WIL); - result += PyModule_AddIntMacro(module, SPI_TYPE_RAW); + result += PyModule_AddObjectRef(module, "SPI_MODE_MASTER", PyLong_FromLongLong(SPI_MODE_MASTER)); + result += PyModule_AddObjectRef(module, "SPI_MODE_SLAVE", PyLong_FromLongLong(SPI_MODE_SLAVE)); + result += PyModule_AddObjectRef(module, "SPI_MODE_PMS_EMULATION", PyLong_FromLongLong(SPI_MODE_PMS_EMULATION)); // end of enum - }; + result += PyModule_AddObjectRef(module, "WBMS_GATEWAY_NETWORK_NONE", PyLong_FromLongLong(WBMS_GATEWAY_NETWORK_NONE)); + result += PyModule_AddObjectRef(module, "WBMS_GATEWAY_NETWORK_DWCAN_01", PyLong_FromLongLong(WBMS_GATEWAY_NETWORK_DWCAN_01)); + result += PyModule_AddObjectRef(module, "WBMS_GATEWAY_NETWORK_DWCAN_02", PyLong_FromLongLong(WBMS_GATEWAY_NETWORK_DWCAN_02)); + result += PyModule_AddObjectRef(module, "WBMS_GATEWAY_NETWORK_UDP_MULTICAST", PyLong_FromLongLong(WBMS_GATEWAY_NETWORK_UDP_MULTICAST)); + result += PyModule_AddObjectRef(module, "SRADBMSSettings_SIZE", PyLong_FromUnsignedLongLong(SRADBMSSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADCometSettings_SIZE", PyLong_FromUnsignedLongLong(SRADCometSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADComet3Settings_SIZE", PyLong_FromUnsignedLongLong(SRADComet3Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADGigastar2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADGigastar2Settings_SIZE)); // enum - result += PyModule_AddIntMacro(module, SPI_MODE_MASTER); - result += PyModule_AddIntMacro(module, SPI_MODE_SLAVE); - result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); + result += PyModule_AddObjectRef(module, "GIGASTAR2_FW_VARIANT_6T1S_1CAN_16LIN", PyLong_FromLongLong(GIGASTAR2_FW_VARIANT_6T1S_1CAN_16LIN)); + result += PyModule_AddObjectRef(module, "GIGASTAR2_FW_VARIANT_8T1S_4CAN_6LIN", PyLong_FromLongLong(GIGASTAR2_FW_VARIANT_8T1S_4CAN_6LIN)); + result += PyModule_AddObjectRef(module, "GIGASTAR2_FW_VARIANT_COUNT", PyLong_FromLongLong(GIGASTAR2_FW_VARIANT_COUNT)); // end of enum - }; - result += PyModule_AddIntMacro(module, WBMS_GATEWAY_NETWORK_NONE); - result += PyModule_AddIntMacro(module, WBMS_GATEWAY_NETWORK_DWCAN_01); - result += PyModule_AddIntMacro(module, WBMS_GATEWAY_NETWORK_DWCAN_02); - result += PyModule_AddIntMacro(module, WBMS_GATEWAY_NETWORK_UDP_MULTICAST); - result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADCometSettings_SIZE); - result += PyModule_AddIntMacro(module, SRADComet3Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADGigastar2Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADMoonT1SSettings_SIZE); - result += PyModule_AddIntMacro(module, SNeoVIConnectSettings_SIZE); - result += PyModule_AddIntMacro(module, GS_VERSION); - result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, NEOVI_3G_MAX_SETTINGS_SIZE); + result += PyModule_AddObjectRef(module, "SRADMoonT1SSettings_SIZE", PyLong_FromUnsignedLongLong(SRADMoonT1SSettings_SIZE)); + result += PyModule_AddObjectRef(module, "SNeoVIConnectSettings_SIZE", PyLong_FromLongLong(SNeoVIConnectSettings_SIZE)); + result += PyModule_AddObjectRef(module, "GS_VERSION", PyLong_FromUnsignedLongLong(GS_VERSION)); + result += PyModule_AddObjectRef(module, "GLOBAL_SETTINGS_SIZE", PyLong_FromLongLong(GLOBAL_SETTINGS_SIZE)); + result += PyModule_AddObjectRef(module, "NEOVI_3G_MAX_SETTINGS_SIZE", PyLong_FromLongLong(NEOVI_3G_MAX_SETTINGS_SIZE)); // enum - result += PyModule_AddIntMacro(module, DeviceFireSettingsType); - result += PyModule_AddIntMacro(module, DeviceFireVnetSettingsType); - result += PyModule_AddIntMacro(module, DeviceFire2SettingsType); - result += PyModule_AddIntMacro(module, DeviceVCAN3SettingsType); - result += PyModule_AddIntMacro(module, DeviceRADGalaxySettingsType); - result += PyModule_AddIntMacro(module, DeviceRADStar2SettingsType); - result += PyModule_AddIntMacro(module, DeviceVCAN4SettingsType); - result += PyModule_AddIntMacro(module, DeviceVCAN412SettingsType); - result += PyModule_AddIntMacro(module, DeviceVividCANSettingsType); - result += PyModule_AddIntMacro(module, DeviceECU_AVBSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADSuperMoonSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADMoon2SettingsType); - result += PyModule_AddIntMacro(module, DeviceRADPlutoSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADGigalogSettingsType); - result += PyModule_AddIntMacro(module, DeviceDeprecatedType); - result += PyModule_AddIntMacro(module, DeviceEEVBSettingsType); - result += PyModule_AddIntMacro(module, DeviceVCAN4IndSettingsType); - result += PyModule_AddIntMacro(module, DeviceNeoECU12SettingsType); - result += PyModule_AddIntMacro(module, DeviceFlexVnetzSettingsType); - result += PyModule_AddIntMacro(module, DeviceCANHUBSettingsType); - result += PyModule_AddIntMacro(module, DeviceIEVBSettingsType); - result += PyModule_AddIntMacro(module, DeviceOBD2SimSettingsType); - result += PyModule_AddIntMacro(module, DeviceCMProbeSettingsType); - result += PyModule_AddIntMacro(module, DeviceOBD2ProSettingsType); - result += PyModule_AddIntMacro(module, DeviceRedSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADPlutoSwitchSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADGigastarSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADJupiterSettingsType); - result += PyModule_AddIntMacro(module, DeviceRed2SettingsType); - result += PyModule_AddIntMacro(module, DeviceRadMoonDuoSettingsType); - result += PyModule_AddIntMacro(module, DeviceEtherBadgeSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADA2BSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADEpsilonSettingsType); - result += PyModule_AddIntMacro(module, DeviceOBD2LCSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADBMSSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADMoon3SettingsType); - result += PyModule_AddIntMacro(module, DeviceFire3SettingsType); - result += PyModule_AddIntMacro(module, DeviceFire3FlexraySettingsType); - result += PyModule_AddIntMacro(module, DeviceRADCometSettingsType); - result += PyModule_AddIntMacro(module, DeviceNeoVIConnectSettingsType); - result += PyModule_AddIntMacro(module, DeviceRADComet3SettingsType); - result += PyModule_AddIntMacro(module, DeviceRADGalaxy2SettingsType); - result += PyModule_AddIntMacro(module, DeviceRADGigastar2SettingsType); - result += PyModule_AddIntMacro(module, DeviceRADMoonT1SSettingsType); - result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); - result += PyModule_AddIntMacro(module, DeviceSettingsNone); + result += PyModule_AddObjectRef(module, "DeviceFireSettingsType", PyLong_FromLongLong(DeviceFireSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFireVnetSettingsType", PyLong_FromLongLong(DeviceFireVnetSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFire2SettingsType", PyLong_FromLongLong(DeviceFire2SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceVCAN3SettingsType", PyLong_FromLongLong(DeviceVCAN3SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADGalaxySettingsType", PyLong_FromLongLong(DeviceRADGalaxySettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADStar2SettingsType", PyLong_FromLongLong(DeviceRADStar2SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceVCAN4SettingsType", PyLong_FromLongLong(DeviceVCAN4SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceVCAN412SettingsType", PyLong_FromLongLong(DeviceVCAN412SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceVividCANSettingsType", PyLong_FromLongLong(DeviceVividCANSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceECU_AVBSettingsTypeDeprecated", PyLong_FromLongLong(DeviceECU_AVBSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceRADSuperMoonSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRADSuperMoonSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceRADMoon2SettingsType", PyLong_FromLongLong(DeviceRADMoon2SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADPlutoSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRADPlutoSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceRADGigalogSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRADGigalogSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceDeprecatedType", PyLong_FromLongLong(DeviceDeprecatedType)); + result += PyModule_AddObjectRef(module, "DeviceEEVBSettingsTypeDeprecated", PyLong_FromLongLong(DeviceEEVBSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceVCAN4IndSettingsType", PyLong_FromLongLong(DeviceVCAN4IndSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceNeoECU12SettingsType", PyLong_FromLongLong(DeviceNeoECU12SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFlexVnetzSettingsType", PyLong_FromLongLong(DeviceFlexVnetzSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceCANHUBSettingsType", PyLong_FromLongLong(DeviceCANHUBSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceIEVBSettingsTypeDeprecated", PyLong_FromLongLong(DeviceIEVBSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceOBD2SimSettingsTypeDeprecated", PyLong_FromLongLong(DeviceOBD2SimSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceCMProbeSettingsTypeDeprecated", PyLong_FromLongLong(DeviceCMProbeSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceOBD2ProSettingsTypeDeprecated", PyLong_FromLongLong(DeviceOBD2ProSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceRedSettingsType", PyLong_FromLongLong(DeviceRedSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADPlutoSwitchSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRADPlutoSwitchSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceRADGigastarSettingsType", PyLong_FromLongLong(DeviceRADGigastarSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADJupiterSettingsType", PyLong_FromLongLong(DeviceRADJupiterSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRed2SettingsType", PyLong_FromLongLong(DeviceRed2SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRadMoonDuoSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRadMoonDuoSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceEtherBadgeSettingsTypeDeprecated", PyLong_FromLongLong(DeviceEtherBadgeSettingsTypeDeprecated)); + result += PyModule_AddObjectRef(module, "DeviceRADA2BSettingsType", PyLong_FromLongLong(DeviceRADA2BSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADEpsilonSettingsType", PyLong_FromLongLong(DeviceRADEpsilonSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceOBD2LCSettingsType", PyLong_FromLongLong(DeviceOBD2LCSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADBMSSettingsType", PyLong_FromLongLong(DeviceRADBMSSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADMoon3SettingsType", PyLong_FromLongLong(DeviceRADMoon3SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFire3SettingsType", PyLong_FromLongLong(DeviceFire3SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFire3FlexraySettingsType", PyLong_FromLongLong(DeviceFire3FlexraySettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADCometSettingsType", PyLong_FromLongLong(DeviceRADCometSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceNeoVIConnectSettingsType", PyLong_FromLongLong(DeviceNeoVIConnectSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADComet3SettingsType", PyLong_FromLongLong(DeviceRADComet3SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADGalaxy2SettingsType", PyLong_FromLongLong(DeviceRADGalaxy2SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADGigastar2SettingsType", PyLong_FromLongLong(DeviceRADGigastar2SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADMoonT1SSettingsType", PyLong_FromLongLong(DeviceRADMoonT1SSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceSettingsTypeMax", PyLong_FromLongLong(DeviceSettingsTypeMax)); + result += PyModule_AddObjectRef(module, "DeviceSettingsNone", PyLong_FromLongLong(DeviceSettingsNone)); // end of enum - } EDeviceSettingsType; // enum - result += PyModule_AddIntMacro(module, PlasmaIonVnetChannelMain); - result += PyModule_AddIntMacro(module, PlasmaIonVnetChannelA); - result += PyModule_AddIntMacro(module, PlasmaIonVnetChannelB); - result += PyModule_AddIntMacro(module, eSoftCore); - result += PyModule_AddIntMacro(module, eFpgaStatusResp); + result += PyModule_AddObjectRef(module, "PlasmaIonVnetChannelMain", PyLong_FromLongLong(PlasmaIonVnetChannelMain)); + result += PyModule_AddObjectRef(module, "PlasmaIonVnetChannelA", PyLong_FromLongLong(PlasmaIonVnetChannelA)); + result += PyModule_AddObjectRef(module, "PlasmaIonVnetChannelB", PyLong_FromLongLong(PlasmaIonVnetChannelB)); + result += PyModule_AddObjectRef(module, "eSoftCore", PyLong_FromLongLong(eSoftCore)); + result += PyModule_AddObjectRef(module, "eFpgaStatusResp", PyLong_FromLongLong(eFpgaStatusResp)); // end of enum - } EPlasmaIonVnetChannel_t; // enum - result += PyModule_AddIntMacro(module, eManagerPortA); - result += PyModule_AddIntMacro(module, eManagerPortB); + result += PyModule_AddObjectRef(module, "eManagerPortA", PyLong_FromLongLong(eManagerPortA)); + result += PyModule_AddObjectRef(module, "eManagerPortB", PyLong_FromLongLong(eManagerPortB)); // end of enum - } EwBMSManagerPort_t; // enum - result += PyModule_AddIntMacro(module, eLockManager); - result += PyModule_AddIntMacro(module, eUnlockManager); + result += PyModule_AddObjectRef(module, "eLockManager", PyLong_FromLongLong(eLockManager)); + result += PyModule_AddObjectRef(module, "eUnlockManager", PyLong_FromLongLong(eUnlockManager)); // end of enum - } EwBMSManagerLockState_t; // enum - result += PyModule_AddIntMacro(module, eUART0); - result += PyModule_AddIntMacro(module, eUART1); + result += PyModule_AddObjectRef(module, "eUART0", PyLong_FromLongLong(eUART0)); + result += PyModule_AddObjectRef(module, "eUART1", PyLong_FromLongLong(eUART1)); // end of enum - } EUartPort_t; // enum - result += PyModule_AddIntMacro(module, eGENERIC_API); - result += PyModule_AddIntMacro(module, eADI_WIL_API); + result += PyModule_AddObjectRef(module, "eGENERIC_API", PyLong_FromLongLong(eGENERIC_API)); + result += PyModule_AddObjectRef(module, "eADI_WIL_API", PyLong_FromLongLong(eADI_WIL_API)); // end of enum - } eGenericAPIOptions; // enum - result += PyModule_AddIntMacro(module, ewBMSInstance0); - result += PyModule_AddIntMacro(module, ewBMSInstance1); + result += PyModule_AddObjectRef(module, "ewBMSInstance0", PyLong_FromLongLong(ewBMSInstance0)); + result += PyModule_AddObjectRef(module, "ewBMSInstance1", PyLong_FromLongLong(ewBMSInstance1)); // end of enum - } EwBMSInstance_t; - result += PyModule_AddIntMacro(module, stCM_ISO157652_TxMessage_SIZE); - result += PyModule_AddIntMacro(module, ISO15765_2015_TxMessage_SIZE); - result += PyModule_AddIntMacro(module, stCM_ISO157652_RxMessage_SIZE); - result += PyModule_AddIntMacro(module, spyFilterLong_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessage_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessage_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessage_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessage_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessageLong_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessageJ1850_SIZE); - result += PyModule_AddIntMacro(module, icsSpyMessageVSB_SIZE); - result += PyModule_AddIntMacro(module, MAX_PHY_REG_PKT_ENTRIES); - result += PyModule_AddIntMacro(module, PHY_REG_PKT_VERSION); - result += PyModule_AddIntMacro(module, MAX_PHY_SETTINGS_STRUCT); - result += PyModule_AddIntMacro(module, MAX_NUMBYTES_PHYSETTINGS); + result += PyModule_AddObjectRef(module, "stCM_ISO157652_TxMessage_SIZE", PyLong_FromUnsignedLongLong(stCM_ISO157652_TxMessage_SIZE)); + result += PyModule_AddObjectRef(module, "ISO15765_2015_TxMessage_SIZE", PyLong_FromLongLong(ISO15765_2015_TxMessage_SIZE)); + result += PyModule_AddObjectRef(module, "stCM_ISO157652_RxMessage_SIZE", PyLong_FromUnsignedLongLong(stCM_ISO157652_RxMessage_SIZE)); + result += PyModule_AddObjectRef(module, "spyFilterLong_SIZE", PyLong_FromUnsignedLongLong(spyFilterLong_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessage_SIZE", PyLong_FromUnsignedLongLong(icsSpyMessage_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessage_SIZE", PyLong_FromUnsignedLongLong(icsSpyMessage_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessage_SIZE", PyLong_FromUnsignedLongLong(icsSpyMessage_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessage_SIZE", PyLong_FromUnsignedLongLong(icsSpyMessage_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessageLong_SIZE", PyLong_FromLongLong(icsSpyMessageLong_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessageJ1850_SIZE", PyLong_FromLongLong(icsSpyMessageJ1850_SIZE)); + result += PyModule_AddObjectRef(module, "icsSpyMessageVSB_SIZE", PyLong_FromUnsignedLongLong(icsSpyMessageVSB_SIZE)); + result += PyModule_AddObjectRef(module, "MAX_PHY_REG_PKT_ENTRIES", PyLong_FromUnsignedLongLong(MAX_PHY_REG_PKT_ENTRIES)); + result += PyModule_AddObjectRef(module, "PHY_REG_PKT_VERSION", PyLong_FromUnsignedLongLong(PHY_REG_PKT_VERSION)); + result += PyModule_AddObjectRef(module, "MAX_PHY_SETTINGS_STRUCT", PyLong_FromUnsignedLongLong(MAX_PHY_SETTINGS_STRUCT)); + result += PyModule_AddObjectRef(module, "MAX_NUMBYTES_PHYSETTINGS", PyLong_FromLongLong(MAX_NUMBYTES_PHYSETTINGS)); // enum - result += PyModule_AddIntMacro(module, PHYREG_SUCCESS); - result += PyModule_AddIntMacro(module, PHYREG_FAILURE); - result += PyModule_AddIntMacro(module, PHYREG_INVALID_MDIO_BUS_INDEX); - result += PyModule_AddIntMacro(module, PHYREG_INVALID_PHY_ADDR); - result += PyModule_AddIntMacro(module, PHYREG_UNSUPPORTED_MDIO_CLAUSE); - result += PyModule_AddIntMacro(module, PHYREG_RESERVED1); - result += PyModule_AddIntMacro(module, PHYREG_RESERVED2); - result += PyModule_AddIntMacro(module, PHYREG_RESERVED3); + result += PyModule_AddObjectRef(module, "PHYREG_SUCCESS", PyLong_FromLongLong(PHYREG_SUCCESS)); + result += PyModule_AddObjectRef(module, "PHYREG_FAILURE", PyLong_FromLongLong(PHYREG_FAILURE)); + result += PyModule_AddObjectRef(module, "PHYREG_INVALID_MDIO_BUS_INDEX", PyLong_FromLongLong(PHYREG_INVALID_MDIO_BUS_INDEX)); + result += PyModule_AddObjectRef(module, "PHYREG_INVALID_PHY_ADDR", PyLong_FromLongLong(PHYREG_INVALID_PHY_ADDR)); + result += PyModule_AddObjectRef(module, "PHYREG_UNSUPPORTED_MDIO_CLAUSE", PyLong_FromLongLong(PHYREG_UNSUPPORTED_MDIO_CLAUSE)); + result += PyModule_AddObjectRef(module, "PHYREG_RESERVED1", PyLong_FromLongLong(PHYREG_RESERVED1)); + result += PyModule_AddObjectRef(module, "PHYREG_RESERVED2", PyLong_FromLongLong(PHYREG_RESERVED2)); + result += PyModule_AddObjectRef(module, "PHYREG_RESERVED3", PyLong_FromLongLong(PHYREG_RESERVED3)); // end of enum - } PhyRegPktStatus_t; // enum - result += PyModule_AddIntMacro(module, PHYREG_READ); - result += PyModule_AddIntMacro(module, PHYREG_WRITE); - result += PyModule_AddIntMacro(module, PHYREG_BOTH); + result += PyModule_AddObjectRef(module, "PHYREG_READ", PyLong_FromLongLong(PHYREG_READ)); + result += PyModule_AddObjectRef(module, "PHYREG_WRITE", PyLong_FromLongLong(PHYREG_WRITE)); + result += PyModule_AddObjectRef(module, "PHYREG_BOTH", PyLong_FromLongLong(PHYREG_BOTH)); // end of enum - } PhyRegPktRw_t; // enum - result += PyModule_AddIntMacro(module, networkDWCAN01); - result += PyModule_AddIntMacro(module, networkDWCAN02); - result += PyModule_AddIntMacro(module, networkDWCAN03); - result += PyModule_AddIntMacro(module, networkDWCAN04); - result += PyModule_AddIntMacro(module, networkDWCAN05); - result += PyModule_AddIntMacro(module, networkDWCAN06); - result += PyModule_AddIntMacro(module, networkDWCAN07); - result += PyModule_AddIntMacro(module, networkDWCAN08); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN01); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN02); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN03); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN04); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN05); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN06); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN07); - result += PyModule_AddIntMacro(module, networkTerminationDWCAN08); - result += PyModule_AddIntMacro(module, enhancedFlashDriver); - result += PyModule_AddIntMacro(module, rtcCalibration); - result += PyModule_AddIntMacro(module, rtcClosedLoopCalibration); - result += PyModule_AddIntMacro(module, cmp); - result += PyModule_AddIntMacro(module, NUM_VALID_DEVICE_FEATURES); - result += PyModule_AddIntMacro(module, supportedFeatureMax); + result += PyModule_AddObjectRef(module, "networkDWCAN01", PyLong_FromLongLong(networkDWCAN01)); + result += PyModule_AddObjectRef(module, "networkDWCAN02", PyLong_FromLongLong(networkDWCAN02)); + result += PyModule_AddObjectRef(module, "networkDWCAN03", PyLong_FromLongLong(networkDWCAN03)); + result += PyModule_AddObjectRef(module, "networkDWCAN04", PyLong_FromLongLong(networkDWCAN04)); + result += PyModule_AddObjectRef(module, "networkDWCAN05", PyLong_FromLongLong(networkDWCAN05)); + result += PyModule_AddObjectRef(module, "networkDWCAN06", PyLong_FromLongLong(networkDWCAN06)); + result += PyModule_AddObjectRef(module, "networkDWCAN07", PyLong_FromLongLong(networkDWCAN07)); + result += PyModule_AddObjectRef(module, "networkDWCAN08", PyLong_FromLongLong(networkDWCAN08)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN01", PyLong_FromLongLong(networkTerminationDWCAN01)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN02", PyLong_FromLongLong(networkTerminationDWCAN02)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN03", PyLong_FromLongLong(networkTerminationDWCAN03)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN04", PyLong_FromLongLong(networkTerminationDWCAN04)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN05", PyLong_FromLongLong(networkTerminationDWCAN05)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN06", PyLong_FromLongLong(networkTerminationDWCAN06)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN07", PyLong_FromLongLong(networkTerminationDWCAN07)); + result += PyModule_AddObjectRef(module, "networkTerminationDWCAN08", PyLong_FromLongLong(networkTerminationDWCAN08)); + result += PyModule_AddObjectRef(module, "enhancedFlashDriver", PyLong_FromLongLong(enhancedFlashDriver)); + result += PyModule_AddObjectRef(module, "rtcCalibration", PyLong_FromLongLong(rtcCalibration)); + result += PyModule_AddObjectRef(module, "rtcClosedLoopCalibration", PyLong_FromLongLong(rtcClosedLoopCalibration)); + result += PyModule_AddObjectRef(module, "cmp", PyLong_FromLongLong(cmp)); + result += PyModule_AddObjectRef(module, "NUM_VALID_DEVICE_FEATURES", PyLong_FromLongLong(NUM_VALID_DEVICE_FEATURES)); + result += PyModule_AddObjectRef(module, "supportedFeatureMax", PyLong_FromLongLong(supportedFeatureMax)); // end of enum - } DeviceFeature; // enum - result += PyModule_AddIntMacro(module, AccessoryOperationError); - result += PyModule_AddIntMacro(module, AccessoryOperationSuccess); - result += PyModule_AddIntMacro(module, AccessoryFlashingInitError); - result += PyModule_AddIntMacro(module, AccessoryFlashingEraseError); - result += PyModule_AddIntMacro(module, AccessoryFlashingWriteError); - result += PyModule_AddIntMacro(module, AccessoryFlashingReadError); - result += PyModule_AddIntMacro(module, AccessoryFlashingVerifyError); - result += PyModule_AddIntMacro(module, AccessoryFlashingDeinitError); - result += PyModule_AddIntMacro(module, AccessoryFlashingInvalidHardware); - result += PyModule_AddIntMacro(module, AccessoryFlashingInvalidDataFile); - result += PyModule_AddIntMacro(module, AccessoryGetVersionError); - result += PyModule_AddIntMacro(module, AccessoryIndexError); - result += PyModule_AddIntMacro(module, AccessoryParamApiVersionError); - result += PyModule_AddIntMacro(module, AccessoryParamSizeMismatchError); - result += PyModule_AddIntMacro(module, AccessoryParameterNull); + result += PyModule_AddObjectRef(module, "AccessoryOperationError", PyLong_FromLongLong(AccessoryOperationError)); + result += PyModule_AddObjectRef(module, "AccessoryOperationSuccess", PyLong_FromLongLong(AccessoryOperationSuccess)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingInitError", PyLong_FromLongLong(AccessoryFlashingInitError)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingEraseError", PyLong_FromLongLong(AccessoryFlashingEraseError)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingWriteError", PyLong_FromLongLong(AccessoryFlashingWriteError)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingReadError", PyLong_FromLongLong(AccessoryFlashingReadError)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingVerifyError", PyLong_FromLongLong(AccessoryFlashingVerifyError)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingDeinitError", PyLong_FromLongLong(AccessoryFlashingDeinitError)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingInvalidHardware", PyLong_FromLongLong(AccessoryFlashingInvalidHardware)); + result += PyModule_AddObjectRef(module, "AccessoryFlashingInvalidDataFile", PyLong_FromLongLong(AccessoryFlashingInvalidDataFile)); + result += PyModule_AddObjectRef(module, "AccessoryGetVersionError", PyLong_FromLongLong(AccessoryGetVersionError)); + result += PyModule_AddObjectRef(module, "AccessoryIndexError", PyLong_FromLongLong(AccessoryIndexError)); + result += PyModule_AddObjectRef(module, "AccessoryParamApiVersionError", PyLong_FromLongLong(AccessoryParamApiVersionError)); + result += PyModule_AddObjectRef(module, "AccessoryParamSizeMismatchError", PyLong_FromLongLong(AccessoryParamSizeMismatchError)); + result += PyModule_AddObjectRef(module, "AccessoryParameterNull", PyLong_FromLongLong(AccessoryParameterNull)); // end of enum - } AccessoryOperationErrorType; // enum - result += PyModule_AddIntMacro(module, EDevNameTypeDefault); - result += PyModule_AddIntMacro(module, EDevNameTypeNoSerial); - result += PyModule_AddIntMacro(module, EDevNameTypeTCP); - result += PyModule_AddIntMacro(module, EDevNameTypeTCPShort); + result += PyModule_AddObjectRef(module, "EDevNameTypeDefault", PyLong_FromLongLong(EDevNameTypeDefault)); + result += PyModule_AddObjectRef(module, "EDevNameTypeNoSerial", PyLong_FromLongLong(EDevNameTypeNoSerial)); + result += PyModule_AddObjectRef(module, "EDevNameTypeTCP", PyLong_FromLongLong(EDevNameTypeTCP)); + result += PyModule_AddObjectRef(module, "EDevNameTypeTCPShort", PyLong_FromLongLong(EDevNameTypeTCPShort)); // end of enum - } EDevNameType; - result += PyModule_AddIntMacro(module, FlashAccessoryFirmwareParams_SIZE); - result += PyModule_AddIntMacro(module, FlashAccessoryFirmwareParams_SIZE); + result += PyModule_AddObjectRef(module, "FlashAccessoryFirmwareParams_SIZE", PyLong_FromLongLong(FlashAccessoryFirmwareParams_SIZE)); + result += PyModule_AddObjectRef(module, "FlashAccessoryFirmwareParams_SIZE", PyLong_FromLongLong(FlashAccessoryFirmwareParams_SIZE)); // enum - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY1); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY2); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_SWITCH_A); - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_SWITCH_B); + result += PyModule_AddObjectRef(module, "FLASH_ACCESSORY_EPSILON_10G_PHY1", PyLong_FromLongLong(FLASH_ACCESSORY_EPSILON_10G_PHY1)); + result += PyModule_AddObjectRef(module, "FLASH_ACCESSORY_EPSILON_10G_PHY2", PyLong_FromLongLong(FLASH_ACCESSORY_EPSILON_10G_PHY2)); + result += PyModule_AddObjectRef(module, "FLASH_ACCESSORY_EPSILON_SWITCH_A", PyLong_FromLongLong(FLASH_ACCESSORY_EPSILON_SWITCH_A)); + result += PyModule_AddObjectRef(module, "FLASH_ACCESSORY_EPSILON_SWITCH_B", PyLong_FromLongLong(FLASH_ACCESSORY_EPSILON_SWITCH_B)); // end of enum - } flashAccessoryIndex; // enum - result += PyModule_AddIntMacro(module, FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0); + result += PyModule_AddObjectRef(module, "FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0", PyLong_FromLongLong(FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0)); // end of enum - } epsilon10GPHYFW; - result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); + result += PyModule_AddObjectRef(module, "NUM_DEVICE_FEATURE_BITFIELDS", PyLong_FromLongLong(NUM_DEVICE_FEATURE_BITFIELDS)); // enum // end of enum - } + result += PyModule_AddObjectRef(module, "CICSSPYSTATUSBITS_H_", PyLong_FromUnsignedLongLong(CICSSPYSTATUSBITS_H_)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_GLOBAL_ERR", PyLong_FromLongLong(SPY_STATUS_GLOBAL_ERR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_TX_MSG", PyLong_FromLongLong(SPY_STATUS_TX_MSG)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_XTD_FRAME", PyLong_FromLongLong(SPY_STATUS_XTD_FRAME)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_REMOTE_FRAME", PyLong_FromLongLong(SPY_STATUS_REMOTE_FRAME)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_CRC_ERROR", PyLong_FromLongLong(SPY_STATUS_CRC_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_INCOMPLETE_FRAME", PyLong_FromLongLong(SPY_STATUS_INCOMPLETE_FRAME)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_LOST_ARBITRATION", PyLong_FromLongLong(SPY_STATUS_LOST_ARBITRATION)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_UNDEFINED_ERROR", PyLong_FromLongLong(SPY_STATUS_UNDEFINED_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_BUS_RECOVERED", PyLong_FromLongLong(SPY_STATUS_BUS_RECOVERED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_BUS_SHORTED_PLUS", PyLong_FromLongLong(SPY_STATUS_BUS_SHORTED_PLUS)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_BUS_SHORTED_GND", PyLong_FromLongLong(SPY_STATUS_BUS_SHORTED_GND)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_CHECKSUM_ERROR", PyLong_FromLongLong(SPY_STATUS_CHECKSUM_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR", PyLong_FromLongLong(SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_TX_NOMATCH", PyLong_FromLongLong(SPY_STATUS_TX_NOMATCH)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_COMM_IN_OVERFLOW", PyLong_FromLongLong(SPY_STATUS_COMM_IN_OVERFLOW)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_EXPECTED_LEN_MISMATCH", PyLong_FromLongLong(SPY_STATUS_EXPECTED_LEN_MISMATCH)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_MSG_NO_MATCH", PyLong_FromLongLong(SPY_STATUS_MSG_NO_MATCH)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_BREAK", PyLong_FromLongLong(SPY_STATUS_BREAK)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_AVSI_REC_OVERFLOW", PyLong_FromLongLong(SPY_STATUS_AVSI_REC_OVERFLOW)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_TEST_TRIGGER", PyLong_FromLongLong(SPY_STATUS_TEST_TRIGGER)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_AUDIO_COMMENT", PyLong_FromLongLong(SPY_STATUS_AUDIO_COMMENT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_GPS_DATA", PyLong_FromLongLong(SPY_STATUS_GPS_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_ANALOG_DIGITAL_INPUT", PyLong_FromLongLong(SPY_STATUS_ANALOG_DIGITAL_INPUT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_TEXT_COMMENT", PyLong_FromLongLong(SPY_STATUS_TEXT_COMMENT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_NETWORK_MESSAGE_TYPE", PyLong_FromLongLong(SPY_STATUS_NETWORK_MESSAGE_TYPE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_VSI_TX_UNDERRUN", PyLong_FromLongLong(SPY_STATUS_VSI_TX_UNDERRUN)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_PDU", PyLong_FromLongLong(SPY_STATUS_PDU)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_HIGH_SPEED", PyLong_FromLongLong(SPY_STATUS_HIGH_SPEED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_EXTENDED", PyLong_FromLongLong(SPY_STATUS_EXTENDED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_A2B_SCF_VALID_WAITING", PyLong_FromLongLong(SPY_STATUS_A2B_SCF_VALID_WAITING)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_A2B_CONTROL", PyLong_FromLongLong(SPY_STATUS_A2B_CONTROL)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_A2B_MONITOR", PyLong_FromLongLong(SPY_STATUS_A2B_MONITOR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_A2B_UPSTREAM", PyLong_FromLongLong(SPY_STATUS_A2B_UPSTREAM)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_CAN_ERROR_PASSIVE", PyLong_FromLongLong(SPY_STATUS_CAN_ERROR_PASSIVE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_CAN_BUS_OFF", PyLong_FromLongLong(SPY_STATUS_CAN_BUS_OFF)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_CANFD", PyLong_FromLongLong(SPY_STATUS_CANFD)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_HEADERCRC_ERROR", PyLong_FromLongLong(SPY_STATUS_HEADERCRC_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT", PyLong_FromLongLong(SPY_STATUS_FLEXRAY_PDU_NO_UPDATE_BIT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_FLEXRAY_PDU", PyLong_FromLongLong(SPY_STATUS_FLEXRAY_PDU)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET", PyLong_FromLongLong(SPY_STATUS_FLEXRAY_PDU_UPDATE_BIT_SET)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_LIN_MASTER", PyLong_FromLongLong(SPY_STATUS_LIN_MASTER)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_VSI_IFR_CRC_BIT", PyLong_FromLongLong(SPY_STATUS_VSI_IFR_CRC_BIT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS_INIT_MESSAGE", PyLong_FromLongLong(SPY_STATUS_INIT_MESSAGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_HAS_VALUE", PyLong_FromLongLong(SPY_STATUS2_HAS_VALUE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_VALUE_IS_BOOLEAN", PyLong_FromLongLong(SPY_STATUS2_VALUE_IS_BOOLEAN)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_HIGH_VOLTAGE", PyLong_FromLongLong(SPY_STATUS2_HIGH_VOLTAGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LONG_MESSAGE", PyLong_FromLongLong(SPY_STATUS2_LONG_MESSAGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_GLOBAL_CHANGE", PyLong_FromLongLong(SPY_STATUS2_GLOBAL_CHANGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ERROR_FRAME", PyLong_FromLongLong(SPY_STATUS2_ERROR_FRAME)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_END_OF_LONG_MESSAGE", PyLong_FromLongLong(SPY_STATUS2_END_OF_LONG_MESSAGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME", PyLong_FromLongLong(SPY_STATUS2_CAN_ISO15765_LOGICAL_FRAME)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_CAN_HAVE_LINK_DATA", PyLong_FromLongLong(SPY_STATUS2_CAN_HAVE_LINK_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_CRC_ERROR", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_CRC_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_FCS_AVAILABLE", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_FCS_AVAILABLE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_NO_PADDING", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_NO_PADDING)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_MANUALFCS_ENABLED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_FCS_VERIFIED", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_FCS_VERIFIED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_T1S_SYMBOL", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_T1S_SYMBOL)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_T1S_BURST", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_T1S_BURST)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ETHERNET_T1S_ETHERNET", PyLong_FromLongLong(SPY_STATUS2_ETHERNET_T1S_ETHERNET)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_FLEXRAY_TX_AB", PyLong_FromLongLong(SPY_STATUS2_FLEXRAY_TX_AB)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_FLEXRAY_TX_AB_NO_A", PyLong_FromLongLong(SPY_STATUS2_FLEXRAY_TX_AB_NO_A)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_FLEXRAY_TX_AB_NO_B", PyLong_FromLongLong(SPY_STATUS2_FLEXRAY_TX_AB_NO_B)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH", PyLong_FromLongLong(SPY_STATUS2_FLEXRAY_TX_AB_NO_MATCH)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_FLEXRAY_NO_CRC", PyLong_FromLongLong(SPY_STATUS2_FLEXRAY_NO_CRC)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_FLEXRAY_NO_HEADERCRC", PyLong_FromLongLong(SPY_STATUS2_FLEXRAY_NO_HEADERCRC)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_I2C_ERR_TIMEOUT", PyLong_FromLongLong(SPY_STATUS2_I2C_ERR_TIMEOUT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_I2C_ERR_NACK", PyLong_FromLongLong(SPY_STATUS2_I2C_ERR_NACK)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_I2C_DIR_READ", PyLong_FromLongLong(SPY_STATUS2_I2C_DIR_READ)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ISO_FRAME_ERROR", PyLong_FromLongLong(SPY_STATUS2_ISO_FRAME_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ISO_OVERFLOW_ERROR", PyLong_FromLongLong(SPY_STATUS2_ISO_OVERFLOW_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ISO_PARITY_ERROR", PyLong_FromLongLong(SPY_STATUS2_ISO_PARITY_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_ISO_RX_TIMEOUT_ERROR", PyLong_FromLongLong(SPY_STATUS2_ISO_RX_TIMEOUT_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0", PyLong_FromLongLong(SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT", PyLong_FromLongLong(SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55", PyLong_FromLongLong(SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8", PyLong_FromLongLong(SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH", PyLong_FromLongLong(SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ERR_MSG_ID_PARITY", PyLong_FromLongLong(SPY_STATUS2_LIN_ERR_MSG_ID_PARITY)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_SYNC_FRAME_ERROR", PyLong_FromLongLong(SPY_STATUS2_LIN_SYNC_FRAME_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_ID_FRAME_ERROR", PyLong_FromLongLong(SPY_STATUS2_LIN_ID_FRAME_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_SLAVE_BYTE_ERROR", PyLong_FromLongLong(SPY_STATUS2_LIN_SLAVE_BYTE_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_RX_TIMEOUT_ERROR", PyLong_FromLongLong(SPY_STATUS2_LIN_RX_TIMEOUT_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_LIN_NO_SLAVE_DATA", PyLong_FromLongLong(SPY_STATUS2_LIN_NO_SLAVE_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_ERR_TIMEOUT", PyLong_FromLongLong(SPY_STATUS2_MDIO_ERR_TIMEOUT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_JOB_CANCELLED", PyLong_FromLongLong(SPY_STATUS2_MDIO_JOB_CANCELLED)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_INVALID_BUS", PyLong_FromLongLong(SPY_STATUS2_MDIO_INVALID_BUS)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_INVALID_PHYADDR", PyLong_FromLongLong(SPY_STATUS2_MDIO_INVALID_PHYADDR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_INVALID_REGADDR", PyLong_FromLongLong(SPY_STATUS2_MDIO_INVALID_REGADDR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE", PyLong_FromLongLong(SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE", PyLong_FromLongLong(SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_OVERFLOW", PyLong_FromLongLong(SPY_STATUS2_MDIO_OVERFLOW)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_CLAUSE45", PyLong_FromLongLong(SPY_STATUS2_MDIO_CLAUSE45)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MDIO_READ", PyLong_FromLongLong(SPY_STATUS2_MDIO_READ)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_PACKET_DATA", PyLong_FromLongLong(SPY_STATUS2_MOST_PACKET_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_STATUS", PyLong_FromLongLong(SPY_STATUS2_MOST_STATUS)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_LOW_LEVEL", PyLong_FromLongLong(SPY_STATUS2_MOST_LOW_LEVEL)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_CONTROL_DATA", PyLong_FromLongLong(SPY_STATUS2_MOST_CONTROL_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_MHP_USER_DATA", PyLong_FromLongLong(SPY_STATUS2_MOST_MHP_USER_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_MHP_CONTROL_DATA", PyLong_FromLongLong(SPY_STATUS2_MOST_MHP_CONTROL_DATA)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_I2S_DUMP", PyLong_FromLongLong(SPY_STATUS2_MOST_I2S_DUMP)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_TOO_SHORT", PyLong_FromLongLong(SPY_STATUS2_MOST_TOO_SHORT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_MOST50", PyLong_FromLongLong(SPY_STATUS2_MOST_MOST50)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_MOST150", PyLong_FromLongLong(SPY_STATUS2_MOST_MOST150)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_MOST_CHANGED_PAR", PyLong_FromLongLong(SPY_STATUS2_MOST_CHANGED_PAR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS2_WBMS_API_IS_CALLBACK", PyLong_FromLongLong(SPY_STATUS2_WBMS_API_IS_CALLBACK)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_ERR_PASSIVE", PyLong_FromLongLong(SPY_STATUS3_CAN_ERR_PASSIVE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_BUS_OFF", PyLong_FromLongLong(SPY_STATUS3_CAN_BUS_OFF)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_ERR_WARNING", PyLong_FromLongLong(SPY_STATUS3_CAN_ERR_WARNING)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_STUFF_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_STUFF_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_FORM_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_FORM_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_ACK_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_ACK_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_BIT1_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_BIT1_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_BIT0_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_BIT0_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_CRC_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_CRC_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_DATAERR_NOCHANGE", PyLong_FromLongLong(SPY_STATUS3_CAN_DATAERR_NOCHANGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_STUFF_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_STUFF_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_FORM_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_FORM_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_ACK_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_ACK_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_BIT1_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_BIT1_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_BIT0_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_BIT0_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_CRC_ERROR", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_CRC_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CAN_GENERR_NOCHANGE", PyLong_FromLongLong(SPY_STATUS3_CAN_GENERR_NOCHANGE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CANFD_ESI", PyLong_FromLongLong(SPY_STATUS3_CANFD_ESI)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CANFD_IDE", PyLong_FromLongLong(SPY_STATUS3_CANFD_IDE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CANFD_RTR", PyLong_FromLongLong(SPY_STATUS3_CANFD_RTR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CANFD_FDF", PyLong_FromLongLong(SPY_STATUS3_CANFD_FDF)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_CANFD_BRS", PyLong_FromLongLong(SPY_STATUS3_CANFD_BRS)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_ETHERNET_TX_COLLISION", PyLong_FromLongLong(SPY_STATUS3_ETHERNET_TX_COLLISION)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_ETHERNET_T1S_WAKE", PyLong_FromLongLong(SPY_STATUS3_ETHERNET_T1S_WAKE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_LIN_JUST_BREAK_SYNC", PyLong_FromLongLong(SPY_STATUS3_LIN_JUST_BREAK_SYNC)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT", PyLong_FromLongLong(SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT)); + result += PyModule_AddObjectRef(module, "SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE", PyLong_FromLongLong(SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE)); + result += PyModule_AddObjectRef(module, "SPY_STATUS4_ETH_CRC_ERROR", PyLong_FromLongLong(SPY_STATUS4_ETH_CRC_ERROR)); + result += PyModule_AddObjectRef(module, "SPY_STATUS4_ETH_FRAME_TOO_LONG", PyLong_FromLongLong(SPY_STATUS4_ETH_FRAME_TOO_LONG)); return result == 0 ? 1 : 0; } diff --git a/tests/obsolete/cmvspy.h b/tests/obsolete/cmvspy.h deleted file mode 100644 index 3717beb11..000000000 --- a/tests/obsolete/cmvspy.h +++ /dev/null @@ -1,517 +0,0 @@ -// neoVI3 CoreMini Compressed Execution File -#define CM_EXE_SIZE 512 -unsigned char const ucharConfigurationArrayPM[CM_EXE_SIZE] = { -0x07, -0x09, -0x13, -0x00, -0x00, -0x02, -0x2B, -0x20, -0x04, -0xD2, -0xBA, -0xB4, -0x3F, -0x43, -0xFF, -0xF4, -0xBD, -0x2A, -0x75, -0xE4, -0x47, -0xFA, -0xE1, -0xE4, -0xA8, -0x82, -0xCE, -0x87, -0x0E, -0xB3, -0xEA, -0x7A, -0xD5, -0xF1, -0x6B, -0x2E, -0x1B, -0x8F, -0x0B, -0x82, -0x17, -0xE8, -0x09, -0x4D, -0x88, -0x78, -0xED, -0xA4, -0xC1, -0x40, -0x67, -0x73, -0xE3, -0xB0, -0xB6, -0xAD, -0xC6, -0x7C, -0x9D, -0x0C, -0x64, -0x71, -0xF9, -0xEF, -0xD0, -0xFF, -0xD1, -0x62, -0x3A, -0x7D, -0x6D, -0x31, -0x59, -0xA6, -0x9D, -0x2D, -0xB1, -0x2E, -0x3B, -0x84, -0xD3, -0x53, -0x56, -0xC8, -0x18, -0x45, -0x81, -0xDB, -0x0A, -0x3D, -0x6D, -0xAB, -0x06, -0x4F, -0x2D, -0x38, -0x0A, -0x3D, -0x6D, -0xAB, -0x06, -0x4F, -0x2D, -0x38, -0x0A, -0x3D, -0x6D, -0xAB, -0x06, -0x4F, -0x2D, -0x38, -0x0A, -0x3D, -0x6D, -0xAB, -0x06, -0x4F, -0x2D, -0x38, -0x7B, -0xE6, -0x3C, -0x8F, -0x4F, -0x6D, -0xB6, -0xE5, -0x05, -0x6F, -0x8C, -0xCE, -0xA4, -0x0A, -0xDC, -0x31, -0xDA, -0x52, -0x6F, -0xE6, -0xE2, -0xC2, -0x3A, -0xF3, -0xA7, -0xF5, -0x30, -0x48, -0xD7, -0x91, -0x22, -0x0E, -0x6E, -0x18, -0xF1, -0x05, -0xF1, -0xEB, -0xF9, -0xEF, -0x93, -0x7F, -0x60, -0x67, -0x94, -0x13, -0xCF, -0x9D, -0x78, -0x8B, -0xD5, -0x18, -0x06, -0xEE, -0xA4, -0xE5, -0x8D, -0xBA, -0x17, -0x22, -0x0C, -0x72, -0x19, -0xD2, -0xE8, -0xC9, -0x11, -0x03, -0xEE, -0x0D, -0x3B, -0x9A, -0xBD, -0x0C, -0x16, -0x28, -0x51, -0x47, -0x1A, -0x42, -0x0D, -0xEA, -0xD3, -0x56, -0x72, -0x00, -0xD4, -0x55, -0xB8, -0x69, -0x4C, -0xCD, -0xB9, -0x7F, -0xDB, -0x50, -0xE4, -0x67, -0xB5, -0xFC, -0x7F, -0x10, -0x63, -0xF2, -0x33, -0xA1, -0xD8, -0x00, -0x4D, -0xEE, -0xE8, -0x7A, -0xE0, -0xC4, -0x40, -0x0C, -0x90, -0x9A, -0xC8, -0x28, -0x43, -0x86, -0x06, -0xA8, -0xC7, -0xE8, -0x38, -0xE7, -0xC4, -0x9B, -0x7D, -0xC0, -0x50, -0x82, -0x27, -0x91, -0x67, -0xFF, -0x14, -0xDF, -0x62, -0x49, -0x0C, -0x0F, -0x9E, -0x1A, -0xC2, -0xA7, -0xF5, -0x03, -0x63, -0x15, -0x63, -0xB0, -0x10, -0x33, -0x14, -0xF9, -0xEC, -0x6A, -0xAA, -0x7C, -0xB3, -0x91, -0x79, -0x5C, -0x09, -0x79, -0xDC, -0x6C, -0xED, -0x97, -0x66, -0xB7, -0x49, -0xD7, -0xB5, -0x64, -0xAD, -0xCB, -0x3F, -0x30, -0x8B, -0x69, -0x5F, -0xF1, -0xB5, -0x23, -0x2D, -0x14, -0xE8, -0x9A, -0x2E, -0xC7, -0xFE, -0xEA, -0xBA, -0x3F, -0x4E, -0x27, -0x9E, -0xDA, -0xC1, -0x57, -0xEE, -0x9B, -0x88, -0x77, -0x8D, -0xB0, -0x8C, -0x55, -0x3F, -0x9C, -0xC3, -0x3F, -0xF9, -0x97, -0x59, -0xDA, -0x15, -0xAA, -0xFB, -0xF6, -0xAF, -0xA4, -0x4B, -0x50, -0xC1, -0xB0, -0x0A, -0x93, -0x1B, -0xF7, -0x1F, -0x44, -0xB7, -0xFD, -0x4E, -0x2B, -0x54, -0xDD, -0xF2, -0x55, -0xB5, -0xC7, -0xA9, -0xF1, -0x30, -0x0B, -0xAF, -0x29, -0xF8, -0xB3, -0xB0, -0x99, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -0x00, -}; - diff --git a/tests/obsolete/cmvspy.py b/tests/obsolete/cmvspy.py deleted file mode 100644 index 11c59d8b9..000000000 --- a/tests/obsolete/cmvspy.py +++ /dev/null @@ -1,519 +0,0 @@ -# This file was automatically generated by 'cmvspyconvert.py' -# from a cmvspy.h file. -# Example usage: -# from cmvspy import data as coremini_data - -data = ( - 0x07, - 0x09, - 0x13, - 0x00, - 0x00, - 0x02, - 0x2B, - 0x20, - 0x04, - 0xD2, - 0xBA, - 0xB4, - 0x3F, - 0x43, - 0xFF, - 0xF4, - 0xBD, - 0x2A, - 0x75, - 0xE4, - 0x47, - 0xFA, - 0xE1, - 0xE4, - 0xA8, - 0x82, - 0xCE, - 0x87, - 0x0E, - 0xB3, - 0xEA, - 0x7A, - 0xD5, - 0xF1, - 0x6B, - 0x2E, - 0x1B, - 0x8F, - 0x0B, - 0x82, - 0x17, - 0xE8, - 0x09, - 0x4D, - 0x88, - 0x78, - 0xED, - 0xA4, - 0xC1, - 0x40, - 0x67, - 0x73, - 0xE3, - 0xB0, - 0xB6, - 0xAD, - 0xC6, - 0x7C, - 0x9D, - 0x0C, - 0x64, - 0x71, - 0xF9, - 0xEF, - 0xD0, - 0xFF, - 0xD1, - 0x62, - 0x3A, - 0x7D, - 0x6D, - 0x31, - 0x59, - 0xA6, - 0x9D, - 0x2D, - 0xB1, - 0x2E, - 0x3B, - 0x84, - 0xD3, - 0x53, - 0x56, - 0xC8, - 0x18, - 0x45, - 0x81, - 0xDB, - 0x0A, - 0x3D, - 0x6D, - 0xAB, - 0x06, - 0x4F, - 0x2D, - 0x38, - 0x0A, - 0x3D, - 0x6D, - 0xAB, - 0x06, - 0x4F, - 0x2D, - 0x38, - 0x0A, - 0x3D, - 0x6D, - 0xAB, - 0x06, - 0x4F, - 0x2D, - 0x38, - 0x0A, - 0x3D, - 0x6D, - 0xAB, - 0x06, - 0x4F, - 0x2D, - 0x38, - 0x7B, - 0xE6, - 0x3C, - 0x8F, - 0x4F, - 0x6D, - 0xB6, - 0xE5, - 0x05, - 0x6F, - 0x8C, - 0xCE, - 0xA4, - 0x0A, - 0xDC, - 0x31, - 0xDA, - 0x52, - 0x6F, - 0xE6, - 0xE2, - 0xC2, - 0x3A, - 0xF3, - 0xA7, - 0xF5, - 0x30, - 0x48, - 0xD7, - 0x91, - 0x22, - 0x0E, - 0x6E, - 0x18, - 0xF1, - 0x05, - 0xF1, - 0xEB, - 0xF9, - 0xEF, - 0x93, - 0x7F, - 0x60, - 0x67, - 0x94, - 0x13, - 0xCF, - 0x9D, - 0x78, - 0x8B, - 0xD5, - 0x18, - 0x06, - 0xEE, - 0xA4, - 0xE5, - 0x8D, - 0xBA, - 0x17, - 0x22, - 0x0C, - 0x72, - 0x19, - 0xD2, - 0xE8, - 0xC9, - 0x11, - 0x03, - 0xEE, - 0x0D, - 0x3B, - 0x9A, - 0xBD, - 0x0C, - 0x16, - 0x28, - 0x51, - 0x47, - 0x1A, - 0x42, - 0x0D, - 0xEA, - 0xD3, - 0x56, - 0x72, - 0x00, - 0xD4, - 0x55, - 0xB8, - 0x69, - 0x4C, - 0xCD, - 0xB9, - 0x7F, - 0xDB, - 0x50, - 0xE4, - 0x67, - 0xB5, - 0xFC, - 0x7F, - 0x10, - 0x63, - 0xF2, - 0x33, - 0xA1, - 0xD8, - 0x00, - 0x4D, - 0xEE, - 0xE8, - 0x7A, - 0xE0, - 0xC4, - 0x40, - 0x0C, - 0x90, - 0x9A, - 0xC8, - 0x28, - 0x43, - 0x86, - 0x06, - 0xA8, - 0xC7, - 0xE8, - 0x38, - 0xE7, - 0xC4, - 0x9B, - 0x7D, - 0xC0, - 0x50, - 0x82, - 0x27, - 0x91, - 0x67, - 0xFF, - 0x14, - 0xDF, - 0x62, - 0x49, - 0x0C, - 0x0F, - 0x9E, - 0x1A, - 0xC2, - 0xA7, - 0xF5, - 0x03, - 0x63, - 0x15, - 0x63, - 0xB0, - 0x10, - 0x33, - 0x14, - 0xF9, - 0xEC, - 0x6A, - 0xAA, - 0x7C, - 0xB3, - 0x91, - 0x79, - 0x5C, - 0x09, - 0x79, - 0xDC, - 0x6C, - 0xED, - 0x97, - 0x66, - 0xB7, - 0x49, - 0xD7, - 0xB5, - 0x64, - 0xAD, - 0xCB, - 0x3F, - 0x30, - 0x8B, - 0x69, - 0x5F, - 0xF1, - 0xB5, - 0x23, - 0x2D, - 0x14, - 0xE8, - 0x9A, - 0x2E, - 0xC7, - 0xFE, - 0xEA, - 0xBA, - 0x3F, - 0x4E, - 0x27, - 0x9E, - 0xDA, - 0xC1, - 0x57, - 0xEE, - 0x9B, - 0x88, - 0x77, - 0x8D, - 0xB0, - 0x8C, - 0x55, - 0x3F, - 0x9C, - 0xC3, - 0x3F, - 0xF9, - 0x97, - 0x59, - 0xDA, - 0x15, - 0xAA, - 0xFB, - 0xF6, - 0xAF, - 0xA4, - 0x4B, - 0x50, - 0xC1, - 0xB0, - 0x0A, - 0x93, - 0x1B, - 0xF7, - 0x1F, - 0x44, - 0xB7, - 0xFD, - 0x4E, - 0x2B, - 0x54, - 0xDD, - 0xF2, - 0x55, - 0xB5, - 0xC7, - 0xA9, - 0xF1, - 0x30, - 0x0B, - 0xAF, - 0x29, - 0xF8, - 0xB3, - 0xB0, - 0x99, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, -) diff --git a/tests/obsolete/cmvspyconvert.py b/tests/obsolete/cmvspyconvert.py deleted file mode 100644 index fdb718a35..000000000 --- a/tests/obsolete/cmvspyconvert.py +++ /dev/null @@ -1,43 +0,0 @@ -# Converts a cmvspy.h file to a cmvspy.py file for use in python -# usage: cmvspyconvert.py cmvspy.h cmvspy_python.py -# arguments can be omitted -import sys -import re - -file_boiler_plate = ( - """#This file was automatically generated by '%s' -#from a cmvspy.h file. -#Example usage: -# from cmvspy import data as coremini_data\n\n""" - % sys.argv[0] -) - -if __name__ == "__main__": - try: - cmvspy_filename = sys.argv[1] - except IndexError: - cmvspy_filename = "cmvspy.h" - try: - cmvspy_py_filename = sys.argv[2] - except IndexError: - cmvspy_py_filename = "cmvspy.py" - print("'%s' Will be converted in '%s'" % (cmvspy_filename, cmvspy_py_filename)) - cmvspy_py_file = open(cmvspy_py_filename, "w+") - cmvspy_py_file.write(file_boiler_plate) - cmvspy_py_file.write("data = ( \\\n\t") - hex_regex = re.compile("^\s*0[xX][0-9a-fA-F]+") - BYTES_PER_LINE = 10 - bytes_current = 0 - with open(cmvspy_filename) as cmvspy_file: - for line in cmvspy_file: - matches = hex_regex.match(line) - if not matches: - continue - cmvspy_py_file.write(matches.group() + ", ") - bytes_current += 1 - if bytes_current >= 10: - bytes_current = 0 - cmvspy_py_file.write(" \\\n\t") - cmvspy_py_file.write(")\n") - cmvspy_py_file.close() - print("Done.") diff --git a/tests/obsolete/test_coremini.py b/tests/obsolete/test_coremini.py deleted file mode 100644 index f99cd0d20..000000000 --- a/tests/obsolete/test_coremini.py +++ /dev/null @@ -1,75 +0,0 @@ -import ics -import unittest -import random -import time -import os - -from cmvspy import data - - -class testCoreMini(unittest.TestCase): - def _clear_coremini(self): - if self.dev1.DeviceType == ics.NEODEVICE_VCAN3: - ics.coremini_clear(self.dev1, ics.SCRIPT_LOCATION_VCAN3_MEM) - else: - ics.coremini_clear(self.dev1, ics.SCRIPT_LOCATION_FLASH_MEM) - ics.coremini_clear(self.dev1, ics.SCRIPT_LOCATION_SDCARD) - - @classmethod - def setUpClass(self): - # input() # for debugging purposes - self.dev1 = ics.open_device() - self._clear_coremini(self) - - @classmethod - def tearDownClass(self): - # For some reason tp_dealloc doesn't get called on - # ics.NeoDevice when initialzed in setUpClass(). - # Lets force it here. - self._clear_coremini(self) - del self.dev1 - - def testStartStop(self): - def load_coremini(self, contents, location): - self.assertFalse(ics.coremini_get_status(self.dev1)) - ics.coremini_load(self.dev1, contents, location) - ics.coremini_start(self.dev1, location) - self.assertTrue(ics.coremini_get_status(self.dev1)) - time.sleep(2) - ics.coremini_clear(self.dev1, location) - time.sleep(0.1) - self.assertFalse(ics.coremini_get_status(self.dev1)) - - # This allows us to work in other directories and leave the vs3cmb file - # inside same directory as the script. - vs3file = os.path.dirname(os.path.realpath(__file__)) + "/cmvspy.vs3cmb" - if self.dev1.DeviceType == ics.NEODEVICE_VCAN3: - load_coremini(self, data, ics.SCRIPT_LOCATION_VCAN3_MEM) - load_coremini(self, vs3file, ics.SCRIPT_LOCATION_VCAN3_MEM) - elif self.dev1.DeviceType == ics.NEODEVICE_FIRE2: - load_coremini(self, data, ics.SCRIPT_LOCATION_SDCARD) - load_coremini(self, vs3file, ics.SCRIPT_LOCATION_SDCARD) - else: - load_coremini(self, data, ics.SCRIPT_LOCATION_FLASH_MEM) - load_coremini(self, data, ics.SCRIPT_LOCATION_SDCARD) - load_coremini(self, vs3file, ics.SCRIPT_LOCATION_FLASH_MEM) - load_coremini(self, vs3file, ics.SCRIPT_LOCATION_SDCARD) - - def testFblock(self): - if self.dev1.DeviceType == ics.NEODEVICE_VCAN3: - ics.coremini_load(self.dev1, data, ics.SCRIPT_LOCATION_VCAN3_MEM) - elif self.dev1.DeviceType == ics.NEODEVICE_FIRE2: - ics.coremini_load(self.dev1, data, ics.SCRIPT_LOCATION_SDCARD) - else: - ics.coremini_load(self.dev1, data, ics.SCRIPT_LOCATION_FLASH_MEM) - self.assertTrue(ics.coremini_get_fblock_status(self.dev1, 0)) - self.assertIsNone(ics.coremini_stop_fblock(self.dev1, 0)) - self.assertFalse(ics.coremini_get_fblock_status(self.dev1, 0)) - time.sleep(2) - self.assertIsNone(ics.coremini_start_fblock(self.dev1, 0)) - self.assertTrue(ics.coremini_get_fblock_status(self.dev1, 0)) - self._clear_coremini(self) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/obsolete/test_find_devices.py b/tests/obsolete/test_find_devices.py deleted file mode 100644 index 232373193..000000000 --- a/tests/obsolete/test_find_devices.py +++ /dev/null @@ -1,120 +0,0 @@ -import timeit -import unittest -import ics - -# This test requries 2 devices attached, one neoVI FIRE2s and one ValueCAN3 - -_DEBUG = False - - -class TestFindDevicesLegacy(unittest.TestCase): - @classmethod - def setUpClass(self): - ics.override_library_name(r"icsneo40-legacy.dll") - if _DEBUG: - import os - - input("Pause... " + str(os.getpid())) - - def test_default_parameters(self): - devices = ics.find_devices() - self.assertTrue(len(devices) == 2) - - def test_default_parameters_time(self): - if not _DEBUG: - self.assertTrue((timeit.timeit("ics.find_devices()", setup="import ics", number=1000)) <= 5.0) - - def test_find_fire2(self): - devices = ics.find_devices(ics.NEODEVICE_FIRE2) - self.assertTrue(len(devices) == 1) - - def test_find_vcan3(self): - devices = ics.find_devices(ics.NEODEVICE_VCAN3) - self.assertTrue(len(devices) == 1) - - def test_find_fire2_and_vcan3(self): - devices = ics.find_devices(ics.NEODEVICE_FIRE2 | ics.NEODEVICE_VCAN3) - self.assertTrue(len(devices) == 2) - - -class TestFindDevicesNewStyle(unittest.TestCase): - @classmethod - def setUpClass(self): - ics.override_library_name(r"icsneo40.dll") - if _DEBUG: - import os - - input("Pause... " + str(os.getpid())) - - def test_default_parameters(self): - devices = ics.find_devices() - self.assertTrue(len(devices) == 2) - - def test_default_parameters_time(self): - if not _DEBUG: - self.assertTrue((timeit.timeit("ics.find_devices()", setup="import ics", number=1000)) <= 5.0) - - def test_find_fire2(self): - devices = ics.find_devices( - [ - ics.NEODEVICE_FIRE2, - ] - ) - self.assertTrue(len(devices) == 1) - - def test_find_vcan3(self): - devices = ics.find_devices( - [ - ics.NEODEVICE_VCAN3, - ] - ) - self.assertTrue(len(devices) == 1) - - def test_find_fire2_and_vcan3(self): - devices = ics.find_devices([ics.NEODEVICE_FIRE2, ics.NEODEVICE_VCAN3]) - self.assertTrue(len(devices) == 2) - - -class TestFindDevicesNewStyleWithLegacyDLL(unittest.TestCase): - @classmethod - def setUpClass(self): - ics.override_library_name(r"icsneo40-legacy.dll") - if _DEBUG: - import os - - input("Pause... " + str(os.getpid())) - - def test_default_parameters(self): - devices = ics.find_devices() - self.assertTrue(len(devices) == 2) - - def test_default_parameters_time(self): - self.assertTrue((timeit.timeit("ics.find_devices()", setup="import ics", number=1000)) <= 5.0) - - def test_find_fire2(self): - devices = ics.find_devices( - [ - ics.NEODEVICE_FIRE2, - ] - ) - self.assertTrue(len(devices) == 2) - - def test_find_vcan3(self): - devices = ics.find_devices( - [ - ics.NEODEVICE_VCAN3, - ] - ) - self.assertTrue(len(devices) == 2) - - def test_find_fire2_and_vcan3(self): - devices = ics.find_devices([ics.NEODEVICE_FIRE2, ics.NEODEVICE_VCAN3]) - self.assertTrue(len(devices) == 2) - - -if __name__ == "__main__": - if _DEBUG: - import os - - input("Pause... " + str(os.getpid())) - unittest.main() diff --git a/tests/obsolete/test_get_device_status.py b/tests/obsolete/test_get_device_status.py deleted file mode 100644 index 86a7b674d..000000000 --- a/tests/obsolete/test_get_device_status.py +++ /dev/null @@ -1,19 +0,0 @@ -import ics -import time - - -def print_device_status(s): - for attr_name in dir(s): - if attr_name.startswith("_"): - continue - print(attr_name, " " * (35 - len(attr_name)), getattr(s, attr_name)) - if attr_name.upper() in ("FIRE2STATUS", "VCAN4STATUS"): - print() - print_device_status(getattr(s, attr_name)) - print() - - -d = ics.open_device() -time.sleep(0.250) # Give the device time to send the frame -s = ics.get_device_status(d) -print_device_status(s) diff --git a/tests/obsolete/test_network_fire.py b/tests/obsolete/test_network_fire.py deleted file mode 100644 index 38bf5da3e..000000000 --- a/tests/obsolete/test_network_fire.py +++ /dev/null @@ -1,129 +0,0 @@ -import ics -import unittest -import time -import random - - -class testneoVIFIRENetworks(unittest.TestCase): - @classmethod - def setUpClass(self): - devices = ics.find_devices(ics.NEODEVICE_FIRE) - ics.open_device(devices[0]) - ics.open_device(devices[1]) - self.dev1 = devices[0] - self.dev2 = devices[1] - - @classmethod - def setUp(self): - ics.load_default_settings(self.dev1) - ics.load_default_settings(self.dev2) - - # Make sure we start with a "clean" network - ics.get_error_messages(self.dev1) - ics.get_error_messages(self.dev2) - ics.get_messages(self.dev1, False, 0.1) - ics.get_messages(self.dev2, False, 0.1) - - @classmethod - def tearDownClass(self): - # For some reason tp_dealloc doesn't get called on - # ics.NeoDevice when initialzed in setUpClass(). - # Lets force it here. - del self.dev1 - del self.dev2 - - def testCAN(self): - message = ics.SpyMessage() - message.ArbIDOrHeader = 0xFF - message.Data = (1, 2, 3, 4, 5, 6, 7, 8) - for network in ( - ics.NETID_HSCAN, - ics.NETID_MSCAN, - ics.NETID_HSCAN2, - ics.NETID_HSCAN3, - ics.NETID_LSFTCAN, - ics.NETID_SWCAN, - ): - message.NetworkID = network - try: - self.assertTrue(ics.transmit_messages(self.dev1, message) == None, network) - except ics.RuntimeError as ex: - print(ex, network) - raise ex - self.assertFalse(ics.get_error_messages(self.dev1)) - self.assertFalse(ics.get_error_messages(self.dev2)) - messages, error_count = ics.get_messages(self.dev1, False, 0.1) - self.assertEqual(error_count, 0) - self.assertEqual(len(messages), 1) - self.assertEqual(message.ArbIDOrHeader, messages[0].ArbIDOrHeader) - self.assertEqual(message.NetworkID, messages[0].NetworkID) - self.assertEqual(message.Data, messages[0].Data) - self.assertFalse(ics.get_error_messages(self.dev1)) - self.assertFalse(ics.get_error_messages(self.dev2)) - - def testLIN(self): - message = ics.SpyMessageJ1850() - message.Header = (0x3C, 1, 2) - message.StatusBitField = ics.SPY_STATUS_NETWORK_MESSAGE_TYPE | ics.SPY_STATUS_LIN_MASTER - message.Protocol = ics.SPY_PROTOCOL_LIN - - for network in (ics.NETID_LIN, ics.NETID_LIN2, ics.NETID_LIN3, ics.NETID_LIN4): - message.NetworkID = network - message.Data = tuple([random.randint(x, 0xFF) for x in range(6)]) - # Generate the checksum - checksum = 0 - for byte in message.Data + message.Header[1:3]: - checksum += byte - if checksum > 255: - checksum -= 255 - message.Data += ((~checksum & 0xFF),) - self.assertTrue(ics.transmit_messages(self.dev1, message) == None) - self.assertFalse(ics.get_error_messages(self.dev1)) - self.assertFalse(ics.get_error_messages(self.dev2)) - messages, error_count = ics.get_messages(self.dev1, False, 0.1) - self.assertEqual(error_count, 0) - self.assertEqual(len(messages), 1) - self.assertEqual(message.Header, messages[0].Header) - self.assertEqual(message.NetworkID, messages[0].NetworkID) - self.assertEqual(message.Data[0:-1], messages[0].Data) - self.assertFalse(ics.get_error_messages(self.dev1)) - self.assertFalse(ics.get_error_messages(self.dev2)) - - def testMISC(self): - # dev1 = output, dev2 = input - def _test_misc(self, state): - arbs = (0x203, 0x204, 0x205, 0x206, 0x201, 0x202) - for arb in arbs: - message = ics.SpyMessage() - message.ArbIDOrHeader = arb - message.NetworkID = ics.NETID_DEVICE - message.Data = (state,) - self.assertEqual(ics.transmit_messages(self.dev1, message), None) - # Wait for the report message to get sent - time.sleep(0.2) - self.assertFalse(ics.get_error_messages(self.dev1)) - self.assertFalse(ics.get_error_messages(self.dev2)) - messages, error_count = ics.get_messages(self.dev2, False, 0.5) - self.assertEqual(error_count, 0) - self.assertNotEqual(len(messages), 0) - self.assertEqual(messages[-1].ArbIDOrHeader, 0x100) - for i, arb in enumerate(arbs): - # print(messages[-1].Data, messages[-1].Data[1]>>i & 1) - self.assertEqual(messages[-1].Data[1] >> i & 1, state, "MISC%d PIN state is wrong" % (arb - 0x200)) - self.assertFalse(ics.get_error_messages(self.dev1)) - self.assertFalse(ics.get_error_messages(self.dev2)) - - # Change the device settings - # dev1 = output, dev2 = input - settings = ics.get_device_settings(self.dev1) - settings.misc_io_initial_ddr = 0x3F - settings.misc_io_initial_latch = 0x3F - ics.set_device_settings(self.dev1, settings) - settings = ics.get_device_settings(self.dev2) - settings.misc_io_initial_ddr = 0x0 - settings.misc_io_initial_latch = 0x0 - settings.misc_io_on_report_events = 0x7F - settings.misc_io_report_period = 100 - ics.set_device_settings(self.dev2, settings) - _test_misc(self, 1) - _test_misc(self, 0) diff --git a/tests/obsolete/test_open_close.py b/tests/obsolete/test_open_close.py deleted file mode 100644 index dd50bcc91..000000000 --- a/tests/obsolete/test_open_close.py +++ /dev/null @@ -1,59 +0,0 @@ -import ics -import unittest -import time - - -class testneoVIFIRENetworks(unittest.TestCase): - @classmethod - def setUpClass(self): - self.devices = ics.find_devices() - - @classmethod - def setUp(self): - pass # time.sleep(2) - - @classmethod - def tearDownClass(self): - # For some reason tp_dealloc doesn't get called on - # ics.NeoDevice when initialzed in setUpClass(). - # Lets force it here. - del self.devices - - def testAutoClose(self): - devices = ics.find_devices() - for device in devices: - ics.open_device(device) - del devices # emulate NeoDevice list going out of scope - devices = ics.find_devices() - for device in devices: - ics.open_device(device) - - def testOpenCloseByFind(self): - # Open by ics.NeoDevice - for device in self.devices: - ics.open_device(device) - ics.close_device(device) - - def testOpenCloseBySerial(self): - # Open by serial number - for device in self.devices: - d = ics.open_device(device.SerialNumber) - ics.close_device(d) - - def testOpenCloseByFirstFound(self): - # Open by first found - first_devices = [] - for x in range(len(self.devices)): - first_devices.append(ics.open_device()) - # Close by API - for device in first_devices: - ics.close_device(device) - - def testOpenClose100Times(self): - for x in range(100): - try: - ics.open_device(self.devices[0]) - ics.close_device(self.devices[0]) - except Exception as ex: - print(f"Failed at iteration {x}...") - raise ex \ No newline at end of file diff --git a/tests/obsolete/test_structs.py b/tests/obsolete/test_structs.py deleted file mode 100644 index 25a9de512..000000000 --- a/tests/obsolete/test_structs.py +++ /dev/null @@ -1,249 +0,0 @@ -import unittest -import sys -import os - -# print(os.getcwd()) -print(os.path.abspath("../")) -sys.path.append("../") - -from ics.structures.inner_structure import * -from ics.structures.test_structure import * -from ics.structures.test import * - - -class TestTestEnum(unittest.TestCase): - def test_all(self): - self.assertEqual(test.TestNone, 0) - self.assertEqual(test.TestA, 1) - self.assertEqual(test.TestB, 2) - self.assertEqual(test.TestC, 3) - self.assertEqual(test.TestD, 4) - self.assertEqual(test.TestE, 5) - - -class TestInnerStructure(unittest.TestCase): - def test_all(self): - t = inner_structure() - self.assertTrue(isinstance(t, ctypes.Structure)) - - # default init - self.assertEqual(t.a, b"\x00") - self.assertEqual(t.b, 0) - self.assertEqual(t.t, 0) - t.a = b"Z" - self.assertEqual(t.a, b"Z") - self.assertEqual(t.b, 0) - self.assertEqual(t.t, 0) - t.a = b"\x00" - t.b = 10 - self.assertEqual(t.a, b"\x00") - self.assertEqual(t.b, 10) - self.assertEqual(t.t, 0) - t.b = 0 - t.t = test.TestD - self.assertEqual(t.a, b"\x00") - self.assertEqual(t.b, 0) - self.assertEqual(t.t, test.TestD) - - -class TestTestStructure(unittest.TestCase): - def test_a(self): - t = A() - self.assertTrue(isinstance(t, ctypes.Structure)) - # default init - self.assertEqual(t.a, 0) - self.assertEqual(t.b, 0) - self.assertEqual(t.c, 0) - t.a = 10 - self.assertEqual(t.a, 10) - self.assertEqual(t.b, 0) - self.assertEqual(t.c, 0) - t.a = 0 - t.b = 10 - self.assertEqual(t.a, 0) - self.assertEqual(t.b, 10) - self.assertEqual(t.c, 0) - t.b = 0 - t.c = 10 - self.assertEqual(t.a, 0) - self.assertEqual(t.b, 0) - self.assertEqual(t.c, 10) - - def test_b(self): - t = B() - self.assertTrue(isinstance(t, ctypes.Structure)) - # default init - self.assertEqual(t.d, 0) - self.assertEqual(t.e, 0) - self.assertEqual(t.f, 0) - t.d = 1 - self.assertEqual(t.d, 1) - self.assertEqual(t.e, 0) - self.assertEqual(t.f, 0) - t.d = 0 - t.e = 1 - self.assertEqual(t.d, 0) - self.assertEqual(t.e, 1) - self.assertEqual(t.f, 0) - t.e = 0 - t.f = 1 - self.assertEqual(t.d, 0) - self.assertEqual(t.e, 0) - self.assertEqual(t.f, 1) - - def test_c(self): - t = C() - self.assertTrue(isinstance(t, ctypes.Union)) - # default init - self.assertEqual(t.ghi, 0) - self.assertEqual(t.g, 0) - self.assertEqual(t.h, 0) - self.assertEqual(t.i, 0) - t.g = 1 - self.assertEqual(t.ghi, 0x1) - self.assertEqual(t.g, 1) - self.assertEqual(t.h, 0) - self.assertEqual(t.i, 0) - t.g = 0 - t.h = 1 - self.assertEqual(t.ghi, 0x10000) - self.assertEqual(t.g, 0) - self.assertEqual(t.h, 1) - self.assertEqual(t.i, 0) - t.h = 0 - t.i = 1 - self.assertEqual(t.ghi, 0x100000000) - self.assertEqual(t.g, 0) - self.assertEqual(t.h, 0) - self.assertEqual(t.i, 1) - t.i = 0 - t.ghi = 0x100010001 - self.assertEqual(t.ghi, 0x100010001) - self.assertEqual(t.g, 1) - self.assertEqual(t.h, 1) - self.assertEqual(t.i, 1) - - def test_d(self): - t = D() - self.assertTrue(isinstance(t, ctypes.Union)) - # default init - self.assertEqual(t.jkm, 0) - self.assertEqual(t.j, 0) - self.assertEqual(t.k, 0) - self.assertEqual(t.m, 0) - t.j = 1 - self.assertEqual(t.jkm, 0x1) - self.assertEqual(t.j, 1) - self.assertEqual(t.k, 0) - self.assertEqual(t.m, 0) - t.j = 0 - t.k = 1 - self.assertEqual(t.jkm, 0x10000) - self.assertEqual(t.j, 0) - self.assertEqual(t.k, 1) - self.assertEqual(t.m, 0) - t.k = 0 - t.m = 1 - self.assertEqual(t.jkm, 0x100000000) - self.assertEqual(t.j, 0) - self.assertEqual(t.k, 0) - self.assertEqual(t.m, 1) - t.m = 0 - t.jkm = 0x100010001 - self.assertEqual(t.jkm, 0x100010001) - self.assertEqual(t.j, 1) - self.assertEqual(t.k, 1) - self.assertEqual(t.m, 1) - - def test_e(self): - t = E() - self.assertTrue(isinstance(t, ctypes.Structure)) - # default init - self.assertEqual(t.n, 0) - self.assertEqual(t.p, 0) - self.assertEqual(t.q, 0) - t.n = 1 - self.assertEqual(t.n, 1) - self.assertEqual(t.p, 0) - self.assertEqual(t.q, 0) - t.n = 0 - t.p = 1 - self.assertEqual(t.n, 0) - self.assertEqual(t.p, 1) - self.assertEqual(t.q, 0) - t.p = 0 - t.q = 1 - self.assertEqual(t.n, 0) - self.assertEqual(t.p, 0) - self.assertEqual(t.q, 1) - t.q = 0 - self.assertEqual(t.n, 0) - self.assertEqual(t.p, 0) - self.assertEqual(t.q, 0) - - def test_f(self): - t = F() - self.assertTrue(isinstance(t, ctypes.Structure)) - # default init - self.assertEqual(t.r, 0) - self.assertEqual(t.s, 0) - self.assertEqual(t.t, 0) - t.r = 1 - self.assertEqual(t.r, 1) - self.assertEqual(t.s, 0) - self.assertEqual(t.t, 0) - t.r = 0 - t.s = 1 - self.assertEqual(t.r, 0) - self.assertEqual(t.s, 1) - self.assertEqual(t.t, 0) - t.s = 0 - t.t = 1 - self.assertEqual(t.r, 0) - self.assertEqual(t.s, 0) - self.assertEqual(t.t, 1) - t.t = 0 - self.assertEqual(t.r, 0) - self.assertEqual(t.s, 0) - self.assertEqual(t.t, 0) - - def test_anonymous(self): - t = test_structure() - self.assertTrue(isinstance(t, ctypes.Structure)) - - # test B - self.assertTrue(isinstance(t.B, ctypes.Structure)) - # default init - self.assertEqual(t._def, 0) - self.assertEqual(t.B.d, 0) - self.assertEqual(t.B.e, 0) - self.assertEqual(t.B.f, 0) - t.B.d = 1 - self.assertEqual(t._def, 0x1) - self.assertEqual(t.B.d, 1) - self.assertEqual(t.B.e, 0) - self.assertEqual(t.B.f, 0) - t.B.d = 0 - t.B.e = 1 - self.assertEqual(t._def, 0x2) - self.assertEqual(t.B.d, 0) - self.assertEqual(t.B.e, 1) - self.assertEqual(t.B.f, 0) - t.B.e = 0 - t.B.f = 1 - self.assertEqual(t._def, 0x4) - self.assertEqual(t.B.d, 0) - self.assertEqual(t.B.e, 0) - self.assertEqual(t.B.f, 1) - t._def = 0x7 - self.assertEqual(t._def, 0x7) - self.assertEqual(t.B.d, 1) - self.assertEqual(t.B.e, 1) - self.assertEqual(t.B.f, 1) - - -if __name__ == "__main__": - try: - unittest.main() - except SystemExit as ex: - print(f"Return code: {int(ex.code)}") diff --git a/tests/runner/Readme.md b/tests/runner/Readme.md deleted file mode 100644 index 55328b6a2..000000000 --- a/tests/runner/Readme.md +++ /dev/null @@ -1,14 +0,0 @@ -Runner tests -=== - -This directory is specifically for testing against hardware attached to the runner. - -Each runner consists of the following hardware: - -- neoVI FIRE3 -- neoVI FIRE2 -- ValueCAN4-2 - - -- RAD-Moon2 -- RAD-Moon2 diff --git a/tests/runner/__init__.py b/tests/runner/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/runner/test_network.py b/tests/runner/test_network.py deleted file mode 100644 index 758d9de26..000000000 --- a/tests/runner/test_network.py +++ /dev/null @@ -1,118 +0,0 @@ -import unittest -import time -import ics -from ics.py_neo_device_ex import PyNeoDeviceEx -from ics.structures.e_device_settings_type import e_device_settings_type - -unittest.TestLoader.sortTestMethodsUsing = None - - -def are_errors_present(msg): - """Helper function to detect if a message error occurred.""" - error_flags = 0 - error_flags |= ics.SPY_STATUS_GLOBAL_ERR - error_flags |= ics.SPY_STATUS_CRC_ERROR - error_flags |= ics.SPY_STATUS_CAN_ERROR_PASSIVE - error_flags |= ics.SPY_STATUS_HEADERCRC_ERROR - error_flags |= ics.SPY_STATUS_INCOMPLETE_FRAME - error_flags |= ics.SPY_STATUS_LOST_ARBITRATION - error_flags |= ics.SPY_STATUS_UNDEFINED_ERROR - error_flags |= ics.SPY_STATUS_CAN_BUS_OFF - error_flags |= ics.SPY_STATUS_BUS_RECOVERED - error_flags |= ics.SPY_STATUS_BUS_SHORTED_PLUS - error_flags |= ics.SPY_STATUS_BUS_SHORTED_GND - error_flags |= ics.SPY_STATUS_CHECKSUM_ERROR - error_flags |= ics.SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR - error_flags |= ics.SPY_STATUS_TX_NOMATCH - error_flags |= ics.SPY_STATUS_COMM_IN_OVERFLOW - error_flags |= ics.SPY_STATUS_EXPECTED_LEN_MISMATCH - error_flags |= ics.SPY_STATUS_MSG_NO_MATCH - error_flags |= ics.SPY_STATUS_BREAK - error_flags |= ics.SPY_STATUS_AVSI_REC_OVERFLOW - error_flags |= ics.SPY_STATUS_BREAK - if (msg.StatusBitField & error_flags) != 0: - return True - return False - - -class BaseTests: - """Base classes. These are isolated and won't be run/discovered. Used for inheritance""" - - class TestCAN(unittest.TestCase): - @classmethod - def setUpClass(cls): - cls.netid = None - - @classmethod - def setUp(self): - self.devices = ics.find_devices() - for device in self.devices: - device.open() - device.load_default_settings() - - @classmethod - def tearDown(self): - for device in self.devices: - device.close() - - def test_get_messages(self): - for device in self.devices: - messages, error_count = device.get_messages() - - def test_transmit(self): - data = tuple([x for x in range(64)]) - tx_msg = ics.SpyMessage() - tx_msg.ArbIDOrHeader = 0x01 - tx_msg.NetworkID = self.netid - tx_msg.Protocol = ics.SPY_PROTOCOL_CANFD - tx_msg.StatusBitField = ics.SPY_STATUS_CANFD | ics.SPY_STATUS_NETWORK_MESSAGE_TYPE - tx_msg.StatusBitField3 = ics.SPY_STATUS3_CANFD_BRS | ics.SPY_STATUS3_CANFD_FDF - tx_msg.ExtraDataPtr = data - for device in self.devices: - # Clear any messages in the buffer - _, __ = device.get_messages() - device.transmit_messages(tx_msg) - # CAN ACK timeout in firmware is 200ms, so wait 300ms for ACK - time.sleep(0.3) - start = time.time() - messages, error_count = device.get_messages(False, 1) - elapsed = time.time() - start - print(f"Elapsed time rx: {elapsed:.4f}s") - self.assertEqual(error_count, 0, str(device)) - self.assertTrue(len(messages) > 0, str(device)) - # Find the transmit message - tx_messages = [] - for message in messages: - if message.StatusBitField & ics.SPY_STATUS_TX_MSG == ics.SPY_STATUS_TX_MSG: - tx_messages.append(message) - self.assertEqual(len(tx_messages), 1, str(device)) - for message in tx_messages: - # We should only have one transmit message in the buffer - self.assertEqual(tx_msg.ArbIDOrHeader, message.ArbIDOrHeader, str(device)) - self.assertEqual(tx_msg.NetworkID, message.NetworkID, str(device)) - self.assertEqual(tx_msg.ExtraDataPtr, message.ExtraDataPtr, str(device)) - self.assertFalse(are_errors_present(message), f"{str(device)} {hex(message.StatusBitField)}") - self.assertEqual( - tx_msg.StatusBitField | ics.SPY_STATUS_TX_MSG, - message.StatusBitField, - f"{str(device)} {hex(tx_msg.StatusBitField| ics.SPY_STATUS_TX_MSG)} {hex(message.StatusBitField)}", - ) - self.assertEqual( - tx_msg.StatusBitField3, message.StatusBitField3, f"{str(device)} {hex(message.StatusBitField3)}" - ) - - -class TestHSCAN1(BaseTests.TestCAN): - @classmethod - def setUpClass(cls): - cls.netid = ics.NETID_HSCAN - - -class TestHSCAN2(BaseTests.TestCAN): - @classmethod - def setUpClass(cls): - cls.netid = ics.NETID_HSCAN2 - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/runner/test_open_close.py b/tests/runner/test_open_close.py deleted file mode 100644 index 6bd0f8dd1..000000000 --- a/tests/runner/test_open_close.py +++ /dev/null @@ -1,114 +0,0 @@ -import unittest -import ics - -unittest.TestLoader.sortTestMethodsUsing = None - - -class TestOpenClose(unittest.TestCase): - @classmethod - def setUpClass(self): - self.expected_dev_count = 3 - self.devices = ics.find_devices() - - @classmethod - def setUp(self): - pass - - @classmethod - def tearDownClass(self): - # For some reason tp_dealloc doesn't get called on - # ics.NeoDevice when initialzed in setUpClass(). - # Lets force it here. - del self.devices - - def _check_devices(self): - self.assertEqual( - len(self.devices), - self.expected_dev_count, - f"Expected {self.expected_dev_count}, found {len(self.devices)} ({self.devices})...", - ) - - def test_find_fire3(self): - self._check_devices() - devices = ics.find_devices([ics.NEODEVICE_FIRE3]) - self.assertTrue(len(devices) == 1) - self.assertEqual(devices[0].DeviceType, ics.NEODEVICE_FIRE3) - - def test_find_fire2(self): - self._check_devices() - devices = ics.find_devices([ics.NEODEVICE_FIRE2]) - self.assertTrue(len(devices) == 1) - self.assertEqual(devices[0].DeviceType, ics.NEODEVICE_FIRE2) - - def test_find_vcan42(self): - self._check_devices() - devices = ics.find_devices([ics.NEODEVICE_VCAN42]) - self.assertTrue(len(devices) == 1) - self.assertEqual(devices[0].DeviceType, ics.NEODEVICE_VCAN42) - - def test_find_fire2_and_vcan42(self): - self._check_devices() - devices = ics.find_devices([ics.NEODEVICE_FIRE2, ics.NEODEVICE_VCAN42]) - self.assertTrue(len(devices) == 2) - - def test_open_close(self): - self._check_devices() - for device in self.devices: - self.assertEqual(device.NumberOfClients, 0) - self.assertEqual(device.MaxAllowedClients, 1) - d = ics.open_device(device) - try: - self.assertEqual(device, d) - self.assertEqual(device.NumberOfClients, 1) - self.assertEqual(device.MaxAllowedClients, 1) - - self.assertEqual(d.NumberOfClients, 1) - self.assertEqual(d.MaxAllowedClients, 1) - finally: - self.assertEqual(device.NumberOfClients, 1) - self.assertEqual(d.NumberOfClients, 1) - ics.close_device(d) - self.assertEqual(device.NumberOfClients, 0) - self.assertEqual(d.NumberOfClients, 0) - - def test_open_close_by_serial(self): - # Open by serial number - for device in self.devices: - d = ics.open_device(device.SerialNumber) - self.assertEqual(d.SerialNumber, device.SerialNumber) - ics.close_device(d) - - def test_open_close_first_found(self): - # Open by first found - first_devices = [] - for x, device in enumerate(self.devices): - try: - self.assertEqual(device.NumberOfClients, 0, f"{device}") - d = ics.open_device() - first_devices.append(d) - self.assertEqual(d.NumberOfClients, 1, f"{device}") - except ics.RuntimeError as ex: - raise RuntimeError(f"Failed to open {device}... Iteration {len(first_devices)} ({ex})") - self.assertEqual(len(self.devices), len(first_devices)) - # Close by API - for device in first_devices: - self.assertEqual(device.NumberOfClients, 1, f"{device}") - ics.close_device(device) - self.assertEqual(device.NumberOfClients, 0, f"{device}") - - def test_open_close_10_times(self): - for device in self.devices: - for x in range(10): - try: - self.assertEqual(device.NumberOfClients, 0) - ics.open_device(device) - self.assertEqual(device.NumberOfClients, 1) - error_count = ics.close_device(device) - self.assertEqual(device.NumberOfClients, 0) - self.assertEqual(error_count, 0, "Error count was not 0 on {device} iteration {x}...") - except Exception as ex: - print(f"Failed at iteration {x} {device}: {ex}...") - raise ex - -if __name__ == "__main__": - unittest.main() diff --git a/tests/runner/test_settings.py b/tests/runner/test_settings.py deleted file mode 100644 index 5ded46cb0..000000000 --- a/tests/runner/test_settings.py +++ /dev/null @@ -1,71 +0,0 @@ -import unittest -import ics -from ics.py_neo_device_ex import PyNeoDeviceEx -from ics.structures.e_device_settings_type import e_device_settings_type - -unittest.TestLoader.sortTestMethodsUsing = None - - -class BaseTests: - """Base classes. These are isolated and won't be run/discovered. Used for inheritance""" - - class TestSettings(unittest.TestCase): - @classmethod - def setUpClass(cls): - cls.device_type = None - cls.device_settings_type = None - - def _get_device(self) -> PyNeoDeviceEx: - devices = ics.find_devices([self.device_type]) - self.assertEqual( - len(devices), - 1, - f"Failed to find any device types of {self.device_type}! Expected 1, got {len(devices)}.", - ) - return devices[0] - - def test_load_defaults(self): - device = self._get_device() - device.open() - try: - ics.load_default_settings(device) - finally: - device.close() - - def test_get_set_settings(self): - device = self._get_device() - device.open() - try: - ics.load_default_settings(device) - settings = ics.get_device_settings(device) - self.assertEqual(settings.DeviceSettingType, self.device_settings_type) - ics.set_device_settings(device, settings) - _ = ics.get_device_settings(device) - # TODO: compare both settings - finally: - device.close() - - -class TestFire3Settings(BaseTests.TestSettings): - @classmethod - def setUpClass(cls): - cls.device_type = ics.NEODEVICE_FIRE3 - cls.device_settings_type = e_device_settings_type.DeviceFire3SettingsType - - -class TestFire2Settings(BaseTests.TestSettings): - @classmethod - def setUpClass(cls): - cls.device_type = ics.NEODEVICE_FIRE2 - cls.device_settings_type = e_device_settings_type.DeviceFire2SettingsType - - -class TestValueCAN42Settings(BaseTests.TestSettings): - @classmethod - def setUpClass(cls): - cls.device_type = ics.NEODEVICE_VCAN42 - cls.device_settings_type = e_device_settings_type.DeviceVCAN412SettingsType - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_defines.py b/tests/test_defines.py new file mode 100644 index 000000000..fb8962744 --- /dev/null +++ b/tests/test_defines.py @@ -0,0 +1,26 @@ +import pytest +import ics + +def test_unsigned_overflow(): + """Test that certain defines are correctly set to large unsigned values.""" + # These values are defined in icsnVC40.h and should be interpreted as unsigned + values = ( + "SPY_STATUS_EXTENDED", + "SPY_STATUS2_ETHERNET_T1S_ETHERNET", + "SPY_STATUS2_LIN_NO_SLAVE_DATA", + "SPY_STATUS2_MOST_CHANGED_PAR" + ) + for value in values: + if hasattr(ics, value): + assert getattr(ics, value) == 0x80000000 + +if __name__ == "__main__": + import pytest + + pytest.main( + args=[ + __file__, + "--verbose", + "-s", + ] + ) diff --git a/uv.lock b/uv.lock index bdcce60bc..89db95d3e 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 1 +revision = 3 requires-python = ">=3.9" [[package]] From b108b678094cf11689bc6e870793c1f70f154357 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 20 Nov 2025 12:12:52 -0500 Subject: [PATCH 28/38] Add support for icsneoRequestSetNeoVIMiscIO (#222) --- include/methods.h | 34 +++++++++++++-- src/ics/py_neo_device_ex.py | 4 ++ src/methods.cpp | 84 ++++++++++++++++++++++++++++++------- 3 files changed, 103 insertions(+), 19 deletions(-) diff --git a/include/methods.h b/include/methods.h index c48fcb6ff..b386f8707 100644 --- a/include/methods.h +++ b/include/methods.h @@ -101,9 +101,10 @@ extern "C" PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args); PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args); PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args); - PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName - PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI - PyObject* meth_get_component_versions(PyObject* self, PyObject* args); // icsneoGetComponentVersions + PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName + PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI + PyObject* meth_get_component_versions(PyObject* self, PyObject* args); // icsneoGetComponentVersions + PyObject* meth_request_set_neovi_miscio(PyObject* self, PyObject* args); // icsneoRequestSetNeoVIMiscIO #ifdef _cplusplus } @@ -1975,6 +1976,33 @@ extern "C" "\ttuple of ics.structures.version_report.version_report\n" \ "\n" +#define _DOC_REQUEST_SET_NEOVI_MISCIO \ + MODULE_NAME ".request_set_neovi_miscio(device, ddrs, ddrs_mask, states, states_mask, leds, leds_mask) -> None\n" \ + "\n" \ + "Sets MISCIO states for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ + "\n" \ + "\tddrs (:class:`int`): :class:`int`: Bitfield direction of IO. 1 = output.\n\n" \ + "\n" \ + "\tddrs_mask (:class:`int`): :class:`int`: Bitfield mask for ddrs. 1 = set\n\n" \ + "\n" \ + "\tstates (:class:`int`): :class:`int`: Bitfield state of IO. 1 = high.\n\n" \ + "\n" \ + "\tstates_mask (:class:`int`): :class:`int`: Bitfield mask for states. 1 = set\n\n" \ + "\n" \ + "\tleds (:class:`int`): :class:`int`: Bitfield state of LEDs. 1 = on.\n\n" \ + "\n" \ + "\tleds_mask (:class:`int`): :class:`int`: Bitfield mask for LEDs. 1 = set\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + extern PyMethodDef IcsMethods[]; #endif // _METHODS_H_ diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 2b9b805b4..0f17dbb60 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -502,3 +502,7 @@ def get_imei(self, *args, **kwargs): def get_component_versions(self, *args, **kwargs): "see ics.get_component_versions for details on arguments." return ics.get_component_versions(self, *args, **kwargs) + + def request_set_neovi_miscio(self, *args, **kwargs): + "see ics.request_set_neovi_miscio for details on arguments." + return ics.request_set_neovi_miscio(self, *args, **kwargs) diff --git a/src/methods.cpp b/src/methods.cpp index 940558ad1..f25d5f2e7 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -608,21 +608,19 @@ PyMethodDef IcsMethods[] = { meth_get_device_name, METH_VARARGS, _DOC_GET_DEVICE_NAME), - _EZ_ICS_STRUCT_METHOD("get_imei", - "icsneoGetIMEI", - "GetIMEI", - meth_get_imei, - METH_VARARGS, - _DOC_GET_IMEI), + _EZ_ICS_STRUCT_METHOD("get_imei", "icsneoGetIMEI", "GetIMEI", meth_get_imei, METH_VARARGS, _DOC_GET_IMEI), _EZ_ICS_STRUCT_METHOD("get_component_versions", "icsneoGetComponentVersions", "GetComponentVersions", meth_get_component_versions, METH_VARARGS, _DOC_GET_COMPONENT_VERSIONS), - - - + _EZ_ICS_STRUCT_METHOD("request_set_neovi_miscio", + "icsneoRequestSetNeoVIMiscIO", + "RequestSetNeoVIMiscIO", + meth_request_set_neovi_miscio, + METH_VARARGS, + _DOC_REQUEST_SET_NEOVI_MISCIO), { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, @@ -5465,7 +5463,8 @@ PyObject* meth_get_device_name(PyObject* self, PyObject* args) // icsneoGetDevic } } -PyObject* meth_get_imei(PyObject* self, PyObject* args) { // icsneoGetIMEI +PyObject* meth_get_imei(PyObject* self, PyObject* args) +{ // icsneoGetIMEI (void)self; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { @@ -5503,8 +5502,7 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG #ifndef _USE_INTERNAL_HEADER_ (void)self; (void)args; - return set_ics_exception(exception_runtime_error(), - "icsneoGetComponentVersions is not available"); + return set_ics_exception(exception_runtime_error(), "icsneoGetComponentVersions is not available"); #else (void)self; PyObject* obj = NULL; @@ -5526,7 +5524,8 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetComponentVersions(lib, "icsneoGetComponentVersions"); + ice::Function icsneoGetComponentVersions( + lib, "icsneoGetComponentVersions"); auto gil = PyAllowThreads(); std::vector version_reports; version_reports.reserve(length); @@ -5547,8 +5546,6 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG return set_ics_exception(exception_runtime_error(), "Failed to allocate version_report"); } - - // Get the internal buffer from version_report Py_buffer buffer = {}; if (PyObject_GetBuffer(obj, &buffer, PyBUF_CONTIG) != 0) { @@ -5564,4 +5561,59 @@ PyObject* meth_get_component_versions(PyObject* self, PyObject* args) // icsneoG return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } #endif -} \ No newline at end of file +} + +PyObject* meth_request_set_neovi_miscio(PyObject* self, PyObject* args) // icsneoRequestSetNeoVIMiscIO +{ + (void)self; + PyObject* obj = NULL; + uint32_t ddrs = 0; + uint32_t ddrs_mask = 0; + uint32_t states = 0; + uint32_t states_mask = 0; + uint32_t leds = 0; + uint32_t leds_mask = 0; + if (!PyArg_ParseTuple(args, + arg_parse("OIIIIII:", __FUNCTION__), + &obj, + &ddrs, + &ddrs_mask, + &states, + &states_mask, + &leds, + &leds_mask)) { + return NULL; + } + if (!PyNeoDeviceEx_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } + try { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + // int _stdcall icsneoRequestSetNeoVIMiscIO(void* hObject, + // uint32_t ddrs, + // uint32_t ddrs_mask, + // uint32_t states, + // uint32_t states_mask, + // uint32_t leds, + // uint32_t leds_mask) + ice::Function + icsneoRequestSetNeoVIMiscIO(lib, "icsneoRequestSetNeoVIMiscIO"); + auto gil = PyAllowThreads(); + if (!icsneoRequestSetNeoVIMiscIO(handle, ddrs, ddrs_mask, states, states_mask, leds, leds_mask)) { + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoRequestSetNeoVIMiscIO() Failed"); + } + gil.restore(); + Py_RETURN_NONE; + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} From b4adcee0da0b5925ffaade1e18b0dc6ad662a357 Mon Sep 17 00:00:00 2001 From: Bryant Jones <62441271+bmjones2@users.noreply.github.com> Date: Thu, 20 Nov 2025 22:51:52 -0500 Subject: [PATCH 29/38] Fix set_reflash_callback since icsneoSetReflashCallback has a void return type (#223) update signature for icsneoSetReflashCallback --- src/methods.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index f25d5f2e7..06fe5870c 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -2137,19 +2137,13 @@ PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetReflashCallback( + ice::Function icsneoSetReflashCallback( lib, "icsneoSetReflashCallback"); auto gil = PyAllowThreads(); if (callback == Py_None) { - if (!icsneoSetReflashCallback(NULL)) { - gil.restore(); - return set_ics_exception(exception_runtime_error(), "icsneoSetReflashCallback() Failed"); - } + icsneoSetReflashCallback(NULL); } else { - if (!icsneoSetReflashCallback(&message_reflash_callback)) { - gil.restore(); - return set_ics_exception(exception_runtime_error(), "icsneoSetReflashCallback() Failed"); - } + icsneoSetReflashCallback(&message_reflash_callback); } gil.restore(); Py_RETURN_NONE; From 129ee4357b59d969aa9392de0853c233a0b0d746 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 25 Nov 2025 12:29:00 -0500 Subject: [PATCH 30/38] V922.16 (#224) * Update to 9.22.16 * fixed function signatures in various functions --- include/ics/icsnVC40.h | 198 +++++++++++++++++++++++++++++- src/methods.cpp | 30 ++--- src/setup_module_auto_defines.cpp | 8 ++ 3 files changed, 217 insertions(+), 19 deletions(-) diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 5eaf45bc6..27d90e3b8 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -253,6 +253,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_GIGASTAR2 (0x00000029) #define NEODEVICE_FIRE3_T1S_LIN (0x0000002A) #define NEODEVICE_FIRE3_T1S_SENT (0x0000002B) +#define NEODEVICE_RADGEMINI (0x0000002C) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) @@ -285,7 +286,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB_DEPRECATED //clang-format on -#define DEVICECOUNT_FOR_EXPLORER (34) //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER (36) //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -568,6 +569,7 @@ typedef struct _stAPIFirmwareInfo /* Define number of CMP streams per device*/ #define CMP_STREAMS_FIRE3 (10) #define CMP_STREAMS_FIRE3FR (10) +#define CMP_STREAMS_FIRE3T1SLIN (10) #define CMP_STREAMS_RED2 (10) #define CMP_STREAMS_A2B (3) #define CMP_STREAMS_GIGASTAR (10) @@ -951,6 +953,11 @@ typedef union _stChipVersions uint8_t mchip_major; uint8_t mchip_minor; } radmoon3_versions; + struct + { + uint8_t mchip_major; + uint8_t mchip_minor; + } radgemini_versions; struct { @@ -1007,6 +1014,16 @@ typedef union _stChipVersions uint8_t vem_f_minor; } fire3_flexray_versions; + struct + { + uint8_t zchip_major; + uint8_t zchip_minor; + uint8_t schip_major; + uint8_t schip_minor; + uint8_t vem_z_major; + uint8_t vem_z_minor; + } fire3_t1slin_versions; + struct { uint8_t zynq_core_major; @@ -1271,6 +1288,7 @@ typedef enum SFP_ID_ICS_MV3244, SFP_ID_ICS_MC8670, SFP_ID_ICS_EN11100, + SFP_ID_ICS_AD1101, // add new entries here SFP_ID_MAX, } SfpId; @@ -1397,6 +1415,13 @@ 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 + /* * START - MACsec Definitions */ @@ -2948,6 +2973,31 @@ typedef struct _SRADMoon3Settings #define SRADMoon3Settings_SIZE 68 +typedef struct _SRADGeminiSettings +{ + uint16_t perf_en; // 2 + + ETHERNET_SETTINGS2 ethernet1; // 16 + ETHERNET_SETTINGS2 ethernet2; // 16 + ETHERNET_SETTINGS2 autoEthernet1; // 16 + ETHERNET_SETTINGS2 autoEthernet2; // 16 + + uint16_t network_enabled_on_boot; // 2 + uint16_t network_enables; // 2 + uint16_t network_enables_2; // 2 + uint16_t network_enables_3; // 2 + uint16_t network_enables_4; // 2 + uint64_t network_enables_5; // 8 + + struct + { + uint16_t enableLatencyTest : 1; + uint16_t reserved : 15; + } flags; // 2 +} SRADGeminiSettings; + +#define SRADGeminiSettings_SIZE 86 + typedef struct _SRADGigastarSettings { uint32_t ecu_id; @@ -3030,9 +3080,12 @@ typedef struct _SRADGigastarSettings 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; } SRADGigastarSettings; -#define SRADGigastarSettings_SIZE 1010 +#define SRADGigastarSettings_SIZE 1026 typedef struct _SRADGalaxy2Settings { @@ -3824,6 +3877,129 @@ typedef struct _SFire3FlexraySettings } SFire3FlexraySettings; #define SFire3FlexraySettings_SIZE (1372) +typedef struct _SFire3T1SLINSettings +{ + uint16_t perf_en; + uint16_t network_enabled_on_boot; + uint16_t misc_io_on_report_events; + uint16_t pwr_man_enable; + int16_t iso15765_separation_time_offset; + uint16_t slaveVnetA; + uint32_t reserved; + uint64_t termination_enables_1; + uint64_t network_enables; + uint32_t pwr_man_timeout; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ETHERNET_SETTINGS ethernet_1; + TIMESYNC_ICSHARDWARE_SETTINGS timeSync; + STextAPISettings text_api; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t busMessagesToAndroid : 1; + uint32_t reserved1 : 1; + uint32_t enableDefaultLogger : 1; + uint32_t enableDefaultUpload : 1; + uint32_t reserved : 26; + } flags; + DISK_SETTINGS disk; + uint16_t misc_io_report_period; + uint16_t ain_threshold; + uint16_t misc_io_analog_enable; + uint16_t digitalIoThresholdTicks; + uint16_t digitalIoThresholdEnable; + uint16_t misc_io_initial_ddr; + uint16_t misc_io_initial_latch; + ETHERNET_SETTINGS2 ethernet2_1; + ETHERNET_SETTINGS ethernet_2; + ETHERNET_SETTINGS2 ethernet2_2; + Fire3LinuxSettings os_settings; + RAD_GPTP_SETTINGS gPTP; + + /* VEM */ + // 10T1S + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + ETHERNET10T1S_SETTINGS_EXT t1s1Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s3; + ETHERNET10T1S_SETTINGS t1s3; + ETHERNET10T1S_SETTINGS_EXT t1s3Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s4; + ETHERNET10T1S_SETTINGS t1s4; + ETHERNET10T1S_SETTINGS_EXT t1s4Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s5; + ETHERNET10T1S_SETTINGS t1s5; + ETHERNET10T1S_SETTINGS_EXT t1s5Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s6; + ETHERNET10T1S_SETTINGS t1s6; + ETHERNET10T1S_SETTINGS_EXT t1s6Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s7; + ETHERNET10T1S_SETTINGS t1s7; + ETHERNET10T1S_SETTINGS_EXT t1s7Ext; + // 10T1S + ETHERNET_SETTINGS2 ethT1s8; + ETHERNET10T1S_SETTINGS t1s8; + ETHERNET10T1S_SETTINGS_EXT t1s8Ext; + + LIN_SETTINGS lin3; + LIN_SETTINGS lin4; + LIN_SETTINGS lin5; + LIN_SETTINGS lin6; + LIN_SETTINGS lin7; + LIN_SETTINGS lin8; + LIN_SETTINGS lin9; + LIN_SETTINGS lin10; + + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; + uint16_t iso_parity_3; + uint16_t iso_msg_termination_3; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; + uint16_t iso_parity_4; + uint16_t iso_msg_termination_4; + + uint16_t iso_tester_pullup_enable; + + uint64_t network_enables_5; + + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_FIRE3T1SLIN]; + uint32_t networkTimeSync; +} SFire3T1sLinSettings; +#define SFire3T1sLinSettings_SIZE (1594) + #define RADEPSILON_NUM_PORTS 18 // ATSAM + PHYs #define RADEPSILON_MAX_PHY 18 #define EPSILON_88Q6113_SWITCH_A 1 @@ -4303,8 +4479,11 @@ typedef struct _SRADGigaStar2Settings LIN_SETTINGS lin14; LIN_SETTINGS lin15; LIN_SETTINGS lin16; + // SFP T1L + ETHERNET10T1L_SETTINGS sfp_t1l_1; + ETHERNET10T1L_SETTINGS sfp_t1l_2; } SRADGigastar2Settings; -#define SRADGigastar2Settings_SIZE 2140 +#define SRADGigastar2Settings_SIZE 2156 // variants to be used with icsneoSetFirmwareVariant enum Gigastar2FwVariants @@ -4443,10 +4622,12 @@ typedef struct _GLOBAL_SETTINGS SRed2Settings red2; SFire3Settings fire3; SFire3FlexraySettings fire3fr; + SFire3T1sLinSettings fire3t1slin; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SRADGeminiSettings radgemini; SRADCometSettings radcomet; SRADComet3Settings radcomet3; SRADGigastar2Settings radgigastar2; @@ -4505,6 +4686,8 @@ typedef enum _EDeviceSettingsType DeviceRADGalaxy2SettingsType, DeviceRADGigastar2SettingsType, DeviceRADMoonT1SSettingsType, + DeviceRADGeminiSettingsType, + DeviceFire3T1sLinSettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -4544,7 +4727,9 @@ typedef struct _SDeviceSettings SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SRADGeminiSettings radgemini; SFire3FlexraySettings fire3Flexray; + SFire3T1sLinSettings fire3t1slin; SRADCometSettings radcomet; SRADComet3Settings radcomet3; SRADGigastar2Settings radgigastar2; @@ -5144,7 +5329,9 @@ typedef struct typedef struct { uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus[3]; + ethernetNetworkStatus_t ethernetStatus[16]; + uint8_t numNetworks; + uint8_t reserved; uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; @@ -5399,6 +5586,7 @@ CHECK_STRUCT_SIZE(ETHERNET_SETTINGS2); CHECK_STRUCT_SIZE(ETHERNET10G_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS_EXT); +CHECK_STRUCT_SIZE(ETHERNET10T1L_SETTINGS); CHECK_STRUCT_SIZE(MACSEC_SETTINGS); CHECK_STRUCT_SIZE(LOGGER_SETTINGS); CHECK_STRUCT_SIZE(DISK_SETTINGS); @@ -5444,7 +5632,9 @@ CHECK_STRUCT_SIZE(SRADEpsilonSettings); CHECK_STRUCT_SIZE(RAD_GPTP_SETTINGS); CHECK_STRUCT_SIZE(SRADBMSSettings); CHECK_STRUCT_SIZE(SRADMoon3Settings); +CHECK_STRUCT_SIZE(SRADGeminiSettings); CHECK_STRUCT_SIZE(SFire3FlexraySettings); +CHECK_STRUCT_SIZE(SFire3T1sLinSettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SRADCometSettings); CHECK_STRUCT_SIZE(SRADComet3Settings); diff --git a/src/methods.cpp b/src/methods.cpp index 06fe5870c..977fd12c9 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -2314,7 +2314,7 @@ PyObject* meth_read_sdcard(PyObject* self, PyObject* obj = NULL; unsigned long index = 0; unsigned long size = 0; - if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &index, &size)) { + if (!PyArg_ParseTuple(args, arg_parse("Okk:", __FUNCTION__), &obj, &index, &size)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -2995,10 +2995,10 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); - ice::Function icsneoGetErrorInfo( + ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); + ice::Function icsneoGetErrorInfo( lib, "icsneoGetErrorInfo"); - int error = 0; + unsigned long error = 0; auto gil = PyAllowThreads(); if (!icsneoGetLastAPIError(handle, &error)) { gil.restore(); @@ -3019,7 +3019,7 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) &restart_needed)) { return set_ics_exception(exception_runtime_error(), "icsneoGetErrorInfo() Failed"); } - return Py_BuildValue("i, s, s, i, i", error, description_short, description_long, severity, restart_needed); + return Py_BuildValue("k, s, s, i, i", error, description_short, description_long, severity, restart_needed); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -3616,7 +3616,7 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; unsigned long networks = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &networks)) { + if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &networks)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3719,7 +3719,7 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; unsigned long channel = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &channel)) { + if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &channel)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3823,10 +3823,10 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) { (void)self; PyObject* obj = NULL; - int bitrate = 0; + unsigned long bitrate = 0; int net_id = 0; int options = 0; - if (!PyArg_ParseTuple(args, arg_parse("Oiii:", __FUNCTION__), &obj, &bitrate, &net_id)) { + if (!PyArg_ParseTuple(args, arg_parse("Okii:", __FUNCTION__), &obj, &bitrate, &net_id, &options)) { return NULL; } if (!PyNeoDeviceEx_CheckExact(obj)) { @@ -3842,7 +3842,7 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); + ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); auto gil = PyAllowThreads(); if (!icsneoSetBitRateEx(handle, bitrate, net_id, options)) { gil.restore(); @@ -4957,7 +4957,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) Py_buffer data = {}; uint8_t flags = 0; bool check_size = true; - if (!PyArg_ParseTuple(args, arg_parse("OIy*|bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { + if (!PyArg_ParseTuple(args, arg_parse("OIy*|Bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { return NULL; } @@ -5003,7 +5003,7 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) EUartPort_t port = eUART0; unsigned int bytesToRead = 256; uint8_t flags = 0; - if (!PyArg_ParseTuple(args, arg_parse("OI|Is:", __FUNCTION__), &obj, &port, &bytesToRead, &flags)) { + if (!PyArg_ParseTuple(args, arg_parse("OI|IB:", __FUNCTION__), &obj, &port, &bytesToRead, &flags)) { return NULL; } // Get the device handle @@ -5029,10 +5029,10 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) size_t bytesActuallyRead = 0; // int _stdcall icsneoUartRead(void* hObject, const EUartPort_t uart, void* bData, const size_t bytesToRead, // size_t* bytesActuallyRead, uint8_t* flags) - ice::Function + ice::Function icsneoUartRead(lib, "icsneoUartRead"); auto gil = PyAllowThreads(); - if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { + if (!icsneoUartRead(handle, port, buffer, bytesToRead, &bytesActuallyRead, &flags)) { gil.restore(); free(buffer); buffer = NULL; @@ -5096,7 +5096,7 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; EUartPort_t port = eUART0; - if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &port)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &port)) { return NULL; } // Get the device handle diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 0a390264b..232257ac1 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -194,6 +194,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NEODEVICE_GIGASTAR2", PyLong_FromLongLong(NEODEVICE_GIGASTAR2)); result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_LIN", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_LIN)); result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_SENT", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_SENT)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RADGEMINI", PyLong_FromLongLong(NEODEVICE_RADGEMINI)); result += PyModule_AddObjectRef(module, "NEODEVICE_RED", PyLong_FromLongLong(NEODEVICE_RED)); result += PyModule_AddObjectRef(module, "NEODEVICE_ECU", PyLong_FromLongLong(NEODEVICE_ECU)); result += PyModule_AddObjectRef(module, "NEODEVICE_IEVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_IEVB_DEPRECATED)); @@ -363,6 +364,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3", PyLong_FromLongLong(CMP_STREAMS_FIRE3)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3FR", PyLong_FromLongLong(CMP_STREAMS_FIRE3FR)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_FIRE3T1SLIN", PyLong_FromLongLong(CMP_STREAMS_FIRE3T1SLIN)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_RED2", PyLong_FromLongLong(CMP_STREAMS_RED2)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_A2B", PyLong_FromLongLong(CMP_STREAMS_A2B)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_GIGASTAR", PyLong_FromLongLong(CMP_STREAMS_GIGASTAR)); @@ -507,6 +509,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MV3244", PyLong_FromLongLong(SFP_ID_ICS_MV3244)); result += PyModule_AddObjectRef(module, "SFP_ID_ICS_MC8670", PyLong_FromLongLong(SFP_ID_ICS_MC8670)); result += PyModule_AddObjectRef(module, "SFP_ID_ICS_EN11100", PyLong_FromLongLong(SFP_ID_ICS_EN11100)); + result += PyModule_AddObjectRef(module, "SFP_ID_ICS_AD1101", PyLong_FromLongLong(SFP_ID_ICS_AD1101)); result += PyModule_AddObjectRef(module, "SFP_ID_MAX", PyLong_FromLongLong(SFP_ID_MAX)); // end of enum - } SfpId; @@ -542,6 +545,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK)); result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING", PyLong_FromLongLong(ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING)); result += PyModule_AddObjectRef(module, "ETHERNET10T1S_SETTINGS_EXT_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10T1S_SETTINGS_EXT_SIZE)); + result += PyModule_AddObjectRef(module, "ETHERNET10T1L_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ETHERNET10T1L_SETTINGS_SIZE)); // enum result += PyModule_AddObjectRef(module, "MACSEC_PACKET_NO_VLAN_OR_MPLS", PyLong_FromLongLong(MACSEC_PACKET_NO_VLAN_OR_MPLS)); result += PyModule_AddObjectRef(module, "MACSEC_PACKET_SINGLE_VLAN", PyLong_FromLongLong(MACSEC_PACKET_SINGLE_VLAN)); @@ -861,6 +865,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SRADA2BSettings_SIZE", PyLong_FromUnsignedLongLong(SRADA2BSettings_SIZE)); result += PyModule_AddObjectRef(module, "SRADMoon2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADMoon2Settings_SIZE)); result += PyModule_AddObjectRef(module, "SRADMoon3Settings_SIZE", PyLong_FromUnsignedLongLong(SRADMoon3Settings_SIZE)); + result += PyModule_AddObjectRef(module, "SRADGeminiSettings_SIZE", PyLong_FromUnsignedLongLong(SRADGeminiSettings_SIZE)); result += PyModule_AddObjectRef(module, "SRADGigastarSettings_SIZE", PyLong_FromUnsignedLongLong(SRADGigastarSettings_SIZE)); result += PyModule_AddObjectRef(module, "SRADGalaxy2Settings_SIZE", PyLong_FromUnsignedLongLong(SRADGalaxy2Settings_SIZE)); result += PyModule_AddObjectRef(module, "SVividCANSettings_SIZE", PyLong_FromUnsignedLongLong(SVividCANSettings_SIZE)); @@ -905,6 +910,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SRed2Settings_SIZE", PyLong_FromLongLong(SRed2Settings_SIZE)); result += PyModule_AddObjectRef(module, "SFire3Settings_SIZE", PyLong_FromLongLong(SFire3Settings_SIZE)); result += PyModule_AddObjectRef(module, "SFire3FlexraySettings_SIZE", PyLong_FromLongLong(SFire3FlexraySettings_SIZE)); + result += PyModule_AddObjectRef(module, "SFire3T1sLinSettings_SIZE", PyLong_FromLongLong(SFire3T1sLinSettings_SIZE)); result += PyModule_AddObjectRef(module, "RADEPSILON_NUM_PORTS", PyLong_FromUnsignedLongLong(RADEPSILON_NUM_PORTS)); result += PyModule_AddObjectRef(module, "RADEPSILON_MAX_PHY", PyLong_FromUnsignedLongLong(RADEPSILON_MAX_PHY)); result += PyModule_AddObjectRef(module, "EPSILON_88Q6113_SWITCH_A", PyLong_FromUnsignedLongLong(EPSILON_88Q6113_SWITCH_A)); @@ -1004,6 +1010,8 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "DeviceRADGalaxy2SettingsType", PyLong_FromLongLong(DeviceRADGalaxy2SettingsType)); result += PyModule_AddObjectRef(module, "DeviceRADGigastar2SettingsType", PyLong_FromLongLong(DeviceRADGigastar2SettingsType)); result += PyModule_AddObjectRef(module, "DeviceRADMoonT1SSettingsType", PyLong_FromLongLong(DeviceRADMoonT1SSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRADGeminiSettingsType", PyLong_FromLongLong(DeviceRADGeminiSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceFire3T1sLinSettingsType", PyLong_FromLongLong(DeviceFire3T1sLinSettingsType)); result += PyModule_AddObjectRef(module, "DeviceSettingsTypeMax", PyLong_FromLongLong(DeviceSettingsTypeMax)); result += PyModule_AddObjectRef(module, "DeviceSettingsNone", PyLong_FromLongLong(DeviceSettingsNone)); // end of enum - } EDeviceSettingsType; From dc5efcc70cb8d8dfd4d0dc069fd24f15ed53b040 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 25 Nov 2025 21:57:01 -0500 Subject: [PATCH 31/38] add get_firmware_variant() (#225) --- include/methods.h | 22 +++++++++++++++--- src/ics/py_neo_device_ex.py | 4 ++++ src/methods.cpp | 45 +++++++++++++++++++++++++++++++++++-- 3 files changed, 66 insertions(+), 5 deletions(-) diff --git a/include/methods.h b/include/methods.h index b386f8707..605c12792 100644 --- a/include/methods.h +++ b/include/methods.h @@ -101,10 +101,11 @@ extern "C" PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args); PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args); PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args); - PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName - PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI - PyObject* meth_get_component_versions(PyObject* self, PyObject* args); // icsneoGetComponentVersions + PyObject* meth_get_device_name(PyObject* self, PyObject* args); // icsneoGetDeviceName + PyObject* meth_get_imei(PyObject* self, PyObject* args); // icsneoGetIMEI + PyObject* meth_get_component_versions(PyObject* self, PyObject* args); // icsneoGetComponentVersions PyObject* meth_request_set_neovi_miscio(PyObject* self, PyObject* args); // icsneoRequestSetNeoVIMiscIO + PyObject* meth_get_firmware_variant(PyObject* self, PyObject* args); // icsneoGetFirmwareVariant #ifdef _cplusplus } @@ -2003,6 +2004,21 @@ extern "C" "\tNone\n" \ "\n" +#define _DOC_GET_FIRMWARE_VARIANT \ + MODULE_NAME ".get_firmware_variant(device) -> Int\n" \ + "\n" \ + "Gets firmware variant of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME ".PyNeoDeviceEx`): :class:`" MODULE_NAME ".PyNeoDeviceEx`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`int`): :class:`int`: variant\n" \ + "\n" + extern PyMethodDef IcsMethods[]; #endif // _METHODS_H_ diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 0f17dbb60..980e2d428 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -506,3 +506,7 @@ def get_component_versions(self, *args, **kwargs): def request_set_neovi_miscio(self, *args, **kwargs): "see ics.request_set_neovi_miscio for details on arguments." return ics.request_set_neovi_miscio(self, *args, **kwargs) + + def get_firmware_variant(self, *args, **kwargs): + "see ics.get_firmware_variant for details on arguments." + return ics.get_firmware_variant(self, *args, **kwargs) \ No newline at end of file diff --git a/src/methods.cpp b/src/methods.cpp index 977fd12c9..c410b4591 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -621,6 +621,12 @@ PyMethodDef IcsMethods[] = { meth_request_set_neovi_miscio, METH_VARARGS, _DOC_REQUEST_SET_NEOVI_MISCIO), + _EZ_ICS_STRUCT_METHOD("get_firmware_variant", + "icsneoGetFirmwareVariant", + "GetFirmwareVariant", + meth_get_firmware_variant, + METH_VARARGS, + _DOC_GET_FIRMWARE_VARIANT), { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, @@ -5029,8 +5035,8 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) size_t bytesActuallyRead = 0; // int _stdcall icsneoUartRead(void* hObject, const EUartPort_t uart, void* bData, const size_t bytesToRead, // size_t* bytesActuallyRead, uint8_t* flags) - ice::Function - icsneoUartRead(lib, "icsneoUartRead"); + ice::Function icsneoUartRead( + lib, "icsneoUartRead"); auto gil = PyAllowThreads(); if (!icsneoUartRead(handle, port, buffer, bytesToRead, &bytesActuallyRead, &flags)) { gil.restore(); @@ -5611,3 +5617,38 @@ PyObject* meth_request_set_neovi_miscio(PyObject* self, PyObject* args) // icsne return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } } + +PyObject* meth_get_firmware_variant(PyObject* self, PyObject* args) // icsneoGetFirmwareVariant +{ + (void)self; + PyObject* obj = NULL; + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + return NULL; + } + if (!PyNeoDeviceEx_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } + try { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + // int __stdcall icsneoGetFirmwareVariant(void* hObject, uint32_t* variant) + ice::Function icsneoGetFirmwareVariant(lib, "icsneoGetFirmwareVariant"); + auto gil = PyAllowThreads(); + uint32_t variant = 0; + if (!icsneoGetFirmwareVariant(handle, &variant)) { + gil.restore(); + return set_ics_exception(exception_runtime_error(), "icsneoGetFirmwareVariant() Failed"); + } + gil.restore(); + return Py_BuildValue("I", variant); + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} From e008b2ac3f3684b013d1db61f0b0ee34e8a4d23d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 17 Feb 2026 10:50:20 -0500 Subject: [PATCH 32/38] update header to v923.11 and fix uv build fixed license warning add read the doc changes rtd fix --- .github/workflows/docs.yml | 26 ++++++ ics_utility.py | 38 +++++++- include/ics/icsnVC40.h | 40 +++----- pyproject.toml | 2 +- src/setup_module_auto_defines.cpp | 9 +- uv.lock | 150 +++++++++++++++++++++++++++++- 6 files changed, 227 insertions(+), 38 deletions(-) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..4f6e74ef2 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,26 @@ +name: Documentation + +on: + push: + tags: + - 'v*' + - '*.*.*' + +jobs: + trigger-docs: + runs-on: ubuntu-latest + steps: + - name: Trigger Read the Docs Build + run: | + # Create request body + BODY='{}' + + # Create HMAC-SHA256 signature + SIGNATURE=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "${{ secrets.RTD_WEBHOOK_TOKEN }}" -binary | xxd -p -c 256) + + # Send request to Read the Docs webhook + curl -X POST \ + -H "X-RTD-Signature: sha256=$SIGNATURE" \ + -H "Content-Type: application/json" \ + -d "$BODY" \ + https://app.readthedocs.org/api/v2/webhook/python-ics/319966/ diff --git a/ics_utility.py b/ics_utility.py index 80013c9a7..4ab3e65ae 100644 --- a/ics_utility.py +++ b/ics_utility.py @@ -1,10 +1,31 @@ import os import dunamai import pathlib +import re GEN_DIR = pathlib.Path("./gen") GEN_ICS_DIR = GEN_DIR / "ics" + +def _get_version_from_metadata() -> str: + """ + Try to read version from existing package metadata (PKG-INFO). + Used as fallback when building from sdist in isolated environment. + """ + # Check for PKG-INFO in the egg-info directory + egg_info_dirs = list(pathlib.Path(".").glob("*.egg-info")) + if egg_info_dirs: + pkg_info = egg_info_dirs[0] / "PKG-INFO" + if pkg_info.exists(): + try: + content = pkg_info.read_text() + match = re.search(r"^Version:\s+(.+)$", content, re.MULTILINE) + if match: + return match.group(1) + except Exception: + pass + return None + def get_pkg_version() -> str: """ Get the package version. @@ -18,7 +39,16 @@ def get_pkg_version() -> str: # pkg_version = version.serialize(format="v{base}.dev{distance}", style=dunamai.Style.Pep440) # else: # pkg_version = version.serialize(format="{base}", style=dunamai.Style.Pep440) - return dunamai.Version.from_git().serialize(metadata=False) + try: + return dunamai.Version.from_git().serialize(metadata=False) + except RuntimeError: + # Fallback when git is not available (e.g., in isolated build environments) + # Try to read version from existing package metadata + metadata_version = _get_version_from_metadata() + if metadata_version: + return metadata_version + # Final fallback + return "0.0.0.dev0" # return pkg_version def create_version_py(path: pathlib.Path = pathlib.Path("gen/ics/__version.py")) -> None: @@ -32,7 +62,11 @@ def create_version_py(path: pathlib.Path = pathlib.Path("gen/ics/__version.py")) None """ pkg_version = get_pkg_version() - full_version = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") + try: + full_version = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") + except RuntimeError: + # Fallback when git is not available + full_version = f"v{pkg_version}" print(f"Creating '{path}' with version {pkg_version} and full version {full_version}...") path.parent.mkdir(parents=True, exist_ok=True) # Write the version file to disk diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 27d90e3b8..593503312 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -464,11 +464,6 @@ typedef struct _NeoDeviceEx #define DRIVER_USB1 (0x40) #define DRIVER_USB2 (0x80) #define DRIVER_USB3 (0xC0) -#define SERVD_DRIVER_MASK (0xFF00) -#define SERVD_DRIVER_VCP (0x0100) -#define SERVD_DRIVER_DXX (0x0200) -#define SERVD_DRIVER_CAB (0x0400) -#define SERVD_DRIVER_TCP (0x1000) uint32_t Options; void* pAvailWIFINetwork; @@ -479,7 +474,7 @@ typedef struct _NeoDeviceEx uint8_t MACAddress[6]; uint16_t hardwareRev; uint16_t revReserved; - uint32_t tcpIpAddress[4]; + uint32_t ipAddress[4]; uint16_t tcpPort; uint16_t Reserved0; uint32_t Reserved1; @@ -1236,7 +1231,9 @@ typedef struct OP_ETH_SETTINGS_t uint16_t snf_tap : 1; // store and forward uint16_t disable_tap_to_host : 1; uint16_t show_tap_tx_receipt : 1; - uint16_t reserved : 5; + uint16_t tap_dest : 2; + uint16_t tc10_tap : 1; + uint16_t reserved : 2; }; uint8_t reserved0[14]; }; @@ -1277,6 +1274,10 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT 13 #define ETHERNET_SETTINGS2_FLAG2_TAP_DEST_MASK 0x3 #define ETHERNET_SETTINGS2_FLAG2_TC10_FWD_TAP_ENABLE 0x8000 +#define ETHERNET_SETTINGS2_FLAG2_GET_TAP_DEST(s) \ + (((s)->flags2 >> ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT) & ETHERNET_SETTINGS2_FLAG2_TAP_DEST_MASK) +#define ETHERNET_SETTINGS2_FLAG2_SET_TAP_DEST(s, d) \ + ((s)->flags2 |= ((d)ÐERNET_SETTINGS2_FLAG2_TAP_DEST_MASK) << ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT) typedef enum { @@ -1839,11 +1840,13 @@ typedef struct _wBMSManagerReset uint8_t managerIndex; } wBMSManagerReset; +#define UART_DATA_BUFFER_SIZE 256 + typedef struct _UartPortData { uint16_t len; uint8_t port; - uint8_t bData[256]; + uint8_t bData[UART_DATA_BUFFER_SIZE]; } UartPortData; typedef struct _UartPortPortBytes @@ -5550,23 +5553,8 @@ typedef enum _epsilon10GPHYFW #define NUM_DEVICE_FEATURE_BITFIELDS ((NUM_VALID_DEVICE_FEATURES + 31) / 32) -#if !defined(INTREPID_NO_CHECK_STRUCT_SIZE) && !defined(ics_static_assert) - -#if (defined(__cplusplus) && (__cplusplus > 199711L)) -#define ics_static_assert(e, msg) static_assert(e, msg) -#define CHECK_STRUCT_SIZE(X) ics_static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); -#else -#define ASSERT_CONCAT_(a, b) a##b -#define ASSERT_CONCAT(a, b) ASSERT_CONCAT_(a, b) -#define ics_static_assert(e, msg) \ - enum \ - { \ - ASSERT_CONCAT(assert_line_, __LINE__) = 1 / (int)(!!(e)) \ - } -#define CHECK_STRUCT_SIZE(X) ics_static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); -#endif - - +#if !defined(INTREPID_NO_CHECK_STRUCT_SIZE) && defined(__cpp_static_assert) +#define CHECK_STRUCT_SIZE(X) static_assert(sizeof(X) == X##_SIZE, #X " is the wrong size"); CHECK_STRUCT_SIZE(CAN_SETTINGS); CHECK_STRUCT_SIZE(CANFD_SETTINGS); CHECK_STRUCT_SIZE(SWCAN_SETTINGS); @@ -5642,7 +5630,7 @@ CHECK_STRUCT_SIZE(SRADGigastar2Settings); CHECK_STRUCT_SIZE(SRADMoonT1SSettings); CHECK_STRUCT_SIZE(SNeoVIConnectSettings); CHECK_STRUCT_SIZE(FlashAccessoryFirmwareParams); - +#undef CHECK_STRUCT_SIZE #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/pyproject.toml b/pyproject.toml index 4a3015ed2..9886c7760 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ description = "Python wrapper for interfacing to IntrepidCS Hardware." keywords = ["intrepidcs", "CAN", "Ethernet", "Automotive", "ICS"] readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.10" -license = { file = "LICENSE.md" } +license = "MIT" classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 232257ac1..fb90c6404 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -345,11 +345,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "DRIVER_USB1", PyLong_FromLongLong(DRIVER_USB1)); result += PyModule_AddObjectRef(module, "DRIVER_USB2", PyLong_FromLongLong(DRIVER_USB2)); result += PyModule_AddObjectRef(module, "DRIVER_USB3", PyLong_FromLongLong(DRIVER_USB3)); - result += PyModule_AddObjectRef(module, "SERVD_DRIVER_MASK", PyLong_FromLongLong(SERVD_DRIVER_MASK)); - result += PyModule_AddObjectRef(module, "SERVD_DRIVER_VCP", PyLong_FromLongLong(SERVD_DRIVER_VCP)); - result += PyModule_AddObjectRef(module, "SERVD_DRIVER_DXX", PyLong_FromLongLong(SERVD_DRIVER_DXX)); - result += PyModule_AddObjectRef(module, "SERVD_DRIVER_CAB", PyLong_FromLongLong(SERVD_DRIVER_CAB)); - result += PyModule_AddObjectRef(module, "SERVD_DRIVER_TCP", PyLong_FromLongLong(SERVD_DRIVER_TCP)); // enum result += PyModule_AddObjectRef(module, "PHY_88Q211x_Z1", PyLong_FromLongLong(PHY_88Q211x_Z1)); result += PyModule_AddObjectRef(module, "PHY_88Q211x_A0", PyLong_FromLongLong(PHY_88Q211x_A0)); @@ -625,6 +620,7 @@ int setup_module_auto_defines(PyObject * module) // end of enum - } ExtendedResponseCode; result += PyModule_AddObjectRef(module, "GENERIC_API_DATA_BUFFER_SIZE", PyLong_FromUnsignedLongLong(GENERIC_API_DATA_BUFFER_SIZE)); + result += PyModule_AddObjectRef(module, "UART_DATA_BUFFER_SIZE", PyLong_FromUnsignedLongLong(UART_DATA_BUFFER_SIZE)); result += PyModule_AddObjectRef(module, "MACADDR_LEN", PyLong_FromUnsignedLongLong(MACADDR_LEN)); result += PyModule_AddObjectRef(module, "MULTI_MACADDR_CNT", PyLong_FromUnsignedLongLong(MULTI_MACADDR_CNT)); result += PyModule_AddObjectRef(module, "GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY", PyLong_FromLongLong(GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY)); @@ -1145,9 +1141,6 @@ int setup_module_auto_defines(PyObject * module) // end of enum - } epsilon10GPHYFW; result += PyModule_AddObjectRef(module, "NUM_DEVICE_FEATURE_BITFIELDS", PyLong_FromLongLong(NUM_DEVICE_FEATURE_BITFIELDS)); - // enum - // end of enum - } - result += PyModule_AddObjectRef(module, "CICSSPYSTATUSBITS_H_", PyLong_FromUnsignedLongLong(CICSSPYSTATUSBITS_H_)); result += PyModule_AddObjectRef(module, "SPY_STATUS_GLOBAL_ERR", PyLong_FromLongLong(SPY_STATUS_GLOBAL_ERR)); result += PyModule_AddObjectRef(module, "SPY_STATUS_TX_MSG", PyLong_FromLongLong(SPY_STATUS_TX_MSG)); diff --git a/uv.lock b/uv.lock index 89db95d3e..ae0894e87 100644 --- a/uv.lock +++ b/uv.lock @@ -1,7 +1,155 @@ version = 1 revision = 3 -requires-python = ">=3.9" +requires-python = ">=3.10" + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pytest" +version = "9.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/db/7ef3487e0fb0049ddb5ce41d3a49c235bf9ad299b6a25d5780a89f19230f/pytest-9.0.2.tar.gz", hash = "sha256:75186651a92bd89611d1d9fc20f0b4345fd827c41ccd5c299a868a05d70edf11", size = 1568901, upload-time = "2025-12-06T21:30:51.014Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/pytest-9.0.2-py3-none-any.whl", hash = "sha256:711ffd45bf766d5264d487b917733b453d917afd2b0ad65223959f59089f875b", size = 374801, upload-time = "2025-12-06T21:30:49.154Z" }, +] [[package]] name = "python-ics" source = { editable = "." } + +[package.dev-dependencies] +test = [ + { name = "pytest" }, +] + +[package.metadata] + +[package.metadata.requires-dev] +test = [{ name = "pytest", specifier = ">=8.4.2" }] + +[[package]] +name = "tomli" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" }, + { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" }, + { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" }, + { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] From 9a5f5d0a8fefe54c73beeaddc157e2dddd6b275b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 17 Feb 2026 14:03:57 -0500 Subject: [PATCH 33/38] fixed doc CI --- .github/workflows/docs.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 4f6e74ef2..a106772d0 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -12,15 +12,6 @@ jobs: steps: - name: Trigger Read the Docs Build run: | - # Create request body - BODY='{}' - - # Create HMAC-SHA256 signature - SIGNATURE=$(echo -n "$BODY" | openssl dgst -sha256 -hmac "${{ secrets.RTD_WEBHOOK_TOKEN }}" -binary | xxd -p -c 256) - - # Send request to Read the Docs webhook curl -X POST \ - -H "X-RTD-Signature: sha256=$SIGNATURE" \ - -H "Content-Type: application/json" \ - -d "$BODY" \ - https://app.readthedocs.org/api/v2/webhook/python-ics/319966/ + -H "Authorization: Token ${{ secrets.RTD_API_TOKEN }}" \ + https://app.readthedocs.org/api/v3/projects/python-ics/versions/master/builds/ From 0849947580a525722d6fddab886c3919eac66e53 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 2 Mar 2026 16:48:02 -0500 Subject: [PATCH 34/38] 923 fixes (#229) * Fixed Exception ignored while calling deallocator. Issue 228 * possible fixes for rtd generation. Issue #227 --- doc/source/conf.py | 35 ++++++++++++++++++++--------------- src/ics/py_neo_device_ex.py | 6 ++++-- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 5170346de..ab7560ff6 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -58,25 +58,30 @@ # # Get version dynamically from the same source as pyproject.toml try: - # First, try to import from the generated ics module (same as pyproject.toml) - sys.path.insert(0, os.path.abspath("../../gen")) + # First, try the installed package (e.g. ReadTheDocs, pip install .) import ics version = ics.__version__ release = ics.__full_version__ -except ImportError: +except (ImportError, AttributeError): try: - # Fallback: try dunamai directly (for build environments) - import dunamai - version = dunamai.Version.from_git().serialize(metadata=False) - release = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") - except ImportError: - # Fallback if neither is available - version = "unknown" - release = version - except Exception: - # Fallback if not in a git repository or other issues - version = "unknown" - release = version + # Fallback for local dev: import from generated source tree + gen_path = os.path.abspath("../../gen") + sys.path.insert(0, gen_path) + try: + import ics + version = ics.__version__ + release = ics.__full_version__ + finally: + sys.path.remove(gen_path) + except (ImportError, AttributeError): + try: + # Last resort: dunamai from git tags + import dunamai + version = dunamai.Version.from_git().serialize(metadata=False) + release = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") + except Exception: + version = "unknown" + release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 980e2d428..0c4424bc2 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -16,7 +16,7 @@ def __init__(self): super().__init__() def __del__(self): - if self._auto_handle_close is True: + if self._auto_handle_close and ics is not None: ics.close_device(self) def __str__(self): @@ -101,7 +101,9 @@ def open(self, *args, **kwargs): def close(self): """Close the device. Returns the number of errors on close. See ics.close_device for details on arguments.""" - return ics.close_device(self) + result = ics.close_device(self) + self._handle = None + return result def load_default_settings(self): """Loads default settings on the device. Requires the device to be open. See ics.load_default_settings for details on arguments.""" From d6e0abf8ded80ed01f6d95fe921ac7aec30e79ed Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 7 Jul 2026 10:12:56 -0400 Subject: [PATCH 35/38] Fix 32/64-bit type mismatches, integer overflows, and SpyMessage memory corruption (#233) * Fix memory corruption and exception leaks in SpyMessage attribute handlers - Header setter wrote up to 8 bytes into the 4-byte J1850 Header array, spilling into Data[0..3]; tuple lengths are now validated against the real field sizes (ValueError instead of silent corruption) - ExtraDataPtr setter truncated the tuple length through uint16_t and through NumberBytesData for non length-packing protocols; lengths are now range checked per protocol - Broken null checks (!data && !PyLong_Check(data)) could dereference NULL and leaked pending TypeErrors into later calls (surfacing as SystemError); element conversion errors now propagate immediately - getattr("ExtraDataPtr") returned Py_None without incref, underflowing None's refcount on Python < 3.12 - ExtraDataPtr setter could delete[] DLL-owned buffers on received messages (noExtraDataPtrCleanup) and the ExtraDataPtrEnabled path left a dangling pointer behind after freeing (double free in dealloc) - Removed T_OBJECT_EX member entries that exposed descriptors reinterpreting raw struct memory as PyObject* (reachable via type(msg).__dict__) and fixed cross-type offsetof in the J1850 table Co-Authored-By: Claude Fable 5 * Fix 32/64-bit type mismatches and integer overflows in methods.cpp - find_devices: scalar new unsigned int(N) allocated one element instead of an array (heap overflow with more than one device type, delete[] on scalar new); device type masks like NEODEVICE_ALL now convert through PyLong_AsUnsignedLongMask with error checks instead of overflowing PyLong_AsLong on Windows - get/set_device_settings: 'k' wrote a full unsigned long (8 bytes on Linux/macOS x64) into the 4-byte EPlasmaIonVnetChannel_t enum, corrupting the stack; parse with 'I' and cast - get_accessory_firmware_version: 'i' wrote 4 bytes into a 1-byte char index (now int with a 0..255 range check) - uart_write: 'p' wrote a full int into a 1-byte bool (now int); return bytesActuallySent via 'n' instead of truncating size_t through 'i' - get_serial_number: serials >= 0x80000000 ("ZIK0ZK".."ZZZZZZ") came back negative through Py_BuildValue("i"); use 'I' - script_get_script_status: sizeof(parameters)/sizeof(¶meters[0]) divided by pointer size, reporting 127 instead of 255 entries on Win64; elements returned via PyLong_FromUnsignedLong instead of a signed truncating 'i' (also fixes a per-element reference leak) - read_jupiter_firmware: 'i' wrote 4 of size_t's 8 bytes and rejected sizes >= 2GB; parse/return with 'n' - coremini load / read_bin: validate ftell() results (32-bit long on Windows) before malloc - get_rtc: return the __int64 offset via 'L' instead of casting through unsigned long and 'i' - open_device: check PyLong_AsUnsignedLong errors for integer and base36 serial arguments (previously left pending exceptions and an 0xFFFFFFFF serial), free the int() conversion result - reflash progress callback: pass unsigned long progress with 'k' - FlashDevice2 (internal builds): avoid sign-extending the -1 network sentinel to 64 bits on LP64 - byte-sized 'b' parse targets declared as int/unsigned int now use unsigned char (single byte writes into 4-byte stack slots) - get_bus_voltage / vnet channel getters: return unsigned long values via 'k' instead of 'i' Co-Authored-By: Claude Fable 5 * Normalize DeviceSettingsNone and unsigned enum handling across platforms ics.DeviceSettingsNone was -1 on Windows (MSVC wraps the 0xFFFFFFFF enumerator to a signed int) but 4294967295 on Linux/macOS and in the generated Python enum, so settings.DeviceSettingType comparisons gave different answers per platform. - extract_icsneo40_defines.py: enum members whose header value is a hex literal above 0x7FFFFFFF are now emitted through PyLong_FromUnsignedLongLong(static_cast(...)) so every platform exposes the positive value; intentionally negative enumerators (= -1) are unaffected - generate_icsneo40_structs.py: struct fields of enum types with an enumerator above 0x7FFFFFFF are emitted as ctypes.c_uint32 instead of c_int32 so the value round-trips (s_device_settings.DeviceSettingType) - generate_icsneo40_structs.py: descIdType is int16_t in icsnVC40.h, not uint16_t; DescriptionID fields are now signed and consistent with ics_spy_message_vsb - regenerate src/setup_module_auto_defines.cpp - tests: pin DeviceSettingsNone, DeviceSettingType round-trip and DescriptionID signedness; drop the hasattr() guards in test_defines so missing constants fail loudly, and pin the remaining high-bit defines and the serial range constants Co-Authored-By: Claude Fable 5 * Fix serial_number property for serials above 0x7FFFFFFF NeoDevice.SerialNumber is an int32_t, so serials "ZIK0ZK".."ZZZZZZ" read back negative and the property returned a negative decimal string. Mask to 32 bits before the range checks, and use < for the MIN_BASE36_SERIAL boundary so "A0000" (the first base36 serial) renders as base36 instead of decimal. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- extract_icsneo40_defines.py | 15 ++- generate_icsneo40_structs.py | 10 +- src/ics/py_neo_device_ex.py | 13 ++- src/methods.cpp | 130 +++++++++++++++------ src/object_spy_message.cpp | 181 ++++++++++++++++-------------- src/setup_module_auto_defines.cpp | 2 +- tests/test_defines.py | 16 ++- tests/test_neo_device_ex.py | 43 +++++++ tests/test_spy_message.py | 122 ++++++++++++++++++++ tests/test_structures.py | 35 ++++++ 10 files changed, 436 insertions(+), 131 deletions(-) create mode 100644 tests/test_neo_device_ex.py create mode 100644 tests/test_spy_message.py create mode 100644 tests/test_structures.py diff --git a/extract_icsneo40_defines.py b/extract_icsneo40_defines.py index 868c16885..e15a2a18d 100644 --- a/extract_icsneo40_defines.py +++ b/extract_icsneo40_defines.py @@ -135,7 +135,20 @@ def extract(): # This removes anything after the equal sign as we don't need it sline[0] = sline[0].split("=")[0] value = sline[0].replace(",", "") - print(f"\tresult += PyModule_AddObjectRef(module, \"{value}\", PyLong_FromLongLong({value}));", file=f) + # Hex enumerators with the high bit set (e.g. 0xFFFFFFFF) get an + # implementation-defined underlying type: MSVC wraps them negative + # while GCC/Clang keep them unsigned. Normalize through unsigned + # int so every platform exposes the positive value. + unsigned32 = False + code_part = line.split("//")[0] + if "=" in code_part: + rhs = code_part.split("=", 1)[1].strip().rstrip(",").strip().strip("()") + if re.match(r"^0[xX][0-9a-fA-F]+$", rhs) and 0x7FFFFFFF < int(rhs, 16) <= 0xFFFFFFFF: + unsigned32 = True + if unsigned32: + print(f"\tresult += PyModule_AddObjectRef(module, \"{value}\", PyLong_FromUnsignedLongLong(static_cast({value})));", file=f) + else: + print(f"\tresult += PyModule_AddObjectRef(module, \"{value}\", PyLong_FromLongLong({value}));", file=f) continue if "#define" in line: sline = line.split("//")[0].split() diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 41699bd85..4a466deaf 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -466,7 +466,8 @@ def convert_to_ctype_object(data_type): ctype_types[f"c_uint{d}"] = (f"uint{d}_t",) # This is dirty but we don't parse typedefs... - ctype_types["c_uint16"] = ctype_types["c_uint16"] + ("descIdType",) + # descIdType is int16_t in icsnVC40.h (EXTERNAL_PROJECT build) + ctype_types["c_int16"] = ctype_types["c_int16"] + ("descIdType",) ctype_types["c_uint64"] = ctype_types["c_uint64"] + ("_clock_identity",) is_pointer = "*" in data_type and not "void" in data_type @@ -818,6 +819,13 @@ def _write_member(f, member, is_struct_or_union=False): # 4 byte integer on most systems (even 64-bit) # This is a potential hole but nothing we can do here data_type = "ctypes.c_int32" + # Use the unsigned variant when any enumerator needs the + # full 32 bits (e.g. DeviceSettingsNone = 0xFFFFFFFF) so + # the value round-trips through the field. + for enum_member in obj.members: + if isinstance(enum_member.enum_value, int) and enum_member.enum_value > 0x7FFFFFFF: + data_type = "ctypes.c_uint32" + break else: data_type = member.data_type if member.bitfield_size: diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 0c4424bc2..e21c0270a 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -83,12 +83,15 @@ def SerialNumber(self) -> int: @property def serial_number(self) -> str: """Return the serial number as a string.""" - if self.SerialNumber <= ics.MIN_BASE36_SERIAL: - return str(self.SerialNumber) - elif self.SerialNumber <= ics.MAX_SERIAL: - return ics.base36enc(self.SerialNumber) + # SerialNumber is an int32_t in the NeoDevice struct, so serials + # above 0x7FFFFFFF ("ZIK0ZK".."ZZZZZZ") read back negative. + serial = self.SerialNumber & 0xFFFFFFFF + if serial < ics.MIN_BASE36_SERIAL: + return str(serial) + elif serial <= ics.MAX_SERIAL: + return ics.base36enc(serial) else: - raise ValueError(f"Failed to convert SerialNumber {self.SerialNumber} to a valid serial number.") + raise ValueError(f"Failed to convert SerialNumber {serial} to a valid serial number.") @property def AutoHandleClose(self) -> bool: diff --git a/src/methods.cpp b/src/methods.cpp index c410b4591..ce42adaa8 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -15,6 +15,7 @@ #include "object_spy_message.h" #include "setup_module_auto_defines.h" +#include #include #include #include @@ -1054,9 +1055,14 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) if (!_convertListOrTupleToArray(device_types, &device_type_vector)) return NULL; device_types_list_size = static_cast(device_type_vector.size()); - device_types_list.reset((new unsigned int(device_types_list_size))); - for (unsigned int i = 0; i < device_types_list_size; ++i) - device_types_list[i] = (unsigned int)PyLong_AsLong(device_type_vector[i]); + device_types_list.reset(new unsigned int[device_types_list_size]); + for (unsigned int i = 0; i < device_types_list_size; ++i) { + // Device type masks like NEODEVICE_ALL (0xFFFFFFFF) don't fit in a + // 32 bit signed long, so use the masked unsigned conversion. + device_types_list[i] = (unsigned int)PyLong_AsUnsignedLongMask(device_type_vector[i]); + if (PyErr_Occurred()) + return NULL; + } } // Lets finally call the icsneo40 function try { @@ -1163,8 +1169,11 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) return NULL; network_ids_list_size = static_cast(network_ids_vector.size()); network_ids_list.reset(new unsigned char[network_ids_list_size]); - for (unsigned int i = 0; i < network_ids_list_size; ++i) + for (unsigned int i = 0; i < network_ids_list_size; ++i) { network_ids_list[i] = (unsigned char)PyLong_AsLong(network_ids_vector[i]); + if (PyErr_Occurred()) + return NULL; + } use_network_ids = true; } @@ -1172,6 +1181,8 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) if (device && PyLong_CheckExact(device)) { // Device is a serial number in integer format serial_number = PyLong_AsUnsignedLong(device); + if (PyErr_Occurred()) + return NULL; } else if (device && PyUnicode_CheckExact(device)) { // Lets convert the base36 string into an integer PyObject* module_name = PyUnicode_FromString("builtins"); @@ -1190,6 +1201,9 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) return NULL; } else { serial_number = PyLong_AsUnsignedLong(return_value); + Py_DECREF(return_value); + if (PyErr_Occurred()) + return NULL; } } else { return set_ics_exception(exception_runtime_error(), "Failed to convert serial number string to integer."); @@ -1440,7 +1454,7 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) device_utc_time.tm_year = ics_time.year; device_utc_time.tm_isdst = -1; device_utc_time.tm_year += 100; - unsigned long offset = (unsigned long)_tm_secs_offset(&device_utc_time, current_utc_time); + long long offset = _tm_secs_offset(&device_utc_time, current_utc_time); PyDateTime_IMPORT; if (!PyDateTimeAPI) { return set_ics_exception(exception_runtime_error(), "Failed to initialize PyDateTime"); @@ -1452,7 +1466,7 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) device_utc_time.tm_min, device_utc_time.tm_sec, 0); - return Py_BuildValue("(O,i)", datetime, offset); + return Py_BuildValue("(O,L)", datetime, offset); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -1555,6 +1569,12 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) fseek(f, 0, SEEK_END); fsize = ftell(f); rewind(f); + // ftell() returns a 32 bit long on Windows; a negative or huge result + // means the file is too large to load through this int-sized API. + if (fsize < 0 || fsize > INT_MAX) { + fclose(f); + return set_ics_exception(exception_runtime_error(), "CoreMini script file size is invalid"); + } data = (unsigned char*)malloc(sizeof(char) * fsize); data_size = (int)fread(data, 1, static_cast(fsize), f); fclose(f); @@ -1809,7 +1829,8 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) { (void)self; double timeout = 0.1; - int use_j1850 = 0; + // 'b' writes a single byte, so the target must be byte sized + unsigned char use_j1850 = 0; PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O|bd:", __FUNCTION__), &obj, &use_j1850, &timeout)) { return NULL; @@ -1920,7 +1941,7 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) icsneoScriptGetScriptStatusEx(lib, "icsneoScriptGetScriptStatusEx"); auto gil = PyAllowThreads(); if (!icsneoScriptGetScriptStatusEx( - handle, parameters, sizeof(parameters) / sizeof(¶meters[0]), parameters_count)) { + handle, parameters, sizeof(parameters) / sizeof(parameters[0]), parameters_count)) { gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoScriptGetScriptStatusEx() Failed"); } @@ -1930,8 +1951,9 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) } PyObject* list_object = PyList_New(0); for (unsigned long i = 0; i < parameters_count; ++i) { - PyObject* _obj = Py_BuildValue("i", parameters[i]); + PyObject* _obj = PyLong_FromUnsignedLong(parameters[i]); PyList_Append(list_object, _obj); + Py_XDECREF(_obj); } return list_object; } @@ -2094,7 +2116,16 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) void (*MessageCallback)(const char* message, bool success))> FlashDevice2(lib, "FlashDevice2"); auto gil = PyAllowThreads(); - if (!FlashDevice2(0x3835C256, &nde->neoDevice, rc, reflash_count, network_id, iOptions, 0, &message_callback)) { + // Avoid sign-extending the -1 sentinel to 0xFFFFFFFFFFFFFFFF on LP64; + // the DLL expects the 32 bit value on every platform. + if (!FlashDevice2(0x3835C256, + &nde->neoDevice, + rc, + reflash_count, + static_cast(static_cast(network_id)), + iOptions, + 0, + &message_callback)) { gil.restore(); PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "FlashDevice2() Failed"); @@ -2116,9 +2147,9 @@ static void message_reflash_callback(const wchar_t* message, unsigned long progr if (!msg_reflash_callback) { PySys_WriteStdout("%ls -%ld\n", message, progress); } else if (PyObject_HasAttrString(msg_reflash_callback, "reflash_callback")) { - PyObject_CallMethod(msg_reflash_callback, "reflash_callback", "u,i", message, progress); + PyObject_CallMethod(msg_reflash_callback, "reflash_callback", "u,k", message, progress); } else { - PyObject_CallFunction(msg_reflash_callback, "u,i", message, progress); + PyObject_CallFunction(msg_reflash_callback, "u,k", message, progress); } // Unlock the GIL here again... PyGILState_Release(state); @@ -2163,10 +2194,13 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) (void)self; PyObject* obj = NULL; long device_type_override = -1; - EPlasmaIonVnetChannel_t vnet_slot = (EPlasmaIonVnetChannel_t)PlasmaIonVnetChannelMain; - if (!PyArg_ParseTuple(args, arg_parse("O|lk:", __FUNCTION__), &obj, &device_type_override, &vnet_slot)) { + // 'k' would write a full unsigned long (8 bytes on LP64) into a 4 byte + // enum, so parse into an unsigned int and cast at the call sites. + unsigned int vnet_slot_arg = (unsigned int)PlasmaIonVnetChannelMain; + if (!PyArg_ParseTuple(args, arg_parse("O|lI:", __FUNCTION__), &obj, &device_type_override, &vnet_slot_arg)) { return NULL; } + EPlasmaIonVnetChannel_t vnet_slot = static_cast(vnet_slot_arg); // Before we do anything, we need to grab the python s_device_settings ctype.Structure. PyObject* settings = _getPythonModuleObject("ics.structures.s_device_settings", "s_device_settings"); @@ -2236,10 +2270,13 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) PyObject* obj = NULL; PyObject* settings = NULL; int save_to_eeprom = 1; - EPlasmaIonVnetChannel_t vnet_slot = PlasmaIonVnetChannelMain; - if (!PyArg_ParseTuple(args, arg_parse("OO|ik:", __FUNCTION__), &obj, &settings, &save_to_eeprom, &vnet_slot)) { + // 'k' would write a full unsigned long (8 bytes on LP64) into a 4 byte + // enum, so parse into an unsigned int and cast at the call site. + unsigned int vnet_slot_arg = (unsigned int)PlasmaIonVnetChannelMain; + if (!PyArg_ParseTuple(args, arg_parse("OO|iI:", __FUNCTION__), &obj, &settings, &save_to_eeprom, &vnet_slot_arg)) { return NULL; } + EPlasmaIonVnetChannel_t vnet_slot = static_cast(vnet_slot_arg); if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } @@ -2640,7 +2677,8 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip (void)self; unsigned int index; PyObject* obj = NULL; - int j1850 = 0; + // 'b' writes a single byte, so the target must be byte sized + unsigned char j1850 = 0; if (!PyArg_ParseTuple(args, arg_parse("OI|b:", __FUNCTION__), &obj, &index, &j1850)) { return NULL; } @@ -2699,7 +2737,8 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip (void)self; unsigned int index; PyObject* obj = NULL; - int j1850 = 0; + // 'b' writes a single byte, so the target must be byte sized + unsigned char j1850 = 0; if (!PyArg_ParseTuple(args, arg_parse("OI|b:", __FUNCTION__), &obj, &index, &j1850)) { return NULL; } @@ -2777,7 +2816,8 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn unsigned int index; PyObject* obj = NULL; PyObject* msg_obj = NULL; - int j1850 = 0; + // 'b' writes a single byte, so the target must be byte sized + unsigned char j1850 = 0; if (!PyArg_ParseTuple(args, arg_parse("OIO|b:", __FUNCTION__), &obj, &index, &msg_obj, &j1850)) { return NULL; } @@ -2831,7 +2871,8 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsn PyObject* obj = NULL; PyObject* msg_obj = NULL; PyObject* msg_mask_obj = NULL; - int j1850 = 0; + // 'b' writes a single byte, so the target must be byte sized + unsigned char j1850 = 0; if (!PyArg_ParseTuple(args, arg_parse("OIOO|b:", __FUNCTION__), &obj, &index, &msg_obj, &msg_mask_obj, &j1850)) { return NULL; } @@ -3080,7 +3121,8 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoGetSerialNumber() Failed"); } gil.restore(); - return Py_BuildValue("i", serial); + // 'I': serials above 0x7FFFFFFF ("ZIK0ZK".."ZZZZZZ") must stay positive + return Py_BuildValue("I", serial); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -3370,7 +3412,8 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) { (void)self; PyObject* obj = NULL; - unsigned int enabled = 1; + // 'b' writes a single byte, so the target must be byte sized + unsigned char enabled = 1; if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &enabled)) { return NULL; } @@ -3475,6 +3518,12 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) fseek(f, 0, SEEK_END); fsize = ftell(f); rewind(f); + // ftell() returns a 32 bit long on Windows; a negative or huge result + // means the file is too large to load through this int-sized API. + if (fsize < 0 || fsize > INT_MAX) { + fclose(f); + return set_ics_exception(exception_runtime_error(), "Readbin file size is invalid"); + } data = (unsigned char*)malloc(sizeof(char) * fsize); data_size = (int)fread(data, 1, static_cast(fsize), f); fclose(f); @@ -3714,7 +3763,7 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoGetActiveVNETChannel() Failed"); } gil.restore(); - return Py_BuildValue("i", channel); + return Py_BuildValue("k", channel); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -3749,7 +3798,7 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoSetActiveVNETChannel() Failed"); } gil.restore(); - return Py_BuildValue("i", channel); + return Py_BuildValue("k", channel); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -3906,7 +3955,8 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) { (void)self; PyObject* obj = NULL; - int throw_exception_on_size_mismatch = 0; + // 'b' writes a single byte, so the target must be byte sized + unsigned char throw_exception_on_size_mismatch = 0; if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &throw_exception_on_size_mismatch)) { return NULL; } @@ -4066,7 +4116,7 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoGetBusVoltage() Failed"); } gil.restore(); - return Py_BuildValue("i", mV); + return Py_BuildValue("k", mV); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -4076,11 +4126,17 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) { (void)self; PyObject* obj = NULL; - size_t fileSize = 0; + // 'i' would write only 4 of size_t's 8 bytes (and reject sizes >= 2GB), + // so parse with 'n' into a Py_ssize_t. + Py_ssize_t file_size_arg = 0; EPlasmaIonVnetChannel_t channel = PlasmaIonVnetChannelMain; - if (!PyArg_ParseTuple(args, arg_parse("Oi|i:", __FUNCTION__), &obj, &fileSize, &channel)) { + if (!PyArg_ParseTuple(args, arg_parse("On|i:", __FUNCTION__), &obj, &file_size_arg, &channel)) { return NULL; } + if (file_size_arg < 0) { + return set_ics_exception(exception_runtime_error(), "file_size must not be negative"); + } + size_t fileSize = static_cast(file_size_arg); // Create the ByteArray PyObject* ba = PyObject_CallObject((PyObject*)&PyByteArray_Type, NULL); @@ -4123,7 +4179,7 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) } gil.restore(); PyBuffer_Release(&ba_buffer); - return Py_BuildValue("Oi", ba, fileSize); + return Py_BuildValue("On", ba, (Py_ssize_t)fileSize); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -4295,8 +4351,9 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) { (void)self; PyObject* obj = NULL; - char accessory_indx = 0; - bool check_success = true; + // 'i' writes a full int, so the target must be int sized + int accessory_indx = 0; + unsigned char check_success = 1; if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &accessory_indx, &check_success)) { return NULL; } @@ -4320,10 +4377,14 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) ice::Function icsneoGetAccessoryFirmwareVersion( lib, "icsneoGetAccessoryFirmwareVersion"); + if (accessory_indx < 0 || accessory_indx > 255) { + return set_ics_exception(exception_runtime_error(), "Accessory index must be between 0 and 255"); + } unsigned int accessory_version = 0; int function_error = 0; auto gil = PyAllowThreads(); - if (!icsneoGetAccessoryFirmwareVersion(handle, accessory_indx, &accessory_version, &function_error)) { + if (!icsneoGetAccessoryFirmwareVersion( + handle, static_cast(accessory_indx), &accessory_version, &function_error)) { gil.restore(); return set_ics_exception(exception_runtime_error(), "icsneoGetAccessoryFirmwareVersion() Failed"); } @@ -4962,7 +5023,8 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) EUartPort_t port = eUART0; Py_buffer data = {}; uint8_t flags = 0; - bool check_size = true; + // 'p' writes a full int, so the target must be int sized + int check_size = 1; if (!PyArg_ParseTuple(args, arg_parse("OIy*|Bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { return NULL; } @@ -4996,7 +5058,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "Bytes actually sent didn't match bytes to send length"); } - return Py_BuildValue("i", bytesActuallySent); + return Py_BuildValue("n", (Py_ssize_t)bytesActuallySent); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } diff --git a/src/object_spy_message.cpp b/src/object_spy_message.cpp index 267c95aa0..0c1c4a7a8 100644 --- a/src/object_spy_message.cpp +++ b/src/object_spy_message.cpp @@ -23,6 +23,38 @@ static void spy_message_object_dealloc(spy_message_object* self) Py_TYPE(self)->tp_free((PyObject*)self); } +// Validates that value is a tuple of at most max_length ints and copies the +// elements into dest. Returns the tuple length, or -1 with an exception set. +// dest is only written on success. +static Py_ssize_t _copy_byte_tuple(PyObject* value, PyObject* attr_name, unsigned char* dest, Py_ssize_t max_length) +{ + if (!PyTuple_Check(value)) { + PyErr_Format(PyExc_AttributeError, + "'%.50s' object attribute '%U' needs to be a tuple", + MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, + attr_name); + return -1; + } + Py_ssize_t length = PyTuple_Size(value); + if (length > max_length) { + PyErr_Format( + PyExc_ValueError, "'%U' accepts at most %zd bytes (got %zd)", attr_name, max_length, length); + return -1; + } + unsigned char temp[8] = { 0 }; + for (Py_ssize_t i = 0; i < length; ++i) { + PyObject* item = PyTuple_GetItem(value, i); + if (!item) + return -1; + long byte = PyLong_AsLong(item); + if (byte == -1 && PyErr_Occurred()) + return -1; + temp[i] = (unsigned char)byte; + } + memcpy(dest, temp, (size_t)length); + return length; +} + static PyObject* spy_message_object_getattr(PyObject* o, PyObject* attr_name) { #if PY_MAJOR_VERSION >= 3 @@ -97,7 +129,7 @@ static PyObject* spy_message_object_getattr(PyObject* o, PyObject* attr_name) } return tuple; } else { - return Py_None; + Py_RETURN_NONE; } } else { return PyObject_GenericGetAttr(o, attr_name); @@ -108,108 +140,88 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val { spy_message_object* obj = (spy_message_object*)o; if (PyUnicode_CompareWithASCIIString(name, "Data") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); + Py_ssize_t length = _copy_byte_tuple(value, name, obj->msg.Data, sizeof(obj->msg.Data)); + if (length < 0) return -1; - } - // Get tuple items and place them in array, set as 0 if error. - for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - obj->msg.Data[i] = 0; - } else { - obj->msg.Data[i] = (unsigned char)PyLong_AsLong(data); - } - } - obj->msg.NumberBytesData = static_cast(PyObject_Length(value)); + obj->msg.NumberBytesData = static_cast(length); return 0; } else if (PyUnicode_CompareWithASCIIString(name, "AckBytes") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); + if (_copy_byte_tuple(value, name, obj->msg.AckBytes, sizeof(obj->msg.AckBytes)) < 0) return -1; - } - // Get tuple items and place them in array, set as 0 if error. - for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - obj->msg.AckBytes[i] = 0; - } else { - obj->msg.AckBytes[i] = static_cast(PyLong_AsLong(data)); - } - } return 0; } else if (PyUnicode_CompareWithASCIIString(name, "Header") == 0) { - // Make sure we are a tuple and len() == 8 - if (!PyTuple_Check(value)) { - PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, - name); + spy_message_j1850_object* j1850_obj = (spy_message_j1850_object*)obj; + Py_ssize_t length = _copy_byte_tuple(value, name, j1850_obj->msg.Header, sizeof(j1850_obj->msg.Header)); + if (length < 0) return -1; - } - // Get tuple items and place them in array, set as 0 if error. - for (int i = 0; i < 8 && i < PyObject_Length(value); ++i) { - PyObject* data = PyTuple_GetItem(value, i); - if (!data && !PyLong_Check(data)) { - ((spy_message_j1850_object*)obj)->msg.Header[i] = 0; - } else { - ((spy_message_j1850_object*)obj)->msg.Header[i] = (unsigned char)PyLong_AsLong(data); - } - } - obj->msg.NumberBytesHeader = static_cast(PyObject_Length(value)); + obj->msg.NumberBytesHeader = static_cast(length); return 0; } else if (PyUnicode_CompareWithASCIIString(name, "Protocol") == 0) { // Ethernet behavior is backward to CAN and will crash if enabled. - if (PyLong_AsLong(value) == SPY_PROTOCOL_ETHERNET) + long protocol = PyLong_AsLong(value); + if (protocol == -1 && PyErr_Occurred()) + PyErr_Clear(); // let PyObject_GenericSetAttr report the type error + else if (protocol == SPY_PROTOCOL_ETHERNET) obj->msg.ExtraDataPtrEnabled = 0; return PyObject_GenericSetAttr(o, name, value); } else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtr") == 0) { - // Make sure we are a tuple and len() == 8 if (!PyTuple_Check(value)) { PyErr_Format(PyExc_AttributeError, - "'%.50s' object attribute '%.400s' needs to be a tuple", + "'%.50s' object attribute '%U' needs to be a tuple", MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, name); return -1; } - // Get tuple items and place them in array, set as 0 if error. - size_t length = static_cast(PyObject_Length(value)); - if (obj->msg.ExtraDataPtr != NULL) - delete[] (unsigned char*)obj->msg.ExtraDataPtr; - obj->msg.ExtraDataPtr = new unsigned char[length]; // Some newer protocols are packing the length into NumberBytesHeader also so lets handle it here... - if (obj->msg.Protocol == SPY_PROTOCOL_A2B || obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || - obj->msg.Protocol == SPY_PROTOCOL_SPI || obj->msg.Protocol == SPY_PROTOCOL_WBMS) { - obj->msg.NumberBytesHeader = static_cast(length >> 8); + bool packs_length = obj->msg.Protocol == SPY_PROTOCOL_A2B || obj->msg.Protocol == SPY_PROTOCOL_ETHERNET || + obj->msg.Protocol == SPY_PROTOCOL_SPI || obj->msg.Protocol == SPY_PROTOCOL_WBMS; + Py_ssize_t length = PyTuple_Size(value); + Py_ssize_t max_length = packs_length ? 0xFFFF : 0xFF; + if (length > max_length) { + PyErr_Format(PyExc_ValueError, + "'%U' accepts at most %zd bytes for this protocol (got %zd)", + name, + max_length, + length); + return -1; } - obj->msg.NumberBytesData = length & 0xFF; - if (obj->msg.Protocol != SPY_PROTOCOL_ETHERNET) - obj->msg.ExtraDataPtrEnabled = 1; - unsigned char* ExtraDataPtr = (unsigned char*)(obj->msg.ExtraDataPtr); - for (size_t i = 0; i < length; ++i) { - PyObject* data = PyTuple_GetItem(value, static_cast(i)); - if (!data && !PyLong_Check(data)) { - ExtraDataPtr[i] = (unsigned char)0; - } else { - ExtraDataPtr[i] = (unsigned char)PyLong_AsLong(data); + // Validate and copy into a fresh buffer before touching the message. + unsigned char* buffer = new unsigned char[length > 0 ? (size_t)length : 1]; + for (Py_ssize_t i = 0; i < length; ++i) { + PyObject* data = PyTuple_GetItem(value, i); + long byte = data ? PyLong_AsLong(data) : -1; + if (!data || (byte == -1 && PyErr_Occurred())) { + delete[] buffer; + return -1; } + buffer[i] = (unsigned char)byte; } + // Never delete[] a buffer this extension didn't allocate (e.g. DLL-owned + // pointers on received messages flagged with noExtraDataPtrCleanup). + if (obj->msg.ExtraDataPtr != NULL && !obj->noExtraDataPtrCleanup) + delete[] (unsigned char*)obj->msg.ExtraDataPtr; + obj->msg.ExtraDataPtr = buffer; + if (packs_length) + obj->msg.NumberBytesHeader = static_cast(length >> 8); + obj->msg.NumberBytesData = static_cast(length & 0xFF); + if (obj->msg.Protocol != SPY_PROTOCOL_ETHERNET) + obj->msg.ExtraDataPtrEnabled = 1; + obj->noExtraDataPtrCleanup = false; return 0; } else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtrEnabled") == 0) { + long enabled = PyLong_AsLong(value); + if (enabled == -1 && PyErr_Occurred()) { + PyErr_Clear(); // let PyObject_GenericSetAttr report the type error + return PyObject_GenericSetAttr(o, name, value); + } // Make sure we clean up here so we don't memory leak - if ((!obj->noExtraDataPtrCleanup && PyLong_AsLong(value) != 1 && obj->msg.ExtraDataPtrEnabled == 1) || - (!obj->noExtraDataPtrCleanup && PyLong_AsLong(value) != 1 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET)) { - if (obj->msg.ExtraDataPtr != NULL) + if ((!obj->noExtraDataPtrCleanup && enabled != 1 && obj->msg.ExtraDataPtrEnabled == 1) || + (!obj->noExtraDataPtrCleanup && enabled != 1 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET)) { + if (obj->msg.ExtraDataPtr != NULL) { delete[] (unsigned char*)obj->msg.ExtraDataPtr; - } else if (PyLong_AsLong(value) != 0 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET) { + obj->msg.ExtraDataPtr = NULL; + } + } else if (enabled != 0 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET) { // Ethernet always needs to be set to 0 return 0; } @@ -285,11 +297,11 @@ static PyMemberDef spy_message_object_members[] = { "This value is used to identify which network this message was received on." }, { "DescriptionID", T_SHORT, offsetof(spy_message_object, msg.DescriptionID), 0, "Not Used" }, { "ArbIDOrHeader", T_UINT, offsetof(spy_message_object, msg.ArbIDOrHeader), 0, "" }, - { "Data", T_OBJECT_EX, 0, 0, "" }, + // Data, AckBytes and ExtraDataPtr are handled by tp_getattro/tp_setattro; + // a member entry here would expose a descriptor that reinterprets raw + // struct memory as a PyObject*. { "StatusBitField3", T_UINT, offsetof(spy_message_object, msg.StatusBitField3), 0, "StatusBitField3" }, { "StatusBitField4", T_UINT, offsetof(spy_message_object, msg.StatusBitField4), 0, "StatusBitField4" }, - { "AckBytes", T_OBJECT_EX, 0, 0, "" }, - { "ExtraDataPtr", T_OBJECT_EX, offsetof(spy_message_object, msg.ExtraDataPtr), 0, "" }, { "MiscData", T_UBYTE, offsetof(spy_message_object, msg.MiscData), 0, "" }, { "noExtraDataPtrCleanup", T_BOOL, @@ -360,20 +372,19 @@ static PyMemberDef spy_message_j1850_object_members[] = { "Holds the number of bytes in the Data(1 to 8) array or the number of bytes in a CAN remote frame (The DLC)." }, { "NetworkID2", T_UBYTE, - offsetof(spy_message_object, msg.NetworkID2), + offsetof(spy_message_j1850_object, msg.NetworkID2), 0, "This value is used to identify which network this message was received on." }, { "DescriptionID", T_SHORT, offsetof(spy_message_j1850_object, msg.DescriptionID), 0, "Not Used" }, - { "Header", T_OBJECT_EX, 0, 0, "" }, - { "Data", T_OBJECT_EX, 0, 0, "" }, + // Header, Data, AckBytes and ExtraDataPtr are handled by + // tp_getattro/tp_setattro; a member entry here would expose a descriptor + // that reinterprets raw struct memory as a PyObject*. { "StatusBitField3", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField3), 0, "StatusBitField3" }, { "StatusBitField4", T_UINT, offsetof(spy_message_j1850_object, msg.StatusBitField4), 0, "StatusBitField4" }, - { "AckBytes", T_OBJECT_EX, 0, 0, "" }, - { "ExtraDataPtr", T_OBJECT_EX, offsetof(spy_message_j1850_object, msg.ExtraDataPtr), 0, "" }, { "MiscData", T_UBYTE, offsetof(spy_message_j1850_object, msg.MiscData), 0, "" }, { "noExtraDataPtrCleanup", T_BOOL, - offsetof(spy_message_object, noExtraDataPtrCleanup), + offsetof(spy_message_j1850_object, noExtraDataPtrCleanup), 0, "Tells Python to not clean up ExtraDataPtrMemory, If this is enabled. Ignore, if unsure." }, { NULL, 0, 0, 0, NULL }, diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index fb90c6404..d53d7a605 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -1009,7 +1009,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "DeviceRADGeminiSettingsType", PyLong_FromLongLong(DeviceRADGeminiSettingsType)); result += PyModule_AddObjectRef(module, "DeviceFire3T1sLinSettingsType", PyLong_FromLongLong(DeviceFire3T1sLinSettingsType)); result += PyModule_AddObjectRef(module, "DeviceSettingsTypeMax", PyLong_FromLongLong(DeviceSettingsTypeMax)); - result += PyModule_AddObjectRef(module, "DeviceSettingsNone", PyLong_FromLongLong(DeviceSettingsNone)); + result += PyModule_AddObjectRef(module, "DeviceSettingsNone", PyLong_FromUnsignedLongLong(static_cast(DeviceSettingsNone))); // end of enum - } EDeviceSettingsType; // enum diff --git a/tests/test_defines.py b/tests/test_defines.py index fb8962744..71d756433 100644 --- a/tests/test_defines.py +++ b/tests/test_defines.py @@ -3,16 +3,24 @@ def test_unsigned_overflow(): """Test that certain defines are correctly set to large unsigned values.""" - # These values are defined in icsnVC40.h and should be interpreted as unsigned + # These values are defined in icsnVC40.h/cicsSpyStatusBits.h and should be + # interpreted as unsigned. No hasattr() guard: a missing name is a + # regression in the define generation and must fail loudly. values = ( "SPY_STATUS_EXTENDED", "SPY_STATUS2_ETHERNET_T1S_ETHERNET", "SPY_STATUS2_LIN_NO_SLAVE_DATA", - "SPY_STATUS2_MOST_CHANGED_PAR" + "SPY_STATUS2_MOST_CHANGED_PAR", + "NEODEVICE_OBD2_SIM_DEPRECATED", + "ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE", ) for value in values: - if hasattr(ics, value): - assert getattr(ics, value) == 0x80000000 + assert getattr(ics, value) == 0x80000000, value + + +def test_serial_range_defines(): + assert ics.MIN_BASE36_SERIAL == int("A0000", 36) + assert ics.MAX_SERIAL == int("ZZZZZZ", 36) if __name__ == "__main__": import pytest diff --git a/tests/test_neo_device_ex.py b/tests/test_neo_device_ex.py new file mode 100644 index 000000000..bd969250d --- /dev/null +++ b/tests/test_neo_device_ex.py @@ -0,0 +1,43 @@ +import pytest +import ics + + +def _make_device(serial: int) -> ics.PyNeoDeviceEx: + device = ics.PyNeoDeviceEx() + # No handle was opened; don't try to close one on GC. + device._auto_handle_close = False + # SerialNumber is an int32_t in the NeoDevice struct, so values with the + # high bit set are stored as negative. + device.neoDevice.SerialNumber = serial - 0x100000000 if serial > 0x7FFFFFFF else serial + return device + + +def test_serial_number_decimal(): + assert _make_device(53123).serial_number == "53123" + + +def test_serial_number_first_base36(): + # MIN_BASE36_SERIAL is exactly "A0000" and must render as base36. + assert int("A0000", 36) == ics.MIN_BASE36_SERIAL + assert _make_device(ics.MIN_BASE36_SERIAL).serial_number == "A0000" + + +def test_serial_number_last_decimal(): + assert _make_device(ics.MIN_BASE36_SERIAL - 1).serial_number == str(ics.MIN_BASE36_SERIAL - 1) + + +def test_serial_number_high_bit_serial(): + # Serials ZIK0ZK..ZZZZZZ exceed 0x7FFFFFFF and read back negative from + # the int32 struct field; the property must still render them correctly. + assert int("ZZZZZZ", 36) == ics.MAX_SERIAL + assert _make_device(ics.MAX_SERIAL).serial_number == "ZZZZZZ" + assert _make_device(int("ZIK0ZK", 36)).serial_number == "ZIK0ZK" + + +def test_serial_number_out_of_range_raises(): + with pytest.raises(ValueError): + _make_device(ics.MAX_SERIAL + 1).serial_number + + +if __name__ == "__main__": + pytest.main(args=[__file__, "--verbose", "-s"]) diff --git a/tests/test_spy_message.py b/tests/test_spy_message.py new file mode 100644 index 000000000..f25371da5 --- /dev/null +++ b/tests/test_spy_message.py @@ -0,0 +1,122 @@ +import pytest +import ics + + +def test_data_roundtrip(): + msg = ics.SpyMessage() + msg.Data = (1, 2, 3, 4, 5, 6, 7, 8) + assert msg.Data == (1, 2, 3, 4, 5, 6, 7, 8) + assert msg.NumberBytesData == 8 + + +def test_data_partial_roundtrip(): + msg = ics.SpyMessage() + msg.Data = (0xAA, 0xBB) + assert msg.Data == (0xAA, 0xBB) + assert msg.NumberBytesData == 2 + + +def test_data_rejects_more_than_8_bytes(): + msg = ics.SpyMessage() + with pytest.raises(ValueError): + msg.Data = tuple(range(9)) + + +def test_data_rejects_non_int_elements(): + msg = ics.SpyMessage() + with pytest.raises(TypeError): + msg.Data = (1, "x", 3) + # No exception may be left pending after the failed assignment. + assert msg.NumberBytesData == 0 + + +def test_ack_bytes_rejects_more_than_8_bytes(): + msg = ics.SpyMessage() + with pytest.raises(ValueError): + msg.AckBytes = tuple(range(9)) + + +def test_ack_bytes_rejects_non_int_elements(): + msg = ics.SpyMessage() + with pytest.raises(TypeError): + msg.AckBytes = (None,) + + +def test_header_does_not_overflow_into_data(): + # icsSpyMessageJ1850.Header is only 4 bytes; a longer tuple used to + # spill into Data[0..3]. + msg = ics.SpyMessageJ1850() + msg.Data = (1, 2, 3, 4, 5, 6, 7, 8) + with pytest.raises(ValueError): + msg.Header = (0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x11, 0x22) + assert msg.Data == (1, 2, 3, 4, 5, 6, 7, 8) + + +def test_header_roundtrip(): + msg = ics.SpyMessageJ1850() + msg.Header = (0xAA, 0xBB, 0xCC, 0xDD) + assert msg.Header == (0xAA, 0xBB, 0xCC, 0xDD) + assert msg.NumberBytesHeader == 4 + + +def test_header_rejects_non_int_elements(): + msg = ics.SpyMessageJ1850() + with pytest.raises(TypeError): + msg.Header = ("a",) + + +def test_extra_data_ptr_roundtrip(): + msg = ics.SpyMessage() + msg.Protocol = ics.SPY_PROTOCOL_CANFD + payload = tuple(x & 0xFF for x in range(64)) + msg.ExtraDataPtr = payload + assert msg.ExtraDataPtr == payload + + +def test_extra_data_ptr_large_roundtrip_packing_protocol(): + # A2B/Ethernet/SPI/WBMS pack a 16-bit length into + # NumberBytesHeader:NumberBytesData. + msg = ics.SpyMessage() + msg.Protocol = ics.SPY_PROTOCOL_ETHERNET + payload = tuple(x & 0xFF for x in range(1500)) + msg.ExtraDataPtr = payload + assert msg.ExtraDataPtr == payload + + +def test_extra_data_ptr_rejects_unrepresentable_length(): + # Length is carried in 16 bits at most; longer payloads used to be + # silently truncated to (len & 0xFFFF) bytes. + msg = ics.SpyMessage() + msg.Protocol = ics.SPY_PROTOCOL_ETHERNET + with pytest.raises(ValueError): + msg.ExtraDataPtr = tuple(x & 0xFF for x in range(0x10000)) + + +def test_extra_data_ptr_rejects_unrepresentable_length_non_packing_protocol(): + # Non length-packing protocols only have the 8-bit NumberBytesData. + msg = ics.SpyMessage() + msg.Protocol = ics.SPY_PROTOCOL_CANFD + with pytest.raises(ValueError): + msg.ExtraDataPtr = tuple(x & 0xFF for x in range(0x100)) + + +def test_extra_data_ptr_rejects_non_int_elements(): + msg = ics.SpyMessage() + msg.Protocol = ics.SPY_PROTOCOL_CANFD + with pytest.raises(TypeError): + msg.ExtraDataPtr = (1, 2, "x") + + +def test_extra_data_ptr_none_when_unset(): + msg = ics.SpyMessage() + assert msg.ExtraDataPtr is None + + +def test_status_bit_field_high_bit_roundtrip(): + msg = ics.SpyMessage() + msg.StatusBitField = ics.SPY_STATUS_EXTENDED + assert msg.StatusBitField == 0x80000000 + + +if __name__ == "__main__": + pytest.main(args=[__file__, "--verbose", "-s"]) diff --git a/tests/test_structures.py b/tests/test_structures.py new file mode 100644 index 000000000..2d4ca369a --- /dev/null +++ b/tests/test_structures.py @@ -0,0 +1,35 @@ +import ctypes + +import pytest +import ics +from ics.structures.e_device_settings_type import e_device_settings_type +from ics.structures.s_device_settings import s_device_settings +from ics.structures.ics_spy_message_flex_ray import ics_spy_message_flex_ray +from ics.structures.ics_spy_message_vsb import ics_spy_message_vsb + + +def test_device_settings_none_consistent(): + # The module constant, the generated enum, and the struct field must all + # agree on 0xFFFFFFFF on every platform. MSVC used to wrap the module + # constant to -1. + assert ics.DeviceSettingsNone == 0xFFFFFFFF + assert e_device_settings_type.DeviceSettingsNone.value == 0xFFFFFFFF + + +def test_device_setting_type_field_roundtrip(): + settings = s_device_settings() + settings.DeviceSettingType = 0xFFFFFFFF + assert settings.DeviceSettingType == ics.DeviceSettingsNone + + +def test_description_id_is_signed_int16(): + # descIdType is int16_t in icsnVC40.h (EXTERNAL_PROJECT build). + for struct in (ics_spy_message_flex_ray, ics_spy_message_vsb): + instance = struct() + instance.DescriptionID = -1 + assert instance.DescriptionID == -1, struct.__name__ + assert type(instance).DescriptionID.size == 2, struct.__name__ + + +if __name__ == "__main__": + pytest.main(args=[__file__, "--verbose", "-s"]) From 99d00dcea12047cb530e58924fac824e9a37bf9f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 7 Jul 2026 16:07:25 -0400 Subject: [PATCH 36/38] Update headers to Vehicle Spy 3.26.3.9; adopt 1!26.3.9 epoch versioning (#234) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add design spec for 3.26.3.9 header update and epoch versioning Co-Authored-By: Claude Fable 5 * Add implementation plan for 3.26.3.9 header update and epoch versioning Co-Authored-By: Claude Fable 5 * Add struct-size regression test against header _SIZE macros Co-Authored-By: Claude Fable 5 * Update headers to Vehicle Spy 3.26.3.9 - icsnVC40.h / cicsSpyStatusBits.h copied verbatim from vspy3 Core/Hardware - drop local icsnVC40.h.patch: upstream now carries its own pack(4) around icsDeviceStatus, matching what the 3.26.3.9 DLL was built against - legacy device constants renamed *_DEPRECATED upstream; legacy settings structs removed (breaking; signaled by the 1!26.3.9 epoch release) - regenerate module defines and processed headers - adjust test_struct_sizes.py matched-macro baseline (77 -> 72): the 5 removed legacy settings structs (SRedSettings, SFireSettings, SVCAN3Settings, SECUSettings, SPendantSettings) took their *_SIZE macros with them, a clean removal rather than a mapping regression Co-Authored-By: Claude Fable 5 * Document 1!26.3.9 epoch versioning and tagging convention Co-Authored-By: Claude Fable 5 * Make setup.py version parsing epoch-aware get_version() derives MAJOR/MINOR macros from the dunamai version; strip the PEP 440 epoch prefix so builds work from v1!x.y.z tags. Co-Authored-By: Claude Fable 5 * Regenerate docs for 3.26.3.9 API; polish from final review - doc/source/index.rst regenerated against the new module surface - README versioning typo; pytest main footer in test_struct_sizes Co-Authored-By: Claude Fable 5 * Bump libicsneo pin to current master (4ed29b4) Latest upstream still vendors a pre-3.26.3.9 icsnVC40.h, so the Linux/macOS ABI gap for grown/new device settings remains until libicsneo syncs its header; noted at the pin. Co-Authored-By: Claude Fable 5 * Revert libicsneo pin to 830fe1a Master (4ed29b4) adds a mandatory icspb protobuf dependency whose codegen fails on the CI wheel builders (missing _deps/icspb-build/protos output dir), and its vendored icsnVC40.h is still pre-3.26.3.9 — so the bump broke Linux/macOS wheels while gaining no ABI parity. Re-bump once upstream syncs the header and icspb builds cleanly. Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- README.md | 18 + build_libicsneo.py | 6 + doc/source/index.rst | 752 +++++++++++------- ...-07-07-header-3.26.3.9-epoch-versioning.md | 426 ++++++++++ ...7-header-update-epoch-versioning-design.md | 92 +++ include/ics/icsnVC40.h | 335 ++------ include/ics/icsnVC40.h.patch | 23 - setup.py | 6 +- src/methods.cpp | 18 +- src/setup_module_auto_defines.cpp | 57 +- tests/test_header_3_26.py | 30 + tests/test_struct_sizes.py | 69 ++ 12 files changed, 1247 insertions(+), 585 deletions(-) create mode 100644 docs/superpowers/plans/2026-07-07-header-3.26.3.9-epoch-versioning.md create mode 100644 docs/superpowers/specs/2026-07-07-header-update-epoch-versioning-design.md delete mode 100644 include/ics/icsnVC40.h.patch create mode 100644 tests/test_header_3_26.py create mode 100644 tests/test_struct_sizes.py diff --git a/README.md b/README.md index ec0cf1f7a..7705f9454 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,24 @@ Python wrapper for interfacing to IntrepidCS Hardware. - Mac builds use [libicsneo](https://github.com/intrepidcs/libicsneo) and are built using cibuildwheel - libicsneolegacy.dylib is bundled with the wheel and python_ics will automatically use it. +## Versioning + +Starting with **1!26.3.9**, python_ics versions track the Vehicle Spy +version they were generated from (Vspy 3.26.3.9 → python_ics 26.3.9). + +The `1!` prefix is a [PEP 440 epoch](https://peps.python.org/pep-0440/#version-epochs). +Earlier releases used the icsneo40 DLL version (e.g. 923.11), which sorts +*above* 26.x, so the epoch tells pip the scheme changed: + +- `pip install python_ics` and `pip install -U python_ics` correctly + resolve `1!26.3.9` as newer than `923.11`. +- Exact pins must include the epoch: `python_ics==1!26.3.9`. +- Range pins work with or without it: `python_ics>=1!26.3`. + +**Release tagging:** tags are `v1!` (e.g. `v1!26.3.9`). Every +future tag keeps the `1!` prefix — a bare `v26.x` tag would sort below +the historical 923.x releases and pip would ignore it. + # Basic usage ```python diff --git a/build_libicsneo.py b/build_libicsneo.py index cc74617e5..13b1fc6f2 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -14,6 +14,12 @@ LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" +# NOTE: this pin's vendored icsnVC40.h predates Vspy 3.26.3.9 +# (SRADGalaxy2Settings 840 vs 1204, no Comet3/Gigastar2), so Linux/macOS +# wheels lag the Windows ABI. Newer upstream doesn't help yet: master +# (4ed29b4, 2026-07-07) still has the old header AND adds a mandatory +# icspb protobuf dependency whose codegen fails on clean CI runners. +# Bump once upstream syncs the header and icspb builds. LIBICSNEO_VERSION = "830fe1a" LIBICSNEO_ROOT = f"{ROOT}/libicsneo/{LIBICSNEO_VERSION}" LIBICSNEO_SOURCE = f"{LIBICSNEO_ROOT}/source" diff --git a/doc/source/index.rst b/doc/source/index.rst index 69b8e701d..846bfdd66 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -60,6 +60,8 @@ Module Functions ics.get_backup_power_enabled ics.get_backup_power_ready ics.get_bus_voltage + ics.get_component_versions + ics.get_device_name ics.get_device_settings ics.get_device_status ics.get_disk_details @@ -67,8 +69,10 @@ Module Functions ics.get_dll_firmware_info ics.get_dll_version ics.get_error_messages + ics.get_firmware_variant ics.get_gptp_status ics.get_hw_firmware_info + ics.get_imei ics.get_last_api_error ics.get_library_path ics.get_messages @@ -89,6 +93,7 @@ Module Functions ics.read_jupiter_firmware ics.read_sdcard ics.request_enter_sleep_mode + ics.request_set_neovi_miscio ics.set_active_vnet_channel ics.set_backup_power_enabled ics.set_bit_rate @@ -129,13 +134,17 @@ Module Functions ics.GetBackupPowerEnabled ics.GetBackupPowerReady ics.GetBusVoltage + ics.GetComponentVersions ics.GetDLLFirmwareInfo ics.GetDLLVersion + ics.GetDeviceName ics.GetDeviceSettings ics.GetDeviceStatus ics.GetErrorMessages + ics.GetFirmwareVariant ics.GetGPTPStatus ics.GetHWFirmwareInfo + ics.GetIMEI ics.GetLastAPIError ics.GetMessages ics.GetPCBSerialNumber @@ -153,6 +162,7 @@ Module Functions ics.RequestDiskFormatCancel ics.RequestDiskFormatProgress ics.RequestEnterSleepMode + ics.RequestSetNeoVIMiscIO ics.ScriptClear ics.ScriptGetFBlockStatus ics.ScriptGetScriptStatus @@ -209,13 +219,17 @@ Module Functions ics.icsneoGetBackupPowerEnabled ics.icsneoGetBackupPowerReady ics.icsneoGetBusVoltage + ics.icsneoGetComponentVersions ics.icsneoGetDLLFirmwareInfo ics.icsneoGetDLLVersion + ics.icsneoGetDeviceName ics.icsneoGetDeviceSettings ics.icsneoGetDeviceStatus ics.icsneoGetErrorMessages + ics.icsneoGetFirmwareVariant ics.icsneoGetGPTPStatus ics.icsneoGetHWFirmwareInfo + ics.icsneoGetIMEI ics.icsneoGetLastAPIError ics.icsneoGetMessages ics.icsneoGetPCBSerialNumber @@ -237,6 +251,7 @@ Module Functions ics.icsneoRequestDiskFormatCancel ics.icsneoRequestDiskFormatProgress ics.icsneoRequestEnterSleepMode + ics.icsneoRequestSetNeoVIMiscIO ics.icsneoScriptClear ics.icsneoScriptGetFBlockStatus ics.icsneoScriptGetScriptStatus @@ -313,6 +328,18 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.cmp_global_data.cmp_global_data + :members: + :undoc-members: + + .. autoclass:: ics.structures.cmp_network_data.cmp_network_data + :members: + :undoc-members: + + .. autoclass:: ics.structures.current_ds_.current_ds_ + :members: + :undoc-members: + .. autoclass:: ics.structures.device_feature.device_feature :members: :undoc-members: @@ -321,6 +348,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.e_dev_name_type.e_dev_name_type + :members: + :undoc-members: + .. autoclass:: ics.structures.e_device_settings_type.e_device_settings_type :members: :undoc-members: @@ -341,6 +372,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.e_gptp_profile.e_gptp_profile + :members: + :undoc-members: + .. autoclass:: ics.structures.e_gptp_role.e_gptp_role :members: :undoc-members: @@ -365,10 +400,18 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ethernet10_t1_l_settings.ethernet10_t1_l_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.ethernet10_t1_s_settings.ethernet10_t1_s_settings :members: :undoc-members: + .. autoclass:: ics.structures.ethernet10_t1_s_settings_ext.ethernet10_t1_s_settings_ext + :members: + :undoc-members: + .. autoclass:: ics.structures.ethernet_network_status_t.ethernet_network_status_t :members: :undoc-members: @@ -437,15 +480,7 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.get_component_versions.get_component_versions - :members: - :undoc-members: - - .. autoclass:: ics.structures.get_component_versions_response.get_component_versions_response - :members: - :undoc-members: - - .. autoclass:: ics.structures.get_supported_features_response.get_supported_features_response + .. autoclass:: ics.structures.gigastar2_fw_variants.gigastar2_fw_variants :members: :undoc-members: @@ -457,10 +492,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.hw_eth_settings.hw_eth_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_device_status.ics_device_status :members: :undoc-members: @@ -481,10 +512,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ics_obd2_pro_device_status.ics_obd2_pro_device_status - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_rad_bms_device_status.ics_rad_bms_device_status :members: :undoc-members: @@ -497,14 +524,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ics_rad_moon_duo_device_status.ics_rad_moon_duo_device_status - :members: - :undoc-members: - - .. autoclass:: ics.structures.ics_rad_pluto_device_status.ics_rad_pluto_device_status - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_spy_message_flex_ray.ics_spy_message_flex_ray :members: :undoc-members: @@ -557,6 +576,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.mac_addr_entry.mac_addr_entry + :members: + :undoc-members: + .. autoclass:: ics.structures.mac_sec_flags_t.mac_sec_flags_t :members: :undoc-members: @@ -617,6 +640,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.multi_mac_addr_info.multi_mac_addr_info + :members: + :undoc-members: + .. autoclass:: ics.structures.neo_device.neo_device :members: :undoc-members: @@ -637,23 +664,23 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.port_identity.port_identity + .. autoclass:: ics.structures.parent_ds_.parent_ds_ :members: :undoc-members: - .. autoclass:: ics.structures.priority_vector.priority_vector + .. autoclass:: ics.structures.phy_id.phy_id :members: :undoc-members: - .. autoclass:: ics.structures.rad_moon_duo_converter_settings.rad_moon_duo_converter_settings + .. autoclass:: ics.structures.port_identity.port_identity :members: :undoc-members: - .. autoclass:: ics.structures.rad_reporting_settings.rad_reporting_settings + .. autoclass:: ics.structures.priority_vector.priority_vector :members: :undoc-members: - .. autoclass:: ics.structures.s_cm_probe_settings.s_cm_probe_settings + .. autoclass:: ics.structures.rad_reporting_settings.rad_reporting_settings :members: :undoc-members: @@ -681,14 +708,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_ether_badge_settings.s_ether_badge_settings - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_ext_sub_cmd_hdr.s_ext_sub_cmd_hdr - :members: - :undoc-members: - .. autoclass:: ics.structures.s_extended_data_flash_header.s_extended_data_flash_header :members: :undoc-members: @@ -701,7 +720,7 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_fire_settings.s_fire_settings + .. autoclass:: ics.structures.s_fire3_t1s_lin_settings.s_fire3_t1s_lin_settings :members: :undoc-members: @@ -725,7 +744,7 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_pendant_settings.s_pendant_settings + .. autoclass:: ics.structures.s_neo_vi_connect_settings.s_neo_vi_connect_settings :members: :undoc-members: @@ -753,90 +772,10 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_pluto_avb_params_s.s_pluto_avb_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_clock_sync_params_s.s_pluto_clock_sync_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_custom_params_s.s_pluto_custom_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_general_params_s.s_pluto_general_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_l2_address_lookup_entry_s.s_pluto_l2_address_lookup_entry_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_l2_address_lookup_params_s.s_pluto_l2_address_lookup_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_l2_forwarding_entry_s.s_pluto_l2_forwarding_entry_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_l2_forwarding_params_s.s_pluto_l2_forwarding_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_l2_policing_s.s_pluto_l2_policing_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_mac_config_s.s_pluto_mac_config_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_ptp_params_s.s_pluto_ptp_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_retagging_entry_s.s_pluto_retagging_entry_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_switch_settings_s.s_pluto_switch_settings_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_vl_forwarding_entry_s.s_pluto_vl_forwarding_entry_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_vl_forwarding_params_s.s_pluto_vl_forwarding_params_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_vl_lookup_entry_s.s_pluto_vl_lookup_entry_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_vl_policing_entry_s.s_pluto_vl_policing_entry_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_pluto_vlan_lookup_s.s_pluto_vlan_lookup_s - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_rad_moon_duo_settings.s_rad_moon_duo_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.s_red2_settings.s_red2_settings :members: :undoc-members: - .. autoclass:: ics.structures.s_red_settings.s_red_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.s_spi_port_setting.s_spi_port_setting :members: :undoc-members: @@ -869,23 +808,15 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.scan_hub_settings.scan_hub_settings - :members: - :undoc-members: - - .. autoclass:: ics.structures.scan_sleep_id.scan_sleep_id + .. autoclass:: ics.structures.scaled_ns_.scaled_ns_ :members: :undoc-members: - .. autoclass:: ics.structures.secu_avb_settings.secu_avb_settings - :members: - :undoc-members: - - .. autoclass:: ics.structures.secu_settings.secu_settings + .. autoclass:: ics.structures.scan_hub_settings.scan_hub_settings :members: :undoc-members: - .. autoclass:: ics.structures.seevb_settings.seevb_settings + .. autoclass:: ics.structures.scan_sleep_id.scan_sleep_id :members: :undoc-members: @@ -905,47 +836,43 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.sievb_settings.sievb_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.sobd2_lc_settings.sobd2_lc_settings :members: :undoc-members: - .. autoclass:: ics.structures.sobd2_pro_settings.sobd2_pro_settings + .. autoclass:: ics.structures.spy_filter_long.spy_filter_long :members: :undoc-members: - .. autoclass:: ics.structures.sobd2_sim_settings.sobd2_sim_settings + .. autoclass:: ics.structures.srad_comet3_settings.srad_comet3_settings :members: :undoc-members: - .. autoclass:: ics.structures.software_update_command.software_update_command + .. autoclass:: ics.structures.srad_comet_settings.srad_comet_settings :members: :undoc-members: - .. autoclass:: ics.structures.spy_filter_long.spy_filter_long + .. autoclass:: ics.structures.srad_epsilon_settings.srad_epsilon_settings :members: :undoc-members: - .. autoclass:: ics.structures.srad_comet_settings.srad_comet_settings + .. autoclass:: ics.structures.srad_epsilon_switch_settings.srad_epsilon_switch_settings :members: :undoc-members: - .. autoclass:: ics.structures.srad_epsilon_settings.srad_epsilon_settings + .. autoclass:: ics.structures.srad_galaxy2_settings.srad_galaxy2_settings :members: :undoc-members: - .. autoclass:: ics.structures.srad_epsilon_switch_settings.srad_epsilon_switch_settings + .. autoclass:: ics.structures.srad_galaxy_settings.srad_galaxy_settings :members: :undoc-members: - .. autoclass:: ics.structures.srad_galaxy_settings.srad_galaxy_settings + .. autoclass:: ics.structures.srad_gemini_settings.srad_gemini_settings :members: :undoc-members: - .. autoclass:: ics.structures.srad_gigalog_settings.srad_gigalog_settings + .. autoclass:: ics.structures.srad_gigastar2_settings.srad_gigastar2_settings :members: :undoc-members: @@ -977,7 +904,7 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.srad_pluto_settings.srad_pluto_settings + .. autoclass:: ics.structures.srad_moon_t1_s_settings.srad_moon_t1_s_settings :members: :undoc-members: @@ -985,10 +912,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.srad_super_moon_settings.srad_super_moon_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.srada2_b_settings.srada2_b_settings :members: :undoc-members: @@ -1021,10 +944,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.svcan3_settings.svcan3_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.svcan412_settings.svcan412_settings :members: :undoc-members: @@ -1037,10 +956,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.svcanrf_settings.svcanrf_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.swcan_settings.swcan_settings :members: :undoc-members: @@ -1085,10 +1000,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.version_report.version_report - :members: - :undoc-members: - .. autoclass:: ics.structures.w_bms_manager_reset.w_bms_manager_reset :members: :undoc-members: @@ -1183,7 +1094,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Jun 3 2024 15:08:23 + :annotation: = Jul 7 2026 12:54:38 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1224,8 +1135,41 @@ Module Variables .. py:data:: CAN_SETTINGS_SIZE :annotation: = 12 + .. py:data:: CICSSPYSTATUSBITS_H_ + :annotation: = 1 + + .. py:data:: CMP_STREAMS_A2B + :annotation: = 3 + + .. py:data:: CMP_STREAMS_COMET + :annotation: = 10 + + .. py:data:: CMP_STREAMS_COMET3 + :annotation: = 10 + + .. py:data:: CMP_STREAMS_FIRE3 + :annotation: = 10 + + .. py:data:: CMP_STREAMS_FIRE3FR + :annotation: = 10 + + .. py:data:: CMP_STREAMS_FIRE3T1SLIN + :annotation: = 10 + + .. py:data:: CMP_STREAMS_GALAXY2 + :annotation: = 10 + + .. py:data:: CMP_STREAMS_GIGASTAR + :annotation: = 10 + + .. py:data:: CMP_STREAMS_GIGASTAR2 + :annotation: = 10 + + .. py:data:: CMP_STREAMS_RED2 + :annotation: = 10 + .. py:data:: DEVICECOUNT_FOR_EXPLORER - :annotation: = 46 + :annotation: = 32 .. py:data:: DISABLE :annotation: = 1 @@ -1263,21 +1207,39 @@ Module Variables .. py:data:: EPSILON_88Q6113_SWITCH_A :annotation: = 1 + .. py:data:: EPSILON_88Q6113_SWITCH_AB + :annotation: = 3 + .. py:data:: EPSILON_88Q6113_SWITCH_B :annotation: = 2 .. py:data:: ETHERNET10G_SETTINGS_SIZE :annotation: = 24 + .. py:data:: ETHERNET10T1L_SETTINGS_SIZE + :annotation: = 8 + + .. py:data:: ETHERNET10T1S_SETTINGS_EXT_SIZE + :annotation: = 16 + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_ALL :annotation: = 8 .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_BUS_DECODING_BEACONS :annotation: = 4 + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_DISABLE_ALL_DECODING + :annotation: = 64 + + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_ENABLE_CSMA_FALLBACK + :annotation: = 32 + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA :annotation: = 1 + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA_COL_DET + :annotation: = 16 + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_TERMINATION :annotation: = 2 @@ -1290,33 +1252,72 @@ Module Variables .. py:data:: ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE :annotation: = 2147483648 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_COMPL_MODE + :annotation: = 1024 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED :annotation: = 32 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_CUT_THRU_TAP_ENABLE + :annotation: = 16384 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE :annotation: = 16 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_DISABLE_TAP_TO_HOST + :annotation: = 65536 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX :annotation: = 1 .. py:data:: ETHERNET_SETTINGS10G_FLAG_ICS_SFP :annotation: = 64 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_IP_CONFIG_NOT_ALLOWED + :annotation: = 8192 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_LINK_MODE :annotation: = 128 .. py:data:: ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO :annotation: = 512 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_MACSEC_ENABLE + :annotation: = 131072 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_PHY_MODE :annotation: = 256 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_PKT_CHECK + :annotation: = 2048 + + .. py:data:: ETHERNET_SETTINGS10G_FLAG_PKT_GEN + :annotation: = 4096 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE :annotation: = 8 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_SHOW_TAP_TX_RECEIPT + :annotation: = 262144 + + .. py:data:: ETHERNET_SETTINGS10G_FLAG_SNF_TAP_ENABLE + :annotation: = 32768 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE :annotation: = 4 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_TCP_COMM_STATIC_PORT_ENABLE + :annotation: = 524288 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_CUT_THRU_TAP_ENABLE + :annotation: = 256 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_DISABLE_TAP_TO_HOST + :annotation: = 1024 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_IP_CONFIG_NOT_ALLOWED + :annotation: = 8 + .. py:data:: ETHERNET_SETTINGS2_FLAG2_LINK_MODE :annotation: = 1 @@ -1332,6 +1333,24 @@ Module Variables .. py:data:: ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT :annotation: = 4 + .. py:data:: ETHERNET_SETTINGS2_FLAG2_SHOW_TAP_TX_RECEIPT + :annotation: = 2048 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_SNF_TAP_ENABLE + :annotation: = 512 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_TAP_DEST_MASK + :annotation: = 3 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_TAP_DEST_SHIFT + :annotation: = 13 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_TC10_FWD_TAP_ENABLE + :annotation: = 32768 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_TCP_COMM_STATIC_PORT_ENABLE + :annotation: = 4096 + .. py:data:: ETHERNET_SETTINGS2_FLAG_AUTO_NEG :annotation: = 2 @@ -1420,22 +1439,19 @@ Module Variables :annotation: = 2048 .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY1 - :annotation: = 2 - - .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2 - :annotation: = 4 + :annotation: = 0 .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY2 - :annotation: = 3 + :annotation: = 1 .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0 :annotation: = 0 .. py:data:: FLASH_ACCESSORY_EPSILON_SWITCH_A - :annotation: = 0 + :annotation: = 2 .. py:data:: FLASH_ACCESSORY_EPSILON_SWITCH_B - :annotation: = 1 + :annotation: = 3 .. py:data:: GENERIC_API_DATA_BUFFER_SIZE :annotation: = 513 @@ -1452,11 +1468,17 @@ Module Variables .. py:data:: GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY :annotation: = 1 - .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION + .. py:data:: GIGASTAR2_FW_VARIANT_6T1S_1CAN_16LIN + :annotation: = 0 + + .. py:data:: GIGASTAR2_FW_VARIANT_8T1S_4CAN_6LIN :annotation: = 1 + .. py:data:: GIGASTAR2_FW_VARIANT_COUNT + :annotation: = 2 + .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 1480 + :annotation: = 2406 .. py:data:: GS_VERSION :annotation: = 5 @@ -1494,9 +1516,6 @@ Module Variables .. py:data:: HARDWARE_TIMESTAMP_ID_VSI :annotation: = 1 - .. py:data:: HW_ETH_SETTINGS_SIZE - :annotation: = 20 - .. py:data:: ISO15765_2_NETWORK_HSCAN :annotation: = 1 @@ -1563,6 +1582,9 @@ Module Variables .. py:data:: LOOPBACK :annotation: = 2 + .. py:data:: MACADDR_LEN + :annotation: = 6 + .. py:data:: MACSEC_CIPHER_GCM_AES_128 :annotation: = 0 @@ -1671,34 +1693,28 @@ Module Variables .. py:data:: MAX_PHY_SETTINGS_STRUCT :annotation: = 128 - .. py:data:: MAX_REPORTED_VERSIONS - :annotation: = 16 - .. py:data:: MAX_SERIAL :annotation: = 2176782335 - .. py:data:: MAX_VL_FORWARDING_ENTRIES - :annotation: = 1024 - - .. py:data:: MAX_VL_POLICING_ENTRIES - :annotation: = 1024 - .. py:data:: MIN_BASE36_SERIAL :annotation: = 16796160 + .. py:data:: MULTI_MACADDR_CNT + :annotation: = 32 + .. py:data:: NEODEVICE_ANY_ION :annotation: = 262144 .. py:data:: NEODEVICE_ANY_PLASMA :annotation: = 4096 - .. py:data:: NEODEVICE_BLUE + .. py:data:: NEODEVICE_BLUE_DEPRECATED :annotation: = 1 - .. py:data:: NEODEVICE_CMPROBE + .. py:data:: NEODEVICE_CMPROBE_DEPRECATED :annotation: = 8388608 - .. py:data:: NEODEVICE_CT_OBD + .. py:data:: NEODEVICE_CT_OBD_DEPRECATED :annotation: = 32768 .. py:data:: NEODEVICE_DONT_REUSE0 @@ -1713,34 +1729,34 @@ Module Variables .. py:data:: NEODEVICE_DONT_REUSE3 :annotation: = 1048576 - .. py:data:: NEODEVICE_DW_VCAN - :annotation: = 4 + .. py:data:: NEODEVICE_DONT_REUSE4 + :annotation: = 33554432 - .. py:data:: NEODEVICE_ECU - :annotation: = 128 + .. py:data:: NEODEVICE_DW_VCAN_DEPRECATED + :annotation: = 4 - .. py:data:: NEODEVICE_ECU22 + .. py:data:: NEODEVICE_ECU22_DEPRECATED :annotation: = 27 - .. py:data:: NEODEVICE_ECUCHIP_UART + .. py:data:: NEODEVICE_ECUCHIP_UART_DEPRECATED :annotation: = 2048 - .. py:data:: NEODEVICE_ECU_AVB + .. py:data:: NEODEVICE_ECU_AVB_DEPRECATED :annotation: = 2 - .. py:data:: NEODEVICE_EEVB + .. py:data:: NEODEVICE_ECU_DEPRECATED + :annotation: = 128 + + .. py:data:: NEODEVICE_EEVB_DEPRECATED :annotation: = 16777216 - .. py:data:: NEODEVICE_ETHER_BADGE + .. py:data:: NEODEVICE_ETHER_BADGE_DEPRECATED :annotation: = 22 - .. py:data:: NEODEVICE_FIRE - :annotation: = 8 - .. py:data:: NEODEVICE_FIRE2 :annotation: = 67108864 - .. py:data:: NEODEVICE_FIRE2_REDLINE + .. py:data:: NEODEVICE_FIRE2_REDLINE_DEPRECATED :annotation: = 21 .. py:data:: NEODEVICE_FIRE3 @@ -1749,19 +1765,31 @@ Module Variables .. py:data:: NEODEVICE_FIRE3_FLEXRAY :annotation: = 37 - .. py:data:: NEODEVICE_FLEX + .. py:data:: NEODEVICE_FIRE3_T1S_LIN + :annotation: = 42 + + .. py:data:: NEODEVICE_FIRE3_T1S_SENT + :annotation: = 43 + + .. py:data:: NEODEVICE_FIRE_DEPRECATED + :annotation: = 8 + + .. py:data:: NEODEVICE_FLEX_DEPRECATED :annotation: = 134217728 .. py:data:: NEODEVICE_GIGASTAR :annotation: = 19 - .. py:data:: NEODEVICE_IEVB + .. py:data:: NEODEVICE_GIGASTAR2 + :annotation: = 41 + + .. py:data:: NEODEVICE_IEVB_DEPRECATED :annotation: = 256 .. py:data:: NEODEVICE_ION :annotation: = 262144 - .. py:data:: NEODEVICE_NEOANALOG + .. py:data:: NEODEVICE_NEOANALOG_DEPRECATED :annotation: = 16384 .. py:data:: NEODEVICE_NEOECU12 @@ -1770,31 +1798,25 @@ Module Variables .. py:data:: NEODEVICE_NEOECUCHIP :annotation: = 256 - .. py:data:: NEODEVICE_NEW_DEVICE_27 - :annotation: = 39 - - .. py:data:: NEODEVICE_NEW_DEVICE_58 - :annotation: = 31 - - .. py:data:: NEODEVICE_NEW_DEVICE_59 - :annotation: = 33 + .. py:data:: NEODEVICE_NEOVI_CONNECT + :annotation: = 38 - .. py:data:: NEODEVICE_OBD2_DEV + .. py:data:: NEODEVICE_OBD2_DEV_DEPRECATED :annotation: = 26 .. py:data:: NEODEVICE_OBD2_LC :annotation: = 13 - .. py:data:: NEODEVICE_OBD2_PRO + .. py:data:: NEODEVICE_OBD2_PRO_DEPRECATED :annotation: = 1024 - .. py:data:: NEODEVICE_OBD2_SIM + .. py:data:: NEODEVICE_OBD2_SIM_DEPRECATED :annotation: = 2147483648 - .. py:data:: NEODEVICE_OBD2_SIM_DOIP + .. py:data:: NEODEVICE_OBD2_SIM_DOIP_DEPRECATED :annotation: = 25 - .. py:data:: NEODEVICE_PENDANT + .. py:data:: NEODEVICE_PENDANT_DEPRECATED :annotation: = 512 .. py:data:: NEODEVICE_PLASMA @@ -1803,6 +1825,9 @@ Module Variables .. py:data:: NEODEVICE_RADCOMET :annotation: = 36 + .. py:data:: NEODEVICE_RADCOMET3 + :annotation: = 39 + .. py:data:: NEODEVICE_RADEPSILON :annotation: = 24 @@ -1815,7 +1840,10 @@ Module Variables .. py:data:: NEODEVICE_RADGALAXY :annotation: = 268435456 - .. py:data:: NEODEVICE_RADGIGALOG + .. py:data:: NEODEVICE_RADGEMINI + :annotation: = 44 + + .. py:data:: NEODEVICE_RADGIGALOG_DEPRECATED :annotation: = 6 .. py:data:: NEODEVICE_RADIO_CANHUB @@ -1830,19 +1858,22 @@ Module Variables .. py:data:: NEODEVICE_RADMOON3 :annotation: = 35 - .. py:data:: NEODEVICE_RADPLUTO + .. py:data:: NEODEVICE_RADMOONT1S + :annotation: = 40 + + .. py:data:: NEODEVICE_RADPLUTO_DEPRECATED :annotation: = 9 .. py:data:: NEODEVICE_RADPROXIMA :annotation: = 30 - .. py:data:: NEODEVICE_RADSTAR - :annotation: = 524288 - .. py:data:: NEODEVICE_RADSTAR2 :annotation: = 536870912 - .. py:data:: NEODEVICE_RADSUPERMOON + .. py:data:: NEODEVICE_RADSTAR_DEPRECATED + :annotation: = 524288 + + .. py:data:: NEODEVICE_RADSUPERMOON_DEPRECATED :annotation: = 3 .. py:data:: NEODEVICE_RAD_A2B @@ -1851,22 +1882,22 @@ Module Variables .. py:data:: NEODEVICE_RAD_BMS :annotation: = 34 - .. py:data:: NEODEVICE_RAD_MOON_DUO - :annotation: = 14 + .. py:data:: NEODEVICE_RAD_GALAXY_2 + :annotation: = 33 - .. py:data:: NEODEVICE_RED - :annotation: = 64 + .. py:data:: NEODEVICE_RAD_MOON_DUO_DEPRECATED + :annotation: = 14 .. py:data:: NEODEVICE_RED2 :annotation: = 20 - .. py:data:: NEODEVICE_RED2_OEM - :annotation: = 38 + .. py:data:: NEODEVICE_RED_DEPRECATED + :annotation: = 64 .. py:data:: NEODEVICE_UNKNOWN :annotation: = 0 - .. py:data:: NEODEVICE_VCAN3 + .. py:data:: NEODEVICE_VCAN3_DEPRECATED :annotation: = 16 .. py:data:: NEODEVICE_VCAN41 @@ -1884,9 +1915,6 @@ Module Variables .. py:data:: NEODEVICE_VCAN4_IND :annotation: = 18 - .. py:data:: NEODEVICE_VCANRF - :annotation: = 33554432 - .. py:data:: NEODEVICE_VIVIDCAN :annotation: = 1073741824 @@ -1903,7 +1931,7 @@ Module Variables :annotation: = 0.065536 .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 1480 + :annotation: = 2406 .. py:data:: NEOVI_COMMTYPE_FIRE_USB :annotation: = 5 @@ -2001,6 +2029,54 @@ Module Variables .. py:data:: NETID_A2B_02 :annotation: = 523 + .. py:data:: NETID_AE_01 + :annotation: = 17 + + .. py:data:: NETID_AE_02 + :annotation: = 18 + + .. py:data:: NETID_AE_03 + :annotation: = 19 + + .. py:data:: NETID_AE_04 + :annotation: = 45 + + .. py:data:: NETID_AE_05 + :annotation: = 46 + + .. py:data:: NETID_AE_06 + :annotation: = 73 + + .. py:data:: NETID_AE_07 + :annotation: = 75 + + .. py:data:: NETID_AE_08 + :annotation: = 76 + + .. py:data:: NETID_AE_09 + :annotation: = 77 + + .. py:data:: NETID_AE_10 + :annotation: = 78 + + .. py:data:: NETID_AE_11 + :annotation: = 79 + + .. py:data:: NETID_AE_12 + :annotation: = 87 + + .. py:data:: NETID_AE_13 + :annotation: = 553 + + .. py:data:: NETID_AE_14 + :annotation: = 554 + + .. py:data:: NETID_AE_15 + :annotation: = 555 + + .. py:data:: NETID_AE_16 + :annotation: = 556 + .. py:data:: NETID_AUTOSAR :annotation: = 515 @@ -2022,6 +2098,30 @@ Module Variables .. py:data:: NETID_DEVICE_STATUS :annotation: = 513 + .. py:data:: NETID_DWCAN_01 + :annotation: = 1 + + .. py:data:: NETID_DWCAN_02 + :annotation: = 42 + + .. py:data:: NETID_DWCAN_03 + :annotation: = 44 + + .. py:data:: NETID_DWCAN_04 + :annotation: = 61 + + .. py:data:: NETID_DWCAN_05 + :annotation: = 62 + + .. py:data:: NETID_DWCAN_06 + :annotation: = 96 + + .. py:data:: NETID_DWCAN_07 + :annotation: = 97 + + .. py:data:: NETID_DWCAN_08 + :annotation: = 2 + .. py:data:: NETID_DWCAN_09 :annotation: = 534 @@ -2178,6 +2278,30 @@ Module Variables .. py:data:: NETID_LIN_08 :annotation: = 543 + .. py:data:: NETID_LIN_09 + :annotation: = 563 + + .. py:data:: NETID_LIN_10 + :annotation: = 564 + + .. py:data:: NETID_LIN_11 + :annotation: = 565 + + .. py:data:: NETID_LIN_12 + :annotation: = 566 + + .. py:data:: NETID_LIN_13 + :annotation: = 567 + + .. py:data:: NETID_LIN_14 + :annotation: = 568 + + .. py:data:: NETID_LIN_15 + :annotation: = 569 + + .. py:data:: NETID_LIN_16 + :annotation: = 570 + .. py:data:: NETID_LSFTCAN :annotation: = 4 @@ -2298,6 +2422,24 @@ Module Variables .. py:data:: NETID_SPI2 :annotation: = 544 + .. py:data:: NETID_SPI3 + :annotation: = 557 + + .. py:data:: NETID_SPI4 + :annotation: = 558 + + .. py:data:: NETID_SPI5 + :annotation: = 559 + + .. py:data:: NETID_SPI6 + :annotation: = 560 + + .. py:data:: NETID_SPI7 + :annotation: = 561 + + .. py:data:: NETID_SPI8 + :annotation: = 562 + .. py:data:: NETID_SWCAN :annotation: = 3 @@ -2331,6 +2473,18 @@ Module Variables .. py:data:: NETID_WBMS2 :annotation: = 533 + .. py:data:: NETWORK_TIMESYNC_AUTO + :annotation: = 1 + + .. py:data:: NETWORK_TIMESYNC_GPS_ONLY + :annotation: = 3 + + .. py:data:: NETWORK_TIMESYNC_NTP_ONLY + :annotation: = 2 + + .. py:data:: NETWORK_TIMESYNC_OFF + :annotation: = 0 + .. py:data:: NORMAL :annotation: = 0 @@ -2344,7 +2498,7 @@ Module Variables :annotation: = 1 .. py:data:: NUM_VALID_DEVICE_FEATURES - :annotation: = 17 + :annotation: = 20 .. py:data:: OPETH_FUNC_MEDIACONVERTER :annotation: = 1 @@ -2421,6 +2575,9 @@ Module Variables .. py:data:: PHY_REG_PKT_VERSION :annotation: = 1 + .. py:data:: PHY_UNKNOWN + :annotation: = 255 + .. py:data:: PLASMA_SLAVE1_OFFSET :annotation: = 100 @@ -2439,45 +2596,15 @@ Module Variables .. py:data:: PLASMA_SLAVE_NUM :annotation: = 51 - .. py:data:: PLUTO_MAX_FORWARDING_ENTRIES - :annotation: = 13 - - .. py:data:: PLUTO_MAX_L2_ADDRESS_LOOKUP - :annotation: = 1024 - - .. py:data:: PLUTO_MAX_L2_POLICING - :annotation: = 45 - - .. py:data:: PLUTO_MAX_MAC_CONFIG_ENTRIES - :annotation: = 5 - - .. py:data:: PLUTO_MAX_RETAGGING_ENTRIES - :annotation: = 32 - - .. py:data:: PLUTO_MAX_VLAN_LOOKUP - :annotation: = 4096 - - .. py:data:: PLUTO_NUM_PORTS - :annotation: = 5 - - .. py:data:: PLUTO_NUM_PRIORITY - :annotation: = 8 - - .. py:data:: PROXIMA_NUM_PORTS - :annotation: = 19 - .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 .. py:data:: RADEPSILON_NUM_PORTS - :annotation: = 9 + :annotation: = 18 .. py:data:: RADJUPITER_NUM_PORTS :annotation: = 8 - .. py:data:: RADMOONDUO_CONVERTER_SETTINGS_SIZE - :annotation: = 16 - .. py:data:: RAD_GPTP_AND_TAP_SETTINGS_SIZE :annotation: = 40 @@ -2511,6 +2638,9 @@ Module Variables .. py:data:: RAD_REPORTING_SETTINGS_FLAG_MISC2_PWMIN :annotation: = 128 + .. py:data:: RAD_REPORTING_SETTINGS_FLAG_REPORT_ORIENTATION_ENABLE + :annotation: = 2048 + .. py:data:: RAD_REPORTING_SETTINGS_FLAG_SERDES_ENABLE :annotation: = 512 @@ -2586,9 +2716,6 @@ Module Variables .. py:data:: SCRIPT_LOCATION_SDCARD :annotation: = 1 - .. py:data:: SCRIPT_LOCATION_VCAN3_MEM - :annotation: = 4 - .. py:data:: SCRIPT_STATUS_RUNNING :annotation: = 1 @@ -2943,6 +3070,15 @@ Module Variables .. py:data:: SFP_ID_FS_GB_GE_T :annotation: = 2 + .. py:data:: SFP_ID_ICS_AD1101 + :annotation: = 8 + + .. py:data:: SFP_ID_ICS_EN11100 + :annotation: = 7 + + .. py:data:: SFP_ID_ICS_MC8670 + :annotation: = 6 + .. py:data:: SFP_ID_ICS_MV2112A2 :annotation: = 3 @@ -2953,7 +3089,7 @@ Module Variables :annotation: = 5 .. py:data:: SFP_ID_MAX - :annotation: = 6 + :annotation: = 9 .. py:data:: SFP_ID_UNKNOWN :annotation: = 0 @@ -3117,6 +3253,9 @@ Module Variables .. py:data:: SPY_STATUS2_ETHERNET_CRC_ERROR :annotation: = 2097152 + .. py:data:: SPY_STATUS2_ETHERNET_FCS_AVAILABLE + :annotation: = 8388608 + .. py:data:: SPY_STATUS2_ETHERNET_FCS_VERIFIED :annotation: = 268435456 @@ -3189,6 +3328,9 @@ Module Variables .. py:data:: SPY_STATUS2_ISO_PARITY_ERROR :annotation: = 536870912 + .. py:data:: SPY_STATUS2_ISO_RX_TIMEOUT_ERROR + :annotation: = 1073741824 + .. py:data:: SPY_STATUS2_LIN_ERR_MSG_ID_PARITY :annotation: = 67108864 @@ -3213,6 +3355,9 @@ Module Variables .. py:data:: SPY_STATUS2_LIN_NO_SLAVE_DATA :annotation: = 2147483648 + .. py:data:: SPY_STATUS2_LIN_RX_TIMEOUT_ERROR + :annotation: = 1073741824 + .. py:data:: SPY_STATUS2_LIN_SLAVE_BYTE_ERROR :annotation: = 536870912 @@ -3279,6 +3424,9 @@ Module Variables .. py:data:: SPY_STATUS2_MOST_PACKET_DATA :annotation: = 2097152 + .. py:data:: SPY_STATUS2_MOST_STATUS + :annotation: = 4194304 + .. py:data:: SPY_STATUS2_MOST_TOO_SHORT :annotation: = 268435456 @@ -3306,6 +3454,63 @@ Module Variables .. py:data:: SPY_STATUS3_CANFD_RTR :annotation: = 4 + .. py:data:: SPY_STATUS3_CAN_BUS_OFF + :annotation: = 2 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_ACK_ERROR + :annotation: = 1024 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_BIT0_ERROR + :annotation: = 4096 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_BIT1_ERROR + :annotation: = 2048 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_CRC_ERROR + :annotation: = 8192 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_FORM_ERROR + :annotation: = 512 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_NOCHANGE + :annotation: = 16384 + + .. py:data:: SPY_STATUS3_CAN_DATAERR_STUFF_ERROR + :annotation: = 256 + + .. py:data:: SPY_STATUS3_CAN_ERR_PASSIVE + :annotation: = 1 + + .. py:data:: SPY_STATUS3_CAN_ERR_WARNING + :annotation: = 4 + + .. py:data:: SPY_STATUS3_CAN_GENERR_ACK_ERROR + :annotation: = 262144 + + .. py:data:: SPY_STATUS3_CAN_GENERR_BIT0_ERROR + :annotation: = 1048576 + + .. py:data:: SPY_STATUS3_CAN_GENERR_BIT1_ERROR + :annotation: = 524288 + + .. py:data:: SPY_STATUS3_CAN_GENERR_CRC_ERROR + :annotation: = 2097152 + + .. py:data:: SPY_STATUS3_CAN_GENERR_FORM_ERROR + :annotation: = 131072 + + .. py:data:: SPY_STATUS3_CAN_GENERR_NOCHANGE + :annotation: = 4194304 + + .. py:data:: SPY_STATUS3_CAN_GENERR_STUFF_ERROR + :annotation: = 65536 + + .. py:data:: SPY_STATUS3_ETHERNET_T1S_WAKE + :annotation: = 2 + + .. py:data:: SPY_STATUS3_ETHERNET_TX_COLLISION + :annotation: = 1 + .. py:data:: SPY_STATUS3_LIN_JUST_BREAK_SYNC :annotation: = 1 @@ -3315,6 +3520,12 @@ Module Variables .. py:data:: SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT :annotation: = 2 + .. py:data:: SPY_STATUS4_ETH_CRC_ERROR + :annotation: = 1 + + .. py:data:: SPY_STATUS4_ETH_FRAME_TOO_LONG + :annotation: = 2 + .. py:data:: SPY_STATUS_A2B_CONTROL :annotation: = 268435456 @@ -3465,6 +3676,9 @@ Module Variables .. py:data:: TIMESYNC_ICSHARDWARE_SETTINGS_SIZE :annotation: = 4 + .. py:data:: UART_DATA_BUFFER_SIZE + :annotation: = 256 + .. py:data:: UART_SETTINGS_SIZE :annotation: = 16 diff --git a/docs/superpowers/plans/2026-07-07-header-3.26.3.9-epoch-versioning.md b/docs/superpowers/plans/2026-07-07-header-3.26.3.9-epoch-versioning.md new file mode 100644 index 000000000..f918c5269 --- /dev/null +++ b/docs/superpowers/plans/2026-07-07-header-3.26.3.9-epoch-versioning.md @@ -0,0 +1,426 @@ +# icsnVC40.h 3.26.3.9 Update + Epoch Versioning Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Update python_ics to the Vehicle Spy 3.26.3.9 headers and adopt PEP 440 epoch versioning (`1!26.3.9`) so pip orders new releases above the old 923.x scheme. + +**Architecture:** Headers are copied verbatim from `C:\dev\vspy3\Core\Hardware\`; all Python-visible constants and ctypes structs regenerate automatically during the build (setup.py runs `generate_icsneo40_structs.generate_all_files()` on import and `extract_icsneo40_defines.extract()` in build_py). Versions come from git tags via dunamai, which already parses epoch tags — the versioning change is a tagging convention plus documentation, zero code. + +**Tech Stack:** CPython 3.14.5 venv at `.venv`, uv, setuptools, clang/clang-format (required on PATH), pytest, MSVC. + +## Global Constraints + +- Branch: `feature/header-3.26.3.9` (already exists, based on master at d6e0abf which includes the PR #233 generator fixes). +- Build command: `uv pip install -e . --reinstall` from `C:\dev\python_ics`. If it fails with `could not delete 'gen\ics\ics.cp314-win_amd64.pyd': Access is denied`, delete that file first and retry (known transient lock). +- Test command: `.venv/Scripts/python -m pytest tests/ -v` — all tests must pass before every commit. +- Version scheme: PEP 440 epoch `1!26.3.9`; release tags are `v1!`. Never tag a bare `v26.x` — it sorts below 923.11. +- Tracked generated files that WILL change and MUST be committed with the header update: `src/setup_module_auto_defines.cpp`, `cicsSpyStatusBits_processed.h`. Untracked build artifacts that will also change (do NOT commit): `icsnVC40_processed.h`, `icsnVC40.h.json`, `icsnVC40.h.enums.json`, everything under `gen/`. +- Known-stale upstream macro (still wrong in 3.26.3.9, verified): `RAD_GPTP_AND_TAP_SETTINGS_SIZE` is 40 but the real struct is 56 bytes. It stays allowlisted in the size test; flag to the header owners separately. +- Scope exclusion: no new 3.26 DLL API bindings; header, regen, versioning, docs only. + +--- + +### Task 1: Struct-size regression test (baseline against current headers) + +**Files:** +- Test: `tests/test_struct_sizes.py` (create) + +**Interfaces:** +- Consumes: `ics` module `*_SIZE` constants (89 of them, e.g. `ics.SFire3Settings_SIZE == 1722`) and `ics.structures.*` generated ctypes classes. +- Produces: `tests/test_struct_sizes.py::test_generated_struct_sizes_match_header_macros` — Task 2 relies on this test staying green after regeneration. + +- [ ] **Step 1: Write the test** + +```python +"""Validate generated ctypes struct sizes against the header's *_SIZE macros. + +Every `#define _SIZE (N)` in icsnVC40.h is exported as a module +constant; the matching generated ctypes struct must have the same +ctypes.sizeof. Catches header/generator layout drift on header updates. +""" +import ctypes +import importlib +import inspect +import pkgutil + +import pytest +import ics +import ics.structures + +# Upstream header bugs: macro value disagrees with the actual struct. +# Keep entries here only with a comment explaining the discrepancy. +KNOWN_STALE_MACROS = { + # Upstream never updated the macro after the struct grew to 56 bytes + # (still 40 in vspy 3.26.3.9). Reported to header owners. + "RAD_GPTP_AND_TAP_SETTINGS_SIZE", +} + +# Macros whose name doesn't map to a generated struct class (nested/typedef +# variants). Count is asserted so silent growth gets investigated. +EXPECTED_UNMATCHED = 11 + + +def _struct_registry(): + registry = {} + for info in pkgutil.iter_modules(ics.structures.__path__): + mod = importlib.import_module(f"ics.structures.{info.name}") + for name, obj in inspect.getmembers(mod, inspect.isclass): + if ( + issubclass(obj, (ctypes.Structure, ctypes.Union)) + and obj.__module__ == mod.__name__ + ): + registry["".join(c for c in name.lower() if c.isalnum())] = obj + return registry + + +def test_generated_struct_sizes_match_header_macros(): + registry = _struct_registry() + mismatches = [] + unmatched = [] + matched = 0 + for macro in (n for n in dir(ics) if n.endswith("_SIZE")): + key = "".join(c for c in macro[:-5].lower() if c.isalnum()) + cls = registry.get(key) + if cls is None: + unmatched.append(macro) + continue + expected = getattr(ics, macro) + actual = ctypes.sizeof(cls) + if actual == expected: + matched += 1 + elif macro not in KNOWN_STALE_MACROS: + mismatches.append(f"{macro}: header says {expected}, ctypes says {actual}") + assert not mismatches, "\n".join(mismatches) + assert matched >= 77, f"only {matched} macros matched a struct; mapping regressed" + assert len(unmatched) <= EXPECTED_UNMATCHED, f"unmatched grew: {sorted(unmatched)}" +``` + +- [ ] **Step 2: Run the test, verify it passes against the current build** + +Run: `.venv/Scripts/python -m pytest tests/test_struct_sizes.py -v` +Expected: PASS (77+ matched, only the allowlisted macro mismatching, ≤11 unmatched). +If it fails, the current build is stale — rebuild (`uv pip install -e . --reinstall`) and rerun before proceeding. + +- [ ] **Step 3: Commit** + +```bash +git add tests/test_struct_sizes.py +git commit -m "Add struct-size regression test against header _SIZE macros + +Co-Authored-By: Claude Fable 5 " +``` + +--- + +### Task 2: Import 3.26.3.9 headers, fix renames, regenerate + +**Files:** +- Modify: `include/ics/icsnVC40.h` (replace, from `C:\dev\vspy3\Core\Hardware\icsnVC40.h`) +- Modify: `include/ics/cicsSpyStatusBits.h` (replace, from `C:\dev\vspy3\Core\Hardware\cicsSpyStatusBits.h`) +- Delete: `include/ics/icsnVC40.h.patch` +- Modify: `src/methods.cpp:675-741` (9 renamed `case NEODEVICE_*:` labels) +- Modify (regenerated by build, commit results): `src/setup_module_auto_defines.cpp`, `cicsSpyStatusBits_processed.h` +- Test: `tests/test_header_3_26.py` (create) + +**Interfaces:** +- Consumes: `tests/test_struct_sizes.py::test_generated_struct_sizes_match_header_macros` from Task 1. +- Produces: an `ics` module built from the 3.26.3.9 header — Tasks 3 and 4 build and verify against it. New constants of note: `NEODEVICE_BLUE_DEPRECATED` (0x1), `SRADGalaxy2Settings_SIZE == 1204`; removed names: `NEODEVICE_BLUE`, `NEODEVICE_FIRE`, `SRedSettings`/`SFireSettings` structs. + +- [ ] **Step 1: Write the failing header-version test** + +```python +"""Pins that the module is generated from the vspy 3.26.3.9 header.""" +import pytest +import ics + + +def test_deprecated_device_constants_renamed(): + # 3.26.3.9 renamed the legacy device defines; old names must be gone. + assert ics.NEODEVICE_BLUE_DEPRECATED == 0x00000001 + assert ics.NEODEVICE_FIRE_DEPRECATED == 0x00000008 + assert ics.NEODEVICE_VCAN3_DEPRECATED == 0x00000010 + assert not hasattr(ics, "NEODEVICE_BLUE") + assert not hasattr(ics, "NEODEVICE_FIRE") + assert not hasattr(ics, "NEODEVICE_VCAN3") + + +def test_grown_settings_structs(): + # Struct growth pinned from the 3.26.3.9 header's _SIZE macros. + assert ics.SRADGalaxy2Settings_SIZE == 1204 + assert ics.SRADComet3Settings_SIZE == 918 + assert ics.SRADGigastar2Settings_SIZE == 2400 + + +def test_legacy_settings_structs_removed(): + import ics.structures + with pytest.raises(ImportError): + from ics.structures import s_red_settings # noqa: F401 + + +if __name__ == "__main__": + pytest.main(args=[__file__, "--verbose", "-s"]) +``` + +Note: if the legacy struct module is named differently (check `gen/ics/structures/` for `s_red_settings.py` before the header swap), adjust the import in `test_legacy_settings_structs_removed` to the actual module name that exists pre-update. + +- [ ] **Step 2: Run it, verify it fails on the current build** + +Run: `.venv/Scripts/python -m pytest tests/test_header_3_26.py -v` +Expected: FAIL — `AttributeError: module 'ics' has no attribute 'NEODEVICE_BLUE_DEPRECATED'`. + +- [ ] **Step 3: Copy the new headers and drop the patch** + +```bash +cp C:/dev/vspy3/Core/Hardware/icsnVC40.h include/ics/icsnVC40.h +cp C:/dev/vspy3/Core/Hardware/cicsSpyStatusBits.h include/ics/cicsSpyStatusBits.h +git rm include/ics/icsnVC40.h.patch +``` + +Then sanity-review: `git diff --stat include/ics/` and skim `git diff include/ics/icsnVC40.h` for anything beyond the expected changes (deprecated renames, removed legacy settings structs, new RADComet3/RADGigastar2/CMP structures, `pack(4)` now around only the `icsDeviceStatus` union, grown structs). + +- [ ] **Step 4: Rename the 9 deprecated case labels in src/methods.cpp** + +In the legacy device-name fallback switch (only reached when `icsneoGetDeviceName` is unavailable in the DLL), apply exactly these renames — line numbers from the current file: + +| Line | Old | New | +|---|---|---| +| 675 | `case NEODEVICE_BLUE:` | `case NEODEVICE_BLUE_DEPRECATED:` | +| 677 | `case NEODEVICE_DW_VCAN:` | `case NEODEVICE_DW_VCAN_DEPRECATED:` | +| 683 | `case NEODEVICE_FIRE:` | `case NEODEVICE_FIRE_DEPRECATED:` | +| 693 | `case NEODEVICE_VCAN3:` | `case NEODEVICE_VCAN3_DEPRECATED:` | +| 731 | `case NEODEVICE_RED:` | `case NEODEVICE_RED_DEPRECATED:` | +| 733 | `case NEODEVICE_ECU:` | `case NEODEVICE_ECU_DEPRECATED:` | +| 735 | `case NEODEVICE_PENDANT:` | `case NEODEVICE_PENDANT_DEPRECATED:` | +| 739 | `case NEODEVICE_NEOANALOG:` | `case NEODEVICE_NEOANALOG_DEPRECATED:` | +| 741 | `case NEODEVICE_CT_OBD:` | `case NEODEVICE_CT_OBD_DEPRECATED:` | + +(`NEODEVICE_RED2` at line 703 is NOT renamed — only the nine above.) The returned display strings stay unchanged. + +- [ ] **Step 5: Rebuild (this regenerates all constants and structs)** + +Run: `uv pip install -e . --reinstall` +Expected: success. If the compiler flags any other renamed/removed identifier in `src/*.cpp`, fix it the same way (use the new header's name) and rerun. If the clang preprocess step in `extract_icsneo40_defines.extract()` errors on a new header construct, stop and investigate — do not hand-edit generated files. + +- [ ] **Step 6: Run the new test and the full suite** + +Run: `.venv/Scripts/python -m pytest tests/ -v` +Expected: ALL pass, including `test_header_3_26.py` (now green) and `test_struct_sizes.py` (any new mismatch beyond the allowlisted macro means a generator/layout bug — investigate before proceeding, do not extend the allowlist without a root cause). + +- [ ] **Step 7: Commit** + +```bash +git add include/ics/icsnVC40.h include/ics/cicsSpyStatusBits.h src/methods.cpp \ + src/setup_module_auto_defines.cpp cicsSpyStatusBits_processed.h \ + tests/test_header_3_26.py +git rm --cached include/ics/icsnVC40.h.patch 2>/dev/null || true +git commit -m "Update headers to Vehicle Spy 3.26.3.9 + +- icsnVC40.h / cicsSpyStatusBits.h copied verbatim from vspy3 Core/Hardware +- drop local icsnVC40.h.patch: upstream now carries its own pack(4) + around icsDeviceStatus, matching what the 3.26.3.9 DLL was built against +- legacy device constants renamed *_DEPRECATED upstream; legacy settings + structs removed (breaking; signaled by the 1!26.3.9 epoch release) +- regenerate module defines and processed headers + +Co-Authored-By: Claude Fable 5 " +``` + +--- + +### Task 3: Epoch versioning — README, release doc, dry run + +**Files:** +- Modify: `README.md` (add a Versioning section after the install instructions) +- No code changes (dunamai already parses `v1!26.3.9` → `1!26.3.9`; verified). + +**Interfaces:** +- Consumes: the built module from Task 2. +- Produces: documented tagging convention; a locally verified wheel proving pip resolves `1!26.3.9` over `923.11`. + +- [ ] **Step 1: Add the Versioning section to README.md** + +```markdown +## Versioning + +Starting with **1!26.3.9**, python_ics versions track the Vehicle Spy +version they were generated from (Vspy 3.26.3.9 → python_ics 26.3.9). + +The `1!` prefix is a [PEP 440 epoch](https://peps.python.org/pep-0440/#version-epochs). +Earlier releases used the icsneo40 DLL version (e.g. 923.11), which sorts +*above* 26.x, so the epoch tells pip the scheme changed: + +- `pip install python_ics` and `pip install -U python_ics` correctly + resolve `1!26.3.9` as newer than `923.11`. +- Exact pins must include the epoch: `python_ics==1!26.3.9`. +- Range pins work with or without it: `python_ics>=1!26.3` . + +**Release tagging:** tags are `v1!` (e.g. `v1!26.3.9`). Every +future tag keeps the `1!` prefix — a bare `v26.x` tag would sort below +the historical 923.x releases and pip would ignore it. +``` + +- [ ] **Step 2: Dry-run the epoch version end to end with a local tag** + +```bash +git tag -a "v1!26.3.9" -m "dry run" # local only, deleted below +.venv/Scripts/python -c "import dunamai; print(dunamai.Version.from_git().serialize(metadata=False))" +``` + +Expected output: `1!26.3.9`. + +```bash +uv build +ls dist/ +``` + +Expected: an sdist and wheel whose METADATA says `Version: 1!26.3.9` (verify: `unzip -p dist/*.whl */METADATA | grep ^Version`). The `!` may be encoded in the filename — the METADATA field is what matters. + +- [ ] **Step 3: Prove pip resolves the epoch version above 923.11** + +```bash +mkdir -p /tmp/links && cp dist/*.whl /tmp/links/ +.venv/Scripts/python -m pip download python_ics==923.11 --no-deps -d /tmp/links +.venv/Scripts/python -m pip install --dry-run --no-index --find-links /tmp/links -U python_ics +``` + +Expected: the dry-run resolves `python_ics 1!26.3.9` (not 923.11). + +- [ ] **Step 4: Clean up the dry-run tag and artifacts** + +```bash +git tag -d "v1!26.3.9" +rm -rf dist/ /tmp/links +``` + +The real `v1!26.3.9` tag is applied to the merge commit at release time, and the release workflow publishes from that tag. + +- [ ] **Step 5: Run full suite, commit** + +Run: `.venv/Scripts/python -m pytest tests/ -v` — all pass. + +```bash +git add README.md +git commit -m "Document 1!26.3.9 epoch versioning and tagging convention + +Co-Authored-By: Claude Fable 5 " +``` + +--- + +### Task 4: FIRE3 hardware verification + +**Files:** +- Create (scratchpad, not committed): `/verify_326_fire3.py` + +**Interfaces:** +- Consumes: the built module from Task 2; the FIRE3 on the bench (serial ON0569). +- Produces: verification results for the PR description (Task 5). No repo changes. + +- [ ] **Step 1: Write and run the verification script** + +```python +"""3.26.3.9 header hardware verification against the bench FIRE3.""" +import time + +import ics + +print("DLL/API info:") +try: + print(" dll version:", ics.get_dll_version()) +except Exception as ex: + print(" get_dll_version unavailable:", ex) + +devs = ics.find_devices([ics.NEODEVICE_FIRE3]) +assert devs, "No FIRE3 found" +dev = devs[0] +print("device:", dev, "serial:", dev.serial_number) + +ics.open_device(dev) +try: + print("get_serial_number:", ics.get_serial_number(dev)) + + # get_device_status failed with the old (patched) header; the matched + # 3.26.3.9 layout may fix it. Either outcome is recorded, not asserted. + try: + status = ics.get_device_status(dev) + print("get_device_status: OK,", type(status).__name__) + except Exception as ex: + print("get_device_status still failing:", ex) + + settings = ics.get_device_settings(dev) + f3 = settings.Settings.fire3 + orig_ne, orig_ne2 = f3.network_enables, f3.network_enables_2 + f3.network_enables = 0xFFFFFFFFFFFFFFFF + f3.network_enables_2 = 0xFFFFFFFFFFFFFFFF + ics.set_device_settings(dev, settings, 0) # RAM only, restored below + try: + netid = ics.NETID_ETHERNET2 + time.sleep(3) + ics.get_messages(dev) # flush + + msg = ics.SpyMessage() + msg.NetworkID = netid & 0xFF + msg.NetworkID2 = (netid >> 8) & 0xFF + msg.Protocol = ics.SPY_PROTOCOL_ETHERNET + payload = [0xFF] * 6 + [0x00, 0xFC, 0x70, 0x11, 0x22, 0x33, 0x08, 0x06] + list(range(50)) + msg.ExtraDataPtr = tuple(payload) + ics.transmit_messages(dev, msg) + time.sleep(1.0) + + msgs, errors = ics.get_messages(dev) + tx_ok = any( + (m.NetworkID | (m.NetworkID2 << 8)) == netid + and m.StatusBitField & ics.SPY_STATUS_TX_MSG + and tuple(m.ExtraDataPtr or ()) == tuple(payload) + for m in msgs + ) + print(f"{len(msgs)} messages, {errors} errors; ethernet tx roundtrip ok: {tx_ok}") + assert tx_ok, "no byte-exact TX report on NETID_ETHERNET2" + finally: + f3.network_enables, f3.network_enables_2 = orig_ne, orig_ne2 + ics.set_device_settings(dev, settings, 0) + print("settings restored (RAM only)") +finally: + ics.close_device(dev) +print("PASS") +``` + +Run: `.venv/Scripts/python /verify_326_fire3.py` +Expected: `PASS`, with the Ethernet tx roundtrip byte-exact. Record the `get_device_status` outcome either way. If `ics.get_dll_version` reports a driver older than 3.26.3.9, note that `get_device_status` verification is inconclusive rather than blocking. + +- [ ] **Step 2: Record results** + +Save the script output — it goes verbatim into the PR description in Task 5. No commit. + +--- + +### Task 5: Push and open the PR + +**Files:** none (git operations only). + +**Interfaces:** +- Consumes: all prior commits on `feature/header-3.26.3.9`; hardware results from Task 4. + +- [ ] **Step 1: Final full-suite run** + +Run: `.venv/Scripts/python -m pytest tests/ -v` +Expected: all tests pass. + +- [ ] **Step 2: Push and create the PR** + +```bash +git push -u origin feature/header-3.26.3.9 +gh pr create --title "Update headers to Vehicle Spy 3.26.3.9; adopt 1!26.3.9 epoch versioning" --body "" +``` + +PR body must include: summary of the header changes (deprecated renames, removed legacy structs, new/grown structs, patch drop rationale), the versioning migration explanation (epoch, tagging convention, pip resolution proof from Task 3 step 3), the Task 4 hardware verification output, and the breaking-change callout. End the body with: + +``` +🤖 Generated with [Claude Code](https://claude.com/claude-code) +``` + +- [ ] **Step 3: Post-merge release checklist (for the maintainer, in PR body)** + +- Merge the PR. +- Tag the merge commit: `git tag -a "v1!26.3.9" -m "Vehicle Spy 3.26.3.9" && git push origin "v1!26.3.9"`. +- Publish; verify PyPI shows `1!26.3.9` as latest. diff --git a/docs/superpowers/specs/2026-07-07-header-update-epoch-versioning-design.md b/docs/superpowers/specs/2026-07-07-header-update-epoch-versioning-design.md new file mode 100644 index 000000000..3240ddd4f --- /dev/null +++ b/docs/superpowers/specs/2026-07-07-header-update-epoch-versioning-design.md @@ -0,0 +1,92 @@ +# Design: icsnVC40.h 3.26.3.9 update + PEP 440 epoch versioning + +Date: 2026-07-07 +Status: approved + +## Problem + +1. python_ics headers are at the v923-era icsnVC40.h; Vehicle Spy 3.26.3.9 + (`C:\dev\vspy3\Core\Hardware\`) ships a newer header with renamed + deprecated devices, removed legacy settings structs, and new/grown + structures. +2. The project's versioning scheme changed from `923.11` (icsneo40 DLL + era) to `26.3.9` (Vspy-aligned). PEP 440 orders `923.11 > 26.3.9`, so a + plain `26.3.9` upload would never be selected by pip: fresh installs + would keep resolving 923.11 and existing users would never see + upgrades. Nothing 26.x has been published to PyPI (verified 2026-07-07; + latest is 923.11), so the fix can land before anything breaks. + +## Decisions (made with maintainer) + +- **Version scheme:** PEP 440 epoch — release as `1!26.3.9`. +- **Legacy names:** mirror the new header as-is; no Python-side compat + aliases for `NEODEVICE_BLUE`/`_FIRE`/`_VCAN3`/... (now `*_DEPRECATED`) + or the deleted `SRedSettings`/`SFireSettings`/... structs. The epoch + bump is the breaking-change signal; legacy-device users stay on 923.11. +- **Local header patch:** drop `include/ics/icsnVC40.h.patch`. Upstream + 3.26.3.9 carries its own `pack(4)` (around the `icsDeviceStatus` union + only). Matching the exact header the 3.26.3.9 icsneo40.dll was built + against is the ABI-safe choice. + +## 1. Versioning migration + +Versions come from git tags via dunamai (`ics_utility.get_pkg_version`). +dunamai's default tag pattern already parses epochs (verified: +`v1!26.3.9` → `1!26.3.9`), so no version-machinery code changes. + +- Tag releases `v1!`: first one is `v1!26.3.9`. +- Dry-run before tagging: build sdist+wheel locally, confirm wheel + filename and METADATA carry `1!26.3.9`, and confirm pip resolves the + local wheel as an upgrade over an installed 923.11. +- README: short section explaining the epoch — why `1!` exists, that + `pip install -U python_ics` moves 923.11 users to `1!26.3.9`, and that + exact pins must be `==1!26.3.9`. +- Release-process note: all future tags keep the `1!` prefix + (`v1!26.4.0`, ...). A bare `v26.4.0` tag would silently sort below + 923.11 again. +- No PyPI yanking required. + +## 2. Header import + +- Copy `C:\dev\vspy3\Core\Hardware\icsnVC40.h` and `cicsSpyStatusBits.h` + verbatim into `include/ics/`. +- Delete `include/ics/icsnVC40.h.patch`. +- Sanity-diff old vs new header; expected changes: deprecated renames, + legacy settings structs removed, RADComet3 / RADGigastar2 / CMP + structures added, grown structs (SRADGalaxy2Settings 960→1204, + SRADComet3Settings 918, SRADGigastar2Settings 2400). +- Verify `descIdType` is still `int16_t` (generator carries a hand-coded + override in generate_icsneo40_structs.py). + +## 3. Regeneration and build + +- Work off `master` (PR #233 is merged as d6e0abf) — its generator fixes + (unsigned 32-bit enum handling, descIdType) are prerequisites for a + clean regen. +- Rerun extract_icsneo40_defines.py / generate_icsneo40_structs.py + pipeline; regenerate setup_module_auto_defines.cpp and ctypes structs. +- Rebuild the extension; fix any C++ references to renamed NEODEVICE_* + constants surfaced by the compiler. +- Validate generated ctypes struct sizes against the header's `*_SIZE` + macros (same method as the June 2026 audit), with attention to the + grown/new structs. +- Out of scope: binding any new 3.26 DLL APIs. Header, regen, and + versioning only. + +## 4. Testing and hardware verification + +- Full pytest suite passes (26 tests; test_defines constants still exist + under the new header). +- FIRE3 bench: find/open, Ethernet tx/rx roundtrip (procedure from the + PR #233 verification), and get_device_status() — currently failing, + may be fixed by the matched header layout. Check the installed + icsneo40.dll version first; if older than 3.26.3.9, note the + limitation instead of blocking. + +## Risks + +- Extractor's clang preprocess step may trip on new header constructs — + caught at regen time. +- Bench DLL older than 3.26.3.9 leaves get_device_status unverified. +- Removed legacy names break old scripts by design; communicated via the + epoch bump and README note. diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 593503312..99fe25d43 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -65,7 +65,9 @@ typedef unsigned __int64 uint64_t; /* Network IDs -- value of NetworkID member of icsSpyMessage */ #define NETID_DEVICE 0 #define NETID_HSCAN 1 +#define NETID_DWCAN_01 (NETID_HSCAN) #define NETID_MSCAN 2 +#define NETID_DWCAN_08 (NETID_MSCAN) #define NETID_SWCAN 3 #define NETID_LSFTCAN 4 #define NETID_FORDSCP 5 @@ -81,13 +83,20 @@ typedef unsigned __int64 uint64_t; #define NETID_ISO14230 15 #define NETID_LIN 16 #define NETID_OP_ETHERNET1 17 +#define NETID_AE_01 (NETID_OP_ETHERNET1) #define NETID_OP_ETHERNET2 18 +#define NETID_AE_02 (NETID_OP_ETHERNET2) #define NETID_OP_ETHERNET3 19 +#define NETID_AE_03 (NETID_OP_ETHERNET3) #define NETID_ISO3 41 #define NETID_HSCAN2 42 +#define NETID_DWCAN_02 (NETID_HSCAN2) #define NETID_HSCAN3 44 +#define NETID_DWCAN_03 (NETID_HSCAN3) #define NETID_OP_ETHERNET4 45 +#define NETID_AE_04 (NETID_OP_ETHERNET4) #define NETID_OP_ETHERNET5 46 +#define NETID_AE_05 (NETID_OP_ETHERNET5) #define NETID_ISO4 47 #define NETID_LIN2 48 #define NETID_LIN3 49 @@ -103,7 +112,9 @@ typedef unsigned __int64 uint64_t; #define NETID_3G_LOGGING_OVERFLOW 59 #define NETID_3G_READ_SETTINGS_EX 60 #define NETID_HSCAN4 61 +#define NETID_DWCAN_04 (NETID_HSCAN4) #define NETID_HSCAN5 62 +#define NETID_DWCAN_05 (NETID_HSCAN5) #define NETID_RS232 63 #define NETID_UART 64 #define NETID_UART2 65 @@ -115,12 +126,18 @@ typedef unsigned __int64 uint64_t; #define NETID_TEXTAPI_TO_HOST 71 #define NETID_SPI1 72 #define NETID_OP_ETHERNET6 73 +#define NETID_AE_06 (NETID_OP_ETHERNET6) #define NETID_RED_VBAT 74 #define NETID_OP_ETHERNET7 75 +#define NETID_AE_07 (NETID_OP_ETHERNET7) #define NETID_OP_ETHERNET8 76 +#define NETID_AE_08 (NETID_OP_ETHERNET8) #define NETID_OP_ETHERNET9 77 +#define NETID_AE_09 (NETID_OP_ETHERNET9) #define NETID_OP_ETHERNET10 78 +#define NETID_AE_10 (NETID_OP_ETHERNET10) #define NETID_OP_ETHERNET11 79 +#define NETID_AE_11 (NETID_OP_ETHERNET11) #define NETID_FLEXRAY1A 80 #define NETID_FLEXRAY1B 81 #define NETID_FLEXRAY2A 82 @@ -129,6 +146,7 @@ typedef unsigned __int64 uint64_t; #define NETID_FLEXRAY 85 #define NETID_FLEXRAY2 86 #define NETID_OP_ETHERNET12 87 +#define NETID_AE_12 (NETID_OP_ETHERNET12) #define NETID_I2C1 88 #define NETID_MOST25 90 #define NETID_MOST50 91 @@ -137,7 +155,9 @@ typedef unsigned __int64 uint64_t; #define NETID_GMFSA 94 #define NETID_TCP 95 #define NETID_HSCAN6 96 +#define NETID_DWCAN_06 (NETID_HSCAN6) #define NETID_HSCAN7 97 +#define NETID_DWCAN_07 (NETID_HSCAN7) #define NETID_LIN6 98 #define NETID_LSFTCAN2 99 /** @@ -181,9 +201,13 @@ typedef unsigned __int64 uint64_t; #define NETID_MDIO_07 551 #define NETID_MDIO_08 552 #define NETID_OP_ETHERNET13 553 +#define NETID_AE_13 (NETID_OP_ETHERNET13) #define NETID_OP_ETHERNET14 554 +#define NETID_AE_14 (NETID_OP_ETHERNET14) #define NETID_OP_ETHERNET15 555 +#define NETID_AE_15 (NETID_OP_ETHERNET15) #define NETID_OP_ETHERNET16 556 +#define NETID_AE_16 (NETID_OP_ETHERNET16) #define NETID_SPI3 557 #define NETID_SPI4 558 #define NETID_SPI5 559 @@ -210,14 +234,14 @@ typedef unsigned __int64 uint64_t; */ //clang-format off #define NEODEVICE_UNKNOWN (0x00000000) -#define NEODEVICE_BLUE (0x00000001) +#define NEODEVICE_BLUE_DEPRECATED (0x00000001) #define NEODEVICE_ECU_AVB_DEPRECATED (0x00000002) #define NEODEVICE_RADSUPERMOON_DEPRECATED (0x00000003) -#define NEODEVICE_DW_VCAN (0x00000004) +#define NEODEVICE_DW_VCAN_DEPRECATED (0x00000004) #define NEODEVICE_RADMOON2 (0x00000005) #define NEODEVICE_RADGIGALOG_DEPRECATED (0x00000006) /* AKA RADMARS */ #define NEODEVICE_VCAN41 (0x00000007) -#define NEODEVICE_FIRE (0x00000008) +#define NEODEVICE_FIRE_DEPRECATED (0x00000008) #define NEODEVICE_RADPLUTO_DEPRECATED (0x00000009) #define NEODEVICE_VCAN42_EL (0x0000000a) #define NEODEVICE_RADIO_CANHUB (0x0000000b) @@ -225,7 +249,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_OBD2_LC (0x0000000d) #define NEODEVICE_RAD_MOON_DUO_DEPRECATED (0x0000000e) #define NEODEVICE_FIRE3 (0x0000000f) -#define NEODEVICE_VCAN3 (0x00000010) +#define NEODEVICE_VCAN3_DEPRECATED (0x00000010) #define NEODEVICE_RADJUPITER (0x00000011) #define NEODEVICE_VCAN4_IND (0x00000012) #define NEODEVICE_GIGASTAR (0x00000013) @@ -255,16 +279,16 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_FIRE3_T1S_SENT (0x0000002B) #define NEODEVICE_RADGEMINI (0x0000002C) -#define NEODEVICE_RED (0x00000040) -#define NEODEVICE_ECU (0x00000080) +#define NEODEVICE_RED_DEPRECATED (0x00000040) +#define NEODEVICE_ECU_DEPRECATED (0x00000080) #define NEODEVICE_IEVB_DEPRECATED (0x00000100) -#define NEODEVICE_PENDANT (0x00000200) +#define NEODEVICE_PENDANT_DEPRECATED (0x00000200) #define NEODEVICE_OBD2_PRO_DEPRECATED (0x00000400) #define NEODEVICE_ECUCHIP_UART_DEPRECATED (0x00000800) #define NEODEVICE_PLASMA (0x00001000) #define NEODEVICE_DONT_REUSE0 (0x00002000) //NEODEVICE_FIRE_VNET -#define NEODEVICE_NEOANALOG (0x00004000) -#define NEODEVICE_CT_OBD (0x00008000) +#define NEODEVICE_NEOANALOG_DEPRECATED (0x00004000) +#define NEODEVICE_CT_OBD_DEPRECATED (0x00008000) #define NEODEVICE_DONT_REUSE1 (0x00010000) //NEODEVICE_PLASMA_1_12 #define NEODEVICE_DONT_REUSE2 (0x00020000) //NEODEVICE_PLASMA_1_13 #define NEODEVICE_ION (0x00040000) @@ -286,7 +310,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB_DEPRECATED //clang-format on -#define DEVICECOUNT_FOR_EXPLORER (36) //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER (32) //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -313,7 +337,6 @@ typedef unsigned __int64 uint64_t; #define SCRIPT_LOCATION_FLASH_MEM 0 #define SCRIPT_LOCATION_INTERNAL_FLASH 2 #define SCRIPT_LOCATION_SDCARD 1 -#define SCRIPT_LOCATION_VCAN3_MEM 4 #define SCRIPT_LOCATION_EMMC 6 /* Protocols -- value of Protocol member of icsSpyMessage */ @@ -568,14 +591,26 @@ typedef struct _stAPIFirmwareInfo #define CMP_STREAMS_RED2 (10) #define CMP_STREAMS_A2B (3) #define CMP_STREAMS_GIGASTAR (10) +#define CMP_STREAMS_GIGASTAR2 (10) +#define CMP_STREAMS_COMET (10) +#define CMP_STREAMS_COMET3 (10) +#define CMP_STREAMS_GALAXY2 (10) /* CMP Network Enables */ typedef struct { - uint8_t bStreamEnabled : 1; - uint8_t EthModule : 2; - uint8_t bControlEnabled : 1; - uint8_t spare : 4; + union + { + uint8_t byte0; + struct + { + uint8_t bStreamEnabled : 1; + uint8_t EthModule : 2; + uint8_t bControlEnabled : 1; + uint8_t EthModule2 : 3; + uint8_t spare : 1; + }; + }; uint8_t streamId; uint8_t dstMac[6]; union @@ -803,15 +838,6 @@ typedef struct } J1708_SETTINGS; #define J1708_SETTINGS_SIZE 2 -typedef struct _SRedSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; -} SRedSettings; -#define SRedSettings_SIZE 44 - typedef struct _STextAPISettings { uint32_t can1_tx_id; @@ -894,12 +920,6 @@ typedef union _stChipVersions uint8_t hid_min; } plasma_fire_vnet; - struct - { - uint8_t mpic_maj; - uint8_t mpic_min; - } vcan3_versions; - struct { uint8_t zynq_core_major; @@ -1396,7 +1416,13 @@ typedef struct ETHERNET10T1S_SETTINGS_t uint8_t to_timer; uint8_t flags; uint8_t local_id_alternate; - uint8_t rsvd[5]; + struct + { + uint8_t pcp_thresh : 3; // >= pcp_thresh means high priority + uint8_t enable_high_priority : 1; + uint8_t : 4; + } vlan_cos; + uint8_t rsvd[4]; } ETHERNET10T1S_SETTINGS; #define ETHERNET10T1S_SETTINGS_SIZE 12 @@ -2229,94 +2255,6 @@ enum REPORT_ON_GPS, /* send GPS 0x110-0x116 on change */ }; -typedef struct _SFireSettings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - CAN_SETTINGS can3; - CAN_SETTINGS can4; - - SWCAN_SETTINGS swcan; - CAN_SETTINGS lsftcan; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - LIN_SETTINGS lin3; - LIN_SETTINGS lin4; - - uint16_t cgi_enable_reserved; - uint16_t cgi_baud; - uint16_t cgi_tx_ifs_bit_times; - uint16_t cgi_rx_ifs_bit_times; - uint16_t cgi_chksum_enable; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint32_t pwm_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - uint16_t iso15765_separation_time_offset; - - uint16_t iso9141_kwp_enable_reserved; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - - uint16_t perf_en; - - /* ISO9141: iso_parity 0 - no parity, 1 - event, 2 - odd; iso_msg_termination 0 - use inner frame time, 1 - GME CIM-SCL */ - - uint16_t iso_parity; - uint16_t iso_msg_termination; - uint16_t iso_tester_pullup_enable; - - uint16_t network_enables_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; - uint16_t iso_parity_3; - uint16_t iso_msg_termination_3; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; - uint16_t iso_parity_4; - uint16_t iso_msg_termination_4; - - uint16_t fast_init_network_enables_1; - uint16_t fast_init_network_enables_2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; - - SNeoMostGatewaySettings neoMostGateway; - -#define VNETBITS_FEATURE_ANDROID_MSGS (1) - /** - * Unfortuntely I haven't gone thru the trouble - * of splitting the FIRE VNET and FIRE settings - * structures. So until I can do so and reserve - * some time to test it, add a member that only - * VNET looks at for VNET features (like - * Android CoreMiniMsg pump). - * Defaults to zero. - * @see VNETBITS_FEATURE_ANDROID_MSGS - */ - uint16_t vnetBits; -} SFireSettings; -#define SFireSettings_SIZE 744 - typedef struct _SFireVnetSettings { CAN_SETTINGS can1; @@ -2507,25 +2445,6 @@ typedef struct _SCyanSettings typedef SCyanSettings SFire2Settings; -typedef struct _SVCAN3Settings -{ - CAN_SETTINGS can1; - CAN_SETTINGS can2; - - uint16_t network_enables; - uint16_t network_enabled_on_boot; - - uint16_t iso15765_separation_time_offset; - - uint16_t perf_en; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; -} SVCAN3Settings; -#define SVCAN3Settings_SIZE 40 - typedef struct _SVCAN4Settings { uint16_t perf_en; @@ -2562,110 +2481,6 @@ typedef struct _SVCAN4Settings } SVCAN4Settings; #define SVCAN4Settings_SIZE 342 -typedef struct _SECUSettings -{ - /* ECU ID used in CAN communications. - * TX ID = ECU ID with bit28 cleared, - * RX ID = ECUID with bit28 set, - * ECU ID = 0 implies ECU ID = serial no with bit 27 set\ - */ - uint32_t ecu_id; - - uint16_t selected_network; // not supported yet - default to HSCAN - - CAN_SETTINGS can1; - CAN_SETTINGS can2; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - uint16_t iso15765_separation_time_offset; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - SWCAN_SETTINGS swcan; - SWCAN_SETTINGS swcan2; - CAN_SETTINGS lsftcan; - CAN_SETTINGS lsftcan2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; -} SECUSettings; -#define SECUSettings_SIZE 470 - -typedef struct _SPendantSettings -{ - /* see SECUSettings */ - uint32_t ecu_id; - - uint16_t selected_network; /* not supported yet - default to HSCAN */ - - CAN_SETTINGS can1; - CAN_SETTINGS can2; - - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; - - uint16_t iso15765_separation_time_offset; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; - uint16_t iso_parity; - uint16_t iso_msg_termination; - - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; - uint16_t iso_parity_2; - uint16_t iso_msg_termination_2; - - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - - uint16_t misc_io_initial_ddr; - uint16_t misc_io_initial_latch; - uint16_t misc_io_analog_enable; - uint16_t misc_io_report_period; - uint16_t misc_io_on_report_events; - uint16_t ain_sample_period; - uint16_t ain_threshold; - - SWCAN_SETTINGS swcan; - SWCAN_SETTINGS swcan2; - CAN_SETTINGS lsftcan; - CAN_SETTINGS lsftcan2; - - UART_SETTINGS uart; - UART_SETTINGS uart2; - - STextAPISettings text_api; -} SPendantSettings; -#define SPendantSettings_SIZE 470 - /* GPTP portEnable options */ enum eGPTPPort { @@ -3185,9 +3000,10 @@ typedef struct _SRADGalaxy2Settings ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; uint16_t iso_parity_2; uint16_t iso_msg_termination_2; - + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_GALAXY2]; } SRADGalaxy2Settings; -#define SRADGalaxy2Settings_SIZE 960 +#define SRADGalaxy2Settings_SIZE 1204 typedef struct _SVividCANSettings { @@ -4281,8 +4097,10 @@ typedef struct _SRADCometSettings // 10T1S Extended settings ETHERNET10T1S_SETTINGS_EXT t1s1Ext; ETHERNET10T1S_SETTINGS_EXT t1s2Ext; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_COMET]; } SRADCometSettings; -#define SRADCometSettings_SIZE 498 +#define SRADCometSettings_SIZE 742 typedef struct _SRADComet3Settings { @@ -4349,8 +4167,10 @@ typedef struct _SRADComet3Settings ETHERNET10T1S_SETTINGS_EXT t1s4Ext; ETHERNET10T1S_SETTINGS_EXT t1s5Ext; ETHERNET10T1S_SETTINGS_EXT t1s6Ext; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_COMET3]; } SRADComet3Settings; -#define SRADComet3Settings_SIZE 674 +#define SRADComet3Settings_SIZE 918 typedef struct _SRADGigaStar2Settings { @@ -4485,8 +4305,10 @@ typedef struct _SRADGigaStar2Settings // SFP T1L ETHERNET10T1L_SETTINGS sfp_t1l_1; ETHERNET10T1L_SETTINGS sfp_t1l_2; + CMP_GLOBAL_DATA cmp_global_data; + CMP_NETWORK_DATA cmp_stream_data[CMP_STREAMS_GIGASTAR2]; } SRADGigastar2Settings; -#define SRADGigastar2Settings_SIZE 2156 +#define SRADGigastar2Settings_SIZE 2400 // variants to be used with icsneoSetFirmwareVariant enum Gigastar2FwVariants @@ -4600,14 +4422,9 @@ typedef struct _GLOBAL_SETTINGS uint16_t chksum; union { - SRedSettings red; - SFireSettings fire; SFireVnetSettings firevnet; SCyanSettings cyan; - SVCAN3Settings vcan3; SVCAN4Settings vcan4; - SECUSettings ecu; - SPendantSettings pendant; SRADGalaxySettings radgalaxy; SRADStar2Settings radstar2; SVCAN412Settings vcan412; @@ -4648,7 +4465,7 @@ typedef enum _EDeviceSettingsType DeviceFireSettingsType, DeviceFireVnetSettingsType, DeviceFire2SettingsType, - DeviceVCAN3SettingsType, + DeviceVCAN3SettingsTypeDeprecated, DeviceRADGalaxySettingsType, DeviceRADStar2SettingsType, DeviceVCAN4SettingsType, @@ -4669,7 +4486,7 @@ typedef enum _EDeviceSettingsType DeviceOBD2SimSettingsTypeDeprecated, DeviceCMProbeSettingsTypeDeprecated, DeviceOBD2ProSettingsTypeDeprecated, - DeviceRedSettingsType, + DeviceRedSettingsTypeDeprecated, DeviceRADPlutoSwitchSettingsTypeDeprecated, DeviceRADGigastarSettingsType, DeviceRADJupiterSettingsType, @@ -4702,14 +4519,9 @@ typedef struct _SDeviceSettings EDeviceSettingsType DeviceSettingType; union { - SRedSettings red; - SFireSettings fire; SFireVnetSettings firevnet; SCyanSettings cyan; - SVCAN3Settings vcan3; SVCAN4Settings vcan4; - SECUSettings ecu; - SPendantSettings pendant; SRADGalaxySettings radgalaxy; SRADStar2Settings radstar2; SVCAN412Settings vcan412; @@ -5563,7 +5375,6 @@ CHECK_STRUCT_SIZE(ISO9141_KEYWORD2000__INIT_STEP); CHECK_STRUCT_SIZE(ISO9141_KEYWORD2000_SETTINGS); CHECK_STRUCT_SIZE(UART_SETTINGS); CHECK_STRUCT_SIZE(J1708_SETTINGS); -CHECK_STRUCT_SIZE(SRedSettings); CHECK_STRUCT_SIZE(STextAPISettings); CHECK_STRUCT_SIZE(stChipVersions); CHECK_STRUCT_SIZE(SNeoMostGatewaySettings); @@ -5583,13 +5394,9 @@ CHECK_STRUCT_SIZE(SERDESPOC_SETTINGS); CHECK_STRUCT_SIZE(SERDESGEN_SETTINGS); CHECK_STRUCT_SIZE(RAD_REPORTING_SETTINGS); CHECK_STRUCT_SIZE(CANTERM_SETTINGS); -CHECK_STRUCT_SIZE(SFireSettings); CHECK_STRUCT_SIZE(SFireVnetSettings); CHECK_STRUCT_SIZE(SCyanSettings); -CHECK_STRUCT_SIZE(SVCAN3Settings); CHECK_STRUCT_SIZE(SVCAN4Settings); -CHECK_STRUCT_SIZE(SECUSettings); -CHECK_STRUCT_SIZE(SPendantSettings); CHECK_STRUCT_SIZE(SRADGalaxySettings); CHECK_STRUCT_SIZE(SRADStar2Settings); CHECK_STRUCT_SIZE(GLOBAL_SETTINGS); diff --git a/include/ics/icsnVC40.h.patch b/include/ics/icsnVC40.h.patch deleted file mode 100644 index 73292dc83..000000000 --- a/include/ics/icsnVC40.h.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h -index 5a5bc27..279ae0d 100644 ---- a/include/ics/icsnVC40.h -+++ b/include/ics/icsnVC40.h -@@ -4046,6 +4046,9 @@ typedef struct _ethernetNetworkStatus_t - } ethernetNetworkStatus_t; - #pragma pack(pop) - -+#pragma pack(push) -+#pragma pack(4) -+ - typedef struct - { - uint8_t backupPowerGood; -@@ -4119,7 +4122,7 @@ typedef union { - icsRadPlutoDeviceStatus plutoStatus; - icsVcan4IndustrialDeviceStatus vcan4indStatus; - } icsDeviceStatus; -- -+#pragma pack(pop) - - typedef struct - { diff --git a/setup.py b/setup.py index 105e93ae8..d1ace4650 100644 --- a/setup.py +++ b/setup.py @@ -27,8 +27,10 @@ raise RuntimeError("clang-format is required for building python_ics.") def get_version(): - major = int(get_pkg_version().split(".")[0]) - minor = int(get_pkg_version().split(".")[1]) + # Strip a PEP 440 epoch ("1!26.3.9" -> "26.3.9") before numeric parsing. + version = get_pkg_version().split("!", 1)[-1] + major = int(version.split(".")[0]) + minor = int(version.split(".")[1]) return major, minor class _build_libicsneo(build_clib): diff --git a/src/methods.cpp b/src/methods.cpp index ce42adaa8..1fde87fd8 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -672,15 +672,15 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string switch (nde->neoDevice.DeviceType) { case NEODEVICE_UNKNOWN: return "Unknown"; - case NEODEVICE_BLUE: + case NEODEVICE_BLUE_DEPRECATED: return "neoVI BLUE"; - case NEODEVICE_DW_VCAN: + case NEODEVICE_DW_VCAN_DEPRECATED: return "ValueCAN DW"; case NEODEVICE_RADMOON2: return "RAD-Moon 2"; case NEODEVICE_VCAN41: return "ValueCAN 4-1"; - case NEODEVICE_FIRE: + case NEODEVICE_FIRE_DEPRECATED: return "neoVI FIRE"; case NEODEVICE_VCAN42_EL: return "ValueCAN 4-2EL"; @@ -690,7 +690,7 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "neoECU12"; case NEODEVICE_OBD2_LC: return "neoOBD2-LC"; - case NEODEVICE_VCAN3: + case NEODEVICE_VCAN3_DEPRECATED: return "ValueCAN 3"; case NEODEVICE_FIRE3: return "neoVI FIRE 3"; @@ -728,17 +728,17 @@ auto device_name_from_nde(NeoDeviceEx* nde) -> std::string return "RAD-MOON-T1S"; case NEODEVICE_GIGASTAR2: return "RAD-GigaStar2"; - case NEODEVICE_RED: + case NEODEVICE_RED_DEPRECATED: return "neoVI RED"; - case NEODEVICE_ECU: + case NEODEVICE_ECU_DEPRECATED: return "neoECU"; - case NEODEVICE_PENDANT: + case NEODEVICE_PENDANT_DEPRECATED: return "Pendant"; case NEODEVICE_PLASMA: // also NEODEVICE_ANY_PLASMA return "neoVI PLASMA"; - case NEODEVICE_NEOANALOG: + case NEODEVICE_NEOANALOG_DEPRECATED: return "neoAnalog"; - case NEODEVICE_CT_OBD: + case NEODEVICE_CT_OBD_DEPRECATED: return "neoOBD CT"; case NEODEVICE_ION: // also NEODEVICE_ANY_ION return "neoVI ION"; diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index d53d7a605..ac10d31d1 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -21,7 +21,9 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NEOVI_COMMTYPE_FIRE_USB", PyLong_FromUnsignedLongLong(NEOVI_COMMTYPE_FIRE_USB)); result += PyModule_AddObjectRef(module, "NETID_DEVICE", PyLong_FromUnsignedLongLong(NETID_DEVICE)); result += PyModule_AddObjectRef(module, "NETID_HSCAN", PyLong_FromUnsignedLongLong(NETID_HSCAN)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_01", PyLong_FromLongLong(NETID_DWCAN_01)); result += PyModule_AddObjectRef(module, "NETID_MSCAN", PyLong_FromUnsignedLongLong(NETID_MSCAN)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_08", PyLong_FromLongLong(NETID_DWCAN_08)); result += PyModule_AddObjectRef(module, "NETID_SWCAN", PyLong_FromUnsignedLongLong(NETID_SWCAN)); result += PyModule_AddObjectRef(module, "NETID_LSFTCAN", PyLong_FromUnsignedLongLong(NETID_LSFTCAN)); result += PyModule_AddObjectRef(module, "NETID_FORDSCP", PyLong_FromUnsignedLongLong(NETID_FORDSCP)); @@ -37,13 +39,20 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_ISO14230", PyLong_FromUnsignedLongLong(NETID_ISO14230)); result += PyModule_AddObjectRef(module, "NETID_LIN", PyLong_FromUnsignedLongLong(NETID_LIN)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET1", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET1)); + result += PyModule_AddObjectRef(module, "NETID_AE_01", PyLong_FromLongLong(NETID_AE_01)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET2", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET2)); + result += PyModule_AddObjectRef(module, "NETID_AE_02", PyLong_FromLongLong(NETID_AE_02)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET3", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET3)); + result += PyModule_AddObjectRef(module, "NETID_AE_03", PyLong_FromLongLong(NETID_AE_03)); result += PyModule_AddObjectRef(module, "NETID_ISO3", PyLong_FromUnsignedLongLong(NETID_ISO3)); result += PyModule_AddObjectRef(module, "NETID_HSCAN2", PyLong_FromUnsignedLongLong(NETID_HSCAN2)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_02", PyLong_FromLongLong(NETID_DWCAN_02)); result += PyModule_AddObjectRef(module, "NETID_HSCAN3", PyLong_FromUnsignedLongLong(NETID_HSCAN3)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_03", PyLong_FromLongLong(NETID_DWCAN_03)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET4", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET4)); + result += PyModule_AddObjectRef(module, "NETID_AE_04", PyLong_FromLongLong(NETID_AE_04)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET5", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET5)); + result += PyModule_AddObjectRef(module, "NETID_AE_05", PyLong_FromLongLong(NETID_AE_05)); result += PyModule_AddObjectRef(module, "NETID_ISO4", PyLong_FromUnsignedLongLong(NETID_ISO4)); result += PyModule_AddObjectRef(module, "NETID_LIN2", PyLong_FromUnsignedLongLong(NETID_LIN2)); result += PyModule_AddObjectRef(module, "NETID_LIN3", PyLong_FromUnsignedLongLong(NETID_LIN3)); @@ -59,7 +68,9 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_3G_LOGGING_OVERFLOW", PyLong_FromUnsignedLongLong(NETID_3G_LOGGING_OVERFLOW)); result += PyModule_AddObjectRef(module, "NETID_3G_READ_SETTINGS_EX", PyLong_FromUnsignedLongLong(NETID_3G_READ_SETTINGS_EX)); result += PyModule_AddObjectRef(module, "NETID_HSCAN4", PyLong_FromUnsignedLongLong(NETID_HSCAN4)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_04", PyLong_FromLongLong(NETID_DWCAN_04)); result += PyModule_AddObjectRef(module, "NETID_HSCAN5", PyLong_FromUnsignedLongLong(NETID_HSCAN5)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_05", PyLong_FromLongLong(NETID_DWCAN_05)); result += PyModule_AddObjectRef(module, "NETID_RS232", PyLong_FromUnsignedLongLong(NETID_RS232)); result += PyModule_AddObjectRef(module, "NETID_UART", PyLong_FromUnsignedLongLong(NETID_UART)); result += PyModule_AddObjectRef(module, "NETID_UART2", PyLong_FromUnsignedLongLong(NETID_UART2)); @@ -71,12 +82,18 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_TEXTAPI_TO_HOST", PyLong_FromUnsignedLongLong(NETID_TEXTAPI_TO_HOST)); result += PyModule_AddObjectRef(module, "NETID_SPI1", PyLong_FromUnsignedLongLong(NETID_SPI1)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET6", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET6)); + result += PyModule_AddObjectRef(module, "NETID_AE_06", PyLong_FromLongLong(NETID_AE_06)); result += PyModule_AddObjectRef(module, "NETID_RED_VBAT", PyLong_FromUnsignedLongLong(NETID_RED_VBAT)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET7", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET7)); + result += PyModule_AddObjectRef(module, "NETID_AE_07", PyLong_FromLongLong(NETID_AE_07)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET8", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET8)); + result += PyModule_AddObjectRef(module, "NETID_AE_08", PyLong_FromLongLong(NETID_AE_08)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET9", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET9)); + result += PyModule_AddObjectRef(module, "NETID_AE_09", PyLong_FromLongLong(NETID_AE_09)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET10", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET10)); + result += PyModule_AddObjectRef(module, "NETID_AE_10", PyLong_FromLongLong(NETID_AE_10)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET11", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET11)); + result += PyModule_AddObjectRef(module, "NETID_AE_11", PyLong_FromLongLong(NETID_AE_11)); result += PyModule_AddObjectRef(module, "NETID_FLEXRAY1A", PyLong_FromUnsignedLongLong(NETID_FLEXRAY1A)); result += PyModule_AddObjectRef(module, "NETID_FLEXRAY1B", PyLong_FromUnsignedLongLong(NETID_FLEXRAY1B)); result += PyModule_AddObjectRef(module, "NETID_FLEXRAY2A", PyLong_FromUnsignedLongLong(NETID_FLEXRAY2A)); @@ -85,6 +102,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_FLEXRAY", PyLong_FromUnsignedLongLong(NETID_FLEXRAY)); result += PyModule_AddObjectRef(module, "NETID_FLEXRAY2", PyLong_FromUnsignedLongLong(NETID_FLEXRAY2)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET12", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET12)); + result += PyModule_AddObjectRef(module, "NETID_AE_12", PyLong_FromLongLong(NETID_AE_12)); result += PyModule_AddObjectRef(module, "NETID_I2C1", PyLong_FromUnsignedLongLong(NETID_I2C1)); result += PyModule_AddObjectRef(module, "NETID_MOST25", PyLong_FromUnsignedLongLong(NETID_MOST25)); result += PyModule_AddObjectRef(module, "NETID_MOST50", PyLong_FromUnsignedLongLong(NETID_MOST50)); @@ -93,7 +111,9 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_GMFSA", PyLong_FromUnsignedLongLong(NETID_GMFSA)); result += PyModule_AddObjectRef(module, "NETID_TCP", PyLong_FromUnsignedLongLong(NETID_TCP)); result += PyModule_AddObjectRef(module, "NETID_HSCAN6", PyLong_FromUnsignedLongLong(NETID_HSCAN6)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_06", PyLong_FromLongLong(NETID_DWCAN_06)); result += PyModule_AddObjectRef(module, "NETID_HSCAN7", PyLong_FromUnsignedLongLong(NETID_HSCAN7)); + result += PyModule_AddObjectRef(module, "NETID_DWCAN_07", PyLong_FromLongLong(NETID_DWCAN_07)); result += PyModule_AddObjectRef(module, "NETID_LIN6", PyLong_FromUnsignedLongLong(NETID_LIN6)); result += PyModule_AddObjectRef(module, "NETID_LSFTCAN2", PyLong_FromUnsignedLongLong(NETID_LSFTCAN2)); result += PyModule_AddObjectRef(module, "NETID_HW_COM_LATENCY_TEST", PyLong_FromUnsignedLongLong(NETID_HW_COM_LATENCY_TEST)); @@ -133,9 +153,13 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_MDIO_07", PyLong_FromUnsignedLongLong(NETID_MDIO_07)); result += PyModule_AddObjectRef(module, "NETID_MDIO_08", PyLong_FromUnsignedLongLong(NETID_MDIO_08)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET13", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET13)); + result += PyModule_AddObjectRef(module, "NETID_AE_13", PyLong_FromLongLong(NETID_AE_13)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET14", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET14)); + result += PyModule_AddObjectRef(module, "NETID_AE_14", PyLong_FromLongLong(NETID_AE_14)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET15", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET15)); + result += PyModule_AddObjectRef(module, "NETID_AE_15", PyLong_FromLongLong(NETID_AE_15)); result += PyModule_AddObjectRef(module, "NETID_OP_ETHERNET16", PyLong_FromUnsignedLongLong(NETID_OP_ETHERNET16)); + result += PyModule_AddObjectRef(module, "NETID_AE_16", PyLong_FromLongLong(NETID_AE_16)); result += PyModule_AddObjectRef(module, "NETID_SPI3", PyLong_FromUnsignedLongLong(NETID_SPI3)); result += PyModule_AddObjectRef(module, "NETID_SPI4", PyLong_FromUnsignedLongLong(NETID_SPI4)); result += PyModule_AddObjectRef(module, "NETID_SPI5", PyLong_FromUnsignedLongLong(NETID_SPI5)); @@ -153,14 +177,14 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NETID_MAX", PyLong_FromUnsignedLongLong(NETID_MAX)); result += PyModule_AddObjectRef(module, "NETID_INVALID", PyLong_FromLongLong(NETID_INVALID)); result += PyModule_AddObjectRef(module, "NEODEVICE_UNKNOWN", PyLong_FromLongLong(NEODEVICE_UNKNOWN)); - result += PyModule_AddObjectRef(module, "NEODEVICE_BLUE", PyLong_FromLongLong(NEODEVICE_BLUE)); + result += PyModule_AddObjectRef(module, "NEODEVICE_BLUE_DEPRECATED", PyLong_FromLongLong(NEODEVICE_BLUE_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_ECU_AVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ECU_AVB_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADSUPERMOON_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADSUPERMOON_DEPRECATED)); - result += PyModule_AddObjectRef(module, "NEODEVICE_DW_VCAN", PyLong_FromLongLong(NEODEVICE_DW_VCAN)); + result += PyModule_AddObjectRef(module, "NEODEVICE_DW_VCAN_DEPRECATED", PyLong_FromLongLong(NEODEVICE_DW_VCAN_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADMOON2", PyLong_FromLongLong(NEODEVICE_RADMOON2)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADGIGALOG_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADGIGALOG_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN41", PyLong_FromLongLong(NEODEVICE_VCAN41)); - result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE", PyLong_FromLongLong(NEODEVICE_FIRE)); + result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE_DEPRECATED", PyLong_FromLongLong(NEODEVICE_FIRE_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADPLUTO_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RADPLUTO_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN42_EL", PyLong_FromLongLong(NEODEVICE_VCAN42_EL)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADIO_CANHUB", PyLong_FromLongLong(NEODEVICE_RADIO_CANHUB)); @@ -168,7 +192,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_LC", PyLong_FromLongLong(NEODEVICE_OBD2_LC)); result += PyModule_AddObjectRef(module, "NEODEVICE_RAD_MOON_DUO_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RAD_MOON_DUO_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3", PyLong_FromLongLong(NEODEVICE_FIRE3)); - result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN3", PyLong_FromLongLong(NEODEVICE_VCAN3)); + result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN3_DEPRECATED", PyLong_FromLongLong(NEODEVICE_VCAN3_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADJUPITER", PyLong_FromLongLong(NEODEVICE_RADJUPITER)); result += PyModule_AddObjectRef(module, "NEODEVICE_VCAN4_IND", PyLong_FromLongLong(NEODEVICE_VCAN4_IND)); result += PyModule_AddObjectRef(module, "NEODEVICE_GIGASTAR", PyLong_FromLongLong(NEODEVICE_GIGASTAR)); @@ -195,16 +219,16 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_LIN", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_LIN)); result += PyModule_AddObjectRef(module, "NEODEVICE_FIRE3_T1S_SENT", PyLong_FromLongLong(NEODEVICE_FIRE3_T1S_SENT)); result += PyModule_AddObjectRef(module, "NEODEVICE_RADGEMINI", PyLong_FromLongLong(NEODEVICE_RADGEMINI)); - result += PyModule_AddObjectRef(module, "NEODEVICE_RED", PyLong_FromLongLong(NEODEVICE_RED)); - result += PyModule_AddObjectRef(module, "NEODEVICE_ECU", PyLong_FromLongLong(NEODEVICE_ECU)); + result += PyModule_AddObjectRef(module, "NEODEVICE_RED_DEPRECATED", PyLong_FromLongLong(NEODEVICE_RED_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_ECU_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ECU_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_IEVB_DEPRECATED", PyLong_FromLongLong(NEODEVICE_IEVB_DEPRECATED)); - result += PyModule_AddObjectRef(module, "NEODEVICE_PENDANT", PyLong_FromLongLong(NEODEVICE_PENDANT)); + result += PyModule_AddObjectRef(module, "NEODEVICE_PENDANT_DEPRECATED", PyLong_FromLongLong(NEODEVICE_PENDANT_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_OBD2_PRO_DEPRECATED", PyLong_FromLongLong(NEODEVICE_OBD2_PRO_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_ECUCHIP_UART_DEPRECATED", PyLong_FromLongLong(NEODEVICE_ECUCHIP_UART_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_PLASMA", PyLong_FromLongLong(NEODEVICE_PLASMA)); result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE0", PyLong_FromLongLong(NEODEVICE_DONT_REUSE0)); - result += PyModule_AddObjectRef(module, "NEODEVICE_NEOANALOG", PyLong_FromLongLong(NEODEVICE_NEOANALOG)); - result += PyModule_AddObjectRef(module, "NEODEVICE_CT_OBD", PyLong_FromLongLong(NEODEVICE_CT_OBD)); + result += PyModule_AddObjectRef(module, "NEODEVICE_NEOANALOG_DEPRECATED", PyLong_FromLongLong(NEODEVICE_NEOANALOG_DEPRECATED)); + result += PyModule_AddObjectRef(module, "NEODEVICE_CT_OBD_DEPRECATED", PyLong_FromLongLong(NEODEVICE_CT_OBD_DEPRECATED)); result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE1", PyLong_FromLongLong(NEODEVICE_DONT_REUSE1)); result += PyModule_AddObjectRef(module, "NEODEVICE_DONT_REUSE2", PyLong_FromLongLong(NEODEVICE_DONT_REUSE2)); result += PyModule_AddObjectRef(module, "NEODEVICE_ION", PyLong_FromLongLong(NEODEVICE_ION)); @@ -246,7 +270,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_FLASH_MEM", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_FLASH_MEM)); result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_INTERNAL_FLASH", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_INTERNAL_FLASH)); result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_SDCARD", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_SDCARD)); - result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_VCAN3_MEM", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_VCAN3_MEM)); result += PyModule_AddObjectRef(module, "SCRIPT_LOCATION_EMMC", PyLong_FromUnsignedLongLong(SCRIPT_LOCATION_EMMC)); result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CUSTOM", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CUSTOM)); result += PyModule_AddObjectRef(module, "SPY_PROTOCOL_CAN", PyLong_FromUnsignedLongLong(SPY_PROTOCOL_CAN)); @@ -363,6 +386,10 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "CMP_STREAMS_RED2", PyLong_FromLongLong(CMP_STREAMS_RED2)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_A2B", PyLong_FromLongLong(CMP_STREAMS_A2B)); result += PyModule_AddObjectRef(module, "CMP_STREAMS_GIGASTAR", PyLong_FromLongLong(CMP_STREAMS_GIGASTAR)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_GIGASTAR2", PyLong_FromLongLong(CMP_STREAMS_GIGASTAR2)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_COMET", PyLong_FromLongLong(CMP_STREAMS_COMET)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_COMET3", PyLong_FromLongLong(CMP_STREAMS_COMET3)); + result += PyModule_AddObjectRef(module, "CMP_STREAMS_GALAXY2", PyLong_FromLongLong(CMP_STREAMS_GALAXY2)); // enum result += PyModule_AddObjectRef(module, "AUTO", PyLong_FromLongLong(AUTO)); result += PyModule_AddObjectRef(module, "USE_TQ", PyLong_FromLongLong(USE_TQ)); @@ -444,7 +471,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "ISO9141_KEYWORD2000_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(ISO9141_KEYWORD2000_SETTINGS_SIZE)); result += PyModule_AddObjectRef(module, "UART_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(UART_SETTINGS_SIZE)); result += PyModule_AddObjectRef(module, "J1708_SETTINGS_SIZE", PyLong_FromUnsignedLongLong(J1708_SETTINGS_SIZE)); - result += PyModule_AddObjectRef(module, "SRedSettings_SIZE", PyLong_FromUnsignedLongLong(SRedSettings_SIZE)); result += PyModule_AddObjectRef(module, "STextAPISettings_SIZE", PyLong_FromUnsignedLongLong(STextAPISettings_SIZE)); result += PyModule_AddObjectRef(module, "stChipVersions_SIZE", PyLong_FromUnsignedLongLong(stChipVersions_SIZE)); result += PyModule_AddObjectRef(module, "SNeoMostGatewaySettings_SIZE", PyLong_FromUnsignedLongLong(SNeoMostGatewaySettings_SIZE)); @@ -792,16 +818,11 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "REPORT_ON_GPS", PyLong_FromLongLong(REPORT_ON_GPS)); // end of enum - }; - result += PyModule_AddObjectRef(module, "VNETBITS_FEATURE_ANDROID_MSGS", PyLong_FromLongLong(VNETBITS_FEATURE_ANDROID_MSGS)); - result += PyModule_AddObjectRef(module, "SFireSettings_SIZE", PyLong_FromUnsignedLongLong(SFireSettings_SIZE)); result += PyModule_AddObjectRef(module, "VNETBITS_FEATURE_ANDROID_MSGS", PyLong_FromLongLong(VNETBITS_FEATURE_ANDROID_MSGS)); result += PyModule_AddObjectRef(module, "VNETBITS_FEATURE_DISABLE_USB_CHECK", PyLong_FromLongLong(VNETBITS_FEATURE_DISABLE_USB_CHECK)); result += PyModule_AddObjectRef(module, "SFireVnetSettings_SIZE", PyLong_FromUnsignedLongLong(SFireVnetSettings_SIZE)); result += PyModule_AddObjectRef(module, "SCyanSettings_SIZE", PyLong_FromUnsignedLongLong(SCyanSettings_SIZE)); - result += PyModule_AddObjectRef(module, "SVCAN3Settings_SIZE", PyLong_FromUnsignedLongLong(SVCAN3Settings_SIZE)); result += PyModule_AddObjectRef(module, "SVCAN4Settings_SIZE", PyLong_FromUnsignedLongLong(SVCAN4Settings_SIZE)); - result += PyModule_AddObjectRef(module, "SECUSettings_SIZE", PyLong_FromUnsignedLongLong(SECUSettings_SIZE)); - result += PyModule_AddObjectRef(module, "SPendantSettings_SIZE", PyLong_FromUnsignedLongLong(SPendantSettings_SIZE)); // enum result += PyModule_AddObjectRef(module, "ePortDisabled", PyLong_FromLongLong(ePortDisabled)); result += PyModule_AddObjectRef(module, "ePortOpEth1", PyLong_FromLongLong(ePortOpEth1)); @@ -965,7 +986,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "DeviceFireSettingsType", PyLong_FromLongLong(DeviceFireSettingsType)); result += PyModule_AddObjectRef(module, "DeviceFireVnetSettingsType", PyLong_FromLongLong(DeviceFireVnetSettingsType)); result += PyModule_AddObjectRef(module, "DeviceFire2SettingsType", PyLong_FromLongLong(DeviceFire2SettingsType)); - result += PyModule_AddObjectRef(module, "DeviceVCAN3SettingsType", PyLong_FromLongLong(DeviceVCAN3SettingsType)); + result += PyModule_AddObjectRef(module, "DeviceVCAN3SettingsTypeDeprecated", PyLong_FromLongLong(DeviceVCAN3SettingsTypeDeprecated)); result += PyModule_AddObjectRef(module, "DeviceRADGalaxySettingsType", PyLong_FromLongLong(DeviceRADGalaxySettingsType)); result += PyModule_AddObjectRef(module, "DeviceRADStar2SettingsType", PyLong_FromLongLong(DeviceRADStar2SettingsType)); result += PyModule_AddObjectRef(module, "DeviceVCAN4SettingsType", PyLong_FromLongLong(DeviceVCAN4SettingsType)); @@ -986,7 +1007,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddObjectRef(module, "DeviceOBD2SimSettingsTypeDeprecated", PyLong_FromLongLong(DeviceOBD2SimSettingsTypeDeprecated)); result += PyModule_AddObjectRef(module, "DeviceCMProbeSettingsTypeDeprecated", PyLong_FromLongLong(DeviceCMProbeSettingsTypeDeprecated)); result += PyModule_AddObjectRef(module, "DeviceOBD2ProSettingsTypeDeprecated", PyLong_FromLongLong(DeviceOBD2ProSettingsTypeDeprecated)); - result += PyModule_AddObjectRef(module, "DeviceRedSettingsType", PyLong_FromLongLong(DeviceRedSettingsType)); + result += PyModule_AddObjectRef(module, "DeviceRedSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRedSettingsTypeDeprecated)); result += PyModule_AddObjectRef(module, "DeviceRADPlutoSwitchSettingsTypeDeprecated", PyLong_FromLongLong(DeviceRADPlutoSwitchSettingsTypeDeprecated)); result += PyModule_AddObjectRef(module, "DeviceRADGigastarSettingsType", PyLong_FromLongLong(DeviceRADGigastarSettingsType)); result += PyModule_AddObjectRef(module, "DeviceRADJupiterSettingsType", PyLong_FromLongLong(DeviceRADJupiterSettingsType)); diff --git a/tests/test_header_3_26.py b/tests/test_header_3_26.py new file mode 100644 index 000000000..c18d2deaf --- /dev/null +++ b/tests/test_header_3_26.py @@ -0,0 +1,30 @@ +"""Pins that the module is generated from the vspy 3.26.3.9 header.""" +import pytest +import ics + + +def test_deprecated_device_constants_renamed(): + # 3.26.3.9 renamed the legacy device defines; old names must be gone. + assert ics.NEODEVICE_BLUE_DEPRECATED == 0x00000001 + assert ics.NEODEVICE_FIRE_DEPRECATED == 0x00000008 + assert ics.NEODEVICE_VCAN3_DEPRECATED == 0x00000010 + assert not hasattr(ics, "NEODEVICE_BLUE") + assert not hasattr(ics, "NEODEVICE_FIRE") + assert not hasattr(ics, "NEODEVICE_VCAN3") + + +def test_grown_settings_structs(): + # Struct growth pinned from the 3.26.3.9 header's _SIZE macros. + assert ics.SRADGalaxy2Settings_SIZE == 1204 + assert ics.SRADComet3Settings_SIZE == 918 + assert ics.SRADGigastar2Settings_SIZE == 2400 + + +def test_legacy_settings_structs_removed(): + import ics.structures + with pytest.raises(ImportError): + from ics.structures import s_red_settings # noqa: F401 + + +if __name__ == "__main__": + pytest.main(args=[__file__, "--verbose", "-s"]) diff --git a/tests/test_struct_sizes.py b/tests/test_struct_sizes.py new file mode 100644 index 000000000..e9aa70a25 --- /dev/null +++ b/tests/test_struct_sizes.py @@ -0,0 +1,69 @@ +"""Validate generated ctypes struct sizes against the header's *_SIZE macros. + +Every `#define _SIZE (N)` in icsnVC40.h is exported as a module +constant; the matching generated ctypes struct must have the same +ctypes.sizeof. Catches header/generator layout drift on header updates. +""" +import ctypes +import importlib +import inspect +import pkgutil + +import pytest +import ics +import ics.structures + +# Upstream header bugs: macro value disagrees with the actual struct. +# Keep entries here only with a comment explaining the discrepancy. +KNOWN_STALE_MACROS = { + # Upstream never updated the macro after the struct grew to 56 bytes + # (still 40 in vspy 3.26.3.9). Reported to header owners. + "RAD_GPTP_AND_TAP_SETTINGS_SIZE", +} + +# Macros whose name doesn't map to a generated struct class (nested/typedef +# variants). Count is asserted so silent growth gets investigated. +EXPECTED_UNMATCHED = 11 + + +def _struct_registry(): + registry = {} + for info in pkgutil.iter_modules(ics.structures.__path__): + mod = importlib.import_module(f"ics.structures.{info.name}") + for name, obj in inspect.getmembers(mod, inspect.isclass): + if ( + issubclass(obj, (ctypes.Structure, ctypes.Union)) + and obj.__module__ == mod.__name__ + ): + registry["".join(c for c in name.lower() if c.isalnum())] = obj + return registry + + +def test_generated_struct_sizes_match_header_macros(): + registry = _struct_registry() + mismatches = [] + unmatched = [] + matched = 0 + for macro in (n for n in dir(ics) if n.endswith("_SIZE")): + key = "".join(c for c in macro[:-5].lower() if c.isalnum()) + cls = registry.get(key) + if cls is None: + unmatched.append(macro) + continue + expected = getattr(ics, macro) + actual = ctypes.sizeof(cls) + if actual == expected: + matched += 1 + elif macro not in KNOWN_STALE_MACROS: + mismatches.append(f"{macro}: header says {expected}, ctypes says {actual}") + assert not mismatches, "\n".join(mismatches) + # 3.26.3.9 removed 5 legacy settings structs (SRedSettings, SFireSettings, + # SVCAN3Settings, SECUSettings, SPendantSettings) and their *_SIZE macros + # together, dropping the matched baseline from 77 to 72. That is a clean + # removal, not a mapping regression: both sides disappeared in lockstep. + assert matched >= 72, f"only {matched} macros matched a struct; mapping regressed" + assert len(unmatched) <= EXPECTED_UNMATCHED, f"unmatched grew: {sorted(unmatched)}" + + +if __name__ == "__main__": + pytest.main(args=[__file__, "--verbose", "-s"]) From dfc98463b0c6b5d935c5d0336bb62d1cdc651e1f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 7 Jul 2026 16:24:34 -0400 Subject: [PATCH 37/38] Ignore W009/W010 in wheel-contents check for repaired wheels (#235) Deploy PyPI has failed since delvewheel started vendoring msvcp140 into python_ics.libs/: check-wheel-contents flags the extra toplevel dir (W009) with no Python modules (W010) on every Windows wheel. Verified against the run-28872960948 artifacts: all 10 Windows wheels fail without the ignore and all pass with it; other checks stay active. Co-authored-by: Claude Fable 5 --- .github/workflows/wheels.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index a8c5cea26..341afa198 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -95,5 +95,11 @@ jobs: run: | source .venv/bin/activate uv pip install check-wheel-contents twine - check-wheel-contents ./wheelhouse/*.whl + # W009/W010 fire on the delvewheel-repaired Windows wheels, whose + # vendored-runtime dir (python_ics.libs/ with msvcp140*.dll) is a + # second toplevel entry with no Python modules. That layout is + # correct for repaired wheels; a [tool.check-wheel-contents] + # toplevel allowlist would instead fail the macOS/Linux wheels, + # which don't have the directory. + check-wheel-contents --ignore W009,W010 ./wheelhouse/*.whl twine upload -u __token__ -p ${{ secrets.PYPI_TOKEN }} --verbose ./wheelhouse/* \ No newline at end of file From 45167e09de6b886cd451a4245f842c8221349711 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 8 Jul 2026 13:10:18 -0400 Subject: [PATCH 38/38] Build libicsneo master (icspb/protobuf) in wheel builds (#236) * Build libicsneo master: Ninja generator + shared icspb protobuf bootstrap libicsneo now requires icspb, whose protobuf codegen breaks under the default Unix Makefiles generator: protobuf v33's protobuf_generate() never creates PROTOC_OUT_DIR and only Ninja pre-creates declared output dirs, so protoc fails with '_deps/icspb-build/protos/: No such file or directory' (reproduced and A/B-verified in docker on 4ed29b4). - bump LIBICSNEO_VERSION to current master (4ed29b4) - configure with -G Ninja on Linux/macOS; add ninja to build requires - share ICSPB_BOOTSTRAP_DIR across cibuildwheel builds so protobuf compiles once per arch, not once per python (vital under QEMU aarch64) - macOS: pass OSX arch/deployment target via environment so icspb's nested protobuf bootstrap builds universal2 instead of arm64-only Verified locally: cp312-manylinux_x86_64 wheel builds end-to-end in docker; libicsneolegacy.so links icspb descriptors; wheel passes check-wheel-contents. Co-Authored-By: Claude Fable 5 * Override cached CMAKE_MAKE_PROGRAM with the current build env's ninja cibuildwheel deletes each python's isolated build env, but the macOS libicsneo build dir is reused across pythons; CMake cached the previous env's ninja path and cp311+ configures failed with 'no such file or directory'. Reproduced the stale-cache mechanism in docker and verified that passing -DCMAKE_MAKE_PROGRAM= at configure fixes the reconfigure. (Ubuntu's failure in the same run was fail-fast collateral; Windows 'failure' was a cancelled job with every step green.) Co-Authored-By: Claude Fable 5 * Bump libicsneo to master 0dd8dbf: header synced to 3.26.3.9 Upstream's vendored icsnVC40.h is now byte-identical to this repo's (verified), closing the Linux/macOS ABI gap for the grown/new device settings structs (Galaxy2 1204, Comet3 918, Gigastar2 2400, GLOBAL_SETTINGS 2406). Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- build_libicsneo.py | 53 +++++++++++++++++++++++++++++++++++++++------- pyproject.toml | 3 +++ 2 files changed, 48 insertions(+), 8 deletions(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 13b1fc6f2..93d7b16a4 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -14,19 +14,28 @@ LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" -# NOTE: this pin's vendored icsnVC40.h predates Vspy 3.26.3.9 -# (SRADGalaxy2Settings 840 vs 1204, no Comet3/Gigastar2), so Linux/macOS -# wheels lag the Windows ABI. Newer upstream doesn't help yet: master -# (4ed29b4, 2026-07-07) still has the old header AND adds a mandatory -# icspb protobuf dependency whose codegen fails on clean CI runners. -# Bump once upstream syncs the header and icspb builds. -LIBICSNEO_VERSION = "830fe1a" +# libicsneo master 2026-07-08; its vendored icsnVC40.h is byte-identical +# to include/ics/icsnVC40.h (Vspy 3.26.3.9), so Linux/macOS wheels match +# the Windows ABI. Keep the two headers in lockstep on future bumps. +# libicsneo requires icspb (protobuf) as of 2026: its codegen needs the +# Ninja generator (protobuf_generate never creates PROTOC_OUT_DIR; Make +# doesn't pre-create declared output dirs, Ninja does), and it bootstraps +# protobuf from source at configure time — see ICSPB_BOOTSTRAP_DIR below. +LIBICSNEO_VERSION = "0dd8dbf" LIBICSNEO_ROOT = f"{ROOT}/libicsneo/{LIBICSNEO_VERSION}" LIBICSNEO_SOURCE = f"{LIBICSNEO_ROOT}/source" LIBICSNEO_BUILD = f"{LIBICSNEO_ROOT}/build" LIBICSNEO_INSTALL = f"{LIBICSNEO_ROOT}/install" print(f"LIBICSNEO PATH: {LIBICSNEO_ROOT}") +# icspb bootstraps protobuf from source at configure time. Keep the +# bootstrap OUTSIDE the libicsneo build dir so it survives the per-python +# `git clean` in _build_libicsneo_linux and is reused across all +# cibuildwheel builds in a job (it self-partitions by -, +# so sharing one root across archs is safe). Building protobuf once per +# arch instead of once per python matters most under QEMU aarch64. +ICSPB_BOOTSTRAP_DIR = f"{ROOT}/icspb_bootstrap" + LIBPCAP_VERSION = "1.10.4" LIBPCAP_ROOT = f"{ROOT}/libpcap/{LIBPCAP_VERSION}" LIBPCAP_SOURCE = f"{LIBPCAP_ROOT}/source" @@ -102,6 +111,18 @@ def _build_libpcap(): subprocess.check_output(["make", "-j" + CPUS], cwd=LIBPCAP_BUILD) subprocess.check_output(["make", "install"], cwd=LIBPCAP_BUILD) +def _cmake_ninja_args(): + # pip's ninja lives inside each isolated build env, and cibuildwheel + # deletes that env between python versions. A reused CMake build dir + # caches the old (now dead) path in CMAKE_MAKE_PROGRAM and fails at + # the next configure, so always override with the current ninja. + ninja = shutil.which("ninja") + args = ["-G", "Ninja"] + if ninja: + args.append(f"-DCMAKE_MAKE_PROGRAM={ninja}") + return args + + def _build_libicsneo_linux(): print("Cleaning libicsneo...") subprocess.check_output(["git", "clean", "-xdf"], cwd="libicsneo") @@ -111,9 +132,13 @@ def _build_libicsneo_linux(): subprocess.check_output( [ "cmake", + # Ninja is required: icspb's protobuf_generate never creates its + # output dir, and only Ninja pre-creates declared output dirs. + *_cmake_ninja_args(), "-DCMAKE_BUILD_TYPE=Release", "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON", f"-DCMAKE_PREFIX_PATH={LIBUSB_INSTALL};{LIBPCAP_INSTALL}", + f"-DICSPB_BOOTSTRAP_DIR={ICSPB_BOOTSTRAP_DIR}", "-S", LIBICSNEO_SOURCE, "-B", LIBICSNEO_BUILD, "-Wno-dev", @@ -125,17 +150,29 @@ def _build_libicsneo_linux(): ) def _build_libicsneo_macos(): + env = os.environ.copy() + # Set as env vars (not only -D flags) so icspb's nested protobuf + # bootstrap — a separate cmake invocation via execute_process, which + # inherits the environment but not our -D cache entries — also builds + # universal2 static libs instead of arm64-only ones. + env["CMAKE_OSX_ARCHITECTURES"] = "arm64;x86_64" + env["CMAKE_OSX_DEPLOYMENT_TARGET"] = "10.13" subprocess.check_output( [ "cmake", + # Ninja is required: icspb's protobuf_generate never creates its + # output dir, and only Ninja pre-creates declared output dirs. + *_cmake_ninja_args(), "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64", "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON", "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13", f"-DCMAKE_PREFIX_PATH={LIBUSB_INSTALL};{LIBPCAP_INSTALL}", + f"-DICSPB_BOOTSTRAP_DIR={ICSPB_BOOTSTRAP_DIR}", "-S", LIBICSNEO_SOURCE, "-B", LIBICSNEO_BUILD - ] + ], + env=env, ) subprocess.check_output( diff --git a/pyproject.toml b/pyproject.toml index 9886c7760..faea49e51 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,9 @@ requires = [ "wheel", "dunamai", "pytest>=8.4.2", + # Puts the ninja executable on the isolated build env's PATH; required by + # build_libicsneo.py's `cmake -G Ninja` on Linux/macOS (see comments there). + "ninja", ]