From 9716ed5386bde209fdbecad7a427daec109e9339 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 22 Jul 2022 13:29:57 -0400 Subject: [PATCH 001/201] Updated to lastest 910 pre-release Signed-off-by: David Rebbe --- include/ics/icsnVC40.h | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 80ffea720..b0778aed1 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -41,7 +41,9 @@ typedef unsigned __int64 uint64_t; #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) || \ @@ -151,6 +153,7 @@ typedef unsigned __int64 uint64_t; #define NETID_ETHERNET3 524 #define NETID_ISM_LOGGER 525 #define NETID_CAN_SWITCH 526 +#define NETID_WBMS 532 /* Upper boundry of Network IDs */ #define NETID_MAX 100 @@ -293,6 +296,7 @@ typedef unsigned __int64 uint64_t; #define SPY_PROTOCOL_UDP 33 #define SPY_PROTOCOL_AUTOSAR 34 #define SPY_PROTOCOL_A2B 35 +#define SPY_PROTOCOL_WBMS 36 /* Bitmasks for StatusBitField member of icsSpyMessage */ #define SPY_STATUS_GLOBAL_ERR 0x01 @@ -408,6 +412,10 @@ typedef unsigned __int64 uint64_t; #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_NODE_DISCONNECTED 0x200000 +#define SPY_STATUS2_I2C_NODE_FAULT 0x400000 + /* CAN-FD Specific - check protocol before handling */ #define SPY_STATUS3_CANFD_ESI 0x01 #define SPY_STATUS3_CANFD_IDE 0x02 @@ -1342,6 +1350,21 @@ typedef struct _ExtendedResponseGeneric int32_t returnCode; } ExtendedResponseGeneric; +typedef struct _WILFunctionStatus +{ + uint8_t functionID; + uint8_t functionError; // command type we're responding to + uint8_t processing; + uint8_t calbackError; +} WILFunctionStatus; + +typedef struct _WILFunctionData +{ + uint8_t functionID; + uint8_t parameters[194]; + uint8_t resevered; +} WILFunctionData; + #define GET_SUPPORTED_FEATURES_COMMAND_VERSION (1) typedef struct { @@ -1399,7 +1422,6 @@ typedef struct _SExtSubCmdHdr uint16_t length; } SExtSubCmdHdr; #define SExtSubCmdHdr_SIZE 4 - #pragma pack(push, 1) struct _timestamp @@ -1467,6 +1489,8 @@ typedef struct _SExtSubCmdComm GetSupportedFeaturesResponse getSupportedFeatures; ExtendedResponseGeneric genericResponse; GPTPStatus gptpStatus; + WILFunctionStatus wilStatus; + WILFunctionData wilData; GetComponentVersions getComponentVersions; SoftwareUpdateCommand softwareUpdate; GetComponentVersionsResponse getComponentVersionsResponse; @@ -3806,6 +3830,7 @@ typedef union unsigned can_id:29; unsigned can_id_isExtended:1; uint16_t tcp_port; + unsigned manager_onboard_external : 1; unsigned reserved:18; }config; } SWILBridgeConfig; From 8cb38de07412239b67e0298d8795733f0b4ce0b0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 22 Jul 2022 13:31:20 -0400 Subject: [PATCH 002/201] Updated auto-gen files Signed-off-by: David Rebbe --- ics/hiddenimports.py | 2 + ics/structures/__init__.py | 2 + ics/structures/ics_device_status.py | 1 + ics/structures/s_ext_sub_cmd_comm.py | 4 + ics/structures/swil_bridge_config.py | 1 + ics/structures/wil_function_data.py | 18 +++ ics/structures/wil_function_status.py | 19 +++ icsnVC40.h.enums.json | 144 +++++++++++----------- icsnVC40.h.json | 104 +++++++++++++++- icsnVC40_processed.h | 169 +++++++++++++++----------- src/setup_module_auto_defines.cpp | 4 + 11 files changed, 323 insertions(+), 145 deletions(-) create mode 100644 ics/structures/wil_function_data.py create mode 100644 ics/structures/wil_function_status.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index 599211c4e..98042ed49 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -35,6 +35,8 @@ "ics.structures.start_dhcp_server_command", "ics.structures.stop_dhcp_server_command", "ics.structures.extended_response_generic", + "ics.structures.wil_function_status", + "ics.structures.wil_function_data", "ics.structures.get_supported_features_response", "ics.structures.version_report", "ics.structures.get_component_versions", diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index d89406e5c..a6a2e647d 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -35,6 +35,8 @@ "start_dhcp_server_command", "stop_dhcp_server_command", "extended_response_generic", + "wil_function_status", + "wil_function_data", "get_supported_features_response", "version_report", "get_component_versions", diff --git a/ics/structures/ics_device_status.py b/ics/structures/ics_device_status.py index 4aef03f76..112c09e96 100644 --- a/ics/structures/ics_device_status.py +++ b/ics/structures/ics_device_status.py @@ -15,6 +15,7 @@ class ics_device_status(ctypes.Union): + _pack_ = 4 _fields_ = [ ('fire2Status', icsFire2DeviceStatus), ('vcan4Status', icsVcan4DeviceStatus), diff --git a/ics/structures/s_ext_sub_cmd_comm.py b/ics/structures/s_ext_sub_cmd_comm.py index 3378900bd..7c64f4273 100644 --- a/ics/structures/s_ext_sub_cmd_comm.py +++ b/ics/structures/s_ext_sub_cmd_comm.py @@ -14,6 +14,8 @@ from ics.structures.software_update_command import * from ics.structures.start_dhcp_server_command import * from ics.structures.stop_dhcp_server_command import * +from ics.structures.wil_function_data import * +from ics.structures.wil_function_status import * class extension(ctypes.Union): @@ -27,6 +29,8 @@ class extension(ctypes.Union): ('getSupportedFeatures', GetSupportedFeaturesResponse), ('genericResponse', ExtendedResponseGeneric), ('gptpStatus', GPTPStatus), + ('wilStatus', WILFunctionStatus), + ('wilData', WILFunctionData), ('getComponentVersions', GetComponentVersions), ('softwareUpdate', SoftwareUpdateCommand), ('getComponentVersionsResponse', GetComponentVersionsResponse), diff --git a/ics/structures/swil_bridge_config.py b/ics/structures/swil_bridge_config.py index f8118b570..424a60ef9 100644 --- a/ics/structures/swil_bridge_config.py +++ b/ics/structures/swil_bridge_config.py @@ -10,6 +10,7 @@ class config(ctypes.Structure): ('can_id', ctypes.c_uint, 29), ('can_id_isExtended', ctypes.c_uint, 1), ('tcp_port', ctypes.c_uint16), + ('manager_onboard_external', ctypes.c_uint, 1), ('reserved', ctypes.c_uint, 18), ] diff --git a/ics/structures/wil_function_data.py b/ics/structures/wil_function_data.py new file mode 100644 index 000000000..eecb5b25a --- /dev/null +++ b/ics/structures/wil_function_data.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class wil_function_data(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('functionID', ctypes.c_uint8), + ('parameters', ctypes.c_uint8 * 194), + ('resevered', ctypes.c_uint8), + ] + + +_WILFunctionData = wil_function_data +WILFunctionData = wil_function_data + diff --git a/ics/structures/wil_function_status.py b/ics/structures/wil_function_status.py new file mode 100644 index 000000000..9304e5e91 --- /dev/null +++ b/ics/structures/wil_function_status.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class wil_function_status(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('functionID', ctypes.c_uint8), + ('functionError', ctypes.c_uint8), + ('processing', ctypes.c_uint8), + ('calbackError', ctypes.c_uint8), + ] + + +_WILFunctionStatus = wil_function_status +WILFunctionStatus = wil_function_status + diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index 97a7f7fec..cc44b313b 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -2665,7 +2665,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4600 ", + "name": "assert_line_4629 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2681,7 +2681,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4601 ", + "name": "assert_line_4630 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2697,7 +2697,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4602 ", + "name": "assert_line_4631 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2713,7 +2713,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4603 ", + "name": "assert_line_4632 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2729,7 +2729,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4604 ", + "name": "assert_line_4633 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2745,7 +2745,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4605 ", + "name": "assert_line_4634 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2761,7 +2761,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4606 ", + "name": "assert_line_4635 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2777,7 +2777,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4607 ", + "name": "assert_line_4636 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2793,7 +2793,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4608 ", + "name": "assert_line_4637 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2809,7 +2809,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4609 ", + "name": "assert_line_4638 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2825,7 +2825,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4610 ", + "name": "assert_line_4639 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2841,7 +2841,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4611 ", + "name": "assert_line_4640 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2857,7 +2857,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4612 ", + "name": "assert_line_4641 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2873,7 +2873,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4613 ", + "name": "assert_line_4642 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2889,7 +2889,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4614 ", + "name": "assert_line_4643 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2905,7 +2905,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4615 ", + "name": "assert_line_4644 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2921,7 +2921,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4616 ", + "name": "assert_line_4645 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2937,7 +2937,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4617 ", + "name": "assert_line_4646 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2953,7 +2953,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4618 ", + "name": "assert_line_4647 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2969,7 +2969,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4619 ", + "name": "assert_line_4648 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2985,7 +2985,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4620 ", + "name": "assert_line_4649 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3001,7 +3001,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4621 ", + "name": "assert_line_4650 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3017,7 +3017,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4622 ", + "name": "assert_line_4651 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3033,7 +3033,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4623 ", + "name": "assert_line_4652 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3049,7 +3049,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4624 ", + "name": "assert_line_4653 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3065,7 +3065,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4625 ", + "name": "assert_line_4654 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3081,7 +3081,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4626 ", + "name": "assert_line_4655 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3097,7 +3097,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4627 ", + "name": "assert_line_4656 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3113,7 +3113,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4628 ", + "name": "assert_line_4657 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3129,7 +3129,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4629 ", + "name": "assert_line_4658 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3145,7 +3145,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4630 ", + "name": "assert_line_4659 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3161,7 +3161,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4631 ", + "name": "assert_line_4660 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3177,7 +3177,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4632 ", + "name": "assert_line_4661 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3193,7 +3193,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4633 ", + "name": "assert_line_4662 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3209,7 +3209,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4634 ", + "name": "assert_line_4663 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3225,7 +3225,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4635 ", + "name": "assert_line_4664 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3241,7 +3241,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4636 ", + "name": "assert_line_4665 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3257,7 +3257,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4637 ", + "name": "assert_line_4666 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3273,7 +3273,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4638 ", + "name": "assert_line_4667 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3289,7 +3289,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4639 ", + "name": "assert_line_4668 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3305,7 +3305,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4640 ", + "name": "assert_line_4669 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3321,7 +3321,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4641 ", + "name": "assert_line_4670 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3337,7 +3337,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4642 ", + "name": "assert_line_4671 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3353,7 +3353,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4643 ", + "name": "assert_line_4672 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3369,7 +3369,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4644 ", + "name": "assert_line_4673 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3385,7 +3385,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4645 ", + "name": "assert_line_4674 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3401,7 +3401,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4646 ", + "name": "assert_line_4675 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3417,7 +3417,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4647 ", + "name": "assert_line_4676 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3433,7 +3433,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4648 ", + "name": "assert_line_4677 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3449,7 +3449,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4649 ", + "name": "assert_line_4678 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3465,7 +3465,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4650 ", + "name": "assert_line_4679 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3481,7 +3481,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4651 ", + "name": "assert_line_4680 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3497,7 +3497,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4652 ", + "name": "assert_line_4681 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3513,7 +3513,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4653 ", + "name": "assert_line_4682 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3529,7 +3529,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4654 ", + "name": "assert_line_4683 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3545,7 +3545,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4655 ", + "name": "assert_line_4684 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3561,7 +3561,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4656 ", + "name": "assert_line_4685 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3577,7 +3577,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4657 ", + "name": "assert_line_4686 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3593,7 +3593,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4658 ", + "name": "assert_line_4687 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3609,7 +3609,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4659 ", + "name": "assert_line_4688 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3625,7 +3625,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4660 ", + "name": "assert_line_4689 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3641,7 +3641,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4661 ", + "name": "assert_line_4690 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3657,7 +3657,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4662 ", + "name": "assert_line_4691 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3673,7 +3673,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4663 ", + "name": "assert_line_4692 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3689,7 +3689,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4664 ", + "name": "assert_line_4693 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3705,7 +3705,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4665 ", + "name": "assert_line_4694 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3721,7 +3721,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4666 ", + "name": "assert_line_4695 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3737,7 +3737,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4667 ", + "name": "assert_line_4696 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3753,7 +3753,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4668 ", + "name": "assert_line_4697 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3769,7 +3769,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4669 ", + "name": "assert_line_4698 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3785,7 +3785,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4670 ", + "name": "assert_line_4699 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3801,7 +3801,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4671 ", + "name": "assert_line_4700 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, diff --git a/icsnVC40.h.json b/icsnVC40.h.json index ad9ef3128..0fb82ea77 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -3353,6 +3353,84 @@ } ] }, + { + "names": [ + "_WILFunctionStatus", + "WILFunctionStatus" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "functionID", + "data_type": "uint8_t", + "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": "processing", + "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 + } + ] + }, + { + "names": [ + "_WILFunctionData", + "WILFunctionData" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "functionID", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "parameters", + "data_type": "uint8_t", + "array_length": 194, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "resevered", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [ "GetSupportedFeaturesResponse" @@ -3937,6 +4015,22 @@ "is_enum": false, "enum_value": null }, + { + "name": "wilStatus", + "data_type": "WILFunctionStatus", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "wilData", + "data_type": "WILFunctionData", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "getComponentVersions", "data_type": "GetComponentVersions", @@ -15331,6 +15425,14 @@ "is_enum": false, "enum_value": null }, + { + "name": "manager_onboard_external", + "data_type": "unsigned", + "array_length": 0, + "bitfield_size": 1, + "is_enum": false, + "enum_value": null + }, { "name": "reserved", "data_type": "unsigned", @@ -18709,7 +18811,7 @@ "icsDeviceStatus" ], "data_type": "Union", - "packing": 0, + "packing": 4, "is_anonymous": false, "members": [ { diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index 775f1d568..2e15d84fc 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -58,6 +58,8 @@ typedef unsigned long long uint_fast64_t; typedef long long intmax_t; typedef unsigned long long uintmax_t; #pragma warning(pop) + +#pragma warning(disable : 4200) typedef struct SExtendedDataFlashHeader { uint16_t version; @@ -855,6 +857,21 @@ typedef struct _ExtendedResponseGeneric int32_t returnCode; } ExtendedResponseGeneric; +typedef struct _WILFunctionStatus +{ + uint8_t functionID; + uint8_t functionError; + uint8_t processing; + uint8_t calbackError; +} WILFunctionStatus; + +typedef struct _WILFunctionData +{ + uint8_t functionID; + uint8_t parameters[194]; + uint8_t resevered; +} WILFunctionData; + typedef struct { uint16_t cmdVersion; @@ -977,6 +994,8 @@ typedef struct _SExtSubCmdComm GetSupportedFeaturesResponse getSupportedFeatures; ExtendedResponseGeneric genericResponse; GPTPStatus gptpStatus; + WILFunctionStatus wilStatus; + WILFunctionData wilData; GetComponentVersions getComponentVersions; SoftwareUpdateCommand softwareUpdate; GetComponentVersionsResponse getComponentVersionsResponse; @@ -3116,6 +3135,7 @@ typedef union unsigned can_id : 29; unsigned can_id_isExtended : 1; uint16_t tcp_port; + unsigned manager_onboard_external : 1; unsigned reserved : 18; } config; } SWILBridgeConfig; @@ -3741,6 +3761,9 @@ typedef struct ethernetNetworkStatus_t ethernetStatus; } icsRadBMSDeviceStatus; +#pragma pack(push) +#pragma pack(4) + typedef union { icsFire2DeviceStatus fire2Status; @@ -3755,6 +3778,8 @@ typedef union icsRadBMSDeviceStatus radBMSStatus; } icsDeviceStatus; +#pragma pack(pop) + typedef struct { char szName[128]; @@ -3833,360 +3858,360 @@ typedef struct SPhyRegPkt } PhyRegPkt_t; enum { - assert_line_4600 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_4629 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_4601 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_4630 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_4602 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_4631 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_4603 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_4632 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_4604 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_4633 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_4605 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_4634 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_4606 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_4635 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_4607 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_4636 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_4608 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_4637 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_4609 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_4638 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_4610 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_4639 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_4611 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_4640 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_4612 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_4641 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_4613 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_4642 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_4614 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_4643 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_4615 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_4644 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_4616 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_4645 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_4617 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_4646 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_4618 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_4647 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_4619 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_4648 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_4620 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_4649 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_4621 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_4650 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_4622 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_4651 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_4623 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_4652 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_4624 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_4653 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_4625 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_4654 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_4626 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_4655 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_4627 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_4656 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_4628 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_4657 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_4629 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_4658 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_4630 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_4659 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_4631 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_4660 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_4632 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_4661 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_4633 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_4662 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_4634 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) + assert_line_4663 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) }; ; enum { - assert_line_4635 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) + assert_line_4664 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) }; ; enum { - assert_line_4636 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_4665 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_4637 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_4666 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_4638 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) + assert_line_4667 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) }; ; enum { - assert_line_4639 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_4668 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_4640 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_4669 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_4641 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_4670 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_4642 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_4671 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_4643 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_4672 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_4644 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_4673 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_4645 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_4674 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_4646 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_4675 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_4647 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_4676 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_4648 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_4677 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_4649 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) + assert_line_4678 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) }; ; enum { - assert_line_4650 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) + assert_line_4679 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) }; ; enum { - assert_line_4651 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) + assert_line_4680 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) }; ; enum { - assert_line_4652 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) + assert_line_4681 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) }; ; enum { - assert_line_4653 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_4682 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_4654 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_4683 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_4655 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_4684 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_4656 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_4685 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_4657 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 262)) + assert_line_4686 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 262)) }; ; enum { - assert_line_4658 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_4687 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_4659 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_4688 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_4660 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_4689 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_4661 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_4690 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_4662 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_4691 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_4663 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_4692 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_4664 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_4693 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_4665 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) + assert_line_4694 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) }; ; enum { - assert_line_4666 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_4695 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_4667 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 280)) + assert_line_4696 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 280)) }; ; enum { - assert_line_4668 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_4697 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_4669 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) + assert_line_4698 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) }; ; enum { - assert_line_4670 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_4699 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_4671 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) + assert_line_4700 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) }; ; diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index a041013c4..d4bc63b46 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -108,6 +108,7 @@ int setup_module_auto_defines(PyObject * module) 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_MAX); result += PyModule_AddIntMacro(module, NETID_INVALID); result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); @@ -232,6 +233,7 @@ int setup_module_auto_defines(PyObject * module) 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_STATUS_GLOBAL_ERR); result += PyModule_AddIntMacro(module, SPY_STATUS_TX_MSG); result += PyModule_AddIntMacro(module, SPY_STATUS_XTD_FRAME); @@ -328,6 +330,8 @@ int setup_module_auto_defines(PyObject * module) 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_NODE_DISCONNECTED); + result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_NODE_FAULT); result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_ESI); result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_IDE); result += PyModule_AddIntMacro(module, SPY_STATUS3_CANFD_RTR); From 50491fe423226c8c4ba89d89f21fb09d7c785b9a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 22 Jul 2022 13:32:00 -0400 Subject: [PATCH 003/201] Updated version to 910.999 Signed-off-by: David Rebbe --- doc/source/conf.py | 2 +- setup.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 67ed448f5..ef29b5fff 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = '909.8' +version = '910.999' # The full version, including alpha/beta/rc tags. release = version diff --git a/setup.py b/setup.py index 366cf7bd2..090e1141e 100644 --- a/setup.py +++ b/setup.py @@ -8,8 +8,8 @@ import unittest import shutil -MAJOR_VERSION = 909 -MINOR_VERSION = 8 +MAJOR_VERSION = 910 +MINOR_VERSION = 999 POST_VERSION = None if POST_VERSION: From a792468fed6f74d2397ee11f30e2d9a6c8d70578 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 12 Aug 2022 17:14:52 -0400 Subject: [PATCH 004/201] Updated icsnVC40.h to latest. Signed-off-by: David Rebbe --- ics/hiddenimports.py | 1 + ics/structures/__init__.py | 1 + ics/structures/device_feature.py | 34 ++++ icsnVC40.h.enums.json | 298 ++++++++++++++++++++++-------- icsnVC40_processed.h | 166 +++++++++-------- include/ics/icsnVC40.h | 26 +++ src/setup_module_auto_defines.cpp | 22 +++ 7 files changed, 404 insertions(+), 144 deletions(-) create mode 100644 ics/structures/device_feature.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index 98042ed49..55a2d92ed 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -156,5 +156,6 @@ "ics.structures.e_plasma_ion_vnet_channel_t", "ics.structures.s_phy_reg_pkt_status", "ics.structures.s_phy_reg_pkt_rw", + "ics.structures.device_feature", ] diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index a6a2e647d..ee62bafcf 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -156,4 +156,5 @@ "e_plasma_ion_vnet_channel_t", "s_phy_reg_pkt_status", "s_phy_reg_pkt_rw", + "device_feature", ] diff --git a/ics/structures/device_feature.py b/ics/structures/device_feature.py new file mode 100644 index 000000000..ba862d7da --- /dev/null +++ b/ics/structures/device_feature.py @@ -0,0 +1,34 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class device_feature(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + networkDWCAN01 = 0 + networkDWCAN02 = enum.auto() + networkDWCAN03 = enum.auto() + networkDWCAN04 = enum.auto() + networkDWCAN05 = enum.auto() + networkDWCAN06 = enum.auto() + networkDWCAN07 = enum.auto() + networkDWCAN08 = enum.auto() + networkTerminationDWCAN01 = enum.auto() + networkTerminationDWCAN02 = enum.auto() + networkTerminationDWCAN03 = enum.auto() + networkTerminationDWCAN04 = enum.auto() + networkTerminationDWCAN05 = enum.auto() + networkTerminationDWCAN06 = enum.auto() + networkTerminationDWCAN07 = enum.auto() + networkTerminationDWCAN08 = enum.auto() + NUM_VALID_DEVICE_FEATURES = enum.auto() + supportedFeatureMax = 65535 + + +DeviceFeature = device_feature + diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index cc44b313b..ebd6eed0b 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -2658,6 +2658,160 @@ } ] }, + { + "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": "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": [], "data_type": "Enum", @@ -2665,7 +2819,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4629 ", + "name": "assert_line_4655 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2681,7 +2835,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4630 ", + "name": "assert_line_4656 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2697,7 +2851,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4631 ", + "name": "assert_line_4657 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2713,7 +2867,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4632 ", + "name": "assert_line_4658 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2729,7 +2883,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4633 ", + "name": "assert_line_4659 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2745,7 +2899,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4634 ", + "name": "assert_line_4660 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2761,7 +2915,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4635 ", + "name": "assert_line_4661 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2777,7 +2931,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4636 ", + "name": "assert_line_4662 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2793,7 +2947,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4637 ", + "name": "assert_line_4663 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2809,7 +2963,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4638 ", + "name": "assert_line_4664 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2825,7 +2979,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4639 ", + "name": "assert_line_4665 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2841,7 +2995,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4640 ", + "name": "assert_line_4666 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2857,7 +3011,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4641 ", + "name": "assert_line_4667 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2873,7 +3027,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4642 ", + "name": "assert_line_4668 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2889,7 +3043,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4643 ", + "name": "assert_line_4669 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2905,7 +3059,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4644 ", + "name": "assert_line_4670 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2921,7 +3075,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4645 ", + "name": "assert_line_4671 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2937,7 +3091,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4646 ", + "name": "assert_line_4672 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2953,7 +3107,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4647 ", + "name": "assert_line_4673 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2969,7 +3123,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4648 ", + "name": "assert_line_4674 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2985,7 +3139,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4649 ", + "name": "assert_line_4675 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3001,7 +3155,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4650 ", + "name": "assert_line_4676 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3017,7 +3171,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4651 ", + "name": "assert_line_4677 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3033,7 +3187,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4652 ", + "name": "assert_line_4678 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3049,7 +3203,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4653 ", + "name": "assert_line_4679 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3065,7 +3219,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4654 ", + "name": "assert_line_4680 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3081,7 +3235,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4655 ", + "name": "assert_line_4681 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3097,7 +3251,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4656 ", + "name": "assert_line_4682 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3113,7 +3267,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4657 ", + "name": "assert_line_4683 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3129,7 +3283,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4658 ", + "name": "assert_line_4684 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3145,7 +3299,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4659 ", + "name": "assert_line_4685 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3161,7 +3315,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4660 ", + "name": "assert_line_4686 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3177,7 +3331,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4661 ", + "name": "assert_line_4687 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3193,7 +3347,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4662 ", + "name": "assert_line_4688 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3209,7 +3363,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4663 ", + "name": "assert_line_4689 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3225,7 +3379,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4664 ", + "name": "assert_line_4690 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3241,7 +3395,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4665 ", + "name": "assert_line_4691 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3257,7 +3411,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4666 ", + "name": "assert_line_4692 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3273,7 +3427,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4667 ", + "name": "assert_line_4693 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3289,7 +3443,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4668 ", + "name": "assert_line_4694 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3305,7 +3459,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4669 ", + "name": "assert_line_4695 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3321,7 +3475,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4670 ", + "name": "assert_line_4696 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3337,7 +3491,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4671 ", + "name": "assert_line_4697 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3353,7 +3507,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4672 ", + "name": "assert_line_4698 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3369,7 +3523,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4673 ", + "name": "assert_line_4699 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3385,7 +3539,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4674 ", + "name": "assert_line_4700 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3401,7 +3555,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4675 ", + "name": "assert_line_4701 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3417,7 +3571,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4676 ", + "name": "assert_line_4702 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3433,7 +3587,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4677 ", + "name": "assert_line_4703 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3449,7 +3603,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4678 ", + "name": "assert_line_4704 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3465,7 +3619,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4679 ", + "name": "assert_line_4705 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3481,7 +3635,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4680 ", + "name": "assert_line_4706 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3497,7 +3651,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4681 ", + "name": "assert_line_4707 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3513,7 +3667,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4682 ", + "name": "assert_line_4708 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3529,7 +3683,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4683 ", + "name": "assert_line_4709 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3545,7 +3699,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4684 ", + "name": "assert_line_4710 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3561,7 +3715,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4685 ", + "name": "assert_line_4711 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3577,7 +3731,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4686 ", + "name": "assert_line_4712 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3593,7 +3747,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4687 ", + "name": "assert_line_4713 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3609,7 +3763,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4688 ", + "name": "assert_line_4714 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3625,7 +3779,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4689 ", + "name": "assert_line_4715 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3641,7 +3795,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4690 ", + "name": "assert_line_4716 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3657,7 +3811,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4691 ", + "name": "assert_line_4717 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3673,7 +3827,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4692 ", + "name": "assert_line_4718 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3689,7 +3843,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4693 ", + "name": "assert_line_4719 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3705,7 +3859,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4694 ", + "name": "assert_line_4720 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3721,7 +3875,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4695 ", + "name": "assert_line_4721 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3737,7 +3891,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4696 ", + "name": "assert_line_4722 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3753,7 +3907,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4697 ", + "name": "assert_line_4723 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3769,7 +3923,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4698 ", + "name": "assert_line_4724 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3785,7 +3939,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4699 ", + "name": "assert_line_4725 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3801,7 +3955,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4700 ", + "name": "assert_line_4726 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index 2e15d84fc..5b8a04a2f 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -3856,362 +3856,384 @@ typedef struct SPhyRegPkt PhyRegPktClause45Mess_t clause45; }; } PhyRegPkt_t; + +typedef enum +{ + networkDWCAN01, + networkDWCAN02, + networkDWCAN03, + networkDWCAN04, + networkDWCAN05, + networkDWCAN06, + networkDWCAN07, + networkDWCAN08, + networkTerminationDWCAN01, + networkTerminationDWCAN02, + networkTerminationDWCAN03, + networkTerminationDWCAN04, + networkTerminationDWCAN05, + networkTerminationDWCAN06, + networkTerminationDWCAN07, + networkTerminationDWCAN08, + NUM_VALID_DEVICE_FEATURES, + supportedFeatureMax = 0xFFFF, +} DeviceFeature; enum { - assert_line_4629 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_4655 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_4630 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_4656 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_4631 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_4657 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_4632 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_4658 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_4633 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_4659 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_4634 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_4660 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_4635 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_4661 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_4636 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_4662 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_4637 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_4663 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_4638 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_4664 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_4639 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_4665 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_4640 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_4666 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_4641 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_4667 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_4642 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_4668 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_4643 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_4669 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_4644 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_4670 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_4645 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_4671 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_4646 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_4672 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_4647 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_4673 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_4648 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_4674 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_4649 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_4675 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_4650 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_4676 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_4651 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_4677 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_4652 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_4678 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_4653 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_4679 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_4654 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_4680 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_4655 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_4681 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_4656 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_4682 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_4657 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_4683 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_4658 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_4684 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_4659 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_4685 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_4660 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_4686 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_4661 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_4687 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_4662 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_4688 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_4663 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) + assert_line_4689 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) }; ; enum { - assert_line_4664 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) + assert_line_4690 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) }; ; enum { - assert_line_4665 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_4691 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_4666 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_4692 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_4667 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) + assert_line_4693 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) }; ; enum { - assert_line_4668 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_4694 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_4669 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_4695 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_4670 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_4696 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_4671 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_4697 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_4672 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_4698 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_4673 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_4699 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_4674 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_4700 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_4675 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_4701 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_4676 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_4702 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_4677 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_4703 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_4678 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) + assert_line_4704 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) }; ; enum { - assert_line_4679 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) + assert_line_4705 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) }; ; enum { - assert_line_4680 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) + assert_line_4706 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) }; ; enum { - assert_line_4681 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) + assert_line_4707 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) }; ; enum { - assert_line_4682 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_4708 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_4683 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_4709 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_4684 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_4710 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_4685 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_4711 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_4686 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 262)) + assert_line_4712 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 262)) }; ; enum { - assert_line_4687 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_4713 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_4688 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_4714 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_4689 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_4715 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_4690 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_4716 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_4691 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_4717 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_4692 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_4718 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_4693 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_4719 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_4694 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) + assert_line_4720 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) }; ; enum { - assert_line_4695 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_4721 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_4696 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 280)) + assert_line_4722 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 280)) }; ; enum { - assert_line_4697 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_4723 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_4698 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) + assert_line_4724 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) }; ; enum { - assert_line_4699 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_4725 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_4700 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) + assert_line_4726 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) }; ; diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index b0778aed1..7b56a148c 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -4608,6 +4608,32 @@ typedef struct SPhyRegPkt }; }PhyRegPkt_t; +typedef enum +{ + networkDWCAN01, + networkDWCAN02, + networkDWCAN03, + networkDWCAN04, + networkDWCAN05, + networkDWCAN06, + networkDWCAN07, + networkDWCAN08, + networkTerminationDWCAN01, + networkTerminationDWCAN02, + networkTerminationDWCAN03, + networkTerminationDWCAN04, + networkTerminationDWCAN05, + networkTerminationDWCAN06, + networkTerminationDWCAN07, + networkTerminationDWCAN08, + NUM_VALID_DEVICE_FEATURES, + supportedFeatureMax = 0xFFFF, +} DeviceFeature; +// 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) + #ifndef INTREPID_NO_CHECK_STRUCT_SIZE diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index d4bc63b46..15faad09a 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -925,6 +925,28 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, 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, NUM_VALID_DEVICE_FEATURES); + result += PyModule_AddIntMacro(module, supportedFeatureMax); + // end of enum - } DeviceFeature; + + result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); // enum // end of enum - } From e7f60121c00ab35c3a4e237b46a1915822786ccc Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 12 Aug 2022 17:15:48 -0400 Subject: [PATCH 005/201] Added 5 functions. All untested. -is_device_feature_supported -get_pcb_serial_number -set_led_property -start_dhcp_server -stop_dhcp_server Signed-off-by: David Rebbe --- include/methods.h | 103 +++++++++++++++++++++++++++++- src/methods.cpp | 155 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 253 insertions(+), 5 deletions(-) diff --git a/include/methods.h b/include/methods.h index d8ae81937..482b08232 100644 --- a/include/methods.h +++ b/include/methods.h @@ -82,7 +82,11 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args); PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args); PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args); PyObject* meth_enable_doip_line(PyObject* self, PyObject* args); //icsneoEnableDOIPLine -//PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args); // icsneoIsDeviceFeatureSupported +PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args); // icsneoIsDeviceFeatureSupported +PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args); +PyObject* meth_set_led_property(PyObject* self, PyObject* args); +PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); +PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); #ifdef _cplusplus } @@ -1391,6 +1395,96 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args); //icsneoEnableD "\t>>> supported = ics.is_device_feature_supported(d, DeviceFeature.networkTerminationDWCAN01)\n" \ "\t>>> \n" + +#define _DOC_GET_PCB_SERIAL_NUMBER \ + MODULE_NAME ".get_pcb_serial_number(device)\n" \ + "\n" \ + "Gets the unique PCB serial number of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`str`): PCB Serial Number\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> pcb_sn = ics.get_pcb_serial_number(d)\n" \ + "\t>>> \n" + +#define _DOC_SET_LED_PROPERTY \ + MODULE_NAME ".set_led_property(device, led, prop, value)\n" \ + "\n" \ + "Sets the LED property on the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.set_led_property(d, TODO, TODO, TODO)\n" \ + "\t>>> \n" + +#define _DOC_START_DHCP_SERVER \ + MODULE_NAME ".start_dhcp_server(device, network_id, device_ip_address, subnet_mask, gateway, start_address, end_address, overwrite_dhcp_settings, lease_time, reserved)\n" \ + "\n" \ + "Starts a DHCP Server.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tgateway (:class:`str`): Gateway\n\n" \ + "\tstart_address (:class:`str`): Start Address\n\n" \ + "\tend_address (:class:`str`): End Address\n\n" \ + "\toverwrite_dhcp_settings (:class:`bool`): Overwrite DHCP Settings\n\n" \ + "\tlease_time (:class:`int`): Lease time\n\n" \ + "\treserved (:class:`int`): (Optional) Reserved, set to 0\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.start_dhcp_server(d, TODO)\n" \ + "\t>>> \n" + +#define _DOC_STOP_DHCP_SERVER \ + MODULE_NAME ".stop_dhcp_server(device, network_id)\n" \ + "\n" \ + "Stops the DHCP Server\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tnetwork_id (:class:`int`): NetworkID\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.stop_dhcp_server(d, TODO)\n" \ + "\t>>> \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), @@ -1470,8 +1564,11 @@ static PyMethodDef IcsMethods[] = { _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), - // not in official builds yet... - //_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("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), {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, diff --git a/src/methods.cpp b/src/methods.cpp index ed2921853..655a0ec81 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3480,7 +3480,6 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "This is a bug!"); } -#if 0 PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) { PyObject* obj = NULL; @@ -3516,4 +3515,156 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) } return set_ics_exception(exception_runtime_error(), "This is a bug!"); } -#endif \ No newline at end of file + +PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + if (!PyArg_ParseTuple(args, arg_parse("O", __FUNCTION__), &obj)) { + return NULL; + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + char pcbsn[32] = {0}; + size_t length = 0; + ice::Function icsneoGetPCBSerialNumber(lib, "icsneoGetPCBSerialNumber"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoGetPCBSerialNumber() Failed"); + } + Py_END_ALLOW_THREADS + return Py_BuildValue("s", pcbsn); + } + 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) +{ + PyObject* obj = NULL; + unsigned int led = 0; + unsigned int prop = 0; + unsigned int value = 0; + if (!PyArg_ParseTuple(args, arg_parse("OIII", __FUNCTION__), &obj, &led, &prop, &value)) { + return NULL; + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + unsigned int supported = 0; + ice::Function icsneoSetLedProperty(lib, "icsneoSetLedProperty"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoSetLedProperty(handle, led, prop, value)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoSetLedProperty() Failed"); + } + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + } + 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) +{ + PyObject* obj = NULL; + unsigned int NetworkID = 0; + const char* pDeviceIPAddress = NULL; + const char* pSubnetmask = NULL; + const char* pGateway = NULL; + const char* pStartaddress = NULL; + const char* pEndaddress = NULL; + bool bOverwriteDHCPSettings = false; + uint32_t leaseTime; + uint8_t reserved = 0; + if (!PyArg_ParseTuple(args, arg_parse("OIsssssbI|b", __FUNCTION__), &obj, &NetworkID, &pDeviceIPAddress, &pSubnetmask, &pGateway, &pStartaddress, &pEndaddress, &bOverwriteDHCPSettings, &leaseTime, &reserved)) { + return NULL; + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + unsigned int supported = 0; + // int _stdcall icsneoStartDHCPServer(void* hObject, unsigned int NetworkID, const char* pDeviceIPAddress,const char* pSubnetmask, + // const char* pGateway,const char* pStartaddress, + // const char* pEndaddress,bool bOverwriteDHCPSettings,uint32_t leaseTime,uint8_t reserved) + ice::Function icsneoStartDHCPServer(lib, "icsneoStartDHCPServer"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoStartDHCPServer(handle, NetworkID, pDeviceIPAddress, pSubnetmask, pGateway, pStartaddress, pEndaddress, bOverwriteDHCPSettings, leaseTime, reserved)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoStartDHCPServer() Failed"); + } + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + } + 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) +{ + PyObject* obj = NULL; + unsigned int NetworkID = 0; + if (!PyArg_ParseTuple(args, arg_parse("OI", __FUNCTION__), &obj, &NetworkID)) { + return NULL; + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + unsigned int supported = 0; + ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoStopDHCPServer(handle, NetworkID)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoStopDHCPServer() Failed"); + } + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + } + 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!"); +} From c5c0f8b7d068418a9d6fffcb063e66049b76a471 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 12 Aug 2022 17:23:39 -0400 Subject: [PATCH 006/201] Fixed a typo Signed-off-by: David Rebbe --- src/methods.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 655a0ec81..a5cae3add 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3519,7 +3519,7 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) { PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("O", __FUNCTION__), &obj)) { + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { @@ -3534,7 +3534,7 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } char pcbsn[32] = {0}; - size_t length = 0; + size_t length = sizeof pcbsn / sizeof pcbsn[0]; ice::Function icsneoGetPCBSerialNumber(lib, "icsneoGetPCBSerialNumber"); Py_BEGIN_ALLOW_THREADS if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { @@ -3557,7 +3557,7 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) unsigned int led = 0; unsigned int prop = 0; unsigned int value = 0; - if (!PyArg_ParseTuple(args, arg_parse("OIII", __FUNCTION__), &obj, &led, &prop, &value)) { + if (!PyArg_ParseTuple(args, arg_parse("OIII:", __FUNCTION__), &obj, &led, &prop, &value)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { @@ -3600,7 +3600,7 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) bool bOverwriteDHCPSettings = false; uint32_t leaseTime; uint8_t reserved = 0; - if (!PyArg_ParseTuple(args, arg_parse("OIsssssbI|b", __FUNCTION__), &obj, &NetworkID, &pDeviceIPAddress, &pSubnetmask, &pGateway, &pStartaddress, &pEndaddress, &bOverwriteDHCPSettings, &leaseTime, &reserved)) { + if (!PyArg_ParseTuple(args, arg_parse("OIsssssbI|b:", __FUNCTION__), &obj, &NetworkID, &pDeviceIPAddress, &pSubnetmask, &pGateway, &pStartaddress, &pEndaddress, &bOverwriteDHCPSettings, &leaseTime, &reserved)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { @@ -3638,7 +3638,7 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) { PyObject* obj = NULL; unsigned int NetworkID = 0; - if (!PyArg_ParseTuple(args, arg_parse("OI", __FUNCTION__), &obj, &NetworkID)) { + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &NetworkID)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { From a38901978ef2bf563bc75dc88b379753f0ce2a31 Mon Sep 17 00:00:00 2001 From: Bryant Jones <62441271+bmjones2@users.noreply.github.com> Date: Wed, 31 Aug 2022 12:38:16 -0400 Subject: [PATCH 007/201] Fix length for Ethernet and A2B data when setting ExtraDataPtr (#128) * Fix length for Ethernet and A2B data when setting ExtraDataPtr * Fix an issue where RX packets of exactly 256 bytes would not be received correctly --- include/object_spy_message.h | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/include/object_spy_message.h b/include/object_spy_message.h index e62dc39af..89c189f5c 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -190,15 +190,15 @@ static PyObject* spy_message_object_getattr(PyObject *o, PyObject *attr_name) if (obj->msg.Protocol == SPY_PROTOCOL_ETHERNET && obj->msg.ExtraDataPtr != NULL) { extra_data_ptr_enabled = true; } - if (extra_data_ptr_enabled && obj->msg.NumberBytesData && obj->msg.ExtraDataPtr) { - 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) { - actual_size = (obj->msg.NumberBytesHeader << 8) | obj->msg.NumberBytesData; - } - else { - actual_size = obj->msg.NumberBytesData; - } + 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) { + 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])); @@ -293,12 +293,16 @@ static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *val Py_ssize_t length = PyObject_Length(value); if (obj->msg.ExtraDataPtr != NULL) delete[] obj->msg.ExtraDataPtr; - obj->msg.ExtraDataPtr = new unsigned char[PyObject_Length(value)]; - obj->msg.NumberBytesData = PyObject_Length(value); + 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.NumberBytesHeader = 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 < PyObject_Length(value); ++i) { + for (int i=0; i < length; ++i) { PyObject* data = PyTuple_GetItem(value, i); if (!data && !PyLong_Check(data)) { ExtraDataPtr[i] = (unsigned char)0; From 007a210e2e04e7e8ee13317d202c0a1b24ed9e56 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Wed, 31 Aug 2022 22:12:57 +0530 Subject: [PATCH 008/201] Fix some warnings in mingw (#114) * Fix inappropriate usage of NULL This fixes warnings like: include/object_spy_message.h:76:1: warning: converting to non-pointer type 'long long int' from NULL [-Wconversion-null] * Check _MSC_VER for MSVC style pragma directives This fixes warnings like: include/dll.h:6: warning: ignoring '#pragma warning ' [-Wunknown-pragmas] * setup: Enable gcc style compiler flag in mingw MSC is present in sys.version if the python is compiled with MSVC. With mingw, sys.version contains either gcc or clang. --- include/dll.h | 8 ++++++-- include/object_spy_message.h | 14 +++++++------- setup.py | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/include/dll.h b/include/dll.h index 85b544028..8e536698f 100644 --- a/include/dll.h +++ b/include/dll.h @@ -1,13 +1,17 @@ #ifndef _DLL_H_ #define _DLL_H_ - - +#ifdef _MSC_VER #pragma warning( disable : 4290 ) +#endif + #include "ice/ice_library.h" #include "ice/ice_exception.h" #include "ice/ice_function.h" + +#ifdef _MSC_VER #pragma warning( default : 4290 ) +#endif #ifdef _cplusplus extern "C" { diff --git a/include/object_spy_message.h b/include/object_spy_message.h index 89c189f5c..ad4fe2514 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -65,14 +65,14 @@ static PyMemberDef spy_message_object_members[] = { { "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, NULL, 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, NULL, 0, "" }, + { "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, 0 }, + { NULL, 0, 0, 0, NULL }, }; static PyMemberDef spy_message_j1850_object_members[] = { @@ -93,15 +93,15 @@ static PyMemberDef spy_message_j1850_object_members[] = { { "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, NULL, 0, "" }, - { "Data", T_OBJECT_EX, NULL, 0, "" }, + { "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, NULL, 0, "" }, + { "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, 0 }, + { NULL, 0, 0, 0, NULL }, }; diff --git a/setup.py b/setup.py index 090e1141e..580c57a66 100644 --- a/setup.py +++ b/setup.py @@ -76,7 +76,7 @@ def run(self): source_files.append(os.path.join(root, file)) # Set compiler flags here -if 'LINUX' in platform.system().upper(): +if 'LINUX' in platform.system().upper() or "MSC" not in sys.version: compile_args = [ '-fpermissive', '-Wno-unused-variable', From 20c53f8cfceb570f82b5103b434e70534d9af21e Mon Sep 17 00:00:00 2001 From: Francesco Valla <99249743+fvalla-MTA@users.noreply.github.com> Date: Mon, 3 Oct 2022 13:32:02 +0200 Subject: [PATCH 009/201] Linux: load libicsneolegacy by default (#133) Switch to libicsneo legacy library by default, as already done for MacOS. Update documentation accordingly. --- doc/source/header.rst | 13 +++++-------- src/dll.cpp | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/doc/source/header.rst b/doc/source/header.rst index f6b296aba..ee9f201f5 100644 --- a/doc/source/header.rst +++ b/doc/source/header.rst @@ -170,10 +170,6 @@ Installation on Linux ============================================================ python_ics does not provide binaries for linux distributions so we will have to compile from source. This can be easily achieved by utilzing Python's PIP. First we need to make sure we have some base packages installed. -libicsneo is a newer library and has wider support for Intrepid Products under linux (https://github.com/intrepidcs/libicsneo). -libicsneo has a legacy library (``libicsneolegacy.so``) that can be loaded by utilizing ``ics.override_library_name("libicsneolegacy.so")``. - - Fedora Dependencies (FC28) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -184,6 +180,11 @@ Debian/Ubuntu Dependencies ``sudo apt install build-essential python-dev clang-format`` +libicsneo library +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The legacy version of libicsneo library (``libicsneolegacy.so``) is required, see the specific repo for details: https://github.com/intrepidcs/libicsneo + Others (Required dependencies) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - GCC @@ -202,10 +203,6 @@ After dependencies are installed we can run the following pip command: **Note:** A lot of distributions have Python 2 and 3 installed side by side. As of this writing without a version suffix the commands still default to version 2 of the Python binaries. In order to utilize the Python 3 binaries you must append a 3 after the binary names (python3 and pip3 instead of just python and pip). -Intrepid libicsneoapi.so Library -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Please see https://github.com/intrepidcs/icsneoapi for more details. - ============================================================ Getting Started diff --git a/src/dll.cpp b/src/dll.cpp index 8b16be3b4..a5d346e7d 100644 --- a/src/dll.cpp +++ b/src/dll.cpp @@ -19,7 +19,7 @@ bool __initialize(char* name) #elif (defined(__APPLE__)) LIBRARY = new ice::Library("@loader_path/libicsneolegacy.dylib"); #else - LIBRARY = new ice::Library("libicsneoapi.so"); + LIBRARY = new ice::Library("libicsneolegacy.so"); #endif } else From 59f83643a32a842923216c74adec3a287aa7ff75 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 09:28:10 -0400 Subject: [PATCH 010/201] Adding python 3.11 to the build script. --- build_all.bat | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build_all.bat b/build_all.bat index 9a4a9eb15..deb023059 100644 --- a/build_all.bat +++ b/build_all.bat @@ -11,23 +11,28 @@ C:\Python\Python37-32\scripts\pip install wheel twine --upgrade C:\Python\Python38-32\scripts\pip install wheel twine --upgrade C:\Python\Python39-32\scripts\pip install wheel twine --upgrade C:\Python\Python310-32\scripts\pip install wheel twine --upgrade +C:\Python\Python311-32\scripts\pip install wheel twine --upgrade C:\Python\Python36-64\scripts\pip install wheel twine --upgrade C:\Python\Python37-64\scripts\pip install wheel twine --upgrade C:\Python\Python38-64\scripts\pip install wheel twine --upgrade C:\Python\Python39-64\scripts\pip install wheel twine --upgrade C:\Python\Python310-64\scripts\pip install wheel twine --upgrade +C:\Python\Python311-64\scripts\pip install wheel twine --upgrade C:\Python\Python36-32\python setup.py sdist bdist_wheel C:\Python\Python37-32\python setup.py sdist bdist_wheel C:\Python\Python38-32\python setup.py sdist bdist_wheel C:\Python\Python39-32\python setup.py sdist bdist_wheel C:\Python\Python310-32\python setup.py sdist bdist_wheel +C:\Python\Python311-32\python setup.py sdist bdist_wheel C:\Python\Python36-64\python setup.py sdist bdist_wheel C:\Python\Python37-64\python setup.py sdist bdist_wheel C:\Python\Python38-64\python setup.py sdist bdist_wheel C:\Python\Python39-64\python setup.py sdist bdist_wheel C:\Python\Python310-64\python setup.py sdist bdist_wheel +C:\Python\Python311-64\python setup.py sdist bdist_wheel + REM C:\Python\Python37-32\scripts\twine upload dist/* -r pypitest From 0e030f89d9e1d9d16391e39416e180e4a07e2e4d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 09:33:30 -0400 Subject: [PATCH 011/201] Updated header to 910.10. --- include/ics/icsnVC40.h | 125 +++++++++++++++++++++++++++++++++++------ 1 file changed, 108 insertions(+), 17 deletions(-) diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 7b56a148c..ff7c055e7 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -200,6 +200,7 @@ typedef unsigned __int64 uint64_t; // 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_BMS (0x00000022) +#define NEODEVICE_RADMOON3 (0x00000023) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -231,6 +232,8 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB //clang-format on +#define DEVICECOUNT_FOR_EXPLORER 42 //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 @@ -1350,20 +1353,62 @@ typedef struct _ExtendedResponseGeneric int32_t returnCode; } ExtendedResponseGeneric; -typedef struct _WILFunctionStatus +typedef struct _GenericAPISelector +{ + uint8_t apiIndex; + uint8_t instance; + uint8_t functionID; +} GenericAPISelector; + +typedef struct _GenericAPIStatus { - uint8_t functionID; - uint8_t functionError; // command type we're responding to - uint8_t processing; + GenericAPISelector api; + uint8_t functionError; uint8_t calbackError; -} WILFunctionStatus; + uint8_t finishedProcessing; +} GenericAPIStatus; + +#define GENERIC_API_DATA_BUFFER_SIZE 513 + +typedef struct _GenericAPIData +{ + GenericAPISelector api; + uint8_t bData[GENERIC_API_DATA_BUFFER_SIZE]; + uint16_t length; +} GenericAPIData; + -typedef struct _WILFunctionData +typedef struct _wBMSManagerSetLock { - uint8_t functionID; - uint8_t parameters[194]; - uint8_t resevered; -} WILFunctionData; + 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 @@ -1489,15 +1534,21 @@ typedef struct _SExtSubCmdComm GetSupportedFeaturesResponse getSupportedFeatures; ExtendedResponseGeneric genericResponse; GPTPStatus gptpStatus; - WILFunctionStatus wilStatus; - WILFunctionData wilData; + GenericAPIStatus apiStatus; + GenericAPIData apiData; + GenericAPISelector apiSelector; GetComponentVersions getComponentVersions; SoftwareUpdateCommand softwareUpdate; GetComponentVersionsResponse getComponentVersionsResponse; + wBMSManagerSetLock wbmsManagerToLockUnlock; + wBMSManagerReset wbmsManagerToReset; + UartPortData uartData; + UartPortPortBytes uartBytesLen; + UartPortConfig uartConfig; // Add additional extension commands to this union as needed. } extension; } SExtSubCmdComm; -#define SExtSubCmdComm_SIZE 262 +#define SExtSubCmdComm_SIZE 522 #define SERDESCAM_SETTINGS_FLAG_ENABLE 0x0001 #define SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE 0x0002 @@ -2580,9 +2631,10 @@ typedef struct _SRADA2BSettings A2BMonitorSettings a2b_node; uint32_t pwr_man_timeout; uint16_t pwr_man_enable; + ETHERNET_SETTINGS2 ethernet; } SRADA2BSettings; -#define SRADA2BSettings_SIZE 280 +#define SRADA2BSettings_SIZE 296 typedef struct _SRADMoon2Settings { @@ -3613,11 +3665,20 @@ typedef struct _SRADJupiterSettings #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; // 0 for internal, 1 for external - uint8_t reserved[6]; + 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; typedef struct _SFire3Settings @@ -4026,6 +4087,36 @@ typedef enum _EPlasmaIonVnetChannel_t 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 */ From ba0465d83e50e04f39d551cacb3194a9c33b4e6d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 09:43:27 -0400 Subject: [PATCH 012/201] Updated device names to match 910.10 --- src/methods.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index a5cae3add..0ed735d09 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -74,24 +74,26 @@ char* neodevice_to_string(unsigned long type) case NEODEVICE_RADPLUTO: return "RAD-Pluto"; case NEODEVICE_VCAN42_EL: return "ValueCAN 4-2EL"; case NEODEVICE_RADIO_CANHUB: return "neoRAD-IO2-CANHUB"; -#if defined(NEODEVICE_OBD2_LCBADGE) - case NEODEVICE_OBD2_LCBADGE: return "neoOBD2-LC BADGE"; -#endif + 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"; -#if defined(NEODEVICE_ONYX) - case NEODEVICE_ONYX: return "neoVI FIRE 3"; -#endif case NEODEVICE_FIRE3: return "neoVI FIRE 3"; -#if defined(NEODEVICE_JUPITER) - case NEODEVICE_JUPITER: return "RAD-Jupiter"; -#elif defined(NEODEVICE_RADJUPITER) case NEODEVICE_RADJUPITER: return "RAD-Jupiter"; -#endif case NEODEVICE_VCAN4_IND: return "ValueCAN 4 Industrial"; case NEODEVICE_GIGASTAR: return "RAD-Gigastar"; case NEODEVICE_RED2: return "neoVI RED 2"; + case NEODEVICE_ETHER_BADGE: return "EtherBADGE"; + case NEODEVICE_RAD_A2B: return "RAD-A2B"; + case NEODEVICE_RADEPSILON: return "RAD-Epsilon"; + case NEODEVICE_OBD2_SIM_DOIP: 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_RED: return "neoVI RED"; case NEODEVICE_ECU: return "neoECU"; case NEODEVICE_IEVB: return "IEVB"; @@ -113,9 +115,8 @@ char* neodevice_to_string(unsigned long type) case NEODEVICE_RADGALAXY: return "RAD-Galaxy"; case NEODEVICE_RADSTAR2: return "RAD-Star 2"; case NEODEVICE_VIVIDCAN: return "VividCAN"; - case NEODEVICE_OBD2_SIM: return "neoOBD2 Sim"; }; - return "Unknown"; + return "Intrepid Device"; } bool _convertListOrTupleToArray(PyObject* obj, std::vector* results) From 0287b059cc87bd10c8866a135a90c5325317df1f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 09:44:58 -0400 Subject: [PATCH 013/201] Missed a semi-colon... --- src/methods.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/methods.cpp b/src/methods.cpp index 0ed735d09..48638e282 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -93,7 +93,7 @@ char* neodevice_to_string(unsigned long type) 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_RADMOON3: return "RAD-Moon3"; case NEODEVICE_RED: return "neoVI RED"; case NEODEVICE_ECU: return "neoECU"; case NEODEVICE_IEVB: return "IEVB"; From 17c84c8fb9cfe909e9d1cc60c3718a03d47779bf Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 09:46:07 -0400 Subject: [PATCH 014/201] Updated structures against 910.10 --- ics/hiddenimports.py | 15 +- ics/structures/__init__.py | 15 +- ics/structures/e_generic_api_options.py | 19 ++ ics/structures/e_uart_port_t.py | 19 ++ ics/structures/ew_bms_instance_t.py | 19 ++ ics/structures/ew_bms_manager_lock_state_t.py | 19 ++ ics/structures/ew_bms_manager_port_t.py | 19 ++ ics/structures/fire3_linux_settings.py | 3 +- ics/structures/generic_api_data.py | 19 ++ ics/structures/generic_api_selector.py | 18 ++ ics/structures/generic_api_status.py | 20 ++ ics/structures/s_ext_sub_cmd_comm.py | 20 +- ics/structures/srada2_b_settings.py | 2 + ics/structures/uart_port_config.py | 18 ++ ics/structures/uart_port_data.py | 18 ++ ics/structures/uart_port_port_bytes.py | 18 ++ ics/structures/w_bms_manager_reset.py | 16 + ics/structures/w_bms_manager_set_lock.py | 17 ++ ics/structures/wil_function_data.py | 18 -- ics/structures/wil_function_status.py | 19 -- icsnVC40.h.enums.json | 279 ++++++++++++----- icsnVC40.h.json | 280 +++++++++++++++++- icsnVC40_processed.h | 244 +++++++++------ src/setup_module_auto_defines.cpp | 34 +++ 24 files changed, 951 insertions(+), 217 deletions(-) create mode 100644 ics/structures/e_generic_api_options.py create mode 100644 ics/structures/e_uart_port_t.py create mode 100644 ics/structures/ew_bms_instance_t.py create mode 100644 ics/structures/ew_bms_manager_lock_state_t.py create mode 100644 ics/structures/ew_bms_manager_port_t.py create mode 100644 ics/structures/generic_api_data.py create mode 100644 ics/structures/generic_api_selector.py create mode 100644 ics/structures/generic_api_status.py create mode 100644 ics/structures/uart_port_config.py create mode 100644 ics/structures/uart_port_data.py create mode 100644 ics/structures/uart_port_port_bytes.py create mode 100644 ics/structures/w_bms_manager_reset.py create mode 100644 ics/structures/w_bms_manager_set_lock.py delete mode 100644 ics/structures/wil_function_data.py delete mode 100644 ics/structures/wil_function_status.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index 55a2d92ed..b6fafe46e 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -35,8 +35,14 @@ "ics.structures.start_dhcp_server_command", "ics.structures.stop_dhcp_server_command", "ics.structures.extended_response_generic", - "ics.structures.wil_function_status", - "ics.structures.wil_function_data", + "ics.structures.generic_api_selector", + "ics.structures.generic_api_status", + "ics.structures.generic_api_data", + "ics.structures.w_bms_manager_set_lock", + "ics.structures.w_bms_manager_reset", + "ics.structures.uart_port_data", + "ics.structures.uart_port_port_bytes", + "ics.structures.uart_port_config", "ics.structures.get_supported_features_response", "ics.structures.version_report", "ics.structures.get_component_versions", @@ -154,6 +160,11 @@ "ics.structures.flex_vnet_mode", "ics.structures.e_device_settings_type", "ics.structures.e_plasma_ion_vnet_channel_t", + "ics.structures.ew_bms_manager_port_t", + "ics.structures.ew_bms_manager_lock_state_t", + "ics.structures.e_uart_port_t", + "ics.structures.e_generic_api_options", + "ics.structures.ew_bms_instance_t", "ics.structures.s_phy_reg_pkt_status", "ics.structures.s_phy_reg_pkt_rw", "ics.structures.device_feature", diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index ee62bafcf..7cb052791 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -35,8 +35,14 @@ "start_dhcp_server_command", "stop_dhcp_server_command", "extended_response_generic", - "wil_function_status", - "wil_function_data", + "generic_api_selector", + "generic_api_status", + "generic_api_data", + "w_bms_manager_set_lock", + "w_bms_manager_reset", + "uart_port_data", + "uart_port_port_bytes", + "uart_port_config", "get_supported_features_response", "version_report", "get_component_versions", @@ -154,6 +160,11 @@ "flex_vnet_mode", "e_device_settings_type", "e_plasma_ion_vnet_channel_t", + "ew_bms_manager_port_t", + "ew_bms_manager_lock_state_t", + "e_uart_port_t", + "e_generic_api_options", + "ew_bms_instance_t", "s_phy_reg_pkt_status", "s_phy_reg_pkt_rw", "device_feature", diff --git a/ics/structures/e_generic_api_options.py b/ics/structures/e_generic_api_options.py new file mode 100644 index 000000000..765aab9a9 --- /dev/null +++ b/ics/structures/e_generic_api_options.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class e_generic_api_options(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + eGENERIC_API = 0 + eADI_WIL_API = 1 + + +_eGenericAPIOptions = e_generic_api_options +eGenericAPIOptions = e_generic_api_options + diff --git a/ics/structures/e_uart_port_t.py b/ics/structures/e_uart_port_t.py new file mode 100644 index 000000000..3f53510e2 --- /dev/null +++ b/ics/structures/e_uart_port_t.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class e_uart_port_t(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + eUART0 = 0 + eUART1 = enum.auto() + + +_EUartPort_t = e_uart_port_t +EUartPort_t = e_uart_port_t + diff --git a/ics/structures/ew_bms_instance_t.py b/ics/structures/ew_bms_instance_t.py new file mode 100644 index 000000000..f4b37854f --- /dev/null +++ b/ics/structures/ew_bms_instance_t.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class ew_bms_instance_t(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + ewBMSInstance0 = 0 + ewBMSInstance1 = enum.auto() + + +_EwBMSInstance_t = ew_bms_instance_t +EwBMSInstance_t = ew_bms_instance_t + diff --git a/ics/structures/ew_bms_manager_lock_state_t.py b/ics/structures/ew_bms_manager_lock_state_t.py new file mode 100644 index 000000000..e874d9ac2 --- /dev/null +++ b/ics/structures/ew_bms_manager_lock_state_t.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class ew_bms_manager_lock_state_t(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + eLockManager = 0 + eUnlockManager = enum.auto() + + +_EwBMSManagerLockState_t = ew_bms_manager_lock_state_t +EwBMSManagerLockState_t = ew_bms_manager_lock_state_t + diff --git a/ics/structures/ew_bms_manager_port_t.py b/ics/structures/ew_bms_manager_port_t.py new file mode 100644 index 000000000..2c5220795 --- /dev/null +++ b/ics/structures/ew_bms_manager_port_t.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class ew_bms_manager_port_t(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + eManagerPortA = 0 + eManagerPortB = enum.auto() + + +_EwBMSManagerPort_t = ew_bms_manager_port_t +EwBMSManagerPort_t = ew_bms_manager_port_t + diff --git a/ics/structures/fire3_linux_settings.py b/ics/structures/fire3_linux_settings.py index 724a86b97..ec57e882a 100644 --- a/ics/structures/fire3_linux_settings.py +++ b/ics/structures/fire3_linux_settings.py @@ -9,7 +9,8 @@ class fire3_linux_settings(ctypes.Structure): _fields_ = [ ('allowBoot', ctypes.c_uint8), ('useExternalWifiAntenna', ctypes.c_uint8), - ('reserved', ctypes.c_uint8 * 6), + ('ethConfigurationPort', ctypes.c_uint8), + ('reserved', ctypes.c_uint8 * 5), ] diff --git a/ics/structures/generic_api_data.py b/ics/structures/generic_api_data.py new file mode 100644 index 000000000..00eda9c75 --- /dev/null +++ b/ics/structures/generic_api_data.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.generic_api_selector import * + + +class generic_api_data(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('api', GenericAPISelector), + ('bData', ctypes.c_uint8 * 513), + ('length', ctypes.c_uint16), + ] + + +_GenericAPIData = generic_api_data +GenericAPIData = generic_api_data + diff --git a/ics/structures/generic_api_selector.py b/ics/structures/generic_api_selector.py new file mode 100644 index 000000000..a60899b44 --- /dev/null +++ b/ics/structures/generic_api_selector.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class generic_api_selector(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('apiIndex', ctypes.c_uint8), + ('instance', ctypes.c_uint8), + ('functionID', ctypes.c_uint8), + ] + + +_GenericAPISelector = generic_api_selector +GenericAPISelector = generic_api_selector + diff --git a/ics/structures/generic_api_status.py b/ics/structures/generic_api_status.py new file mode 100644 index 000000000..fa0a076f0 --- /dev/null +++ b/ics/structures/generic_api_status.py @@ -0,0 +1,20 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.generic_api_selector import * + + +class generic_api_status(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('api', GenericAPISelector), + ('functionError', ctypes.c_uint8), + ('calbackError', ctypes.c_uint8), + ('finishedProcessing', ctypes.c_uint8), + ] + + +_GenericAPIStatus = generic_api_status +GenericAPIStatus = generic_api_status + diff --git a/ics/structures/s_ext_sub_cmd_comm.py b/ics/structures/s_ext_sub_cmd_comm.py index 7c64f4273..fd0517d5c 100644 --- a/ics/structures/s_ext_sub_cmd_comm.py +++ b/ics/structures/s_ext_sub_cmd_comm.py @@ -3,6 +3,9 @@ import enum from ics.structures.extended_response_generic import * +from ics.structures.generic_api_data import * +from ics.structures.generic_api_selector import * +from ics.structures.generic_api_status import * from ics.structures.get_component_versions import * from ics.structures.get_component_versions_response import * from ics.structures.get_supported_features_response import * @@ -14,8 +17,11 @@ from ics.structures.software_update_command import * from ics.structures.start_dhcp_server_command import * from ics.structures.stop_dhcp_server_command import * -from ics.structures.wil_function_data import * -from ics.structures.wil_function_status import * +from ics.structures.uart_port_config import * +from ics.structures.uart_port_data import * +from ics.structures.uart_port_port_bytes import * +from ics.structures.w_bms_manager_reset import * +from ics.structures.w_bms_manager_set_lock import * class extension(ctypes.Union): @@ -29,11 +35,17 @@ class extension(ctypes.Union): ('getSupportedFeatures', GetSupportedFeaturesResponse), ('genericResponse', ExtendedResponseGeneric), ('gptpStatus', GPTPStatus), - ('wilStatus', WILFunctionStatus), - ('wilData', WILFunctionData), + ('apiStatus', GenericAPIStatus), + ('apiData', GenericAPIData), + ('apiSelector', GenericAPISelector), ('getComponentVersions', GetComponentVersions), ('softwareUpdate', SoftwareUpdateCommand), ('getComponentVersionsResponse', GetComponentVersionsResponse), + ('wbmsManagerToLockUnlock', wBMSManagerSetLock), + ('wbmsManagerToReset', wBMSManagerReset), + ('uartData', UartPortData), + ('uartBytesLen', UartPortPortBytes), + ('uartConfig', UartPortConfig), ] diff --git a/ics/structures/srada2_b_settings.py b/ics/structures/srada2_b_settings.py index 13b2cf4db..0e9b8a92f 100644 --- a/ics/structures/srada2_b_settings.py +++ b/ics/structures/srada2_b_settings.py @@ -6,6 +6,7 @@ from ics.structures.can_settings import * from ics.structures.canfd_settings import * from ics.structures.disk_settings import * +from ics.structures.ethernet_settings2 import * from ics.structures.iso9141_keyword2000_settings import * from ics.structures.lin_settings import * from ics.structures.logger_settings import * @@ -47,6 +48,7 @@ class srada2_b_settings(ctypes.Structure): ('a2b_node', A2BMonitorSettings), ('pwr_man_timeout', ctypes.c_uint32), ('pwr_man_enable', ctypes.c_uint16), + ('ethernet', ETHERNET_SETTINGS2), ] diff --git a/ics/structures/uart_port_config.py b/ics/structures/uart_port_config.py new file mode 100644 index 000000000..f032a44b0 --- /dev/null +++ b/ics/structures/uart_port_config.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class uart_port_config(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('baudrate', ctypes.c_uint32), + ('port', ctypes.c_uint8), + ('reserve', ctypes.c_uint8 * 7), + ] + + +_UartPortConfig = uart_port_config +UartPortConfig = uart_port_config + diff --git a/ics/structures/uart_port_data.py b/ics/structures/uart_port_data.py new file mode 100644 index 000000000..92046a80d --- /dev/null +++ b/ics/structures/uart_port_data.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class uart_port_data(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('len', ctypes.c_uint16), + ('port', ctypes.c_uint8), + ('bData', ctypes.c_uint8 * 256), + ] + + +_UartPortData = uart_port_data +UartPortData = uart_port_data + diff --git a/ics/structures/uart_port_port_bytes.py b/ics/structures/uart_port_port_bytes.py new file mode 100644 index 000000000..3305429ea --- /dev/null +++ b/ics/structures/uart_port_port_bytes.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class uart_port_port_bytes(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('len', ctypes.c_uint16), + ('port', ctypes.c_uint8), + ('flag', ctypes.c_uint8), + ] + + +_UartPortPortBytes = uart_port_port_bytes +UartPortPortBytes = uart_port_port_bytes + diff --git a/ics/structures/w_bms_manager_reset.py b/ics/structures/w_bms_manager_reset.py new file mode 100644 index 000000000..9ef61a9c3 --- /dev/null +++ b/ics/structures/w_bms_manager_reset.py @@ -0,0 +1,16 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class w_bms_manager_reset(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('managerIndex', ctypes.c_uint8), + ] + + +_wBMSManagerReset = w_bms_manager_reset +wBMSManagerReset = w_bms_manager_reset + diff --git a/ics/structures/w_bms_manager_set_lock.py b/ics/structures/w_bms_manager_set_lock.py new file mode 100644 index 000000000..ab1c05034 --- /dev/null +++ b/ics/structures/w_bms_manager_set_lock.py @@ -0,0 +1,17 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class w_bms_manager_set_lock(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('managerIndex', ctypes.c_uint8), + ('setLock', ctypes.c_uint8), + ] + + +_wBMSManagerSetLock = w_bms_manager_set_lock +wBMSManagerSetLock = w_bms_manager_set_lock + diff --git a/ics/structures/wil_function_data.py b/ics/structures/wil_function_data.py deleted file mode 100644 index eecb5b25a..000000000 --- a/ics/structures/wil_function_data.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 wil_function_data(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('functionID', ctypes.c_uint8), - ('parameters', ctypes.c_uint8 * 194), - ('resevered', ctypes.c_uint8), - ] - - -_WILFunctionData = wil_function_data -WILFunctionData = wil_function_data - diff --git a/ics/structures/wil_function_status.py b/ics/structures/wil_function_status.py deleted file mode 100644 index 9304e5e91..000000000 --- a/ics/structures/wil_function_status.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class wil_function_status(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('functionID', ctypes.c_uint8), - ('functionError', ctypes.c_uint8), - ('processing', ctypes.c_uint8), - ('calbackError', ctypes.c_uint8), - ] - - -_WILFunctionStatus = wil_function_status -WILFunctionStatus = wil_function_status - diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index ebd6eed0b..2a2156ee9 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -2548,6 +2548,141 @@ } ] }, + { + "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", @@ -2819,7 +2954,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4655 ", + "name": "assert_line_4746 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2835,7 +2970,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4656 ", + "name": "assert_line_4747 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2851,7 +2986,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4657 ", + "name": "assert_line_4748 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2867,7 +3002,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4658 ", + "name": "assert_line_4749 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2883,7 +3018,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4659 ", + "name": "assert_line_4750 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2899,7 +3034,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4660 ", + "name": "assert_line_4751 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2915,7 +3050,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4661 ", + "name": "assert_line_4752 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2931,7 +3066,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4662 ", + "name": "assert_line_4753 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2947,7 +3082,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4663 ", + "name": "assert_line_4754 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2963,7 +3098,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4664 ", + "name": "assert_line_4755 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2979,7 +3114,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4665 ", + "name": "assert_line_4756 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2995,7 +3130,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4666 ", + "name": "assert_line_4757 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3011,7 +3146,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4667 ", + "name": "assert_line_4758 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3027,7 +3162,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4668 ", + "name": "assert_line_4759 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3043,7 +3178,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4669 ", + "name": "assert_line_4760 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3059,7 +3194,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4670 ", + "name": "assert_line_4761 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3075,7 +3210,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4671 ", + "name": "assert_line_4762 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3091,7 +3226,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4672 ", + "name": "assert_line_4763 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3107,7 +3242,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4673 ", + "name": "assert_line_4764 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3123,7 +3258,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4674 ", + "name": "assert_line_4765 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3139,7 +3274,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4675 ", + "name": "assert_line_4766 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3155,7 +3290,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4676 ", + "name": "assert_line_4767 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3171,7 +3306,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4677 ", + "name": "assert_line_4768 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3187,7 +3322,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4678 ", + "name": "assert_line_4769 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3203,7 +3338,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4679 ", + "name": "assert_line_4770 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3219,7 +3354,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4680 ", + "name": "assert_line_4771 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3235,7 +3370,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4681 ", + "name": "assert_line_4772 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3251,7 +3386,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4682 ", + "name": "assert_line_4773 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3267,7 +3402,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4683 ", + "name": "assert_line_4774 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3283,7 +3418,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4684 ", + "name": "assert_line_4775 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3299,7 +3434,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4685 ", + "name": "assert_line_4776 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3315,7 +3450,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4686 ", + "name": "assert_line_4777 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3331,7 +3466,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4687 ", + "name": "assert_line_4778 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3347,7 +3482,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4688 ", + "name": "assert_line_4779 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3363,7 +3498,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4689 ", + "name": "assert_line_4780 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3379,7 +3514,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4690 ", + "name": "assert_line_4781 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3395,7 +3530,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4691 ", + "name": "assert_line_4782 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3411,7 +3546,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4692 ", + "name": "assert_line_4783 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3427,7 +3562,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4693 ", + "name": "assert_line_4784 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3443,7 +3578,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4694 ", + "name": "assert_line_4785 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3459,7 +3594,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4695 ", + "name": "assert_line_4786 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3475,7 +3610,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4696 ", + "name": "assert_line_4787 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3491,7 +3626,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4697 ", + "name": "assert_line_4788 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3507,7 +3642,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4698 ", + "name": "assert_line_4789 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3523,7 +3658,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4699 ", + "name": "assert_line_4790 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3539,7 +3674,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4700 ", + "name": "assert_line_4791 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3555,7 +3690,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4701 ", + "name": "assert_line_4792 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3571,7 +3706,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4702 ", + "name": "assert_line_4793 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3587,7 +3722,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4703 ", + "name": "assert_line_4794 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3603,7 +3738,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4704 ", + "name": "assert_line_4795 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3619,7 +3754,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4705 ", + "name": "assert_line_4796 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3635,7 +3770,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4706 ", + "name": "assert_line_4797 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3651,7 +3786,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4707 ", + "name": "assert_line_4798 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3667,7 +3802,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4708 ", + "name": "assert_line_4799 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3683,7 +3818,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4709 ", + "name": "assert_line_4800 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3699,7 +3834,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4710 ", + "name": "assert_line_4801 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3715,7 +3850,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4711 ", + "name": "assert_line_4802 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3731,7 +3866,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4712 ", + "name": "assert_line_4803 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3747,7 +3882,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4713 ", + "name": "assert_line_4804 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3763,7 +3898,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4714 ", + "name": "assert_line_4805 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3779,7 +3914,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4715 ", + "name": "assert_line_4806 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3795,7 +3930,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4716 ", + "name": "assert_line_4807 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3811,7 +3946,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4717 ", + "name": "assert_line_4808 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3827,7 +3962,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4718 ", + "name": "assert_line_4809 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3843,7 +3978,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4719 ", + "name": "assert_line_4810 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3859,7 +3994,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4720 ", + "name": "assert_line_4811 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3875,7 +4010,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4721 ", + "name": "assert_line_4812 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3891,7 +4026,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4722 ", + "name": "assert_line_4813 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3907,7 +4042,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4723 ", + "name": "assert_line_4814 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3923,7 +4058,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4724 ", + "name": "assert_line_4815 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3939,7 +4074,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4725 ", + "name": "assert_line_4816 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3955,7 +4090,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4726 ", + "name": "assert_line_4817 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, diff --git a/icsnVC40.h.json b/icsnVC40.h.json index 0fb82ea77..bf295abb0 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -3355,13 +3355,29 @@ }, { "names": [ - "_WILFunctionStatus", - "WILFunctionStatus" + "_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", @@ -3369,6 +3385,25 @@ "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", @@ -3379,7 +3414,7 @@ "enum_value": null }, { - "name": "processing", + "name": "calbackError", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -3387,7 +3422,7 @@ "enum_value": null }, { - "name": "calbackError", + "name": "finishedProcessing", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -3398,15 +3433,104 @@ }, { "names": [ - "_WILFunctionData", - "WILFunctionData" + "_GenericAPIData", + "GenericAPIData" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "functionID", + "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, @@ -3414,15 +3538,42 @@ "enum_value": null }, { - "name": "parameters", + "name": "bData", "data_type": "uint8_t", - "array_length": 194, + "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": "resevered", + "name": "flag", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, @@ -3431,6 +3582,41 @@ } ] }, + { + "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" @@ -4016,16 +4202,24 @@ "enum_value": null }, { - "name": "wilStatus", - "data_type": "WILFunctionStatus", + "name": "apiStatus", + "data_type": "GenericAPIStatus", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "apiData", + "data_type": "GenericAPIData", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "wilData", - "data_type": "WILFunctionData", + "name": "apiSelector", + "data_type": "GenericAPISelector", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -4054,6 +4248,46 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "wbmsManagerToLockUnlock", + "data_type": "wBMSManagerSetLock", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "wbmsManagerToReset", + "data_type": "wBMSManagerReset", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "uartData", + "data_type": "UartPortData", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "uartBytesLen", + "data_type": "UartPortPortBytes", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "uartConfig", + "data_type": "UartPortConfig", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] } @@ -8553,6 +8787,14 @@ "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 } ] }, @@ -14158,10 +14400,18 @@ "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": 6, + "array_length": 5, "bitfield_size": 0, "is_enum": false, "enum_value": null diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index 5b8a04a2f..f23c2da25 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -857,20 +857,59 @@ typedef struct _ExtendedResponseGeneric int32_t returnCode; } ExtendedResponseGeneric; -typedef struct _WILFunctionStatus +typedef struct _GenericAPISelector { + uint8_t apiIndex; + uint8_t instance; uint8_t functionID; +} GenericAPISelector; + +typedef struct _GenericAPIStatus +{ + GenericAPISelector api; uint8_t functionError; - uint8_t processing; uint8_t calbackError; -} WILFunctionStatus; + uint8_t finishedProcessing; +} GenericAPIStatus; -typedef struct _WILFunctionData +typedef struct _GenericAPIData { - uint8_t functionID; - uint8_t parameters[194]; - uint8_t resevered; -} WILFunctionData; + GenericAPISelector api; + uint8_t bData[513]; + uint16_t length; +} GenericAPIData; + +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; typedef struct { @@ -994,11 +1033,17 @@ typedef struct _SExtSubCmdComm GetSupportedFeaturesResponse getSupportedFeatures; ExtendedResponseGeneric genericResponse; GPTPStatus gptpStatus; - WILFunctionStatus wilStatus; - WILFunctionData wilData; + GenericAPIStatus apiStatus; + GenericAPIData apiData; + GenericAPISelector apiSelector; GetComponentVersions getComponentVersions; SoftwareUpdateCommand softwareUpdate; GetComponentVersionsResponse getComponentVersionsResponse; + wBMSManagerSetLock wbmsManagerToLockUnlock; + wBMSManagerReset wbmsManagerToReset; + UartPortData uartData; + UartPortPortBytes uartBytesLen; + UartPortConfig uartConfig; } extension; } SExtSubCmdComm; @@ -1972,6 +2017,7 @@ typedef struct _SRADA2BSettings A2BMonitorSettings a2b_node; uint32_t pwr_man_timeout; uint16_t pwr_man_enable; + ETHERNET_SETTINGS2 ethernet; } SRADA2BSettings; typedef struct _SRADMoon2Settings @@ -2925,12 +2971,12 @@ typedef struct _SRADJupiterSettings SRADJupiterSwitchSettings switchSettings; ETHERNET_SETTINGS2 ethernet2; } SRADJupiterSettings; - typedef struct { uint8_t allowBoot; uint8_t useExternalWifiAntenna; - uint8_t reserved[6]; + uint8_t ethConfigurationPort; + uint8_t reserved[5]; } Fire3LinuxSettings; typedef struct _SFire3Settings @@ -3322,6 +3368,36 @@ typedef enum _EPlasmaIonVnetChannel_t 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; @@ -3880,360 +3956,360 @@ typedef enum } DeviceFeature; enum { - assert_line_4655 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_4746 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_4656 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_4747 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_4657 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_4748 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_4658 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_4749 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_4659 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_4750 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_4660 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_4751 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_4661 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_4752 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_4662 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_4753 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_4663 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_4754 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_4664 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_4755 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_4665 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_4756 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_4666 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_4757 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_4667 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_4758 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_4668 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_4759 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_4669 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_4760 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_4670 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_4761 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_4671 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_4762 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_4672 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_4763 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_4673 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_4764 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_4674 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_4765 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_4675 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_4766 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_4676 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_4767 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_4677 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_4768 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_4678 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_4769 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_4679 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_4770 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_4680 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_4771 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_4681 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_4772 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_4682 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_4773 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_4683 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_4774 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_4684 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_4775 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_4685 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_4776 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_4686 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_4777 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_4687 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_4778 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_4688 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_4779 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_4689 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) + assert_line_4780 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) }; ; enum { - assert_line_4690 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) + assert_line_4781 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) }; ; enum { - assert_line_4691 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_4782 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_4692 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_4783 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_4693 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) + assert_line_4784 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) }; ; enum { - assert_line_4694 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_4785 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_4695 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_4786 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_4696 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_4787 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_4697 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_4788 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_4698 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_4789 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_4699 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_4790 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_4700 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_4791 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_4701 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_4792 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_4702 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_4793 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_4703 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_4794 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_4704 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) + assert_line_4795 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) }; ; enum { - assert_line_4705 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) + assert_line_4796 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) }; ; enum { - assert_line_4706 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) + assert_line_4797 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) }; ; enum { - assert_line_4707 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) + assert_line_4798 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) }; ; enum { - assert_line_4708 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_4799 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_4709 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_4800 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_4710 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_4801 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_4711 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_4802 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_4712 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 262)) + assert_line_4803 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 522)) }; ; enum { - assert_line_4713 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_4804 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_4714 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_4805 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_4715 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_4806 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_4716 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_4807 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_4717 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_4808 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_4718 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_4809 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_4719 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_4810 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_4720 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) + assert_line_4811 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) }; ; enum { - assert_line_4721 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_4812 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_4722 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 280)) + assert_line_4813 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 296)) }; ; enum { - assert_line_4723 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_4814 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_4724 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) + assert_line_4815 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) }; ; enum { - assert_line_4725 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_4816 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_4726 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) + assert_line_4817 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) }; ; diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 15faad09a..45c0090b1 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -145,6 +145,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_58); result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); result += PyModule_AddIntMacro(module, NEODEVICE_RAD_BMS); + result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON3); result += PyModule_AddIntMacro(module, NEODEVICE_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -174,6 +175,7 @@ int setup_module_auto_defines(PyObject * module) 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); @@ -549,6 +551,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, 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 @@ -836,6 +839,12 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_MASTER); result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_SLAVE); 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_AddIntMacro(module, SFire3Settings_SIZE); result += PyModule_AddIntMacro(module, RadMoonDuoSettings_SIZE); result += PyModule_AddIntMacro(module, SEtherBadgeSettings_SIZE); @@ -893,6 +902,31 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, eFpgaStatusResp); // end of enum - } EPlasmaIonVnetChannel_t; + // enum + result += PyModule_AddIntMacro(module, eManagerPortA); + result += PyModule_AddIntMacro(module, eManagerPortB); + // end of enum - } EwBMSManagerPort_t; + + // enum + result += PyModule_AddIntMacro(module, eLockManager); + result += PyModule_AddIntMacro(module, eUnlockManager); + // end of enum - } EwBMSManagerLockState_t; + + // enum + result += PyModule_AddIntMacro(module, eUART0); + result += PyModule_AddIntMacro(module, eUART1); + // end of enum - } EUartPort_t; + + // enum + result += PyModule_AddIntMacro(module, eGENERIC_API); + result += PyModule_AddIntMacro(module, eADI_WIL_API); + // end of enum - } eGenericAPIOptions; + + // enum + result += PyModule_AddIntMacro(module, ewBMSInstance0); + result += PyModule_AddIntMacro(module, 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); From 1f422e520c42d648116d008a9e83e72cf4a24879 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 09:48:51 -0400 Subject: [PATCH 015/201] updated version to 910.10 --- doc/source/conf.py | 2 +- doc/source/index.rst | 3371 +++++++++++++++++++++++++++++++++++++++--- setup.py | 2 +- 3 files changed, 3140 insertions(+), 235 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index ef29b5fff..efb2ab8eb 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = '910.999' +version = '910.10' # The full version, including alpha/beta/rc tags. release = version diff --git a/doc/source/index.rst b/doc/source/index.rst index b18b477cc..d1c97c5bf 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -41,6 +41,7 @@ Module Functions ics.enable_network_com ics.find_devices ics.firmware_update_required + ics.flash_devices ics.force_firmware_update ics.get_active_vnet_channel ics.get_backup_power_enabled @@ -57,16 +58,19 @@ Module Functions ics.get_last_api_error ics.get_library_path ics.get_messages + ics.get_pcb_serial_number ics.get_performance_parameters ics.get_rtc ics.get_script_status ics.get_serial_number ics.get_timestamp_for_msg + ics.is_device_feature_supported ics.iso15765_disable_networks ics.iso15765_enable_networks ics.iso15765_receive_message ics.iso15765_transmit_message ics.load_default_settings + ics.load_readbin ics.open_device ics.override_library_name ics.read_jupiter_firmware @@ -79,8 +83,11 @@ Module Functions ics.set_context ics.set_device_settings ics.set_fd_bit_rate + ics.set_led_property ics.set_reflash_callback ics.set_rtc + ics.start_dhcp_server + ics.stop_dhcp_server ics.transmit_messages ics.validate_hobject ics.write_jupiter_firmware @@ -91,6 +98,7 @@ Module Functions ics.EnableNetworkCom ics.FindNeoDevices ics.FirmwareUpdateRequired + ics.FlashDevice2 ics.ForceFirmwareUpdate ics.GetActiveVNETChannel ics.GetBackupPowerEnabled @@ -104,10 +112,12 @@ Module Functions ics.GetHWFirmwareInfo ics.GetLastAPIError ics.GetMessages + ics.GetPCBSerialNumber ics.GetPerformanceParameters ics.GetRTC ics.GetSerialNumber ics.GetTimeStampForMsg + ics.IsDeviceFeatureSupported ics.LoadDefaultSettings ics.OpenNeoDevice ics.ReadJupiterFirmware @@ -122,6 +132,7 @@ Module Functions ics.ScriptGetScriptStatus ics.ScriptGetScriptStatusEx ics.ScriptLoad + ics.ScriptLoadReadBin ics.ScriptReadAppSignal ics.ScriptReadRxMessage ics.ScriptReadTxMessage @@ -139,8 +150,11 @@ Module Functions ics.SetContext ics.SetDeviceSettings ics.SetFDBitRate + ics.SetLedProperty ics.SetRTC ics.SetReflashDisplayCallback + ics.StartDHCPServer + ics.StopDHCPServer ics.TxMessages ics.ValidateHObject ics.WriteJupiterFirmware @@ -165,6 +179,7 @@ Module Functions ics.icsneoGetHWFirmwareInfo ics.icsneoGetLastAPIError ics.icsneoGetMessages + ics.icsneoGetPCBSerialNumber ics.icsneoGetPerformanceParameters ics.icsneoGetRTC ics.icsneoGetSerialNumber @@ -173,6 +188,7 @@ Module Functions ics.icsneoISO15765_EnableNetworks ics.icsneoISO15765_ReceiveMessage ics.icsneoISO15765_TransmitMessage + ics.icsneoIsDeviceFeatureSupported ics.icsneoLoadDefaultSettings ics.icsneoOpenNeoDevice ics.icsneoReadJupiterFirmware @@ -187,6 +203,7 @@ Module Functions ics.icsneoScriptGetScriptStatus ics.icsneoScriptGetScriptStatusEx ics.icsneoScriptLoad + ics.icsneoScriptLoadReadBin ics.icsneoScriptReadAppSignal ics.icsneoScriptReadRxMessage ics.icsneoScriptReadTxMessage @@ -204,8 +221,11 @@ Module Functions ics.icsneoSetContext ics.icsneoSetDeviceSettings ics.icsneoSetFDBitRate + ics.icsneoSetLedProperty ics.icsneoSetRTC ics.icsneoSetReflashDisplayCallbacks + ics.icsneoStartDHCPServer + ics.icsneoStopDHCPServer ics.icsneoTxMessages ics.icsneoValidateHObject ics.icsneoWriteJupiterFirmware @@ -228,6 +248,14 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.backup_power_stats.backup_power_stats + :members: + :undoc-members: + + .. autoclass:: ics.structures.battery_backup_type.battery_backup_type + :members: + :undoc-members: + .. autoclass:: ics.structures.can_settings.can_settings :members: :undoc-members: @@ -296,6 +324,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.fire3_device_status.fire3_device_status + :members: + :undoc-members: + .. autoclass:: ics.structures.fire3_linux_settings.fire3_linux_settings :members: :undoc-members: @@ -340,10 +372,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ics_fire3_device_status.ics_fire3_device_status - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_flex_vnetz_device_status.ics_flex_vnetz_device_status :members: :undoc-members: @@ -845,6 +873,117 @@ Module Variables .. py:data:: A2B_SETTINGS_FLAG_16BIT :annotation: = 1 + .. py:data:: ACKBYTE_CANFD_DATALINK_LEN + :annotation: = 6 + + .. py:data:: ACKBYTE_CANFD_FLAGS + :annotation: = 0 + + .. py:data:: ACKBYTE_CAN_ETHERNET_PDU_TYPE + :annotation: = 1 + + .. py:data:: ACKBYTE_CATPGBPGT_GROUP + :annotation: = 7 + + .. py:data:: ACKBYTE_CATPGBPGT_PID_START + :annotation: = 2 + + .. py:data:: ACKBYTE_CGI_CRC_LOWER + :annotation: = 1 + + .. py:data:: ACKBYTE_CGI_CRC_UPPER + :annotation: = 0 + + .. py:data:: ACKBYTE_EXTRADATAPTR_LEN_START + :annotation: = 4 + + .. py:data:: ACKBYTE_FLEXRAT_TSSLENGTH + :annotation: = 7 + + .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_LOWER + :annotation: = 4 + + .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_MIDDLE + :annotation: = 5 + + .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_UPPER + :annotation: = 6 + + .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_LOWER + :annotation: = 1 + + .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_UPPER + :annotation: = 0 + + .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_LOWER + :annotation: = 2 + + .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_UPPER + :annotation: = 3 + + .. py:data:: ACKBYTE_FLEXRAY_TX_LEN_START + :annotation: = 4 + + .. py:data:: ACKBYTE_GMFSA_DEST_IP_START + :annotation: = 4 + + .. py:data:: ACKBYTE_GMFSA_SRC_IP_START + :annotation: = 0 + + .. py:data:: ACKBYTE_I2C_BITRATE_START + :annotation: = 0 + + .. py:data:: ACKBYTE_ISO15765_PENDING_DESCID_START + :annotation: = 2 + + .. py:data:: ACKBYTE_ISO15765_PENDING_STATUS + :annotation: = 1 + + .. py:data:: ACKBYTE_J1708_TX + :annotation: = 1 + + .. py:data:: ACKBYTE_LIN_CHECKSUM + :annotation: = 0 + + .. py:data:: ACKBYTE_LIN_P0_P1 + :annotation: = 3 + + .. py:data:: ACKBYTE_LIN_TFRAME_LOWER + :annotation: = 2 + + .. py:data:: ACKBYTE_LIN_TFRAME_UPPER + :annotation: = 1 + + .. py:data:: ACKBYTE_LIN_TX + :annotation: = 1 + + .. py:data:: ACKBYTE_MOST_EVENT_TYPE + :annotation: = 0 + + .. py:data:: ACKBYTE_MOST_LEN_LOWER + :annotation: = 1 + + .. py:data:: ACKBYTE_MOST_LEN_UPPER + :annotation: = 0 + + .. py:data:: ACKBYTE_MOST_SOURCE_LOWER + :annotation: = 5 + + .. py:data:: ACKBYTE_MOST_SOURCE_UPPER + :annotation: = 4 + + .. py:data:: ACKBYTE_MOST_TARGET_LOWER + :annotation: = 7 + + .. py:data:: ACKBYTE_MOST_TARGET_UPPER + :annotation: = 6 + + .. py:data:: ACKBYTE_TCP_ACK_START + :annotation: = 4 + + .. py:data:: ACKBYTE_TCP_SEQ_START + :annotation: = 0 + .. py:data:: AUTO :annotation: = 0 @@ -918,7 +1057,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Jul 22 2022 13:14:03 + :annotation: = Aug 18 2022 15:52:07 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -956,9 +1095,42 @@ Module Variables .. py:data:: CAN_BPS8000 :annotation: = 16 + .. py:data:: CAN_CLK_16MIPS + :annotation: = 3 + + .. py:data:: CAN_CLK_40MIPS + :annotation: = 1 + + .. py:data:: CAN_CLK_64MIPS + :annotation: = 2 + + .. py:data:: CAN_CLK_INVALID + :annotation: = 0 + .. py:data:: CAN_SETTINGS_SIZE :annotation: = 12 + .. py:data:: CHIP_ID_INVALID + :annotation: = 255 + + .. py:data:: CMPROBE_ZYNQ_ID + :annotation: = 60 + + .. py:data:: DEVELOPER_BACKDOOR + :annotation: = 943047254 + + .. py:data:: DEVICE_OPTION_DISABLE_AUTO_UPDATE + :annotation: = 2 + + .. py:data:: DEVICE_OPTION_DONT_ENABLE_NETCOMS + :annotation: = 4 + + .. py:data:: DEVICE_OPTION_DONT_USE_NEOVISERVER + :annotation: = 8 + + .. py:data:: DEVICE_OPTION_ENABLE_TIMESYNC + :annotation: = 1 + .. py:data:: DISABLE :annotation: = 1 @@ -1022,6 +1194,9 @@ Module Variables .. py:data:: ETHERNET_SETTINGS_SIZE :annotation: = 8 + .. py:data:: ETHER_BADGE_MCHIP_ID + :annotation: = 86 + .. py:data:: EXTENDED_RESPONSE_INVALID_COMMAND :annotation: = -1 @@ -1043,371 +1218,2696 @@ Module Variables .. py:data:: FAST_MODE :annotation: = 3 - .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION - :annotation: = 1 + .. py:data:: FIRE2_VNETZ_MCHIP_ID + :annotation: = 54 - .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 942 + .. py:data:: FIRE2_VNETZ_ZYNQ_ID + :annotation: = 55 - .. py:data:: GS_VERSION - :annotation: = 5 + .. py:data:: FIRE2_VNET_CCHIP_ID + :annotation: = 49 - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 - :annotation: = 2 + .. py:data:: FIRE2_VNET_CORE_ID + :annotation: = 50 - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 - :annotation: = 5 + .. py:data:: FIRE2_VNET_MCHIP_ID + :annotation: = 46 - .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC - :annotation: = 7 + .. py:data:: FIRE3_LINUX_ID + :annotation: = 109 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS - :annotation: = 10 + .. py:data:: FIRE3_SCHIP_ID + :annotation: = 91 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US - :annotation: = 8 + .. py:data:: FIRE3_ZCHIP_ID + :annotation: = 82 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS - :annotation: = 9 + .. py:data:: FIRE3_ZCHIP_MB_PATCH_ID + :annotation: = -2 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI - :annotation: = 4 + .. py:data:: FLEXRAY_ERROR_BIT_FILE_NOT_FOUND + :annotation: = 319 - .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN - :annotation: = 3 + .. py:data:: FLEXRAY_ERROR_DATA_INCORRECT_SEQUENCE_ERROR + :annotation: = 322 - .. py:data:: HARDWARE_TIMESTAMP_ID_NONE - :annotation: = 0 + .. py:data:: FLEXRAY_ERROR_DATA_SYNCHRONIZATION_ERROR + :annotation: = 323 - .. py:data:: HARDWARE_TIMESTAMP_ID_VSI - :annotation: = 1 + .. py:data:: FLEXRAY_ERROR_DEVICE_COULD_NOT_BE_OPENED + :annotation: = 318 - .. py:data:: HW_ETH_SETTINGS_SIZE - :annotation: = 20 + .. py:data:: FLEXRAY_ERROR_ERROR_FIFO_OVERFLOW + :annotation: = 328 - .. py:data:: ISO15765_2_NETWORK_HSCAN - :annotation: = 1 + .. py:data:: FLEXRAY_ERROR_FPGA_CONFIG_FAILED + :annotation: = 320 - .. py:data:: ISO15765_2_NETWORK_HSCAN2 - :annotation: = 4 + .. py:data:: FLEXRAY_ERROR_HEARTBEAT_SEQUENCE_ERROR + :annotation: = 329 - .. py:data:: ISO15765_2_NETWORK_HSCAN3 - :annotation: = 8 + .. py:data:: FLEXRAY_ERROR_HEARTBEAT_TIMEOUT_ERROR + :annotation: = 330 - .. py:data:: ISO15765_2_NETWORK_HSCAN4 - :annotation: = 20 + .. py:data:: FLEXRAY_ERROR_HELPER_DLL_COULD_NOT_BE_LOADED + :annotation: = 324 - .. py:data:: ISO15765_2_NETWORK_HSCAN5 - :annotation: = 24 + .. py:data:: FLEXRAY_ERROR_INPUT_FIFO_OVERFLOW + :annotation: = 325 - .. py:data:: ISO15765_2_NETWORK_HSCAN6 - :annotation: = 28 + .. py:data:: FLEXRAY_ERROR_INVALID_ESCAPE_SEQUENCE + :annotation: = 326 - .. py:data:: ISO15765_2_NETWORK_HSCAN7 - :annotation: = 32 + .. py:data:: FLEXRAY_ERROR_NO_DEVICES_ATTACHED + :annotation: = 317 - .. py:data:: ISO15765_2_NETWORK_MSCAN - :annotation: = 2 + .. py:data:: FLEXRAY_ERROR_OUTPUT_MESSAGE_FIFO_OVERFLOW + :annotation: = 321 - .. py:data:: ISO15765_2_NETWORK_SWCAN - :annotation: = 16 + .. py:data:: FLEXRAY_ERROR_USB_LOW_LEVEL_READ_FAILURE + :annotation: = 327 - .. py:data:: ISO15765_2_NETWORK_SWCAN2 - :annotation: = 36 + .. py:data:: FLEX_VNETZ_FCHIP_ID + :annotation: = 83 - .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE - :annotation: = 114 + .. py:data:: FLEX_VNETZ_ZCHIP_ID + :annotation: = 78 - .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE - :annotation: = 6 + .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION + :annotation: = 1 - .. py:data:: J1708_SETTINGS_SIZE + .. py:data:: GLOBAL_SETTINGS_SIZE + :annotation: = 942 + + .. py:data:: GS_EX_ERR_API_FAILURE + :annotation: = 5 + + .. py:data:: GS_EX_ERR_GENERAL_FAILURE + :annotation: = 1 + + .. py:data:: GS_EX_ERR_INVALID_SUBCMD :annotation: = 2 - .. py:data:: JUPITER_PTP_ROLE_DISABLED + .. py:data:: GS_EX_ERR_INVALID_SUBVER + :annotation: = 3 + + .. py:data:: GS_EX_ERR_NOT_ENOUGH_MEM + :annotation: = 4 + + .. py:data:: GS_EX_ERR_OK :annotation: = 0 - .. py:data:: JUPITER_PTP_ROLE_MASTER - :annotation: = 1 + .. py:data:: GS_EX_ERR_OK_DEFAULTS_USED + :annotation: = 7 - .. py:data:: JUPITER_PTP_ROLE_SLAVE + .. py:data:: GS_EX_SUBCMD_DWCAN1 :annotation: = 2 - .. py:data:: LINK_SPEED_100MBPS_FULL_DUPLEX + .. py:data:: GS_EX_SUBCMD_DWCAN2 :annotation: = 3 - .. py:data:: LINK_SPEED_100MBPS_HALF_DUPLEX + .. py:data:: GS_EX_SUBCMD_DWCAN3 :annotation: = 4 - .. py:data:: LINK_SPEED_10MBPS_FULL_DUPLEX + .. py:data:: GS_EX_SUBCMD_DWCAN4 :annotation: = 5 - .. py:data:: LINK_SPEED_10MBPS_HALF_DUPLEX - :annotation: = 6 + .. py:data:: GS_EX_SUBCMD_GLOBAL + :annotation: = 1 - .. py:data:: LINK_SPEED_1GBPS_FULL_DUPLEX + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LATEST :annotation: = 1 - .. py:data:: LINK_SPEED_1GBPS_HALF_DUPLEX + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_0 :annotation: = 2 - .. py:data:: LINK_SPEED_AUTO_NEGOTIATION - :annotation: = 0 + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_1 + :annotation: = 3 - .. py:data:: LINK_SPEED_COUNT - :annotation: = 7 + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_2 + :annotation: = 4 - .. py:data:: LIN_SETTINGS_SIZE - :annotation: = 10 + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_3 + :annotation: = 5 - .. py:data:: LISTEN_ALL - :annotation: = 7 + .. py:data:: GS_EX_SUBCMD_HSCAN1 + :annotation: = 6 - .. py:data:: LISTEN_ONLY - :annotation: = 3 + .. py:data:: GS_EX_SUBCMD_HSCAN2 + :annotation: = 7 - .. py:data:: LOGGER_SETTINGS_SIZE - :annotation: = 4 + .. py:data:: GS_EX_SUBCMD_HSCAN3 + :annotation: = 8 - .. py:data:: LOOPBACK - :annotation: = 2 + .. py:data:: GS_EX_SUBCMD_HSCAN4 + :annotation: = 9 - .. py:data:: MAIN_VNET - :annotation: = 1 + .. py:data:: GS_EX_SUBCMD_LSFTCAN1 + :annotation: = 18 - .. py:data:: MAX_NUMBYTES_PHYSETTINGS - :annotation: = 512 + .. py:data:: GS_EX_SUBCMD_LSFTCAN2 + :annotation: = 19 - .. py:data:: MAX_PHY_REG_PKT_ENTRIES - :annotation: = 128 + .. py:data:: GS_EX_SUBCMD_LSFTCAN3 + :annotation: = 20 - .. py:data:: MAX_PHY_SETTINGS_STRUCT - :annotation: = 128 + .. py:data:: GS_EX_SUBCMD_LSFTCAN4 + :annotation: = 21 - .. py:data:: MAX_REPORTED_VERSIONS - :annotation: = 16 + .. py:data:: GS_EX_SUBCMD_MSCAN1 + :annotation: = 10 - .. py:data:: MAX_VL_FORWARDING_ENTRIES - :annotation: = 1024 + .. py:data:: GS_EX_SUBCMD_MSCAN2 + :annotation: = 11 - .. py:data:: MAX_VL_POLICING_ENTRIES - :annotation: = 1024 + .. py:data:: GS_EX_SUBCMD_MSCAN3 + :annotation: = 12 - .. py:data:: NEODEVICE_ANY_ION - :annotation: = 262144 + .. py:data:: GS_EX_SUBCMD_MSCAN4 + :annotation: = 13 - .. py:data:: NEODEVICE_ANY_PLASMA - :annotation: = 4096 + .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET + :annotation: = 32 - .. py:data:: NEODEVICE_BLUE + .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET_SUBVER_LATEST :annotation: = 1 - .. py:data:: NEODEVICE_CMPROBE - :annotation: = 8388608 + .. py:data:: GS_EX_SUBCMD_SWCAN1 + :annotation: = 14 - .. py:data:: NEODEVICE_CT_OBD - :annotation: = 32768 + .. py:data:: GS_EX_SUBCMD_SWCAN2 + :annotation: = 15 - .. py:data:: NEODEVICE_DONT_REUSE0 - :annotation: = 8192 + .. py:data:: GS_EX_SUBCMD_SWCAN3 + :annotation: = 16 - .. py:data:: NEODEVICE_DONT_REUSE1 - :annotation: = 65536 + .. py:data:: GS_EX_SUBCMD_SWCAN4 + :annotation: = 17 - .. py:data:: NEODEVICE_DONT_REUSE2 - :annotation: = 131072 + .. py:data:: GS_EX_SUBVER_STANDARD_STRUCT + :annotation: = 1 - .. py:data:: NEODEVICE_DONT_REUSE3 - :annotation: = 1048576 + .. py:data:: GS_VERSION + :annotation: = 5 - .. py:data:: NEODEVICE_DW_VCAN + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 + :annotation: = 2 + + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 + :annotation: = 5 + + .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC + :annotation: = 7 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS + :annotation: = 10 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US + :annotation: = 8 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS + :annotation: = 9 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI :annotation: = 4 - .. py:data:: NEODEVICE_ECU - :annotation: = 128 + .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN + :annotation: = 3 - .. py:data:: NEODEVICE_ECU22 - :annotation: = 27 + .. py:data:: HARDWARE_TIMESTAMP_ID_NONE + :annotation: = 0 - .. py:data:: NEODEVICE_ECUCHIP_UART - :annotation: = 2048 + .. py:data:: HARDWARE_TIMESTAMP_ID_VSI + :annotation: = 1 - .. py:data:: NEODEVICE_ECU_AVB + .. py:data:: HW_ETH_SETTINGS_SIZE + :annotation: = 20 + + .. py:data:: INTREPIDCS_15765_RX_COMPLETE + :annotation: = 128 + + .. py:data:: INTREPIDCS_15765_RX_ERR_CFRX_EXP_FF :annotation: = 2 - .. py:data:: NEODEVICE_EEVB - :annotation: = 16777216 + .. py:data:: INTREPIDCS_15765_RX_ERR_CF_TIME_OUT + :annotation: = 64 - .. py:data:: NEODEVICE_ETHER_BADGE - :annotation: = 22 + .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_CF + :annotation: = 32 - .. py:data:: NEODEVICE_FIRE - :annotation: = 8 + .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_FF + :annotation: = 4 - .. py:data:: NEODEVICE_FIRE2 - :annotation: = 67108864 + .. py:data:: INTREPIDCS_15765_RX_ERR_FFRX_EXP_CF + :annotation: = 16 - .. py:data:: NEODEVICE_FIRE2_REDLINE - :annotation: = 21 + .. py:data:: INTREPIDCS_15765_RX_ERR_GLOBAL + :annotation: = 1 - .. py:data:: NEODEVICE_FIRE3 - :annotation: = 15 + .. py:data:: INTREPIDCS_15765_RX_ERR_INVALID_LEN + :annotation: = 1024 - .. py:data:: NEODEVICE_FLEX - :annotation: = 134217728 + .. py:data:: INTREPIDCS_15765_RX_ERR_SEQ_ERR_CF + :annotation: = 512 - .. py:data:: NEODEVICE_GIGASTAR - :annotation: = 19 + .. py:data:: INTREPIDCS_15765_RX_ERR_SFRX_EXP_CF + :annotation: = 8 - .. py:data:: NEODEVICE_IEVB + .. py:data:: INTREPIDCS_15765_RX_IN_PROGRESS :annotation: = 256 - .. py:data:: NEODEVICE_ION - :annotation: = 262144 + .. py:data:: INTREPIDCS_DEVICE_NEO4 + :annotation: = 0 - .. py:data:: NEODEVICE_NEOANALOG - :annotation: = 16384 + .. py:data:: INTREPIDCS_DEVICE_NEO6 + :annotation: = 2 - .. py:data:: NEODEVICE_NEOECU12 - :annotation: = 12 + .. py:data:: INTREPIDCS_DEVICE_NEOFIRE + :annotation: = 10 - .. py:data:: NEODEVICE_NEOECUCHIP - :annotation: = 256 + .. py:data:: INTREPIDCS_DEVICE_NEORED + :annotation: = 10 - .. py:data:: NEODEVICE_NEW_DEVICE_58 - :annotation: = 31 + .. py:data:: INTREPIDCS_DEVICE_UNKNOWN + :annotation: = 3 - .. py:data:: NEODEVICE_NEW_DEVICE_59 - :annotation: = 33 + .. py:data:: INTREPIDCS_DEVICE_VCAN + :annotation: = 1 - .. py:data:: NEODEVICE_OBD2_DEV - :annotation: = 26 + .. py:data:: INTREPIDCS_DEVICE_VCAN2_DW + :annotation: = 4 - .. py:data:: NEODEVICE_OBD2_LC - :annotation: = 13 + .. py:data:: INTREPIDCS_DEVICE_VCAN2_LSFT + :annotation: = 6 - .. py:data:: NEODEVICE_OBD2_PRO - :annotation: = 1024 + .. py:data:: INTREPIDCS_DEVICE_VCAN2_SW + :annotation: = 5 - .. py:data:: NEODEVICE_OBD2_SIM - :annotation: = -2147483648 + .. py:data:: INTREPIDCS_DEVICE_VCAN2_WIFI + :annotation: = 7 - .. py:data:: NEODEVICE_OBD2_SIM_DOIP - :annotation: = 25 + .. py:data:: INTREPIDCS_DEVICE_VCAN3 + :annotation: = 11 - .. py:data:: NEODEVICE_PENDANT - :annotation: = 512 + .. py:data:: INTREPIDCS_DEVICE_VCAN3_CANDOC + :annotation: = 8 - .. py:data:: NEODEVICE_PLASMA - :annotation: = 4096 + .. py:data:: INTREPIDCS_DRIVER_CYPRESS + :annotation: = 2 - .. py:data:: NEODEVICE_RADEPSILON - :annotation: = 24 + .. py:data:: INTREPIDCS_DRIVER_ENHANCED_3G + :annotation: = 4 - .. py:data:: NEODEVICE_RADEPSILON_EXPRESS - :annotation: = 29 + .. py:data:: INTREPIDCS_DRIVER_STANDARD + :annotation: = 0 - .. py:data:: NEODEVICE_RADEPSILON_T + .. py:data:: INTREPIDCS_DRIVER_SYNCTOPC + :annotation: = 3 + + .. py:data:: INTREPIDCS_DRIVER_TEST + :annotation: = 1 + + .. py:data:: ISO15765_2_NETWORK_HSCAN + :annotation: = 1 + + .. py:data:: ISO15765_2_NETWORK_HSCAN2 + :annotation: = 4 + + .. py:data:: ISO15765_2_NETWORK_HSCAN3 + :annotation: = 8 + + .. py:data:: ISO15765_2_NETWORK_HSCAN4 + :annotation: = 20 + + .. py:data:: ISO15765_2_NETWORK_HSCAN5 + :annotation: = 24 + + .. py:data:: ISO15765_2_NETWORK_HSCAN6 :annotation: = 28 - .. py:data:: NEODEVICE_RADGALAXY - :annotation: = 268435456 + .. py:data:: ISO15765_2_NETWORK_HSCAN7 + :annotation: = 32 - .. py:data:: NEODEVICE_RADGIGALOG - :annotation: = 6 + .. py:data:: ISO15765_2_NETWORK_MSCAN + :annotation: = 2 - .. py:data:: NEODEVICE_RADIO_CANHUB - :annotation: = 11 + .. py:data:: ISO15765_2_NETWORK_SWCAN + :annotation: = 16 - .. py:data:: NEODEVICE_RADJUPITER - :annotation: = 17 + .. py:data:: ISO15765_2_NETWORK_SWCAN2 + :annotation: = 36 - .. py:data:: NEODEVICE_RADMOON2 - :annotation: = 5 + .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE + :annotation: = 114 - .. py:data:: NEODEVICE_RADPLUTO - :annotation: = 9 + .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE + :annotation: = 6 - .. py:data:: NEODEVICE_RADPROXIMA - :annotation: = 30 + .. py:data:: J1708_SETTINGS_SIZE + :annotation: = 2 - .. py:data:: NEODEVICE_RADSTAR - :annotation: = 524288 + .. py:data:: JUPITER_PTP_ROLE_DISABLED + :annotation: = 0 - .. py:data:: NEODEVICE_RADSTAR2 - :annotation: = 536870912 + .. py:data:: JUPITER_PTP_ROLE_MASTER + :annotation: = 1 - .. py:data:: NEODEVICE_RADSUPERMOON + .. py:data:: JUPITER_PTP_ROLE_SLAVE + :annotation: = 2 + + .. py:data:: LINK_SPEED_100MBPS_FULL_DUPLEX :annotation: = 3 - .. py:data:: NEODEVICE_RAD_A2B - :annotation: = 23 + .. py:data:: LINK_SPEED_100MBPS_HALF_DUPLEX + :annotation: = 4 - .. py:data:: NEODEVICE_RAD_BMS - :annotation: = 34 + .. py:data:: LINK_SPEED_10MBPS_FULL_DUPLEX + :annotation: = 5 - .. py:data:: NEODEVICE_RAD_MOON_DUO - :annotation: = 14 + .. py:data:: LINK_SPEED_10MBPS_HALF_DUPLEX + :annotation: = 6 - .. py:data:: NEODEVICE_RED - :annotation: = 64 + .. py:data:: LINK_SPEED_1GBPS_FULL_DUPLEX + :annotation: = 1 - .. py:data:: NEODEVICE_RED2 - :annotation: = 20 + .. py:data:: LINK_SPEED_1GBPS_HALF_DUPLEX + :annotation: = 2 - .. py:data:: NEODEVICE_UNKNOWN + .. py:data:: LINK_SPEED_AUTO_NEGOTIATION :annotation: = 0 - .. py:data:: NEODEVICE_VCAN3 - :annotation: = 16 + .. py:data:: LINK_SPEED_COUNT + :annotation: = 7 - .. py:data:: NEODEVICE_VCAN41 + .. py:data:: LIN_SETTINGS_SIZE + :annotation: = 10 + + .. py:data:: LISTEN_ALL :annotation: = 7 - .. py:data:: NEODEVICE_VCAN42 - :annotation: = 4194304 + .. py:data:: LISTEN_ONLY + :annotation: = 3 - .. py:data:: NEODEVICE_VCAN42_EL - :annotation: = 10 + .. py:data:: LL_AUTONOMOUS + :annotation: = 43 - .. py:data:: NEODEVICE_VCAN44 - :annotation: = 2097152 + .. py:data:: LL_CMPROBE + :annotation: = 23 - .. py:data:: NEODEVICE_VCAN4_IND - :annotation: = 18 + .. py:data:: LL_DEAD + :annotation: = 0 - .. py:data:: NEODEVICE_VCANRF - :annotation: = 33554432 + .. py:data:: LL_ECU22 + :annotation: = 47 - .. py:data:: NEODEVICE_VIVIDCAN - :annotation: = 1073741824 + .. py:data:: LL_ECU_20 + :annotation: = 14 - .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 + .. py:data:: LL_ECU_40 + :annotation: = 12 - .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 + .. py:data:: LL_ETHERNET_EVB + :annotation: = 17 - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 + .. py:data:: LL_ETHER_BADGE + :annotation: = 48 - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 + .. py:data:: LL_FIRE + :annotation: = 3 - .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 942 + .. py:data:: LL_FIRE2_CYAN + :annotation: = 19 - .. py:data:: NEOVI_COMMTYPE_FIRE_USB - :annotation: = 5 + .. py:data:: LL_FIRE3 + :annotation: = 39 - .. py:data:: NEOVI_COMMTYPE_RS232 - :annotation: = 0 + .. py:data:: LL_FIRE_DEMO + :annotation: = 2 + + .. py:data:: LL_FIRE_PRODUCTION + :annotation: = 11 + + .. py:data:: LL_GIGASTARLITE + :annotation: = 60 + + .. py:data:: LL_IEVB + :annotation: = 13 + + .. py:data:: LL_NEOECU12 + :annotation: = 36 + + .. py:data:: LL_NEOECU_AVB + :annotation: = 31 + + .. py:data:: LL_NEOOBD2_SIM + :annotation: = 24 + + .. py:data:: LL_NEOOBD_LOGGER + :annotation: = 16 + + .. py:data:: LL_NEO_HDA + :annotation: = 15 + + .. py:data:: LL_OBD2_DEV + :annotation: = 38 + + .. py:data:: LL_OBD2_LC + :annotation: = 37 + + .. py:data:: LL_OBD2_PRO + :annotation: = 29 + + .. py:data:: LL_OBDSIM_ETHERNET + :annotation: = 53 + + .. py:data:: LL_PRODUCTION + :annotation: = 1 + + .. py:data:: LL_RADCCS + :annotation: = 59 + + .. py:data:: LL_RADCOMET + :annotation: = 61 + + .. py:data:: LL_RADEPSILON + :annotation: = 49 + + .. py:data:: LL_RADEPSILON_EXPRESS + :annotation: = 55 + + .. py:data:: LL_RADEPSILON_T + :annotation: = 54 + + .. py:data:: LL_RADGALAXY + :annotation: = 20 + + .. py:data:: LL_RADGALAXY2 + :annotation: = 57 + + .. py:data:: LL_RADGIGALOG + :annotation: = 33 + + .. py:data:: LL_RADGIGASTAR + :annotation: = 41 + + .. py:data:: LL_RADJUPITER + :annotation: = 40 + + .. py:data:: LL_RADMOON2 + :annotation: = 32 + + .. py:data:: LL_RADMOONDUO + :annotation: = 42 + + .. py:data:: LL_RADPLUTO + :annotation: = 34 + + .. py:data:: LL_RADPLUTO_LITE + :annotation: = 45 + + .. py:data:: LL_RADPROXIMA + :annotation: = 56 + + .. py:data:: LL_RADSTAR2 + :annotation: = 21 + + .. py:data:: LL_RADSUPERMOON + :annotation: = 30 + + .. py:data:: LL_RADUNIVERSE + :annotation: = 58 + + .. py:data:: LL_RAD_A2B + :annotation: = 50 + + .. py:data:: LL_RAD_BMS + :annotation: = 62 + + .. py:data:: LL_RED + :annotation: = 5 + + .. py:data:: LL_RED2 + :annotation: = 46 + + .. py:data:: LL_RED2_2 + :annotation: = 52 + + .. py:data:: LL_RED2_4 + :annotation: = 51 + + .. py:data:: LL_RED_LIMITED + :annotation: = 4 + + .. py:data:: LL_VALUECAN_RF + :annotation: = 18 + + .. py:data:: LL_VCAN3 + :annotation: = 9 + + .. py:data:: LL_VCAN3_LIMITED + :annotation: = 8 + + .. py:data:: LL_VCAN3_PRODUCTION + :annotation: = 10 + + .. py:data:: LL_VCAN4_1 + :annotation: = 25 + + .. py:data:: LL_VCAN4_2 + :annotation: = 26 + + .. py:data:: LL_VCAN4_4 + :annotation: = 27 + + .. py:data:: LL_VCAN4_EL + :annotation: = 28 + + .. py:data:: LL_VCAN4_IND + :annotation: = 44 + + .. py:data:: LL_VIVIDCAN + :annotation: = 22 + + .. py:data:: LL_VIVIDCAN_PRO + :annotation: = 35 + + .. py:data:: LL_YELLOW + :annotation: = 7 + + .. py:data:: LL_YELLOW_LIMITED + :annotation: = 6 + + .. py:data:: LOGGER_SETTINGS_SIZE + :annotation: = 4 + + .. py:data:: LOOPBACK + :annotation: = 2 + + .. py:data:: LSFTCAN2 + :annotation: = 1 + + .. py:data:: MAIN_VNET + :annotation: = 1 + + .. py:data:: MAX_NUMBYTES_PHYSETTINGS + :annotation: = 512 + + .. py:data:: MAX_PHY_REG_PKT_ENTRIES + :annotation: = 128 + + .. py:data:: MAX_PHY_SETTINGS_STRUCT + :annotation: = 128 + + .. py:data:: MAX_REPORTED_VERSIONS + :annotation: = 16 + + .. py:data:: MAX_VL_FORWARDING_ENTRIES + :annotation: = 1024 + + .. py:data:: MAX_VL_POLICING_ENTRIES + :annotation: = 1024 + + .. py:data:: MSCAN2 + :annotation: = 0 + + .. py:data:: NEODEVICE_ANY_ION + :annotation: = 262144 + + .. py:data:: NEODEVICE_ANY_PLASMA + :annotation: = 4096 + + .. py:data:: NEODEVICE_BLUE + :annotation: = 1 + + .. py:data:: NEODEVICE_CMPROBE + :annotation: = 8388608 + + .. py:data:: NEODEVICE_CT_OBD + :annotation: = 32768 + + .. py:data:: NEODEVICE_DONT_REUSE0 + :annotation: = 8192 + + .. py:data:: NEODEVICE_DONT_REUSE1 + :annotation: = 65536 + + .. py:data:: NEODEVICE_DONT_REUSE2 + :annotation: = 131072 + + .. py:data:: NEODEVICE_DONT_REUSE3 + :annotation: = 1048576 + + .. py:data:: NEODEVICE_DW_VCAN + :annotation: = 4 + + .. py:data:: NEODEVICE_ECU + :annotation: = 128 + + .. py:data:: NEODEVICE_ECU22 + :annotation: = 27 + + .. py:data:: NEODEVICE_ECUCHIP_UART + :annotation: = 2048 + + .. py:data:: NEODEVICE_ECU_AVB + :annotation: = 2 + + .. py:data:: NEODEVICE_EEVB + :annotation: = 16777216 + + .. py:data:: NEODEVICE_ETHER_BADGE + :annotation: = 22 + + .. py:data:: NEODEVICE_FIRE + :annotation: = 8 + + .. py:data:: NEODEVICE_FIRE2 + :annotation: = 67108864 + + .. py:data:: NEODEVICE_FIRE2_CYAN + :annotation: = 67108864 + + .. py:data:: NEODEVICE_FIRE2_REDLINE + :annotation: = 21 + + .. py:data:: NEODEVICE_FIRE3 + :annotation: = 15 + + .. py:data:: NEODEVICE_FLEX + :annotation: = 134217728 + + .. py:data:: NEODEVICE_GIGASTAR + :annotation: = 19 + + .. py:data:: NEODEVICE_IEVB + :annotation: = 256 + + .. py:data:: NEODEVICE_ION + :annotation: = 262144 + + .. py:data:: NEODEVICE_NEOANALOG + :annotation: = 16384 + + .. py:data:: NEODEVICE_NEOECU12 + :annotation: = 12 + + .. py:data:: NEODEVICE_NEOECUCHIP + :annotation: = 256 + + .. py:data:: NEODEVICE_NEW_DEVICE_58 + :annotation: = 31 + + .. py:data:: NEODEVICE_NEW_DEVICE_59 + :annotation: = 33 + + .. py:data:: NEODEVICE_OBD2_DEV + :annotation: = 26 + + .. py:data:: NEODEVICE_OBD2_LC + :annotation: = 13 + + .. py:data:: NEODEVICE_OBD2_PRO + :annotation: = 1024 + + .. py:data:: NEODEVICE_OBD2_SIM + :annotation: = -2147483648 + + .. py:data:: NEODEVICE_OBD2_SIM_DOIP + :annotation: = 25 + + .. py:data:: NEODEVICE_PENDANT + :annotation: = 512 + + .. py:data:: NEODEVICE_PLASMA + :annotation: = 4096 + + .. py:data:: NEODEVICE_RADEPSILON + :annotation: = 24 + + .. py:data:: NEODEVICE_RADEPSILON_EXPRESS + :annotation: = 29 + + .. py:data:: NEODEVICE_RADEPSILON_T + :annotation: = 28 + + .. py:data:: NEODEVICE_RADGALAXY + :annotation: = 268435456 + + .. py:data:: NEODEVICE_RADGIGALOG + :annotation: = 6 + + .. py:data:: NEODEVICE_RADIO_CANHUB + :annotation: = 11 + + .. py:data:: NEODEVICE_RADJUPITER + :annotation: = 17 + + .. py:data:: NEODEVICE_RADMOON2 + :annotation: = 5 + + .. py:data:: NEODEVICE_RADPLUTO + :annotation: = 9 + + .. py:data:: NEODEVICE_RADPROXIMA + :annotation: = 30 + + .. py:data:: NEODEVICE_RADSTAR + :annotation: = 524288 + + .. py:data:: NEODEVICE_RADSTAR2 + :annotation: = 536870912 + + .. py:data:: NEODEVICE_RADSUPERMOON + :annotation: = 3 + + .. py:data:: NEODEVICE_RAD_A2B + :annotation: = 23 + + .. py:data:: NEODEVICE_RAD_BMS + :annotation: = 34 + + .. py:data:: NEODEVICE_RAD_MOON_DUO + :annotation: = 14 + + .. py:data:: NEODEVICE_RED + :annotation: = 64 + + .. py:data:: NEODEVICE_RED2 + :annotation: = 20 + + .. py:data:: NEODEVICE_UNKNOWN + :annotation: = 0 + + .. py:data:: NEODEVICE_VCAN3 + :annotation: = 16 + + .. py:data:: NEODEVICE_VCAN41 + :annotation: = 7 + + .. py:data:: NEODEVICE_VCAN42 + :annotation: = 4194304 + + .. py:data:: NEODEVICE_VCAN42_EL + :annotation: = 10 + + .. py:data:: NEODEVICE_VCAN44 + :annotation: = 2097152 + + .. py:data:: NEODEVICE_VCAN4_IND + :annotation: = 18 + + .. py:data:: NEODEVICE_VCANRF + :annotation: = 33554432 + + .. py:data:: NEODEVICE_VIVIDCAN + :annotation: = 1073741824 + + .. py:data:: NEOECU12_MCHIP_ID + :annotation: = 76 + + .. py:data:: NEOECU_AVB_MCHIP_ID + :annotation: = 68 + + .. py:data:: NEOECU_AVB_PROD_ID + :annotation: = 25 + + .. py:data:: NEOOBD2_LC_PROD_ID + :annotation: = 31 + + .. py:data:: NEOOBD2_PRO_PROD_ID + :annotation: = 23 + + .. py:data:: NEOOBD2_SIM_PROD_ID + :annotation: = 22 + + .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 + + .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 + + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 + + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 + + .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE + :annotation: = 942 + + .. py:data:: NEOVI_ANALOG_MPIC_ID + :annotation: = 13 + + .. py:data:: NEOVI_AOUT_MCHIP + :annotation: = 26 + + .. py:data:: NEOVI_CMPROBE_PROD_ID + :annotation: = 14 + + .. py:data:: NEOVI_CMPROBE_ZYNQ_ID + :annotation: = 33 + + .. py:data:: NEOVI_COMMTYPE_FIRE_USB + :annotation: = 5 + + .. py:data:: NEOVI_COMMTYPE_RS232 + :annotation: = 0 + + .. py:data:: NEOVI_COMMTYPE_TCPIP + :annotation: = 3 + + .. py:data:: NEOVI_COMMTYPE_USB_BULK + :annotation: = 1 + + .. py:data:: NEOVI_ECU_MPIC_ID + :annotation: = 6 + + .. py:data:: NEOVI_ECU_PROD_ID + :annotation: = 4 + + .. py:data:: NEOVI_EEVB_PROD_ID + :annotation: = 15 + + .. py:data:: NEOVI_EEVB_STM32_ID + :annotation: = 34 + + .. py:data:: NEOVI_ERROR_ABORTED_FOR_SHUTDOWN + :annotation: = 286 + + .. py:data:: NEOVI_ERROR_ACTIVE_CONNECTION_ALREADY_EXISTS + :annotation: = 277 + + .. py:data:: NEOVI_ERROR_CHANNEL_LOCKED_BY_OTHER_CLIENT + :annotation: = 288 + + .. py:data:: NEOVI_ERROR_CHANNEL_LOCKING_NOT_SUPPORTED_FOR_DEVICE + :annotation: = 290 + + .. py:data:: NEOVI_ERROR_COREMINI_IN_USE + :annotation: = 284 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORBADINIT + :annotation: = 263 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMININULLPTR + :annotation: = 271 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMINIZEROLEN + :annotation: = 272 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOULDNOTOPENTOOL + :annotation: = 268 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORINVALIDDEVICESELECTED + :annotation: = 267 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORISONEG7FRESPONSE + :annotation: = 265 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOCANPIPE + :annotation: = 264 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOFLOWCONTROL + :annotation: = 269 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORRESERVED3 + :annotation: = 273 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORRESERVED4 + :annotation: = 274 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORTOOLNOTSELECTED + :annotation: = 266 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORUNSPECIFIC + :annotation: = 270 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_OK + :annotation: = 262 + + .. py:data:: NEOVI_ERROR_DLL_3G_BL_FAILURE + :annotation: = 107 + + .. py:data:: NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED + :annotation: = 190 + + .. py:data:: NEOVI_ERROR_DLL_BULKIN_ERR_READ + :annotation: = 43 + + .. py:data:: NEOVI_ERROR_DLL_CLOSE_PURGE_COMM + :annotation: = 96 + + .. py:data:: NEOVI_ERROR_DLL_CONTACT_TECH_SUPPORT + :annotation: = 368 + + .. py:data:: NEOVI_ERROR_DLL_COULD_NOT_SET_SETTINGS_FIRMWARE_MISMATCH + :annotation: = 227 + + .. py:data:: NEOVI_ERROR_DLL_DEVICE_NOT_POWERED + :annotation: = 261 + + .. py:data:: NEOVI_ERROR_DLL_DEVICE_USB_CONNECTED_BUT_NOT_POWER + :annotation: = 294 + + .. py:data:: NEOVI_ERROR_DLL_DROPPED_RTC_CMD + :annotation: = 256 + + .. py:data:: NEOVI_ERROR_DLL_ERROR_BUFFER_OVERFLOW + :annotation: = 1 + + .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_RX_ERROR + :annotation: = 594 + + .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_TX_ERROR + :annotation: = 593 + + .. py:data:: NEOVI_ERROR_DLL_FAILED_TO_SET_LICENSE + :annotation: = 189 + + .. py:data:: NEOVI_ERROR_DLL_FEATURE_NOT_UNLOCKED + :annotation: = 260 + + .. py:data:: NEOVI_ERROR_DLL_FIRE_CGI_TX_NOT_ENABLED + :annotation: = 228 + + .. py:data:: NEOVI_ERROR_DLL_FIRMWARE_OLD_CANNOT_FLASH + :annotation: = 595 + + .. py:data:: NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR + :annotation: = 230 + + .. py:data:: NEOVI_ERROR_DLL_GET_USBSERIAL_DEVICES + :annotation: = 98 + + .. py:data:: NEOVI_ERROR_DLL_HARDWARE_FAILURE_SRAM + :annotation: = 276 + + .. py:data:: NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK + :annotation: = 90 + + .. py:data:: NEOVI_ERROR_DLL_INTERNAL_SERIAL_NO_DOES_NOT_MATCH_REGISTRY_SERIAL_NO + :annotation: = 187 + + .. py:data:: NEOVI_ERROR_DLL_INVALID_DEVICE_RESPONSE + :annotation: = 12 + + .. py:data:: NEOVI_ERROR_DLL_INVALID_NETID + :annotation: = 8 + + .. py:data:: NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION + :annotation: = 213 + + .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_HOST_MISSED_BYTE + :annotation: = 74 + + .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_IN + :annotation: = 69 + + .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_OUT + :annotation: = 71 + + .. py:data:: NEOVI_ERROR_DLL_ISORX_LONG_BUFFER_ALLOC + :annotation: = 49 + + .. py:data:: NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC + :annotation: = 13 + + .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_BUFFER_ALLOC + :annotation: = 3 + + .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_READ_BUFFER + :annotation: = 4 + + .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_ZERO_PACKETS + :annotation: = 5 + + .. py:data:: NEOVI_ERROR_DLL_ISO_LONG_CACHE_OVERFLOW + :annotation: = 48 + + .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_BUFFER_ALLOC + :annotation: = 51 + + .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_CACHE_OVERFLOW + :annotation: = 50 + + .. py:data:: NEOVI_ERROR_DLL_J1850_TX_REQUESTS_FLUSHED + :annotation: = 257 + + .. py:data:: NEOVI_ERROR_DLL_JVPW_LONG_CACHE_OVERFLOW + :annotation: = 188 + + .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_IN + :annotation: = 68 + + .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_OUT + :annotation: = 70 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_DEV_FIFO_OVERFLOW + :annotation: = 46 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_LOADED_DEFAULT_SETTINGS + :annotation: = 205 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_AUTO_RTC + :annotation: = 279 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_FAILED_READ + :annotation: = 278 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_INVALID + :annotation: = 204 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RX_FIFO_OVERFLOW + :annotation: = 44 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW + :annotation: = 45 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_AUX + :annotation: = 59 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_DEVICE + :annotation: = 52 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_FORDSCP + :annotation: = 57 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HOST + :annotation: = 64 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HSCAN + :annotation: = 53 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISO + :annotation: = 61 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISOPIC + :annotation: = 62 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_J1708 + :annotation: = 58 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_JVPW + :annotation: = 60 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_LSFTCAN + :annotation: = 56 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MAIN51 + :annotation: = 63 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MSCAN + :annotation: = 54 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN + :annotation: = 55 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN2 + :annotation: = 311 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_CHKSUM + :annotation: = 73 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_OVERRUN + :annotation: = 91 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_IN_FROM_HOST_FIFO + :annotation: = 72 + + .. py:data:: NEOVI_ERROR_DLL_MAIN_PIC_BUFFER_OVERFLOW + :annotation: = 11 + + .. py:data:: NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE + :annotation: = 75 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B1 + :annotation: = 582 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B2 + :annotation: = 590 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_CGI + :annotation: = 211 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET + :annotation: = 517 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET2 + :annotation: = 601 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET3 + :annotation: = 637 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET_DAQ + :annotation: = 529 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN + :annotation: = 191 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN2 + :annotation: = 193 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN3 + :annotation: = 194 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN4 + :annotation: = 299 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN5 + :annotation: = 305 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN6 + :annotation: = 348 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN7 + :annotation: = 354 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C1 + :annotation: = 554 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C2 + :annotation: = 561 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C3 + :annotation: = 568 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C4 + :annotation: = 575 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO + :annotation: = 223 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO1 + :annotation: = 251 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO2 + :annotation: = 232 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO3 + :annotation: = 233 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO4 + :annotation: = 234 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_J1708 + :annotation: = 203 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_JVPW + :annotation: = 201 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_KYW + :annotation: = 202 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN1 + :annotation: = 197 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN2 + :annotation: = 198 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN3 + :annotation: = 199 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN4 + :annotation: = 200 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN5 + :annotation: = 343 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN6 + :annotation: = 366 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFT + :annotation: = 195 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFTCAN2 + :annotation: = 360 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_MSCAN + :annotation: = 192 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH1 + :annotation: = 373 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH10 + :annotation: = 481 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH11 + :annotation: = 493 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH12 + :annotation: = 505 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH2 + :annotation: = 385 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH3 + :annotation: = 397 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH4 + :annotation: = 409 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH5 + :annotation: = 421 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH6 + :annotation: = 433 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH7 + :annotation: = 445 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH8 + :annotation: = 457 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH9 + :annotation: = 469 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW + :annotation: = 196 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW2 + :annotation: = 313 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_SUPPORTED_BY_HARDWARE + :annotation: = 259 + + .. py:data:: NEOVI_ERROR_DLL_NRED_ODDNUMBYTES + :annotation: = 103 + + .. py:data:: NEOVI_ERROR_DLL_NRED_UNKNOWN_RED_NETID + :annotation: = 104 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_GET_COMM_TIMEOUT + :annotation: = 92 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_INBOOTLOADER + :annotation: = 100 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE + :annotation: = 94 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE_TOUT + :annotation: = 95 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_SET_COMM_TIMEOUT + :annotation: = 93 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_FIRMWARE_INFO + :annotation: = 102 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_BULKIN_THREAD + :annotation: = 42 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_CLIENT_THREAD + :annotation: = 79 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_THREAD + :annotation: = 78 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RX_THREAD + :annotation: = 9 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_CLIENT_THREAD + :annotation: = 285 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_THREAD + :annotation: = 77 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TX_THREAD + :annotation: = 10 + + .. py:data:: NEOVI_ERROR_DLL_READ_ENTIRE_DEEPROM_ERROR + :annotation: = 65 + + .. py:data:: NEOVI_ERROR_DLL_REASON_RESERVE_CNT + :annotation: = 10 + + .. py:data:: NEOVI_ERROR_DLL_REASON_USER_DEFINED + :annotation: = 650 + + .. py:data:: NEOVI_ERROR_DLL_RED_APP_VERSION + :annotation: = 120 + + .. py:data:: NEOVI_ERROR_DLL_RED_AUTHENTICATE + :annotation: = 119 + + .. py:data:: NEOVI_ERROR_DLL_RED_BL_END_INDEX + :annotation: = 116 + + .. py:data:: NEOVI_ERROR_DLL_RED_BL_START_INDEX + :annotation: = 106 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B1 + :annotation: = 580 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B2 + :annotation: = 588 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_CGI + :annotation: = 209 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET + :annotation: = 516 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET2 + :annotation: = 600 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET3 + :annotation: = 636 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET_DAQ + :annotation: = 528 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1A + :annotation: = 333 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1B + :annotation: = 334 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2A + :annotation: = 335 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2B + :annotation: = 336 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN1 + :annotation: = 132 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN2 + :annotation: = 136 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN3 + :annotation: = 144 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN4 + :annotation: = 298 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN5 + :annotation: = 304 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN6 + :annotation: = 347 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN7 + :annotation: = 353 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C1 + :annotation: = 552 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C2 + :annotation: = 559 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C3 + :annotation: = 566 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C4 + :annotation: = 573 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO2 + :annotation: = 238 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO3 + :annotation: = 243 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO4 + :annotation: = 248 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_JVPW + :annotation: = 186 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN1 + :annotation: = 156 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN2 + :annotation: = 160 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN3 + :annotation: = 164 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN4 + :annotation: = 168 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN5 + :annotation: = 340 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN6 + :annotation: = 365 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN + :annotation: = 152 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN2 + :annotation: = 359 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_MSCAN1 + :annotation: = 140 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH1 + :annotation: = 372 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH10 + :annotation: = 480 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH11 + :annotation: = 492 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH12 + :annotation: = 504 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH2 + :annotation: = 384 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH3 + :annotation: = 396 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH4 + :annotation: = 408 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH5 + :annotation: = 420 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH6 + :annotation: = 432 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH7 + :annotation: = 444 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH8 + :annotation: = 456 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH9 + :annotation: = 468 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN + :annotation: = 148 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN2 + :annotation: = 310 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_CLEAR_LIN_SLAVE_DATA + :annotation: = 250 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_ENTER_BL + :annotation: = 117 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_SAVE_EEPROM + :annotation: = 124 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_UPDATE_WAVEFORM_CHANNEL + :annotation: = 125 + + .. py:data:: NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED + :annotation: = 122 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET + :annotation: = 629 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET2 + :annotation: = 630 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET3 + :annotation: = 640 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET_DAQ + :annotation: = 631 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH1 + :annotation: = 617 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH10 + :annotation: = 626 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH11 + :annotation: = 627 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH12 + :annotation: = 628 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH2 + :annotation: = 618 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH3 + :annotation: = 619 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH4 + :annotation: = 620 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH5 + :annotation: = 621 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH6 + :annotation: = 622 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH7 + :annotation: = 623 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH8 + :annotation: = 624 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH9 + :annotation: = 625 + + .. py:data:: NEOVI_ERROR_DLL_RED_NOT_SUPPORTED + :annotation: = 105 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH1 + :annotation: = 537 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH10 + :annotation: = 546 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH11 + :annotation: = 547 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH12 + :annotation: = 548 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH2 + :annotation: = 538 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH3 + :annotation: = 539 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH4 + :annotation: = 540 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH5 + :annotation: = 541 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH6 + :annotation: = 542 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH7 + :annotation: = 543 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH8 + :annotation: = 544 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH9 + :annotation: = 545 + + .. py:data:: NEOVI_ERROR_DLL_RED_READ_BAUD_COMM_FAILURE + :annotation: = 123 + + .. py:data:: NEOVI_ERROR_DLL_RED_REQ_SERIAL_NUMBER + :annotation: = 118 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B1 + :annotation: = 577 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B2 + :annotation: = 585 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_CGI + :annotation: = 206 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET + :annotation: = 513 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET2 + :annotation: = 597 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET3 + :annotation: = 633 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET_DAQ + :annotation: = 525 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_FR1A + :annotation: = 332 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN1 + :annotation: = 129 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN2 + :annotation: = 133 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN3 + :annotation: = 141 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN4 + :annotation: = 295 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN5 + :annotation: = 301 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN6 + :annotation: = 344 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN7 + :annotation: = 350 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C1 + :annotation: = 549 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C2 + :annotation: = 556 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C3 + :annotation: = 563 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C4 + :annotation: = 570 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO + :annotation: = 222 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO1 + :annotation: = 252 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO2 + :annotation: = 235 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO3 + :annotation: = 240 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO4 + :annotation: = 245 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_JVPW + :annotation: = 183 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN1 + :annotation: = 153 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN2 + :annotation: = 157 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN3 + :annotation: = 161 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN4 + :annotation: = 165 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN5 + :annotation: = 337 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN6 + :annotation: = 362 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN + :annotation: = 149 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN2 + :annotation: = 356 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_MSCAN1 + :annotation: = 137 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH1 + :annotation: = 369 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH10 + :annotation: = 477 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH11 + :annotation: = 489 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH12 + :annotation: = 501 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH2 + :annotation: = 381 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH3 + :annotation: = 393 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH4 + :annotation: = 405 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH5 + :annotation: = 417 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH6 + :annotation: = 429 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH7 + :annotation: = 441 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH8 + :annotation: = 453 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH9 + :annotation: = 465 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN + :annotation: = 145 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN2 + :annotation: = 307 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_UNKNOWN_NETWORK + :annotation: = 126 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B1 + :annotation: = 581 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B2 + :annotation: = 589 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_CGI + :annotation: = 210 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET + :annotation: = 518 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET2 + :annotation: = 602 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET3 + :annotation: = 638 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET_DAQ + :annotation: = 530 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN1 + :annotation: = 172 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN2 + :annotation: = 173 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN3 + :annotation: = 174 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN4 + :annotation: = 300 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN5 + :annotation: = 306 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN6 + :annotation: = 349 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN7 + :annotation: = 355 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C1 + :annotation: = 553 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C2 + :annotation: = 560 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C3 + :annotation: = 567 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C4 + :annotation: = 574 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO1 + :annotation: = 255 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO2 + :annotation: = 239 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO3 + :annotation: = 244 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO4 + :annotation: = 249 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_JVPW + :annotation: = 212 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN1 + :annotation: = 178 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN2 + :annotation: = 179 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN3 + :annotation: = 180 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN4 + :annotation: = 181 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN5 + :annotation: = 342 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN6 + :annotation: = 367 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN + :annotation: = 177 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN2 + :annotation: = 361 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_MSCAN + :annotation: = 175 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH1 + :annotation: = 374 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH10 + :annotation: = 482 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH11 + :annotation: = 494 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH12 + :annotation: = 506 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH2 + :annotation: = 386 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH3 + :annotation: = 398 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH4 + :annotation: = 410 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH5 + :annotation: = 422 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH6 + :annotation: = 434 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH7 + :annotation: = 446 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH8 + :annotation: = 458 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH9 + :annotation: = 470 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN + :annotation: = 176 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN2 + :annotation: = 312 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_UNKNOWN_NETWORK + :annotation: = 182 + + .. py:data:: NEOVI_ERROR_DLL_RED_SET_BAUD_COMM_FAILURE + :annotation: = 121 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B1 + :annotation: = 578 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B2 + :annotation: = 586 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_CGI + :annotation: = 207 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET + :annotation: = 514 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET2 + :annotation: = 598 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET3 + :annotation: = 634 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET_DAQ + :annotation: = 526 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN1 + :annotation: = 130 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN2 + :annotation: = 134 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN3 + :annotation: = 142 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN4 + :annotation: = 296 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN5 + :annotation: = 302 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN6 + :annotation: = 345 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN7 + :annotation: = 351 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C1 + :annotation: = 550 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C2 + :annotation: = 557 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C3 + :annotation: = 564 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C4 + :annotation: = 571 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO1 + :annotation: = 253 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO2 + :annotation: = 236 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO3 + :annotation: = 241 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO4 + :annotation: = 246 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_JVPW + :annotation: = 184 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN1 + :annotation: = 154 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN2 + :annotation: = 158 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN3 + :annotation: = 162 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN4 + :annotation: = 166 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN5 + :annotation: = 338 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN6 + :annotation: = 363 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN + :annotation: = 150 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN2 + :annotation: = 357 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_MSCAN1 + :annotation: = 138 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH1 + :annotation: = 370 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH10 + :annotation: = 478 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH11 + :annotation: = 490 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH12 + :annotation: = 502 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH2 + :annotation: = 382 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH3 + :annotation: = 394 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH4 + :annotation: = 406 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH5 + :annotation: = 418 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH6 + :annotation: = 430 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH7 + :annotation: = 442 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH8 + :annotation: = 454 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH9 + :annotation: = 466 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN + :annotation: = 146 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN2 + :annotation: = 308 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_UNKNOWN_NETWORK + :annotation: = 127 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET + :annotation: = 616 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH1 + :annotation: = 604 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH10 + :annotation: = 613 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH11 + :annotation: = 614 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH12 + :annotation: = 615 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH2 + :annotation: = 605 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH3 + :annotation: = 606 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH4 + :annotation: = 607 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH5 + :annotation: = 608 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH6 + :annotation: = 609 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH7 + :annotation: = 610 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH8 + :annotation: = 611 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH9 + :annotation: = 612 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B1 + :annotation: = 579 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B2 + :annotation: = 587 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_CGI + :annotation: = 208 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET + :annotation: = 515 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET2 + :annotation: = 599 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET3 + :annotation: = 635 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET_DAQ + :annotation: = 527 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN1 + :annotation: = 131 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN2 + :annotation: = 135 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN3 + :annotation: = 143 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN4 + :annotation: = 297 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN5 + :annotation: = 303 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN6 + :annotation: = 346 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN7 + :annotation: = 352 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C1 + :annotation: = 551 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C2 + :annotation: = 558 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C3 + :annotation: = 565 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C4 + :annotation: = 572 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO1 + :annotation: = 254 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO2 + :annotation: = 237 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO3 + :annotation: = 242 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO4 + :annotation: = 247 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_JVPW + :annotation: = 185 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN1 + :annotation: = 155 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN2 + :annotation: = 159 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN3 + :annotation: = 163 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN4 + :annotation: = 167 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN5 + :annotation: = 339 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN6 + :annotation: = 364 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN + :annotation: = 151 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN2 + :annotation: = 358 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_MSCAN1 + :annotation: = 139 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH1 + :annotation: = 371 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH10 + :annotation: = 479 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH11 + :annotation: = 491 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH12 + :annotation: = 503 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH2 + :annotation: = 383 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH3 + :annotation: = 395 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH4 + :annotation: = 407 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH5 + :annotation: = 419 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH6 + :annotation: = 431 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH7 + :annotation: = 443 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH8 + :annotation: = 455 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH9 + :annotation: = 467 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN + :annotation: = 147 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN2 + :annotation: = 309 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_UNKNOWN_NETWORK + :annotation: = 128 + + .. py:data:: NEOVI_ERROR_DLL_RESET_STATUS_CHANGED + :annotation: = 47 + + .. py:data:: NEOVI_ERROR_DLL_RS232_BUFFER_ALLOC + :annotation: = 18 + + .. py:data:: NEOVI_ERROR_DLL_RS232_CREATE_FILE + :annotation: = 33 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_BREAK + :annotation: = 26 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_FRAME + :annotation: = 27 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_IOE + :annotation: = 28 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_OVERRUN + :annotation: = 29 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_PARITY + :annotation: = 30 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READ + :annotation: = 17 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READCOMERR + :annotation: = 16 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_BUFFER_ALLOC + :annotation: = 22 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_CLEARCOMM + :annotation: = 23 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_READCOMM + :annotation: = 24 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_TIMEOUT + :annotation: = 25 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_WRITE + :annotation: = 21 + + .. py:data:: NEOVI_ERROR_DLL_RS232_GET_COMM_STATE + :annotation: = 34 + + .. py:data:: NEOVI_ERROR_DLL_RS232_MISC_ERROR + :annotation: = 20 + + .. py:data:: NEOVI_ERROR_DLL_RS232_RX_BUFFER_OVERFLOW + :annotation: = 15 + + .. py:data:: NEOVI_ERROR_DLL_RS232_SET_COMM_STATE + :annotation: = 35 + + .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_RX_THREAD + :annotation: = 36 + + .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_TX_THREAD + :annotation: = 37 + + .. py:data:: NEOVI_ERROR_DLL_RS232_TXBUFFER_ALLOC + :annotation: = 31 + + .. py:data:: NEOVI_ERROR_DLL_RS232_TX_BUFFER_OVERFLOW + :annotation: = 19 + + .. py:data:: NEOVI_ERROR_DLL_RX_BUFFER_ALMOST_FULL + :annotation: = 651 + + .. py:data:: NEOVI_ERROR_DLL_RX_CMD_BUFFER_OVERFLOW + :annotation: = 14 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW + :annotation: = 6 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_CHK_SUM_ERR + :annotation: = 41 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FIFO_OVER + :annotation: = 40 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FRAME_ERR + :annotation: = 39 + + .. py:data:: NEOVI_ERROR_DLL_RX_SOCKET_FIFO_OVER + :annotation: = 76 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_CLEARING_SCRIPT + :annotation: = 221 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_DOWNLOADING_SCRIPT + :annotation: = 220 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX + :annotation: = 225 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX + :annotation: = 219 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_MSG_INDEX + :annotation: = 224 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING + :annotation: = 226 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_START_ERROR + :annotation: = 218 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_FORMATTED + :annotation: = 215 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED + :annotation: = 214 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_READ_ERROR + :annotation: = 217 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR + :annotation: = 216 + + .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR + :annotation: = 229 + + .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_NOTPOSSIBLE + :annotation: = 287 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_RD_BUFFER_ALLOC + :annotation: = 86 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_TX_BUFFER_ALLOC + :annotation: = 87 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_RX_BUFFER_ALLOC + :annotation: = 88 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_TX_BUFFER_ALLOC + :annotation: = 89 + + .. py:data:: NEOVI_ERROR_DLL_STOP_ISO_STREAM + :annotation: = 7 + + .. py:data:: NEOVI_ERROR_DLL_SYNC_COUNT_ERR + :annotation: = 38 + + .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX + :annotation: = 81 + + .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX_SOCK + :annotation: = 82 + + .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_TX + :annotation: = 80 + + .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_PERIODICS + :annotation: = 101 + + .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_TXRXPAIRS + :annotation: = 291 + + .. py:data:: NEOVI_ERROR_DLL_TXRXPAIRS_NOT_SUPPORTED_FOR_DEVICE + :annotation: = 292 + + .. py:data:: NEOVI_ERROR_DLL_TX_BUFFER_OVERFLOW + :annotation: = 0 + + .. py:data:: NEOVI_ERROR_DLL_TX_COM_FIFO_OVERFLOW + :annotation: = 97 + + .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B1 + :annotation: = 584 + + .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B2 + :annotation: = 592 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B1 + :annotation: = 583 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B2 + :annotation: = 591 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET + :annotation: = 524 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET2 + :annotation: = 603 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET3 + :annotation: = 639 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET_DAQ + :annotation: = 536 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C1 + :annotation: = 555 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C2 + :annotation: = 562 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C3 + :annotation: = 569 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C4 + :annotation: = 576 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH1 + :annotation: = 380 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH10 + :annotation: = 488 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH11 + :annotation: = 500 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH12 + :annotation: = 512 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH2 + :annotation: = 392 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH3 + :annotation: = 404 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH4 + :annotation: = 416 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH5 + :annotation: = 428 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH6 + :annotation: = 440 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH7 + :annotation: = 452 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH8 + :annotation: = 464 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH9 + :annotation: = 476 + + .. py:data:: NEOVI_ERROR_DLL_UNABLE_CONNECT_TO_SRVR + :annotation: = 83 + + .. py:data:: NEOVI_ERROR_DLL_UNABLE_CREATE_CLIENT_SOCK + :annotation: = 84 + + .. py:data:: NEOVI_ERROR_DLL_UNABLE_WSASTARTUP + :annotation: = 85 + + .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_APP_ERROR + :annotation: = 596 + + .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE + :annotation: = 231 + + .. py:data:: NEOVI_ERROR_DLL_USB_PORT_ALREADY_OPEN + :annotation: = 67 + + .. py:data:: NEOVI_ERROR_DLL_USB_PURGE_FAILED + :annotation: = 169 + + .. py:data:: NEOVI_ERROR_DLL_USB_SEND_DATA_ERROR + :annotation: = 2 + + .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_BCOUNT + :annotation: = 99 + + .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_ERROR + :annotation: = 32 + + .. py:data:: NEOVI_ERROR_DLL_WRITE_ENTIRE_DEEPROM_ERROR + :annotation: = 66 + + .. py:data:: NEOVI_ERROR_ETHERNET_IP_FRAGMENT_DATA_LOSS + :annotation: = 632 + + .. py:data:: NEOVI_ERROR_FAILED_TO_SET_RTC + :annotation: = 331 + + .. py:data:: NEOVI_ERROR_FIRE_CGI_COMM_BAD_PACKET + :annotation: = 171 + + .. py:data:: NEOVI_ERROR_FIRE_COMM_BAD_PACKET + :annotation: = 170 + + .. py:data:: NEOVI_ERROR_J1708_COMM_BAD_PACKET + :annotation: = 258 + + .. py:data:: NEOVI_ERROR_NEOVISERVER_GENERAL_ERROR + :annotation: = 289 + + .. py:data:: NEOVI_ERROR_PLASMA_CORE_RESTARTED + :annotation: = 280 + + .. py:data:: NEOVI_ERROR_REQ_VBATT_FAILED + :annotation: = 281 + + .. py:data:: NEOVI_ERROR_RX_FILTER_MATCH_COUNT_EXCEEDED + :annotation: = 316 + + .. py:data:: NEOVI_ERROR_TXRX_PAIRS_BUSY + :annotation: = 283 + + .. py:data:: NEOVI_ERROR_TXRX_PAIRS_FAILED + :annotation: = 293 + + .. py:data:: NEOVI_ERROR_TXRX_PAIRS_TIMEOUT + :annotation: = 282 + + .. py:data:: NEOVI_ERROR_TX_INTERFACE_NOT_IMPLEMENTED + :annotation: = 314 + + .. py:data:: NEOVI_ERROR_TX_MESSAGES_COMM_ENABLE_IS_OFF + :annotation: = 315 + + .. py:data:: NEOVI_ETHER_BADGE_PROD_ID + :annotation: = 38 + + .. py:data:: NEOVI_FIRE2_CYAN_BLECHIP_ID + :annotation: = 42 + + .. py:data:: NEOVI_FIRE2_CYAN_CCHIP_ID + :annotation: = 40 + + .. py:data:: NEOVI_FIRE2_CYAN_CORE_ID + :annotation: = 41 + + .. py:data:: NEOVI_FIRE2_CYAN_CORE_SG4_ID + :annotation: = 105 + + .. py:data:: NEOVI_FIRE2_CYAN_MCHIP_ID + :annotation: = 39 + + .. py:data:: NEOVI_FIRE2_CYAN_PROD_ID + :annotation: = 18 + + .. py:data:: NEOVI_FIRE2_CYAN_SECURITYCHIP_ID + :annotation: = 44 + + .. py:data:: NEOVI_FIRE2_CYAN_ZYNQ_ID + :annotation: = 43 + + .. py:data:: NEOVI_FIRE3_PROD_ID + :annotation: = 33 + + .. py:data:: NEOVI_FIRE_JCHIP_ID + :annotation: = 3 + + .. py:data:: NEOVI_FIRE_LCHIP_ID + :annotation: = 1 + + .. py:data:: NEOVI_FIRE_MCHIP_ID + :annotation: = 0 + + .. py:data:: NEOVI_FIRE_PROD_ID + :annotation: = 1 + + .. py:data:: NEOVI_FIRE_UCHIP_ID + :annotation: = 2 + + .. py:data:: NEOVI_IEVB_MPIC_ID + :annotation: = 7 + + .. py:data:: NEOVI_IEVB_PROD_ID + :annotation: = 5 + + .. py:data:: NEOVI_ION_CORE_ID + :annotation: = 19 + + .. py:data:: NEOVI_ION_CORE_LOADER_ID + :annotation: = 21 + + .. py:data:: NEOVI_ION_FPGA_BIT_ID + :annotation: = 23 + + .. py:data:: NEOVI_ION_HID_ID + :annotation: = 20 + + .. py:data:: NEOVI_ION_HID_LOADER_ID + :annotation: = 22 + + .. py:data:: NEOVI_ION_PROD_ID + :annotation: = 11 + + .. py:data:: NEOVI_MOST150_MCHIP + :annotation: = 29 + + .. py:data:: NEOVI_MOST25_MCHIP + :annotation: = 27 + + .. py:data:: NEOVI_MOST50_MCHIP + :annotation: = 28 + + .. py:data:: NEOVI_NEOANALOG_PROD_ID + :annotation: = 7 + + .. py:data:: NEOVI_NEOECU12_PROD_ID + :annotation: = 8 + + .. py:data:: NEOVI_OBD2_SIM_MCHIP_ID + :annotation: = 53 + + .. py:data:: NEOVI_PENDANT_MPIC_ID + :annotation: = 8 + + .. py:data:: NEOVI_PENDANT_PROD_ID + :annotation: = 6 + + .. py:data:: NEOVI_PLASMA_ANALOG_CORE_ID + :annotation: = 14 + + .. py:data:: NEOVI_PLASMA_CORE_ID + :annotation: = 11 + + .. py:data:: NEOVI_PLASMA_CORE_ID_1_12 + :annotation: = 16 + + .. py:data:: NEOVI_PLASMA_FLEXRAY_CORE_ID + :annotation: = 15 + + .. py:data:: NEOVI_PLASMA_HID_ID + :annotation: = 12 + + .. py:data:: NEOVI_PLASMA_PROD_ID + :annotation: = 10 + + .. py:data:: NEOVI_PLASMA_SLAVE_B_ANALOG_CORE_ID + :annotation: = 247 + + .. py:data:: NEOVI_PLASMA_SLAVE_B_FLEXRAY_CORE_ID + :annotation: = 248 + + .. py:data:: NEOVI_RADGALAXY_PROD_ID + :annotation: = 19 + + .. py:data:: NEOVI_RADGALAXY_ZYNQ_ID + :annotation: = 45 + + .. py:data:: NEOVI_RADGIGALOG3_ZYNQ_ID + :annotation: = 87 + + .. py:data:: NEOVI_RADGIGALOG_PROD_ID + :annotation: = 29 + + .. py:data:: NEOVI_RADGIGALOG_ZYNQ_ID + :annotation: = 75 + + .. py:data:: NEOVI_RADJUPITER_PROD_ID + :annotation: = 34 + + .. py:data:: NEOVI_RADMOON2_PROD_ID + :annotation: = 27 + + .. py:data:: NEOVI_RADMOON2_Z7010_ZYNQ_ID + :annotation: = 104 + + .. py:data:: NEOVI_RADMOON2_ZYNQ_ID + :annotation: = 71 + + .. py:data:: NEOVI_RADPLUTO_PROD_ID + :annotation: = 28 + + .. py:data:: NEOVI_RADSTAR2_PROD_ID + :annotation: = 20 + + .. py:data:: NEOVI_RADSTAR2_ZYNQ_ID + :annotation: = 51 + + .. py:data:: NEOVI_RADSTAR_MCHIP_ID + :annotation: = 37 + + .. py:data:: NEOVI_RADSTAR_PROD_ID + :annotation: = 16 + + .. py:data:: NEOVI_RADSUPERMOON_PROD_ID + :annotation: = 26 - .. py:data:: NEOVI_COMMTYPE_TCPIP - :annotation: = 3 + .. py:data:: NEOVI_RADSUPERMOON_ZYNQ_ID + :annotation: = 70 - .. py:data:: NEOVI_COMMTYPE_USB_BULK - :annotation: = 1 + .. py:data:: NEOVI_RED_PROD_ID + :annotation: = 0 .. py:data:: NEOVI_RED_TIMESTAMP_1_10NS :annotation: = 1e-08 @@ -1421,12 +3921,87 @@ Module Variables .. py:data:: NEOVI_RED_TIMESTAMP_2_25NS :annotation: = 107.3741824 + .. py:data:: NEOVI_SLAVE_B_AOUT_MCHIP + :annotation: = 252 + + .. py:data:: NEOVI_SLAVE_B_MOST150_MCHIP + :annotation: = 251 + + .. py:data:: NEOVI_SLAVE_B_MOST25_MCHIP + :annotation: = 249 + + .. py:data:: NEOVI_SLAVE_B_MOST50_MCHIP + :annotation: = 250 + + .. py:data:: NEOVI_SLAVE_B_VNETFIRE_LCHIP_ID + :annotation: = 246 + + .. py:data:: NEOVI_SLAVE_B_VNETFIRE_MCHIP_ID + :annotation: = 245 + + .. py:data:: NEOVI_SLAVE_VNETFIRE_LCHIP_ID + :annotation: = 18 + + .. py:data:: NEOVI_SLAVE_VNETFIRE_MCHIP_ID + :annotation: = 17 + .. py:data:: NEOVI_TIMESTAMP_1 :annotation: = 1.6e-06 .. py:data:: NEOVI_TIMESTAMP_2 :annotation: = 0.1048576 + .. py:data:: NEOVI_VCAN3_MCHIP_ID + :annotation: = 4 + + .. py:data:: NEOVI_VCAN3_PROD_ID + :annotation: = 2 + + .. py:data:: NEOVI_VCANRF_MCHIP_ID + :annotation: = 38 + + .. py:data:: NEOVI_VCANRF_PROD_ID + :annotation: = 17 + + .. py:data:: NEOVI_VIVIDCAN_EXT_FLASH_ID + :annotation: = 58 + + .. py:data:: NEOVI_VIVIDCAN_MCHIP_ID + :annotation: = 52 + + .. py:data:: NEOVI_VIVIDCAN_NRF52_ID + :annotation: = 59 + + .. py:data:: NEOVI_VIVIDCAN_PROD_ID + :annotation: = 21 + + .. py:data:: NEOVI_VIVIDCAN_PRO_PROD_ID + :annotation: = 3 + + .. py:data:: NEOVI_VNETFIRE_EP_LCHIP_ID + :annotation: = 25 + + .. py:data:: NEOVI_VNETFIRE_EP_MCHIP_ID + :annotation: = 24 + + .. py:data:: NEOVI_VNETFIRE_LCHIP_ID + :annotation: = 10 + + .. py:data:: NEOVI_VNETFIRE_MCHIP_ID + :annotation: = 9 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_LCHIP_ID + :annotation: = 254 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_MCHIP_ID + :annotation: = 253 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_LCHIP_ID + :annotation: = 36 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_MCHIP_ID + :annotation: = 35 + .. py:data:: NEO_CFG_MPIC_HS_CAN_CNF1 :annotation: = 522 @@ -1466,9 +4041,39 @@ Module Variables .. py:data:: NEO_CFG_MPIC_SW_CAN_CNF3 :annotation: = 544 + .. py:data:: NEO_OBD2_DEV_MCHIP_ID + :annotation: = 94 + + .. py:data:: NEO_OBD2_DEV_SCHIP_ID + :annotation: = 95 + + .. py:data:: NEO_OBD2_LC_MCHIP_ID + :annotation: = 79 + + .. py:data:: NEO_OBD2_LC_SCHIP_ID + :annotation: = 80 + + .. py:data:: NEO_OBD2_PRO_CORE_ID + :annotation: = 69 + + .. py:data:: NEO_OBD2_PRO_MCHIP_ID + :annotation: = 61 + + .. py:data:: NEO_OBD2_PRO_SCHIP_ID + :annotation: = 65 + + .. py:data:: NEO_OBD2_SIM_DOIP_MCHIP_ID + :annotation: = 96 + + .. py:data:: NEO_VCAN412_PROD_ID + :annotation: = 24 + .. py:data:: NETID_3G_APP_SIGNAL_STATUS :annotation: = 56 + .. py:data:: NETID_3G_CAN_ERRBITS + :annotation: = 24 + .. py:data:: NETID_3G_FB_STATUS :annotation: = 55 @@ -1529,6 +4134,27 @@ Module Variables .. py:data:: NETID_ETHERNET_TX_WRAP :annotation: = 521 + .. py:data:: NETID_FIRE_CGI + :annotation: = 53 + + .. py:data:: NETID_FIRE_HSCAN2 + :annotation: = 42 + + .. py:data:: NETID_FIRE_HSCAN3 + :annotation: = 44 + + .. py:data:: NETID_FIRE_LIN2 + :annotation: = 48 + + .. py:data:: NETID_FIRE_LIN3 + :annotation: = 49 + + .. py:data:: NETID_FIRE_LIN4 + :annotation: = 50 + + .. py:data:: NETID_FIRE_MSCAN2 + :annotation: = 44 + .. py:data:: NETID_FLEXRAY :annotation: = 85 @@ -1709,9 +4335,66 @@ Module Variables .. py:data:: NETID_RED_APP_ERROR :annotation: = 52 + .. py:data:: NETID_RED_DFLASH_READ + :annotation: = 22 + + .. py:data:: NETID_RED_DFLASH_WRITE_DONE + :annotation: = 25 + + .. py:data:: NETID_RED_EXT_MEMORYREAD + :annotation: = 20 + + .. py:data:: NETID_RED_GET_RTC + :annotation: = 40 + + .. py:data:: NETID_RED_HARDWARE_EXCEP + :annotation: = 39 + + .. py:data:: NETID_RED_INT_MEMORYREAD + :annotation: = 21 + + .. py:data:: NETID_RED_NEOVI_NETWORK + :annotation: = 35 + + .. py:data:: NETID_RED_OLDFORMAT + :annotation: = 37 + + .. py:data:: NETID_RED_READ_BAUD_SETTINGS + :annotation: = 36 + + .. py:data:: NETID_RED_SCOPE_CAPTURE + :annotation: = 38 + + .. py:data:: NETID_RED_SDCARD_READ + :annotation: = 23 + .. py:data:: NETID_RED_VBAT :annotation: = 74 + .. py:data:: NETID_RED_WAVE_CAN1_LOGICAL + :annotation: = 26 + + .. py:data:: NETID_RED_WAVE_CAN2_LOGICAL + :annotation: = 27 + + .. py:data:: NETID_RED_WAVE_LIN1_ANALOG + :annotation: = 30 + + .. py:data:: NETID_RED_WAVE_LIN1_LOGICAL + :annotation: = 28 + + .. py:data:: NETID_RED_WAVE_LIN2_ANALOG + :annotation: = 31 + + .. py:data:: NETID_RED_WAVE_LIN2_LOGICAL + :annotation: = 29 + + .. py:data:: NETID_RED_WAVE_MISCDIO2_LOGICAL + :annotation: = 33 + + .. py:data:: NETID_RED_WAVE_MISC_ANALOG + :annotation: = 32 + .. py:data:: NETID_RS232 :annotation: = 63 @@ -1748,6 +4431,24 @@ Module Variables .. py:data:: NETID_UDP :annotation: = 514 + .. py:data:: NEW_DEVICE_57_PROD_ID + :annotation: = 45 + + .. py:data:: NEW_DEVICE_57_ZCHIP_ID + :annotation: = 101 + + .. py:data:: NEW_DEVICE_58_PROD_ID + :annotation: = 46 + + .. py:data:: NEW_DEVICE_58_ZCHIP_ID + :annotation: = 102 + + .. py:data:: NEW_DEVICE_59_MCHIP_ID + :annotation: = 103 + + .. py:data:: NEW_DEVICE_59_PROD_ID + :annotation: = 47 + .. py:data:: NORMAL :annotation: = 0 @@ -1757,6 +4458,12 @@ Module Variables .. py:data:: NO_CANFD :annotation: = 0 + .. py:data:: NUM_DEVICE_FEATURE_BITFIELDS + :annotation: = 1 + + .. py:data:: NUM_VALID_DEVICE_FEATURES + :annotation: = 16 + .. py:data:: OPETH_FUNC_MEDIACONVERTER :annotation: = 1 @@ -1874,21 +4581,96 @@ Module Variables .. py:data:: PLUTO_NUM_PRIORITY :annotation: = 8 + .. py:data:: RADEPSILON_EXPRESS_MCHIP_ID + :annotation: = 99 + + .. py:data:: RADEPSILON_EXPRESS_PROD_ID + :annotation: = 43 + .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 + .. py:data:: RADEPSILON_MCHIP_ID + :annotation: = 92 + + .. py:data:: RADEPSILON_PROD_ID + :annotation: = 39 + + .. py:data:: RADEPSILON_T_MCHIP_ID + :annotation: = 98 + + .. py:data:: RADEPSILON_T_PROD_ID + :annotation: = 42 + + .. py:data:: RADGIGASTAR_USBZ_Z7007S_ZYNQ_ID + :annotation: = 110 + + .. py:data:: RADGIGASTAR_USBZ_Z7010_ZYNQ_ID + :annotation: = 108 + + .. py:data:: RADGIGASTAR_USBZ_ZYNQ_ID + :annotation: = 88 + + .. py:data:: RADGIGASTAR_ZYNQ_ID + :annotation: = 89 + + .. py:data:: RADIO_CANHUB_MCHIP_ID + :annotation: = 77 + + .. py:data:: RADIO_CANHUB_PROD_ID + :annotation: = 30 + + .. py:data:: RADJUPITER_MCHIP_ID + :annotation: = 84 + .. py:data:: RADJUPITER_NUM_PORTS :annotation: = 8 + .. py:data:: RADMOON2_ZL_MCHIP_ID + :annotation: = 107 + .. py:data:: RADMOONDUO_CONVERTER_SETTINGS_SIZE :annotation: = 16 + .. py:data:: RADPLUTO_MCHIP_ID + :annotation: = 74 + + .. py:data:: RADPROXIMA_MCHIP_ID + :annotation: = 100 + + .. py:data:: RADPROXIMA_PROD_ID + :annotation: = 44 + + .. py:data:: RAD_4G_MCHIP_ID + :annotation: = 90 + + .. py:data:: RAD_A2B_PROD_ID + :annotation: = 40 + + .. py:data:: RAD_A2B_ZCHIP_ID + :annotation: = 93 + + .. py:data:: RAD_BMS_MCHIP_ID + :annotation: = 106 + + .. py:data:: RAD_BMS_PROD_ID + :annotation: = 48 + + .. py:data:: RAD_GIGASTAR_PROD_ID + :annotation: = 36 + .. py:data:: RAD_GPTP_AND_TAP_SETTINGS_SIZE :annotation: = 40 .. py:data:: RAD_GPTP_SETTINGS_SIZE :annotation: = 36 + .. py:data:: RAD_MOON_DUO_MCHIP_ID + :annotation: = 81 + + .. py:data:: RAD_MOON_DUO_PROD_ID + :annotation: = 32 + .. py:data:: RAD_REPORTING_SETTINGS_FLAG_AIN1 :annotation: = 256 @@ -1973,6 +4755,9 @@ Module Variables .. py:data:: REPORT_ON_PERIODIC :annotation: = 0 + .. py:data:: RESERVED_CHIP_ID_111 + :annotation: = 111 + .. py:data:: RESISTOR_OFF :annotation: = 1 @@ -2342,6 +5127,36 @@ Module Variables .. py:data:: SERDESPOC_SETTINGS_SIZE :annotation: = 10 + .. py:data:: SFP_MODULE_MCHIP_ID + :annotation: = 97 + + .. py:data:: SFP_MODULE_PROD_ID + :annotation: = 41 + + .. py:data:: SLAVE_A_FIRE2_VNETZ_MCHIP_ID + :annotation: = 56 + + .. py:data:: SLAVE_A_FIRE2_VNETZ_ZYNQ_ID + :annotation: = 57 + + .. py:data:: SLAVE_A_FIRE2_VNET_CCHIP_ID + :annotation: = 48 + + .. py:data:: SLAVE_A_FIRE2_VNET_MCHIP_ID + :annotation: = 47 + + .. py:data:: SLAVE_B_FIRE2_VNETZ_MCHIP_ID + :annotation: = 242 + + .. py:data:: SLAVE_B_FIRE2_VNETZ_ZYNQ_ID + :annotation: = 241 + + .. py:data:: SLAVE_B_FIRE2_VNET_CCHIP_ID + :annotation: = 244 + + .. py:data:: SLAVE_B_FIRE2_VNET_MCHIP_ID + :annotation: = 243 + .. py:data:: SLAVE_VNET_A :annotation: = 2 @@ -2354,6 +5169,15 @@ Module Variables .. py:data:: SLOW_MODE :annotation: = 1 + .. py:data:: SPY_GPS_ALTITUDE + :annotation: = 2 + + .. py:data:: SPY_GPS_LOCATION + :annotation: = 0 + + .. py:data:: SPY_GPS_SPEED + :annotation: = 1 + .. py:data:: SPY_PROTOCOL_A2B :annotation: = 35 @@ -2762,6 +5586,9 @@ Module Variables .. py:data:: SPY_STATUS_XTD_FRAME :annotation: = 4 + .. py:data:: SWCAN2 + :annotation: = 2 + .. py:data:: SWCAN_AUTOSWITCH_DISABLED :annotation: = 0 @@ -2777,6 +5604,15 @@ Module Variables .. py:data:: SWCAN_SETTINGS_SIZE :annotation: = 14 + .. py:data:: SYSTEM_TIMESTAMP_ID_NONE + :annotation: = 0 + + .. py:data:: SYSTEM_TIMESTAMP_ID_TIMEGETTIME_API + :annotation: = 1 + + .. py:data:: TCP_SUPPORTED + :annotation: = 32 + .. py:data:: TIMESYNC_ICSHARDWARE_SETTINGS_SIZE :annotation: = 4 @@ -2786,11 +5622,80 @@ Module Variables .. py:data:: USE_TQ :annotation: = 1 + .. py:data:: VCAN41_MCHIP_ID + :annotation: = 62 + + .. py:data:: VCAN42_MCHIP_ID + :annotation: = 63 + + .. py:data:: VCAN44_CORE_ID + :annotation: = 64 + + .. py:data:: VCAN44_MCHIP_ID + :annotation: = 30 + + .. py:data:: VCAN44_PROD_ID + :annotation: = 12 + + .. py:data:: VCAN44_SCHIP_ID + :annotation: = 31 + + .. py:data:: VCAN4EL_MCHIP_ID + :annotation: = 67 + + .. py:data:: VCAN4_IND_MCHIP_ID + :annotation: = 85 + + .. py:data:: VCAN4_IND_PROD_ID + :annotation: = 35 + + .. py:data:: VIVIDCAN_PRO_EXT_FLASH_ID + :annotation: = 73 + + .. py:data:: VIVIDCAN_PRO_MCHIP_ID + :annotation: = 72 + + .. py:data:: VIVIDCAN_PRO_PROD_ID + :annotation: = 37 + .. py:data:: VNETBITS_FEATURE_ANDROID_MSGS :annotation: = 1 .. py:data:: VNETBITS_FEATURE_DISABLE_USB_CHECK :annotation: = 2 + .. py:data:: VNET_ID_AIN + :annotation: = 5 + + .. py:data:: VNET_ID_FIRE + :annotation: = 1 + + .. py:data:: VNET_ID_FIRE2 + :annotation: = 7 + + .. py:data:: VNET_ID_FIRE2Z + :annotation: = 9 + + .. py:data:: VNET_ID_FIRE_EP + :annotation: = 2 + + .. py:data:: VNET_ID_FLEXRAY + :annotation: = 6 + + .. py:data:: VNET_ID_FLEXZ + :annotation: = 11 + + .. py:data:: VNET_ID_SLAVEFIRE + :annotation: = 3 + + .. py:data:: VNET_ID_SLAVEFIRE2 + :annotation: = 8 + + .. py:data:: VNET_ID_SLAVEFIRE2Z + :annotation: = 10 + + .. py:data:: VNET_ID_SLAVEFIRE_EP + :annotation: = 4 + .. py:data:: WIFI_CONNECTION :annotation: = 8 \ No newline at end of file diff --git a/setup.py b/setup.py index 580c57a66..1b2d0a4a6 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ import shutil MAJOR_VERSION = 910 -MINOR_VERSION = 999 +MINOR_VERSION = 10 POST_VERSION = None if POST_VERSION: From 79843273a5448076decfd0ca9687ef8ffff2d80d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 10:30:09 -0400 Subject: [PATCH 016/201] Added 3.10 and 3.11 to setup.py script --- setup.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 1b2d0a4a6..7de5364a5 100644 --- a/setup.py +++ b/setup.py @@ -129,9 +129,11 @@ def read(fname): include_package_data=True, ext_modules=[ics_extension], classifiers=[ - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', ],) From 72e10d2b11b1c19e5e94c3b1b7122d2fafe50421 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 10:30:22 -0400 Subject: [PATCH 017/201] Added wbms_manager_write_lock --- include/methods.h | 38 ++++++++++++++++++++++++++++++++++++++ src/methods.cpp | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/include/methods.h b/include/methods.h index 482b08232..8e0c27267 100644 --- a/include/methods.h +++ b/include/methods.h @@ -87,6 +87,17 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args); PyObject* meth_set_led_property(PyObject* self, PyObject* args); PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); +PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); +/* +PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); +PyObject* meth_uart_write(PyObject* self, PyObject* args); +PyObject* meth_uart_read(PyObject* self, PyObject* args); +PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); +PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); +PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); +PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); +PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); +*/ #ifdef _cplusplus } @@ -1485,6 +1496,29 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); "\t>>> ics.stop_dhcp_server(d, TODO)\n" \ "\t>>> \n" +#define _DOC_WBMS_MANAGER_WRITE_LOCK \ + MODULE_NAME ".wbms_manager_write_lock(device, manager, lock_state)\n" \ + "\n" \ + "Sets the lock state on the manager\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tlock_state (:class:`" MODULE_NAME ".structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t`): :class:`" MODULE_NAME ".structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.ew_bms_manager_port_t import ew_bms_manager_port_t\n" \ + "\t>>> from ics.structures.ew_bms_manager_lock_state_t import ew_bms_manager_lock_state_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.wbms_manager_write_lock(d, ew_bms_manager_port_t.eManagerPortA.value, ew_bms_manager_lock_state_t.eLockManager.value)\n" \ + "\t>>> \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), @@ -1570,6 +1604,10 @@ static PyMethodDef IcsMethods[] = { _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), + + + {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, diff --git a/src/methods.cpp b/src/methods.cpp index 48638e282..b7a32e44b 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3669,3 +3669,39 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) } return set_ics_exception(exception_runtime_error(), "This is a bug!"); } + +PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + EwBMSManagerPort_t manager = eManagerPortA; + EwBMSManagerLockState_t lock_state = eLockManager; + if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &manager, &lock_state)) { + return NULL; + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + unsigned int supported = 0; + ice::Function icsneowBMSManagerWriteLock(lib, "icsneowBMSManagerWriteLock"); + Py_BEGIN_ALLOW_THREADS + if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerWriteLock() Failed"); + } + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + } + 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!"); +} \ No newline at end of file From 30c9486bc17a0da3df596bdfedfd047dac99ec39 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 11:16:29 -0400 Subject: [PATCH 018/201] Added wbms_manager_reset. --- include/methods.h | 24 +++++++++++++++++++++++- src/methods.cpp | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/include/methods.h b/include/methods.h index 8e0c27267..6007942ab 100644 --- a/include/methods.h +++ b/include/methods.h @@ -88,8 +88,8 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args); PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); -/* PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); +/* PyObject* meth_uart_write(PyObject* self, PyObject* args); PyObject* meth_uart_read(PyObject* self, PyObject* args); PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); @@ -1517,6 +1517,27 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\t>>> from ics.structures.ew_bms_manager_lock_state_t import ew_bms_manager_lock_state_t\n" \ "\t>>> d = ics.open_device()\n" \ "\t>>> ics.wbms_manager_write_lock(d, ew_bms_manager_port_t.eManagerPortA.value, ew_bms_manager_lock_state_t.eLockManager.value)\n" \ + "\t>>> \n" + +#define _DOC_WBMS_MANAGER_RESET \ + MODULE_NAME ".wbms_manager_reset(device, manager)\n" \ + "\n" \ + "Resets the manager\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.ew_bms_manager_port_t import ew_bms_manager_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.wbms_manager_reset(d, ew_bms_manager_port_t.eManagerPortA.value)\n" \ "\t>>> \n" static PyMethodDef IcsMethods[] = { @@ -1605,6 +1626,7 @@ static PyMethodDef IcsMethods[] = { _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), diff --git a/src/methods.cpp b/src/methods.cpp index b7a32e44b..b2ec59fb2 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3704,4 +3704,39 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) 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) +{ + PyObject* obj = NULL; + EwBMSManagerPort_t manager = eManagerPortA; + if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &manager)) { + return NULL; + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + unsigned int supported = 0; + ice::Function icsneowBMSManagerReset(lib, "icsneowBMSManagerReset"); + Py_BEGIN_ALLOW_THREADS + if (!icsneowBMSManagerReset(handle, manager)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerReset() Failed"); + } + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + } + 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!"); } \ No newline at end of file From 4240ce20caab41ca0bddaeeac9e6d29b689dbf6b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 12:27:47 -0400 Subject: [PATCH 019/201] Added uart_write --- include/methods.h | 28 ++++++++++++++++++++-- src/methods.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 81 insertions(+), 7 deletions(-) diff --git a/include/methods.h b/include/methods.h index 6007942ab..d7a8f207d 100644 --- a/include/methods.h +++ b/include/methods.h @@ -89,9 +89,10 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); -/* + PyObject* meth_uart_write(PyObject* self, PyObject* args); -PyObject* meth_uart_read(PyObject* self, PyObject* args); +//PyObject* meth_uart_read(PyObject* self, PyObject* args); +/* PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); @@ -1540,6 +1541,28 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\t>>> ics.wbms_manager_reset(d, ew_bms_manager_port_t.eManagerPortA.value)\n" \ "\t>>> \n" +#define _DOC_UART_WRITE \ + MODULE_NAME ".uart_write(device, port, data, flags)\n" \ + "\n" \ + "Writes UART on the given port\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.uart_write(d, e_uart_port_t.eUART0, b'my uart data goes here')\n" \ + "\t>>> \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), @@ -1627,6 +1650,7 @@ static PyMethodDef IcsMethods[] = { _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), diff --git a/src/methods.cpp b/src/methods.cpp index b2ec59fb2..716e5ec30 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3572,7 +3572,6 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - unsigned int supported = 0; ice::Function icsneoSetLedProperty(lib, "icsneoSetLedProperty"); Py_BEGIN_ALLOW_THREADS if (!icsneoSetLedProperty(handle, led, prop, value)) { @@ -3615,7 +3614,6 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - unsigned int supported = 0; // int _stdcall icsneoStartDHCPServer(void* hObject, unsigned int NetworkID, const char* pDeviceIPAddress,const char* pSubnetmask, // const char* pGateway,const char* pStartaddress, // const char* pEndaddress,bool bOverwriteDHCPSettings,uint32_t leaseTime,uint8_t reserved) @@ -3653,7 +3651,6 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - unsigned int supported = 0; ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); Py_BEGIN_ALLOW_THREADS if (!icsneoStopDHCPServer(handle, NetworkID)) { @@ -3689,7 +3686,6 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - unsigned int supported = 0; ice::Function icsneowBMSManagerWriteLock(lib, "icsneowBMSManagerWriteLock"); Py_BEGIN_ALLOW_THREADS if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { @@ -3724,7 +3720,6 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - unsigned int supported = 0; ice::Function icsneowBMSManagerReset(lib, "icsneowBMSManagerReset"); Py_BEGIN_ALLOW_THREADS if (!icsneowBMSManagerReset(handle, manager)) { @@ -3739,4 +3734,59 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) 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) +{ + PyObject* obj = NULL; + EUartPort_t port = eUART0; + PyObject* data = NULL; + uint8_t flags = 0; + bool check_size = true; + if (!PyArg_ParseTuple(args, arg_parse("OIy*|bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { + return NULL; + } + // Check if the data buffer is valid and grab the buffer + if (!PyObject_CheckBuffer(data)) { + return set_ics_exception(exception_runtime_error(), "Argument 'data' must be of type 'bytes'"); + } + Py_buffer data_buffer = {}; + PyObject_GetBuffer(data, &data_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + 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 icsneoUartWrite(void* hObject, const EUartPort_t uart, const void* bData, const size_t bytesToSend, size_t* bytesActuallySent, uint8_t* flags) + size_t bytesActuallySent = 0; + ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoUartWrite(handle, port, data_buffer.buf, data_buffer.len, &bytesActuallySent, &flags)) { + Py_BLOCK_THREADS + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); + } + Py_END_ALLOW_THREADS + if (check_size && data_buffer.len != bytesActuallySent) { + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), "Bytes actually sent didn't match bytes to send length"); + } + PyBuffer_Release(&data_buffer); + return Py_BuildValue("i", bytesActuallySent); + } + catch (ice::Exception& ex) + { + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } + return set_ics_exception(exception_runtime_error(), "This is a bug!"); } \ No newline at end of file From 8d9f280b2405f558005815bcf50c52ef99be0c09 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 15:11:35 -0400 Subject: [PATCH 020/201] added uart_read --- include/methods.h | 33 ++++++++++++++++++++++++++---- src/methods.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/include/methods.h b/include/methods.h index d7a8f207d..cefd3ebdf 100644 --- a/include/methods.h +++ b/include/methods.h @@ -91,7 +91,7 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); PyObject* meth_uart_write(PyObject* self, PyObject* args); -//PyObject* meth_uart_read(PyObject* self, PyObject* args); +PyObject* meth_uart_read(PyObject* self, PyObject* args); /* PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); @@ -217,7 +217,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\n" \ "Args:\n" \ "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\time (:class:`datetime.datetime`): Optional. Sets to current time, if omitted.\n\n" \ + "\ttime (:class:`datetime.datetime`): Optional. Sets to current time, if omitted.\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -349,7 +349,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "Args:\n" \ "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ "\tj1850 (:class:`bool`): Return :class:`" MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME "` instead.\n\n" \ - "\timeout (:class:`float`): Optional timeout to wait for messages in seconds (0.1 = 100ms).\n\n" \ + "\ttimeout (:class:`float`): Optional timeout to wait for messages in seconds (0.1 = 100ms).\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1561,7 +1561,31 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ "\t>>> d = ics.open_device()\n" \ "\t>>> ics.uart_write(d, e_uart_port_t.eUART0, b'my uart data goes here')\n" \ - "\t>>> \n" + "\t>>> \n" + +#define _DOC_UART_READ \ + MODULE_NAME ".uart_read(device, port, bytes_to_read, flags)\n" \ + "\n" \ + "Reads UART on the given port. \n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tflags (:class:`int`): Optional. Flags to be used. Don't use if unsure.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> data = ics.uart_read(d, e_uart_port_t.eUART0)\n" \ + "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ + "\t>>> \n" static PyMethodDef IcsMethods[] = { _EZ_ICS_STRUCT_METHOD("find_devices", "icsneoFindNeoDevices", "FindNeoDevices", (PyCFunction)meth_find_devices, METH_VARARGS | METH_KEYWORDS, _DOC_FIND_DEVICES), @@ -1651,6 +1675,7 @@ static PyMethodDef IcsMethods[] = { _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("meth_uart_read", "icsneoUartRead", "UartRead", meth_uart_read, METH_VARARGS, _DOC_UART_READ), diff --git a/src/methods.cpp b/src/methods.cpp index 716e5ec30..04350e90d 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3789,4 +3789,56 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) 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) +{ + PyObject* obj = NULL; + 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)) { + return NULL; + } + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + uint8_t* buffer = (uint8_t*)malloc(bytesToRead*sizeof(uint8_t)); + if (!buffer) { + 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)); + } + 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"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { + Py_BLOCK_THREADS + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); + } + Py_END_ALLOW_THREADS + PyObject* value = Py_BuildValue("y#", buffer, bytesActuallyRead); + free(buffer); + buffer = NULL; + return value; + + } + catch (ice::Exception& ex) + { + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } + return set_ics_exception(exception_runtime_error(), "This is a bug!"); } \ No newline at end of file From 5aff3b7c967fdd504baaf99b90ea574f278d9947 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 15:27:16 -0400 Subject: [PATCH 021/201] Added uart_set_baudrate and uart_get_baudrate --- include/methods.h | 52 +++++++++++++++++-- src/methods.cpp | 128 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 164 insertions(+), 16 deletions(-) diff --git a/include/methods.h b/include/methods.h index cefd3ebdf..c4873f98a 100644 --- a/include/methods.h +++ b/include/methods.h @@ -92,9 +92,10 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); PyObject* meth_uart_write(PyObject* self, PyObject* args); PyObject* meth_uart_read(PyObject* self, PyObject* args); -/* + PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); +/* PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); @@ -1587,6 +1588,50 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ "\t>>> \n" +#define _DOC_UART_SET_BAUDRATE \ + MODULE_NAME ".uart_set_baudrate(device, port, baudrate)\n" \ + "\n" \ + "Sets the UART baudrate on the given port. \n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.uart_set_baudrate(d, e_uart_port_t.eUART0, 115200)\n" \ + "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ + "\t>>> \n" + +#define _DOC_UART_GET_BAUDRATE \ + MODULE_NAME ".uart_get_baudrate(device, port)\n" \ + "\n" \ + "Gets the UART baudrate on the given port. \n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> baudrate = ics.uart_set_baudrate(d, e_uart_port_t.eUART0)\n" \ + "\t>>> \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), @@ -1675,8 +1720,9 @@ static PyMethodDef IcsMethods[] = { _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("meth_uart_read", "icsneoUartRead", "UartRead", meth_uart_read, METH_VARARGS, _DOC_UART_READ), - + _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), {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, diff --git a/src/methods.cpp b/src/methods.cpp index 04350e90d..ab539debc 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3505,7 +3505,7 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoIsDeviceFeatureSupported(handle, (DeviceFeature)feature, &supported)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoIsDeviceFeatureSupported() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoIsDeviceFeatureSupported() Failed"); } Py_END_ALLOW_THREADS return Py_BuildValue("I", supported); @@ -3540,7 +3540,7 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoGetPCBSerialNumber() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoGetPCBSerialNumber() Failed"); } Py_END_ALLOW_THREADS return Py_BuildValue("s", pcbsn); @@ -3576,7 +3576,7 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoSetLedProperty(handle, led, prop, value)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoSetLedProperty() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoSetLedProperty() Failed"); } Py_END_ALLOW_THREADS Py_RETURN_NONE; @@ -3621,7 +3621,7 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoStartDHCPServer(handle, NetworkID, pDeviceIPAddress, pSubnetmask, pGateway, pStartaddress, pEndaddress, bOverwriteDHCPSettings, leaseTime, reserved)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoStartDHCPServer() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoStartDHCPServer() Failed"); } Py_END_ALLOW_THREADS Py_RETURN_NONE; @@ -3655,7 +3655,7 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoStopDHCPServer(handle, NetworkID)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoStopDHCPServer() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoStopDHCPServer() Failed"); } Py_END_ALLOW_THREADS Py_RETURN_NONE; @@ -3690,7 +3690,7 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerWriteLock() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerWriteLock() Failed"); } Py_END_ALLOW_THREADS Py_RETURN_NONE; @@ -3724,7 +3724,7 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneowBMSManagerReset(handle, manager)) { Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerReset() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerReset() Failed"); } Py_END_ALLOW_THREADS Py_RETURN_NONE; @@ -3772,8 +3772,8 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoUartWrite(handle, port, data_buffer.buf, data_buffer.len, &bytesActuallySent, &flags)) { Py_BLOCK_THREADS - PyBuffer_Release(&data_buffer); - return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); } Py_END_ALLOW_THREADS if (check_size && data_buffer.len != bytesActuallySent) { @@ -3823,9 +3823,9 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) Py_BEGIN_ALLOW_THREADS if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { Py_BLOCK_THREADS - free(buffer); - buffer = NULL; - return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); } Py_END_ALLOW_THREADS PyObject* value = Py_BuildValue("y#", buffer, bytesActuallyRead); @@ -3841,4 +3841,106 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } return set_ics_exception(exception_runtime_error(), "This is a bug!"); -} \ No newline at end of file +} + +PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + EUartPort_t port = eUART0; + unsigned int baudrate = 0; + if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &port, &baudrate)) { + return NULL; + } + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + 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 icsneoUartSetBaudrate(void* hObject, const EUartPort_t uart, const uint32_t baudrate) + ice::Function icsneoUartSetBaudrate(lib, "icsneoUartSetBaudrate"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoUartSetBaudrate(handle, port, baudrate)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoUartSetBaudrate() Failed"); + } + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + + } + 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) +{ + PyObject* obj = NULL; + EUartPort_t port = eUART0; + if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &port)) { + return NULL; + } + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + uint32_t baudrate = 0; + //int _stdcall icsneoUartGetBaudrate(void* hObject, const EUartPort_t uart, uint32_t* baudrate) + ice::Function icsneoUartGetBaudrate(lib, "icsneoUartGetBaudrate"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoUartGetBaudrate(handle, port, &baudrate)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoUartGetBaudrate() Failed"); + } + Py_END_ALLOW_THREADS + return Py_BuildValue("I", baudrate); + + } + 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!"); +} + +/* + +int _stdcall icsneoGenericAPISendCommand(void* hObject, + unsigned char apiIndex, + unsigned char instanceIndex, + unsigned char functionIndex, + void* bData, + unsigned int length, + unsigned char* functionError) + +int _stdcall icsneoGenericAPIReadData(void* hObject, + unsigned char apiIndex, + unsigned char instanceIndex, + unsigned char* functionIndex, + unsigned char* bData, + unsigned int* length) + +int _stdcall icsneoGenericAPIGetStatus(void* hObject, + unsigned char apiIndex, + unsigned char instanceIndex, + unsigned char* functionIndex, + unsigned char* callbackError, + unsigned char* finsihedProcessing) + +*/ \ No newline at end of file From e65cd4f4ff618193924dd0afaeb953849e63c198 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 15:54:18 -0400 Subject: [PATCH 022/201] Added generic_api_send_command, doc missing --- include/methods.h | 5 ++-- src/methods.cpp | 64 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/include/methods.h b/include/methods.h index c4873f98a..e0daa5769 100644 --- a/include/methods.h +++ b/include/methods.h @@ -95,8 +95,9 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args); PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); -/* + PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); +/* PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); */ @@ -1723,7 +1724,7 @@ static PyMethodDef IcsMethods[] = { _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_UART_GET_BAUDRATE), {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, diff --git a/src/methods.cpp b/src/methods.cpp index ab539debc..5951c4a5c 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3763,6 +3763,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) { ice::Library* lib = dll_get_library(); if (!lib) { + PyBuffer_Release(&data_buffer); char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } @@ -3814,6 +3815,8 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) { ice::Library* lib = dll_get_library(); if (!lib) { + free(buffer); + buffer = NULL; char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } @@ -3919,6 +3922,67 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "This is a bug!"); } +PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + unsigned char apiIndex = 0; + unsigned char instanceIndex = 0; + unsigned char functionIndex = 0; + PyObject* data = NULL; + unsigned int length = 0; + unsigned char functionError = 0; + if (!PyArg_ParseTuple(args, arg_parse("Obbby*b:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, data, &functionError)) { + return NULL; + } + // Check if the data buffer is valid and grab the buffer + if (!PyObject_CheckBuffer(data)) { + return set_ics_exception(exception_runtime_error(), "Argument 'data' must be of type 'bytes'"); + } + Py_buffer data_buffer = {}; + PyObject_GetBuffer(data, &data_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + PyBuffer_Release(&data_buffer); + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + /* + int _stdcall icsneoGenericAPISendCommand(void* hObject, + unsigned char apiIndex, + unsigned char instanceIndex, + unsigned char functionIndex, + void* bData, + unsigned int length, + unsigned char* functionError) + */ + ice::Function icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, data_buffer.buf, data_buffer.len, &functionError)) { + PyBuffer_Release(&data_buffer); + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); + } + Py_END_ALLOW_THREADS + PyBuffer_Release(&data_buffer); + return Py_BuildValue("i", functionError); + + } + catch (ice::Exception& ex) + { + PyBuffer_Release(&data_buffer); + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } + return set_ics_exception(exception_runtime_error(), "This is a bug!"); +} + /* int _stdcall icsneoGenericAPISendCommand(void* hObject, From 1949d99710a0433aeec63a6ca6b2a3af27e99720 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 26 Oct 2022 16:03:34 -0400 Subject: [PATCH 023/201] added generic_api_read_data --- include/methods.h | 7 +++-- src/methods.cpp | 69 +++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 66 insertions(+), 10 deletions(-) diff --git a/include/methods.h b/include/methods.h index e0daa5769..e45d5946a 100644 --- a/include/methods.h +++ b/include/methods.h @@ -97,8 +97,8 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); -/* PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); +/* PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); */ @@ -1724,7 +1724,10 @@ static PyMethodDef IcsMethods[] = { _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_UART_GET_BAUDRATE), + _EZ_ICS_STRUCT_METHOD("generic_api_send_command", "icsneoGenericAPISendCommand", "GenericAPISendCommand", meth_generic_api_send_command, METH_VARARGS, _DOC_UART_GET_BAUDRATE), + _EZ_ICS_STRUCT_METHOD("generic_api_read_data", "icsneoGenericAPIReadData", "GenericAPIReadData", meth_generic_api_read_data, METH_VARARGS, _DOC_UART_GET_BAUDRATE), + + {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, diff --git a/src/methods.cpp b/src/methods.cpp index 5951c4a5c..66db443f1 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3983,15 +3983,68 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "This is a bug!"); } -/* +PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + unsigned char apiIndex = 0; + unsigned char instanceIndex = 0; + unsigned char functionIndex = 0; + //PyObject* data = NULL; + unsigned int length = 0; + if (!PyArg_ParseTuple(args, arg_parse("ObbbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, &length)) { + return NULL; + } + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + unsigned char* buffer = (unsigned char*)malloc(length*sizeof(unsigned char)); + if (!buffer) { + return NULL; + } + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + free(buffer); + buffer = NULL; + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + /* + int _stdcall icsneoGenericAPIReadData(void* hObject, + unsigned char apiIndex, + unsigned char instanceIndex, + unsigned char* functionIndex, + unsigned char* bData, + unsigned int* length) + */ + ice::Function icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); + Py_BEGIN_ALLOW_THREADS + if (!icsneoGenericAPIReadData(handle, apiIndex, instanceIndex, &functionIndex, buffer, &length)) { + Py_BLOCK_THREADS + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIReadData() Failed"); + } + Py_END_ALLOW_THREADS + + PyObject* value = Py_BuildValue("Iy#", functionIndex, buffer, length); + free(buffer); + buffer = NULL; + return value; + } + catch (ice::Exception& ex) + { + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } + return set_ics_exception(exception_runtime_error(), "This is a bug!"); +} -int _stdcall icsneoGenericAPISendCommand(void* hObject, - unsigned char apiIndex, - unsigned char instanceIndex, - unsigned char functionIndex, - void* bData, - unsigned int length, - unsigned char* functionError) +/* int _stdcall icsneoGenericAPIReadData(void* hObject, unsigned char apiIndex, From 58a4832f55ab595bce7c78ae3a990b995c33359a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 27 Oct 2022 12:39:36 -0400 Subject: [PATCH 024/201] Added generic_api_get_status and fixed up others. --- include/methods.h | 70 +++++++++++++++++++++++++++++++++++++++------ src/methods.cpp | 73 +++++++++++++++++++++++++++++++++-------------- 2 files changed, 113 insertions(+), 30 deletions(-) diff --git a/include/methods.h b/include/methods.h index e45d5946a..90ccd51b0 100644 --- a/include/methods.h +++ b/include/methods.h @@ -89,18 +89,14 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); - PyObject* meth_uart_write(PyObject* self, PyObject* args); PyObject* meth_uart_read(PyObject* self, PyObject* args); - PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); - PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); -/* PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); -*/ + #ifdef _cplusplus } @@ -1633,6 +1629,63 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\t>>> baudrate = ics.uart_set_baudrate(d, e_uart_port_t.eUART0)\n" \ "\t>>> \n" +#define _DOC_GENERIC_API_SEND_COMMAND \ + MODULE_NAME ".generic_api_send_command(device, api_index, instance_index, function_index, data)\n" \ + "\n" \ + "Sends a command in a generic way.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tdata (:class:`bytes`): Data to be passed in.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tfunctionError (:class:`int`): functionError.\n\n" \ + "\n" + +// if (!PyArg_ParseTuple(args, arg_parse("ObbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { +#define _DOC_GENERIC_API_READ_DATA \ + MODULE_NAME ".generic_api_send_command(device, api_index, instance_index, length)\n" \ + "\n" \ + "Reads data in a generic way.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tlength (:class:`int`): Length of the data to read.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\ttuple of (functionError, data) \n\n" \ + "\n" + +// if (!PyArg_ParseTuple(args, arg_parse("Obb:", __FUNCTION__), &obj, &apiIndex, &instanceIndex)) { +#define _DOC_GENERIC_API_GET_STATUS \ + MODULE_NAME ".generic_api_get_status(device, api_index, instance_index)\n" \ + "\n" \ + "Reads data in a generic way.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tapi_index (:class:`int`): api_index.\n\n" \ + "\tinstance_index (:class:`int`): instance_index.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\ttuple of (:class:`int`): (functionIndex, callbackError, finishedProcessing) \n\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), @@ -1724,10 +1777,9 @@ static PyMethodDef IcsMethods[] = { _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_UART_GET_BAUDRATE), - _EZ_ICS_STRUCT_METHOD("generic_api_read_data", "icsneoGenericAPIReadData", "GenericAPIReadData", meth_generic_api_read_data, 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), {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, diff --git a/src/methods.cpp b/src/methods.cpp index 66db443f1..e05ef5f4c 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3929,9 +3929,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char instanceIndex = 0; unsigned char functionIndex = 0; PyObject* data = NULL; - unsigned int length = 0; - unsigned char functionError = 0; - if (!PyArg_ParseTuple(args, arg_parse("Obbby*b:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, data, &functionError)) { + if (!PyArg_ParseTuple(args, arg_parse("Obbby*:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, data)) { return NULL; } // Check if the data buffer is valid and grab the buffer @@ -3964,6 +3962,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char* functionError) */ ice::Function icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); + unsigned char functionError = 0; Py_BEGIN_ALLOW_THREADS if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, data_buffer.buf, data_buffer.len, &functionError)) { PyBuffer_Release(&data_buffer); @@ -3988,10 +3987,9 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) PyObject* obj = NULL; unsigned char apiIndex = 0; unsigned char instanceIndex = 0; - unsigned char functionIndex = 0; //PyObject* data = NULL; unsigned int length = 0; - if (!PyArg_ParseTuple(args, arg_parse("ObbbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, &length)) { + if (!PyArg_ParseTuple(args, arg_parse("ObbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { return NULL; } // Get the device handle @@ -4021,6 +4019,7 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) unsigned int* length) */ ice::Function icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); + unsigned char functionIndex = 0; Py_BEGIN_ALLOW_THREADS if (!icsneoGenericAPIReadData(handle, apiIndex, instanceIndex, &functionIndex, buffer, &length)) { Py_BLOCK_THREADS @@ -4044,20 +4043,52 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "This is a bug!"); } -/* +PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + unsigned char apiIndex = 0; + unsigned char instanceIndex = 0; -int _stdcall icsneoGenericAPIReadData(void* hObject, - unsigned char apiIndex, - unsigned char instanceIndex, - unsigned char* functionIndex, - unsigned char* bData, - unsigned int* length) - -int _stdcall icsneoGenericAPIGetStatus(void* hObject, - unsigned char apiIndex, - unsigned char instanceIndex, - unsigned char* functionIndex, - unsigned char* callbackError, - unsigned char* finsihedProcessing) - -*/ \ No newline at end of file + if (!PyArg_ParseTuple(args, arg_parse("Obb:", __FUNCTION__), &obj, &apiIndex, &instanceIndex)) { + return NULL; + } + // Get the device handle + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + 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 icsneoGenericAPIGetStatus(void* hObject, + unsigned char apiIndex, + unsigned char instanceIndex, + unsigned char* functionIndex, + unsigned char* callbackError, + unsigned char* finishedProcessing) + */ + ice::Function icsneoGenericAPIGetStatus(lib, "icsneoGenericAPIGetStatus"); + unsigned char functionIndex = 0; + unsigned char callbackError = 0; + unsigned char finishedProcessing = 0; + Py_BEGIN_ALLOW_THREADS + if (!icsneoGenericAPIGetStatus(handle, apiIndex, instanceIndex, &functionIndex, &callbackError, &finishedProcessing)) { + Py_BLOCK_THREADS + return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIGetStatus() Failed"); + } + Py_END_ALLOW_THREADS + + PyObject* value = Py_BuildValue("III", functionIndex, callbackError, finishedProcessing); + return value; + } + 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!"); +} From 51924df49421441da7c6f95b79fce42d6af85efe Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 27 Oct 2022 12:49:13 -0400 Subject: [PATCH 025/201] updated documentation --- doc/source/index.rst | 3458 +++++------------------------------------- 1 file changed, 348 insertions(+), 3110 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index d1c97c5bf..f70e97eff 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -41,8 +41,10 @@ Module Functions ics.enable_network_com ics.find_devices ics.firmware_update_required - ics.flash_devices ics.force_firmware_update + ics.generic_api_get_status + ics.generic_api_read_data + ics.generic_api_send_command ics.get_active_vnet_channel ics.get_backup_power_enabled ics.get_backup_power_ready @@ -70,7 +72,6 @@ Module Functions ics.iso15765_receive_message ics.iso15765_transmit_message ics.load_default_settings - ics.load_readbin ics.open_device ics.override_library_name ics.read_jupiter_firmware @@ -89,7 +90,13 @@ Module Functions ics.start_dhcp_server ics.stop_dhcp_server ics.transmit_messages + ics.uart_get_baudrate + ics.uart_read + ics.uart_set_baudrate + ics.uart_write ics.validate_hobject + ics.wbms_manager_reset + ics.wbms_manager_write_lock ics.write_jupiter_firmware ics.write_sdcard ics.ClosePort @@ -98,8 +105,10 @@ Module Functions ics.EnableNetworkCom ics.FindNeoDevices ics.FirmwareUpdateRequired - ics.FlashDevice2 ics.ForceFirmwareUpdate + ics.GenericAPIGetStatus + ics.GenericAPIReadData + ics.GenericAPISendCommand ics.GetActiveVNETChannel ics.GetBackupPowerEnabled ics.GetBackupPowerReady @@ -132,7 +141,6 @@ Module Functions ics.ScriptGetScriptStatus ics.ScriptGetScriptStatusEx ics.ScriptLoad - ics.ScriptLoadReadBin ics.ScriptReadAppSignal ics.ScriptReadRxMessage ics.ScriptReadTxMessage @@ -156,10 +164,16 @@ Module Functions ics.StartDHCPServer ics.StopDHCPServer ics.TxMessages + ics.UartGetBaudrate + ics.UartRead + ics.UartSetBaudrate + ics.UartWrite ics.ValidateHObject ics.WriteJupiterFirmware ics.WriteSDCard ics.base36enc + ics.wBMSManagerReset + ics.wBMSManagerWriteLock ics.icsneoClosePort ics.icsneoEnableBusVoltageMonitor ics.icsneoEnableDOIPLine @@ -167,6 +181,9 @@ Module Functions ics.icsneoFindNeoDevices ics.icsneoFirmwareUpdateRequired ics.icsneoForceFirmwareUpdate + ics.icsneoGenericAPIGetStatus + ics.icsneoGenericAPIReadData + ics.icsneoGenericAPISendCommand ics.icsneoGetActiveVNETChannel ics.icsneoGetBackupPowerEnabled ics.icsneoGetBackupPowerReady @@ -203,7 +220,6 @@ Module Functions ics.icsneoScriptGetScriptStatus ics.icsneoScriptGetScriptStatusEx ics.icsneoScriptLoad - ics.icsneoScriptLoadReadBin ics.icsneoScriptReadAppSignal ics.icsneoScriptReadRxMessage ics.icsneoScriptReadTxMessage @@ -227,9 +243,15 @@ Module Functions ics.icsneoStartDHCPServer ics.icsneoStopDHCPServer ics.icsneoTxMessages + ics.icsneoUartGetBaudrate + ics.icsneoUartRead + ics.icsneoUartSetBaudrate + ics.icsneoUartWrite ics.icsneoValidateHObject ics.icsneoWriteJupiterFirmware ics.icsneoWriteSDCard + ics.icsneowBMSManagerReset + ics.icsneowBMSManagerWriteLock ============================================================ @@ -248,14 +270,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.backup_power_stats.backup_power_stats - :members: - :undoc-members: - - .. autoclass:: ics.structures.battery_backup_type.battery_backup_type - :members: - :undoc-members: - .. autoclass:: ics.structures.can_settings.can_settings :members: :undoc-members: @@ -272,6 +286,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.device_feature.device_feature + :members: + :undoc-members: + .. autoclass:: ics.structures.disk_settings.disk_settings :members: :undoc-members: @@ -288,6 +306,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.e_generic_api_options.e_generic_api_options + :members: + :undoc-members: + .. autoclass:: ics.structures.e_gptp_port.e_gptp_port :members: :undoc-members: @@ -300,6 +322,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.e_uart_port_t.e_uart_port_t + :members: + :undoc-members: + .. autoclass:: ics.structures.ethernet10_g_settings.ethernet10_g_settings :members: :undoc-members: @@ -316,15 +342,23 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.extended_response_code.extended_response_code + .. autoclass:: ics.structures.ew_bms_instance_t.ew_bms_instance_t :members: :undoc-members: - .. autoclass:: ics.structures.extended_response_generic.extended_response_generic + .. autoclass:: ics.structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.ew_bms_manager_port_t.ew_bms_manager_port_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.extended_response_code.extended_response_code :members: :undoc-members: - .. autoclass:: ics.structures.fire3_device_status.fire3_device_status + .. autoclass:: ics.structures.extended_response_generic.extended_response_generic :members: :undoc-members: @@ -336,6 +370,18 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.generic_api_data.generic_api_data + :members: + :undoc-members: + + .. autoclass:: ics.structures.generic_api_selector.generic_api_selector + :members: + :undoc-members: + + .. autoclass:: ics.structures.generic_api_status.generic_api_status + :members: + :undoc-members: + .. autoclass:: ics.structures.get_component_versions.get_component_versions :members: :undoc-members: @@ -372,6 +418,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ics_fire3_device_status.ics_fire3_device_status + :members: + :undoc-members: + .. autoclass:: ics.structures.ics_flex_vnetz_device_status.ics_flex_vnetz_device_status :members: :undoc-members: @@ -856,6 +906,18 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.uart_port_config.uart_port_config + :members: + :undoc-members: + + .. autoclass:: ics.structures.uart_port_data.uart_port_data + :members: + :undoc-members: + + .. autoclass:: ics.structures.uart_port_port_bytes.uart_port_port_bytes + :members: + :undoc-members: + .. autoclass:: ics.structures.uart_settings.uart_settings :members: :undoc-members: @@ -864,6 +926,14 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.w_bms_manager_reset.w_bms_manager_reset + :members: + :undoc-members: + + .. autoclass:: ics.structures.w_bms_manager_set_lock.w_bms_manager_set_lock + :members: + :undoc-members: + ============================================================ @@ -873,117 +943,6 @@ Module Variables .. py:data:: A2B_SETTINGS_FLAG_16BIT :annotation: = 1 - .. py:data:: ACKBYTE_CANFD_DATALINK_LEN - :annotation: = 6 - - .. py:data:: ACKBYTE_CANFD_FLAGS - :annotation: = 0 - - .. py:data:: ACKBYTE_CAN_ETHERNET_PDU_TYPE - :annotation: = 1 - - .. py:data:: ACKBYTE_CATPGBPGT_GROUP - :annotation: = 7 - - .. py:data:: ACKBYTE_CATPGBPGT_PID_START - :annotation: = 2 - - .. py:data:: ACKBYTE_CGI_CRC_LOWER - :annotation: = 1 - - .. py:data:: ACKBYTE_CGI_CRC_UPPER - :annotation: = 0 - - .. py:data:: ACKBYTE_EXTRADATAPTR_LEN_START - :annotation: = 4 - - .. py:data:: ACKBYTE_FLEXRAT_TSSLENGTH - :annotation: = 7 - - .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_LOWER - :annotation: = 4 - - .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_MIDDLE - :annotation: = 5 - - .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_UPPER - :annotation: = 6 - - .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_LOWER - :annotation: = 1 - - .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_UPPER - :annotation: = 0 - - .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_LOWER - :annotation: = 2 - - .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_UPPER - :annotation: = 3 - - .. py:data:: ACKBYTE_FLEXRAY_TX_LEN_START - :annotation: = 4 - - .. py:data:: ACKBYTE_GMFSA_DEST_IP_START - :annotation: = 4 - - .. py:data:: ACKBYTE_GMFSA_SRC_IP_START - :annotation: = 0 - - .. py:data:: ACKBYTE_I2C_BITRATE_START - :annotation: = 0 - - .. py:data:: ACKBYTE_ISO15765_PENDING_DESCID_START - :annotation: = 2 - - .. py:data:: ACKBYTE_ISO15765_PENDING_STATUS - :annotation: = 1 - - .. py:data:: ACKBYTE_J1708_TX - :annotation: = 1 - - .. py:data:: ACKBYTE_LIN_CHECKSUM - :annotation: = 0 - - .. py:data:: ACKBYTE_LIN_P0_P1 - :annotation: = 3 - - .. py:data:: ACKBYTE_LIN_TFRAME_LOWER - :annotation: = 2 - - .. py:data:: ACKBYTE_LIN_TFRAME_UPPER - :annotation: = 1 - - .. py:data:: ACKBYTE_LIN_TX - :annotation: = 1 - - .. py:data:: ACKBYTE_MOST_EVENT_TYPE - :annotation: = 0 - - .. py:data:: ACKBYTE_MOST_LEN_LOWER - :annotation: = 1 - - .. py:data:: ACKBYTE_MOST_LEN_UPPER - :annotation: = 0 - - .. py:data:: ACKBYTE_MOST_SOURCE_LOWER - :annotation: = 5 - - .. py:data:: ACKBYTE_MOST_SOURCE_UPPER - :annotation: = 4 - - .. py:data:: ACKBYTE_MOST_TARGET_LOWER - :annotation: = 7 - - .. py:data:: ACKBYTE_MOST_TARGET_UPPER - :annotation: = 6 - - .. py:data:: ACKBYTE_TCP_ACK_START - :annotation: = 4 - - .. py:data:: ACKBYTE_TCP_SEQ_START - :annotation: = 0 - .. py:data:: AUTO :annotation: = 0 @@ -1057,7 +1016,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Aug 18 2022 15:52:07 + :annotation: = Oct 27 2022 12:46:26 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1095,41 +1054,11 @@ Module Variables .. py:data:: CAN_BPS8000 :annotation: = 16 - .. py:data:: CAN_CLK_16MIPS - :annotation: = 3 - - .. py:data:: CAN_CLK_40MIPS - :annotation: = 1 - - .. py:data:: CAN_CLK_64MIPS - :annotation: = 2 - - .. py:data:: CAN_CLK_INVALID - :annotation: = 0 - .. py:data:: CAN_SETTINGS_SIZE :annotation: = 12 - .. py:data:: CHIP_ID_INVALID - :annotation: = 255 - - .. py:data:: CMPROBE_ZYNQ_ID - :annotation: = 60 - - .. py:data:: DEVELOPER_BACKDOOR - :annotation: = 943047254 - - .. py:data:: DEVICE_OPTION_DISABLE_AUTO_UPDATE - :annotation: = 2 - - .. py:data:: DEVICE_OPTION_DONT_ENABLE_NETCOMS - :annotation: = 4 - - .. py:data:: DEVICE_OPTION_DONT_USE_NEOVISERVER - :annotation: = 8 - - .. py:data:: DEVICE_OPTION_ENABLE_TIMESYNC - :annotation: = 1 + .. py:data:: DEVICECOUNT_FOR_EXPLORER + :annotation: = 42 .. py:data:: DISABLE :annotation: = 1 @@ -1194,9 +1123,6 @@ Module Variables .. py:data:: ETHERNET_SETTINGS_SIZE :annotation: = 8 - .. py:data:: ETHER_BADGE_MCHIP_ID - :annotation: = 86 - .. py:data:: EXTENDED_RESPONSE_INVALID_COMMAND :annotation: = -1 @@ -1218,2696 +1144,389 @@ Module Variables .. py:data:: FAST_MODE :annotation: = 3 - .. py:data:: FIRE2_VNETZ_MCHIP_ID - :annotation: = 54 + .. py:data:: GENERIC_API_DATA_BUFFER_SIZE + :annotation: = 513 - .. py:data:: FIRE2_VNETZ_ZYNQ_ID - :annotation: = 55 + .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION + :annotation: = 1 - .. py:data:: FIRE2_VNET_CCHIP_ID - :annotation: = 49 + .. py:data:: GLOBAL_SETTINGS_SIZE + :annotation: = 942 - .. py:data:: FIRE2_VNET_CORE_ID - :annotation: = 50 + .. py:data:: GS_VERSION + :annotation: = 5 - .. py:data:: FIRE2_VNET_MCHIP_ID - :annotation: = 46 + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 + :annotation: = 2 - .. py:data:: FIRE3_LINUX_ID - :annotation: = 109 + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 + :annotation: = 5 - .. py:data:: FIRE3_SCHIP_ID - :annotation: = 91 + .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC + :annotation: = 7 - .. py:data:: FIRE3_ZCHIP_ID - :annotation: = 82 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS + :annotation: = 10 - .. py:data:: FIRE3_ZCHIP_MB_PATCH_ID - :annotation: = -2 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US + :annotation: = 8 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS + :annotation: = 9 - .. py:data:: FLEXRAY_ERROR_BIT_FILE_NOT_FOUND - :annotation: = 319 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI + :annotation: = 4 - .. py:data:: FLEXRAY_ERROR_DATA_INCORRECT_SEQUENCE_ERROR - :annotation: = 322 + .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN + :annotation: = 3 - .. py:data:: FLEXRAY_ERROR_DATA_SYNCHRONIZATION_ERROR - :annotation: = 323 + .. py:data:: HARDWARE_TIMESTAMP_ID_NONE + :annotation: = 0 - .. py:data:: FLEXRAY_ERROR_DEVICE_COULD_NOT_BE_OPENED - :annotation: = 318 + .. py:data:: HARDWARE_TIMESTAMP_ID_VSI + :annotation: = 1 - .. py:data:: FLEXRAY_ERROR_ERROR_FIFO_OVERFLOW - :annotation: = 328 + .. py:data:: HW_ETH_SETTINGS_SIZE + :annotation: = 20 - .. py:data:: FLEXRAY_ERROR_FPGA_CONFIG_FAILED - :annotation: = 320 + .. py:data:: ISO15765_2_NETWORK_HSCAN + :annotation: = 1 - .. py:data:: FLEXRAY_ERROR_HEARTBEAT_SEQUENCE_ERROR - :annotation: = 329 + .. py:data:: ISO15765_2_NETWORK_HSCAN2 + :annotation: = 4 - .. py:data:: FLEXRAY_ERROR_HEARTBEAT_TIMEOUT_ERROR - :annotation: = 330 + .. py:data:: ISO15765_2_NETWORK_HSCAN3 + :annotation: = 8 - .. py:data:: FLEXRAY_ERROR_HELPER_DLL_COULD_NOT_BE_LOADED - :annotation: = 324 + .. py:data:: ISO15765_2_NETWORK_HSCAN4 + :annotation: = 20 - .. py:data:: FLEXRAY_ERROR_INPUT_FIFO_OVERFLOW - :annotation: = 325 + .. py:data:: ISO15765_2_NETWORK_HSCAN5 + :annotation: = 24 - .. py:data:: FLEXRAY_ERROR_INVALID_ESCAPE_SEQUENCE - :annotation: = 326 + .. py:data:: ISO15765_2_NETWORK_HSCAN6 + :annotation: = 28 - .. py:data:: FLEXRAY_ERROR_NO_DEVICES_ATTACHED - :annotation: = 317 + .. py:data:: ISO15765_2_NETWORK_HSCAN7 + :annotation: = 32 - .. py:data:: FLEXRAY_ERROR_OUTPUT_MESSAGE_FIFO_OVERFLOW - :annotation: = 321 + .. py:data:: ISO15765_2_NETWORK_MSCAN + :annotation: = 2 - .. py:data:: FLEXRAY_ERROR_USB_LOW_LEVEL_READ_FAILURE - :annotation: = 327 + .. py:data:: ISO15765_2_NETWORK_SWCAN + :annotation: = 16 - .. py:data:: FLEX_VNETZ_FCHIP_ID - :annotation: = 83 + .. py:data:: ISO15765_2_NETWORK_SWCAN2 + :annotation: = 36 - .. py:data:: FLEX_VNETZ_ZCHIP_ID - :annotation: = 78 + .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE + :annotation: = 114 - .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION - :annotation: = 1 + .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE + :annotation: = 6 - .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 942 + .. py:data:: J1708_SETTINGS_SIZE + :annotation: = 2 - .. py:data:: GS_EX_ERR_API_FAILURE - :annotation: = 5 + .. py:data:: JUPITER_PTP_ROLE_DISABLED + :annotation: = 0 - .. py:data:: GS_EX_ERR_GENERAL_FAILURE + .. py:data:: JUPITER_PTP_ROLE_MASTER :annotation: = 1 - .. py:data:: GS_EX_ERR_INVALID_SUBCMD + .. py:data:: JUPITER_PTP_ROLE_SLAVE :annotation: = 2 - .. py:data:: GS_EX_ERR_INVALID_SUBVER + .. py:data:: LINK_SPEED_100MBPS_FULL_DUPLEX :annotation: = 3 - .. py:data:: GS_EX_ERR_NOT_ENOUGH_MEM + .. py:data:: LINK_SPEED_100MBPS_HALF_DUPLEX :annotation: = 4 - .. py:data:: GS_EX_ERR_OK - :annotation: = 0 + .. py:data:: LINK_SPEED_10MBPS_FULL_DUPLEX + :annotation: = 5 - .. py:data:: GS_EX_ERR_OK_DEFAULTS_USED - :annotation: = 7 + .. py:data:: LINK_SPEED_10MBPS_HALF_DUPLEX + :annotation: = 6 - .. py:data:: GS_EX_SUBCMD_DWCAN1 - :annotation: = 2 + .. py:data:: LINK_SPEED_1GBPS_FULL_DUPLEX + :annotation: = 1 - .. py:data:: GS_EX_SUBCMD_DWCAN2 - :annotation: = 3 + .. py:data:: LINK_SPEED_1GBPS_HALF_DUPLEX + :annotation: = 2 - .. py:data:: GS_EX_SUBCMD_DWCAN3 - :annotation: = 4 + .. py:data:: LINK_SPEED_AUTO_NEGOTIATION + :annotation: = 0 - .. py:data:: GS_EX_SUBCMD_DWCAN4 - :annotation: = 5 + .. py:data:: LINK_SPEED_COUNT + :annotation: = 7 - .. py:data:: GS_EX_SUBCMD_GLOBAL + .. py:data:: LINUX_BOOT_ALLOWED :annotation: = 1 - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LATEST + .. py:data:: LINUX_CONFIG_PORT_ETH_01 :annotation: = 1 - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_0 + .. py:data:: LINUX_CONFIG_PORT_ETH_02 :annotation: = 2 - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_1 - :annotation: = 3 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_2 - :annotation: = 4 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_3 - :annotation: = 5 + .. py:data:: LINUX_CONFIG_PORT_NONE + :annotation: = 0 - .. py:data:: GS_EX_SUBCMD_HSCAN1 - :annotation: = 6 + .. py:data:: LIN_SETTINGS_SIZE + :annotation: = 10 - .. py:data:: GS_EX_SUBCMD_HSCAN2 + .. py:data:: LISTEN_ALL :annotation: = 7 - .. py:data:: GS_EX_SUBCMD_HSCAN3 - :annotation: = 8 + .. py:data:: LISTEN_ONLY + :annotation: = 3 - .. py:data:: GS_EX_SUBCMD_HSCAN4 - :annotation: = 9 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN1 - :annotation: = 18 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN2 - :annotation: = 19 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN3 - :annotation: = 20 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN4 - :annotation: = 21 - - .. py:data:: GS_EX_SUBCMD_MSCAN1 - :annotation: = 10 - - .. py:data:: GS_EX_SUBCMD_MSCAN2 - :annotation: = 11 - - .. py:data:: GS_EX_SUBCMD_MSCAN3 - :annotation: = 12 - - .. py:data:: GS_EX_SUBCMD_MSCAN4 - :annotation: = 13 - - .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET - :annotation: = 32 - - .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET_SUBVER_LATEST - :annotation: = 1 - - .. py:data:: GS_EX_SUBCMD_SWCAN1 - :annotation: = 14 - - .. py:data:: GS_EX_SUBCMD_SWCAN2 - :annotation: = 15 - - .. py:data:: GS_EX_SUBCMD_SWCAN3 - :annotation: = 16 - - .. py:data:: GS_EX_SUBCMD_SWCAN4 - :annotation: = 17 - - .. py:data:: GS_EX_SUBVER_STANDARD_STRUCT - :annotation: = 1 - - .. py:data:: GS_VERSION - :annotation: = 5 - - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 - :annotation: = 2 - - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 - :annotation: = 5 - - .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC - :annotation: = 7 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS - :annotation: = 10 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US - :annotation: = 8 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS - :annotation: = 9 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI - :annotation: = 4 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN - :annotation: = 3 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NONE - :annotation: = 0 - - .. py:data:: HARDWARE_TIMESTAMP_ID_VSI - :annotation: = 1 - - .. py:data:: HW_ETH_SETTINGS_SIZE - :annotation: = 20 - - .. py:data:: INTREPIDCS_15765_RX_COMPLETE - :annotation: = 128 - - .. py:data:: INTREPIDCS_15765_RX_ERR_CFRX_EXP_FF - :annotation: = 2 - - .. py:data:: INTREPIDCS_15765_RX_ERR_CF_TIME_OUT - :annotation: = 64 - - .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_CF - :annotation: = 32 - - .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_FF - :annotation: = 4 - - .. py:data:: INTREPIDCS_15765_RX_ERR_FFRX_EXP_CF - :annotation: = 16 - - .. py:data:: INTREPIDCS_15765_RX_ERR_GLOBAL - :annotation: = 1 - - .. py:data:: INTREPIDCS_15765_RX_ERR_INVALID_LEN - :annotation: = 1024 - - .. py:data:: INTREPIDCS_15765_RX_ERR_SEQ_ERR_CF - :annotation: = 512 - - .. py:data:: INTREPIDCS_15765_RX_ERR_SFRX_EXP_CF - :annotation: = 8 - - .. py:data:: INTREPIDCS_15765_RX_IN_PROGRESS - :annotation: = 256 - - .. py:data:: INTREPIDCS_DEVICE_NEO4 - :annotation: = 0 - - .. py:data:: INTREPIDCS_DEVICE_NEO6 - :annotation: = 2 - - .. py:data:: INTREPIDCS_DEVICE_NEOFIRE - :annotation: = 10 - - .. py:data:: INTREPIDCS_DEVICE_NEORED - :annotation: = 10 - - .. py:data:: INTREPIDCS_DEVICE_UNKNOWN - :annotation: = 3 - - .. py:data:: INTREPIDCS_DEVICE_VCAN - :annotation: = 1 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_DW - :annotation: = 4 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_LSFT - :annotation: = 6 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_SW - :annotation: = 5 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_WIFI - :annotation: = 7 - - .. py:data:: INTREPIDCS_DEVICE_VCAN3 - :annotation: = 11 - - .. py:data:: INTREPIDCS_DEVICE_VCAN3_CANDOC - :annotation: = 8 - - .. py:data:: INTREPIDCS_DRIVER_CYPRESS - :annotation: = 2 - - .. py:data:: INTREPIDCS_DRIVER_ENHANCED_3G - :annotation: = 4 - - .. py:data:: INTREPIDCS_DRIVER_STANDARD - :annotation: = 0 - - .. py:data:: INTREPIDCS_DRIVER_SYNCTOPC - :annotation: = 3 - - .. py:data:: INTREPIDCS_DRIVER_TEST - :annotation: = 1 - - .. py:data:: ISO15765_2_NETWORK_HSCAN - :annotation: = 1 - - .. py:data:: ISO15765_2_NETWORK_HSCAN2 - :annotation: = 4 - - .. py:data:: ISO15765_2_NETWORK_HSCAN3 - :annotation: = 8 - - .. py:data:: ISO15765_2_NETWORK_HSCAN4 - :annotation: = 20 - - .. py:data:: ISO15765_2_NETWORK_HSCAN5 - :annotation: = 24 - - .. py:data:: ISO15765_2_NETWORK_HSCAN6 - :annotation: = 28 - - .. py:data:: ISO15765_2_NETWORK_HSCAN7 - :annotation: = 32 - - .. py:data:: ISO15765_2_NETWORK_MSCAN - :annotation: = 2 - - .. py:data:: ISO15765_2_NETWORK_SWCAN - :annotation: = 16 - - .. py:data:: ISO15765_2_NETWORK_SWCAN2 - :annotation: = 36 - - .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE - :annotation: = 114 - - .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE - :annotation: = 6 - - .. py:data:: J1708_SETTINGS_SIZE - :annotation: = 2 - - .. py:data:: JUPITER_PTP_ROLE_DISABLED - :annotation: = 0 - - .. py:data:: JUPITER_PTP_ROLE_MASTER - :annotation: = 1 - - .. py:data:: JUPITER_PTP_ROLE_SLAVE - :annotation: = 2 - - .. py:data:: LINK_SPEED_100MBPS_FULL_DUPLEX - :annotation: = 3 - - .. py:data:: LINK_SPEED_100MBPS_HALF_DUPLEX - :annotation: = 4 - - .. py:data:: LINK_SPEED_10MBPS_FULL_DUPLEX - :annotation: = 5 - - .. py:data:: LINK_SPEED_10MBPS_HALF_DUPLEX - :annotation: = 6 - - .. py:data:: LINK_SPEED_1GBPS_FULL_DUPLEX - :annotation: = 1 - - .. py:data:: LINK_SPEED_1GBPS_HALF_DUPLEX - :annotation: = 2 - - .. py:data:: LINK_SPEED_AUTO_NEGOTIATION - :annotation: = 0 - - .. py:data:: LINK_SPEED_COUNT - :annotation: = 7 - - .. py:data:: LIN_SETTINGS_SIZE - :annotation: = 10 - - .. py:data:: LISTEN_ALL - :annotation: = 7 - - .. py:data:: LISTEN_ONLY - :annotation: = 3 - - .. py:data:: LL_AUTONOMOUS - :annotation: = 43 - - .. py:data:: LL_CMPROBE - :annotation: = 23 - - .. py:data:: LL_DEAD - :annotation: = 0 - - .. py:data:: LL_ECU22 - :annotation: = 47 - - .. py:data:: LL_ECU_20 - :annotation: = 14 - - .. py:data:: LL_ECU_40 - :annotation: = 12 - - .. py:data:: LL_ETHERNET_EVB - :annotation: = 17 - - .. py:data:: LL_ETHER_BADGE - :annotation: = 48 - - .. py:data:: LL_FIRE - :annotation: = 3 - - .. py:data:: LL_FIRE2_CYAN - :annotation: = 19 - - .. py:data:: LL_FIRE3 - :annotation: = 39 - - .. py:data:: LL_FIRE_DEMO - :annotation: = 2 - - .. py:data:: LL_FIRE_PRODUCTION - :annotation: = 11 - - .. py:data:: LL_GIGASTARLITE - :annotation: = 60 - - .. py:data:: LL_IEVB - :annotation: = 13 - - .. py:data:: LL_NEOECU12 - :annotation: = 36 - - .. py:data:: LL_NEOECU_AVB - :annotation: = 31 - - .. py:data:: LL_NEOOBD2_SIM - :annotation: = 24 - - .. py:data:: LL_NEOOBD_LOGGER - :annotation: = 16 - - .. py:data:: LL_NEO_HDA - :annotation: = 15 - - .. py:data:: LL_OBD2_DEV - :annotation: = 38 - - .. py:data:: LL_OBD2_LC - :annotation: = 37 - - .. py:data:: LL_OBD2_PRO - :annotation: = 29 - - .. py:data:: LL_OBDSIM_ETHERNET - :annotation: = 53 - - .. py:data:: LL_PRODUCTION - :annotation: = 1 - - .. py:data:: LL_RADCCS - :annotation: = 59 - - .. py:data:: LL_RADCOMET - :annotation: = 61 - - .. py:data:: LL_RADEPSILON - :annotation: = 49 - - .. py:data:: LL_RADEPSILON_EXPRESS - :annotation: = 55 - - .. py:data:: LL_RADEPSILON_T - :annotation: = 54 - - .. py:data:: LL_RADGALAXY - :annotation: = 20 - - .. py:data:: LL_RADGALAXY2 - :annotation: = 57 - - .. py:data:: LL_RADGIGALOG - :annotation: = 33 - - .. py:data:: LL_RADGIGASTAR - :annotation: = 41 - - .. py:data:: LL_RADJUPITER - :annotation: = 40 - - .. py:data:: LL_RADMOON2 - :annotation: = 32 - - .. py:data:: LL_RADMOONDUO - :annotation: = 42 - - .. py:data:: LL_RADPLUTO - :annotation: = 34 - - .. py:data:: LL_RADPLUTO_LITE - :annotation: = 45 - - .. py:data:: LL_RADPROXIMA - :annotation: = 56 - - .. py:data:: LL_RADSTAR2 - :annotation: = 21 - - .. py:data:: LL_RADSUPERMOON - :annotation: = 30 - - .. py:data:: LL_RADUNIVERSE - :annotation: = 58 - - .. py:data:: LL_RAD_A2B - :annotation: = 50 - - .. py:data:: LL_RAD_BMS - :annotation: = 62 - - .. py:data:: LL_RED - :annotation: = 5 - - .. py:data:: LL_RED2 - :annotation: = 46 - - .. py:data:: LL_RED2_2 - :annotation: = 52 - - .. py:data:: LL_RED2_4 - :annotation: = 51 - - .. py:data:: LL_RED_LIMITED - :annotation: = 4 - - .. py:data:: LL_VALUECAN_RF - :annotation: = 18 - - .. py:data:: LL_VCAN3 - :annotation: = 9 - - .. py:data:: LL_VCAN3_LIMITED - :annotation: = 8 - - .. py:data:: LL_VCAN3_PRODUCTION - :annotation: = 10 - - .. py:data:: LL_VCAN4_1 - :annotation: = 25 - - .. py:data:: LL_VCAN4_2 - :annotation: = 26 - - .. py:data:: LL_VCAN4_4 - :annotation: = 27 - - .. py:data:: LL_VCAN4_EL - :annotation: = 28 - - .. py:data:: LL_VCAN4_IND - :annotation: = 44 - - .. py:data:: LL_VIVIDCAN - :annotation: = 22 - - .. py:data:: LL_VIVIDCAN_PRO - :annotation: = 35 - - .. py:data:: LL_YELLOW - :annotation: = 7 - - .. py:data:: LL_YELLOW_LIMITED - :annotation: = 6 - - .. py:data:: LOGGER_SETTINGS_SIZE - :annotation: = 4 - - .. py:data:: LOOPBACK - :annotation: = 2 - - .. py:data:: LSFTCAN2 - :annotation: = 1 - - .. py:data:: MAIN_VNET - :annotation: = 1 - - .. py:data:: MAX_NUMBYTES_PHYSETTINGS - :annotation: = 512 - - .. py:data:: MAX_PHY_REG_PKT_ENTRIES - :annotation: = 128 - - .. py:data:: MAX_PHY_SETTINGS_STRUCT - :annotation: = 128 - - .. py:data:: MAX_REPORTED_VERSIONS - :annotation: = 16 - - .. py:data:: MAX_VL_FORWARDING_ENTRIES - :annotation: = 1024 - - .. py:data:: MAX_VL_POLICING_ENTRIES - :annotation: = 1024 - - .. py:data:: MSCAN2 - :annotation: = 0 - - .. py:data:: NEODEVICE_ANY_ION - :annotation: = 262144 - - .. py:data:: NEODEVICE_ANY_PLASMA - :annotation: = 4096 - - .. py:data:: NEODEVICE_BLUE - :annotation: = 1 - - .. py:data:: NEODEVICE_CMPROBE - :annotation: = 8388608 - - .. py:data:: NEODEVICE_CT_OBD - :annotation: = 32768 - - .. py:data:: NEODEVICE_DONT_REUSE0 - :annotation: = 8192 - - .. py:data:: NEODEVICE_DONT_REUSE1 - :annotation: = 65536 - - .. py:data:: NEODEVICE_DONT_REUSE2 - :annotation: = 131072 - - .. py:data:: NEODEVICE_DONT_REUSE3 - :annotation: = 1048576 - - .. py:data:: NEODEVICE_DW_VCAN - :annotation: = 4 - - .. py:data:: NEODEVICE_ECU - :annotation: = 128 - - .. py:data:: NEODEVICE_ECU22 - :annotation: = 27 - - .. py:data:: NEODEVICE_ECUCHIP_UART - :annotation: = 2048 - - .. py:data:: NEODEVICE_ECU_AVB - :annotation: = 2 - - .. py:data:: NEODEVICE_EEVB - :annotation: = 16777216 - - .. py:data:: NEODEVICE_ETHER_BADGE - :annotation: = 22 - - .. py:data:: NEODEVICE_FIRE - :annotation: = 8 - - .. py:data:: NEODEVICE_FIRE2 - :annotation: = 67108864 - - .. py:data:: NEODEVICE_FIRE2_CYAN - :annotation: = 67108864 - - .. py:data:: NEODEVICE_FIRE2_REDLINE - :annotation: = 21 - - .. py:data:: NEODEVICE_FIRE3 - :annotation: = 15 - - .. py:data:: NEODEVICE_FLEX - :annotation: = 134217728 - - .. py:data:: NEODEVICE_GIGASTAR - :annotation: = 19 - - .. py:data:: NEODEVICE_IEVB - :annotation: = 256 - - .. py:data:: NEODEVICE_ION - :annotation: = 262144 - - .. py:data:: NEODEVICE_NEOANALOG - :annotation: = 16384 - - .. py:data:: NEODEVICE_NEOECU12 - :annotation: = 12 - - .. py:data:: NEODEVICE_NEOECUCHIP - :annotation: = 256 - - .. py:data:: NEODEVICE_NEW_DEVICE_58 - :annotation: = 31 - - .. py:data:: NEODEVICE_NEW_DEVICE_59 - :annotation: = 33 - - .. py:data:: NEODEVICE_OBD2_DEV - :annotation: = 26 - - .. py:data:: NEODEVICE_OBD2_LC - :annotation: = 13 - - .. py:data:: NEODEVICE_OBD2_PRO - :annotation: = 1024 - - .. py:data:: NEODEVICE_OBD2_SIM - :annotation: = -2147483648 - - .. py:data:: NEODEVICE_OBD2_SIM_DOIP - :annotation: = 25 - - .. py:data:: NEODEVICE_PENDANT - :annotation: = 512 - - .. py:data:: NEODEVICE_PLASMA - :annotation: = 4096 - - .. py:data:: NEODEVICE_RADEPSILON - :annotation: = 24 - - .. py:data:: NEODEVICE_RADEPSILON_EXPRESS - :annotation: = 29 - - .. py:data:: NEODEVICE_RADEPSILON_T - :annotation: = 28 - - .. py:data:: NEODEVICE_RADGALAXY - :annotation: = 268435456 - - .. py:data:: NEODEVICE_RADGIGALOG - :annotation: = 6 - - .. py:data:: NEODEVICE_RADIO_CANHUB - :annotation: = 11 - - .. py:data:: NEODEVICE_RADJUPITER - :annotation: = 17 - - .. py:data:: NEODEVICE_RADMOON2 - :annotation: = 5 - - .. py:data:: NEODEVICE_RADPLUTO - :annotation: = 9 - - .. py:data:: NEODEVICE_RADPROXIMA - :annotation: = 30 - - .. py:data:: NEODEVICE_RADSTAR - :annotation: = 524288 - - .. py:data:: NEODEVICE_RADSTAR2 - :annotation: = 536870912 - - .. py:data:: NEODEVICE_RADSUPERMOON - :annotation: = 3 - - .. py:data:: NEODEVICE_RAD_A2B - :annotation: = 23 - - .. py:data:: NEODEVICE_RAD_BMS - :annotation: = 34 - - .. py:data:: NEODEVICE_RAD_MOON_DUO - :annotation: = 14 - - .. py:data:: NEODEVICE_RED - :annotation: = 64 - - .. py:data:: NEODEVICE_RED2 - :annotation: = 20 - - .. py:data:: NEODEVICE_UNKNOWN - :annotation: = 0 - - .. py:data:: NEODEVICE_VCAN3 - :annotation: = 16 - - .. py:data:: NEODEVICE_VCAN41 - :annotation: = 7 - - .. py:data:: NEODEVICE_VCAN42 - :annotation: = 4194304 - - .. py:data:: NEODEVICE_VCAN42_EL - :annotation: = 10 - - .. py:data:: NEODEVICE_VCAN44 - :annotation: = 2097152 - - .. py:data:: NEODEVICE_VCAN4_IND - :annotation: = 18 - - .. py:data:: NEODEVICE_VCANRF - :annotation: = 33554432 - - .. py:data:: NEODEVICE_VIVIDCAN - :annotation: = 1073741824 - - .. py:data:: NEOECU12_MCHIP_ID - :annotation: = 76 - - .. py:data:: NEOECU_AVB_MCHIP_ID - :annotation: = 68 - - .. py:data:: NEOECU_AVB_PROD_ID - :annotation: = 25 - - .. py:data:: NEOOBD2_LC_PROD_ID - :annotation: = 31 - - .. py:data:: NEOOBD2_PRO_PROD_ID - :annotation: = 23 - - .. py:data:: NEOOBD2_SIM_PROD_ID - :annotation: = 22 - - .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 - - .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 - - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 - - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 - - .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 942 - - .. py:data:: NEOVI_ANALOG_MPIC_ID - :annotation: = 13 - - .. py:data:: NEOVI_AOUT_MCHIP - :annotation: = 26 - - .. py:data:: NEOVI_CMPROBE_PROD_ID - :annotation: = 14 - - .. py:data:: NEOVI_CMPROBE_ZYNQ_ID - :annotation: = 33 - - .. py:data:: NEOVI_COMMTYPE_FIRE_USB - :annotation: = 5 - - .. py:data:: NEOVI_COMMTYPE_RS232 - :annotation: = 0 - - .. py:data:: NEOVI_COMMTYPE_TCPIP - :annotation: = 3 - - .. py:data:: NEOVI_COMMTYPE_USB_BULK - :annotation: = 1 - - .. py:data:: NEOVI_ECU_MPIC_ID - :annotation: = 6 - - .. py:data:: NEOVI_ECU_PROD_ID - :annotation: = 4 - - .. py:data:: NEOVI_EEVB_PROD_ID - :annotation: = 15 - - .. py:data:: NEOVI_EEVB_STM32_ID - :annotation: = 34 - - .. py:data:: NEOVI_ERROR_ABORTED_FOR_SHUTDOWN - :annotation: = 286 - - .. py:data:: NEOVI_ERROR_ACTIVE_CONNECTION_ALREADY_EXISTS - :annotation: = 277 - - .. py:data:: NEOVI_ERROR_CHANNEL_LOCKED_BY_OTHER_CLIENT - :annotation: = 288 - - .. py:data:: NEOVI_ERROR_CHANNEL_LOCKING_NOT_SUPPORTED_FOR_DEVICE - :annotation: = 290 - - .. py:data:: NEOVI_ERROR_COREMINI_IN_USE - :annotation: = 284 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORBADINIT - :annotation: = 263 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMININULLPTR - :annotation: = 271 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMINIZEROLEN - :annotation: = 272 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOULDNOTOPENTOOL - :annotation: = 268 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORINVALIDDEVICESELECTED - :annotation: = 267 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORISONEG7FRESPONSE - :annotation: = 265 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOCANPIPE - :annotation: = 264 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOFLOWCONTROL - :annotation: = 269 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORRESERVED3 - :annotation: = 273 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORRESERVED4 - :annotation: = 274 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORTOOLNOTSELECTED - :annotation: = 266 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORUNSPECIFIC - :annotation: = 270 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_OK - :annotation: = 262 - - .. py:data:: NEOVI_ERROR_DLL_3G_BL_FAILURE - :annotation: = 107 - - .. py:data:: NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED - :annotation: = 190 - - .. py:data:: NEOVI_ERROR_DLL_BULKIN_ERR_READ - :annotation: = 43 - - .. py:data:: NEOVI_ERROR_DLL_CLOSE_PURGE_COMM - :annotation: = 96 - - .. py:data:: NEOVI_ERROR_DLL_CONTACT_TECH_SUPPORT - :annotation: = 368 - - .. py:data:: NEOVI_ERROR_DLL_COULD_NOT_SET_SETTINGS_FIRMWARE_MISMATCH - :annotation: = 227 - - .. py:data:: NEOVI_ERROR_DLL_DEVICE_NOT_POWERED - :annotation: = 261 - - .. py:data:: NEOVI_ERROR_DLL_DEVICE_USB_CONNECTED_BUT_NOT_POWER - :annotation: = 294 - - .. py:data:: NEOVI_ERROR_DLL_DROPPED_RTC_CMD - :annotation: = 256 - - .. py:data:: NEOVI_ERROR_DLL_ERROR_BUFFER_OVERFLOW - :annotation: = 1 - - .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_RX_ERROR - :annotation: = 594 - - .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_TX_ERROR - :annotation: = 593 - - .. py:data:: NEOVI_ERROR_DLL_FAILED_TO_SET_LICENSE - :annotation: = 189 - - .. py:data:: NEOVI_ERROR_DLL_FEATURE_NOT_UNLOCKED - :annotation: = 260 - - .. py:data:: NEOVI_ERROR_DLL_FIRE_CGI_TX_NOT_ENABLED - :annotation: = 228 - - .. py:data:: NEOVI_ERROR_DLL_FIRMWARE_OLD_CANNOT_FLASH - :annotation: = 595 - - .. py:data:: NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR - :annotation: = 230 - - .. py:data:: NEOVI_ERROR_DLL_GET_USBSERIAL_DEVICES - :annotation: = 98 - - .. py:data:: NEOVI_ERROR_DLL_HARDWARE_FAILURE_SRAM - :annotation: = 276 - - .. py:data:: NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK - :annotation: = 90 - - .. py:data:: NEOVI_ERROR_DLL_INTERNAL_SERIAL_NO_DOES_NOT_MATCH_REGISTRY_SERIAL_NO - :annotation: = 187 - - .. py:data:: NEOVI_ERROR_DLL_INVALID_DEVICE_RESPONSE - :annotation: = 12 - - .. py:data:: NEOVI_ERROR_DLL_INVALID_NETID - :annotation: = 8 - - .. py:data:: NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION - :annotation: = 213 - - .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_HOST_MISSED_BYTE - :annotation: = 74 - - .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_IN - :annotation: = 69 - - .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_OUT - :annotation: = 71 - - .. py:data:: NEOVI_ERROR_DLL_ISORX_LONG_BUFFER_ALLOC - :annotation: = 49 - - .. py:data:: NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC - :annotation: = 13 - - .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_BUFFER_ALLOC - :annotation: = 3 - - .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_READ_BUFFER - :annotation: = 4 - - .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_ZERO_PACKETS - :annotation: = 5 - - .. py:data:: NEOVI_ERROR_DLL_ISO_LONG_CACHE_OVERFLOW - :annotation: = 48 - - .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_BUFFER_ALLOC - :annotation: = 51 - - .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_CACHE_OVERFLOW - :annotation: = 50 - - .. py:data:: NEOVI_ERROR_DLL_J1850_TX_REQUESTS_FLUSHED - :annotation: = 257 - - .. py:data:: NEOVI_ERROR_DLL_JVPW_LONG_CACHE_OVERFLOW - :annotation: = 188 - - .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_IN - :annotation: = 68 - - .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_OUT - :annotation: = 70 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_DEV_FIFO_OVERFLOW - :annotation: = 46 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_LOADED_DEFAULT_SETTINGS - :annotation: = 205 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_AUTO_RTC - :annotation: = 279 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_FAILED_READ - :annotation: = 278 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_INVALID - :annotation: = 204 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RX_FIFO_OVERFLOW - :annotation: = 44 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW - :annotation: = 45 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_AUX - :annotation: = 59 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_DEVICE - :annotation: = 52 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_FORDSCP - :annotation: = 57 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HOST - :annotation: = 64 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_HSCAN - :annotation: = 53 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISO - :annotation: = 61 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_ISOPIC - :annotation: = 62 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_J1708 - :annotation: = 58 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_JVPW - :annotation: = 60 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_LSFTCAN - :annotation: = 56 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MAIN51 - :annotation: = 63 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_MSCAN - :annotation: = 54 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN - :annotation: = 55 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN2 - :annotation: = 311 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_CHKSUM - :annotation: = 73 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_OVERRUN - :annotation: = 91 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_IN_FROM_HOST_FIFO - :annotation: = 72 - - .. py:data:: NEOVI_ERROR_DLL_MAIN_PIC_BUFFER_OVERFLOW - :annotation: = 11 - - .. py:data:: NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE - :annotation: = 75 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B1 - :annotation: = 582 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B2 - :annotation: = 590 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_CGI - :annotation: = 211 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET - :annotation: = 517 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET2 - :annotation: = 601 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET3 - :annotation: = 637 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET_DAQ - :annotation: = 529 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN - :annotation: = 191 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN2 - :annotation: = 193 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN3 - :annotation: = 194 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN4 - :annotation: = 299 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN5 - :annotation: = 305 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN6 - :annotation: = 348 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN7 - :annotation: = 354 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C1 - :annotation: = 554 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C2 - :annotation: = 561 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C3 - :annotation: = 568 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C4 - :annotation: = 575 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO - :annotation: = 223 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO1 - :annotation: = 251 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO2 - :annotation: = 232 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO3 - :annotation: = 233 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO4 - :annotation: = 234 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_J1708 - :annotation: = 203 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_JVPW - :annotation: = 201 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_KYW - :annotation: = 202 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN1 - :annotation: = 197 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN2 - :annotation: = 198 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN3 - :annotation: = 199 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN4 - :annotation: = 200 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN5 - :annotation: = 343 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN6 - :annotation: = 366 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFT - :annotation: = 195 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFTCAN2 - :annotation: = 360 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_MSCAN - :annotation: = 192 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH1 - :annotation: = 373 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH10 - :annotation: = 481 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH11 - :annotation: = 493 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH12 - :annotation: = 505 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH2 - :annotation: = 385 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH3 - :annotation: = 397 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH4 - :annotation: = 409 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH5 - :annotation: = 421 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH6 - :annotation: = 433 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH7 - :annotation: = 445 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH8 - :annotation: = 457 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH9 - :annotation: = 469 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW - :annotation: = 196 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW2 - :annotation: = 313 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_SUPPORTED_BY_HARDWARE - :annotation: = 259 - - .. py:data:: NEOVI_ERROR_DLL_NRED_ODDNUMBYTES - :annotation: = 103 - - .. py:data:: NEOVI_ERROR_DLL_NRED_UNKNOWN_RED_NETID - :annotation: = 104 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_GET_COMM_TIMEOUT - :annotation: = 92 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_INBOOTLOADER - :annotation: = 100 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE - :annotation: = 94 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE_TOUT - :annotation: = 95 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_SET_COMM_TIMEOUT - :annotation: = 93 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_FIRMWARE_INFO - :annotation: = 102 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_BULKIN_THREAD - :annotation: = 42 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_CLIENT_THREAD - :annotation: = 79 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_THREAD - :annotation: = 78 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RX_THREAD - :annotation: = 9 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_CLIENT_THREAD - :annotation: = 285 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_THREAD - :annotation: = 77 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TX_THREAD - :annotation: = 10 - - .. py:data:: NEOVI_ERROR_DLL_READ_ENTIRE_DEEPROM_ERROR - :annotation: = 65 - - .. py:data:: NEOVI_ERROR_DLL_REASON_RESERVE_CNT - :annotation: = 10 - - .. py:data:: NEOVI_ERROR_DLL_REASON_USER_DEFINED - :annotation: = 650 - - .. py:data:: NEOVI_ERROR_DLL_RED_APP_VERSION - :annotation: = 120 - - .. py:data:: NEOVI_ERROR_DLL_RED_AUTHENTICATE - :annotation: = 119 - - .. py:data:: NEOVI_ERROR_DLL_RED_BL_END_INDEX - :annotation: = 116 - - .. py:data:: NEOVI_ERROR_DLL_RED_BL_START_INDEX - :annotation: = 106 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B1 - :annotation: = 580 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B2 - :annotation: = 588 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_CGI - :annotation: = 209 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET - :annotation: = 516 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET2 - :annotation: = 600 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET3 - :annotation: = 636 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET_DAQ - :annotation: = 528 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1A - :annotation: = 333 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1B - :annotation: = 334 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2A - :annotation: = 335 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2B - :annotation: = 336 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN1 - :annotation: = 132 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN2 - :annotation: = 136 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN3 - :annotation: = 144 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN4 - :annotation: = 298 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN5 - :annotation: = 304 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN6 - :annotation: = 347 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN7 - :annotation: = 353 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C1 - :annotation: = 552 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C2 - :annotation: = 559 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C3 - :annotation: = 566 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C4 - :annotation: = 573 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO2 - :annotation: = 238 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO3 - :annotation: = 243 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO4 - :annotation: = 248 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_JVPW - :annotation: = 186 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN1 - :annotation: = 156 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN2 - :annotation: = 160 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN3 - :annotation: = 164 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN4 - :annotation: = 168 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN5 - :annotation: = 340 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN6 - :annotation: = 365 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN - :annotation: = 152 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN2 - :annotation: = 359 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_MSCAN1 - :annotation: = 140 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH1 - :annotation: = 372 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH10 - :annotation: = 480 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH11 - :annotation: = 492 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH12 - :annotation: = 504 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH2 - :annotation: = 384 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH3 - :annotation: = 396 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH4 - :annotation: = 408 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH5 - :annotation: = 420 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH6 - :annotation: = 432 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH7 - :annotation: = 444 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH8 - :annotation: = 456 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH9 - :annotation: = 468 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN - :annotation: = 148 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN2 - :annotation: = 310 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_CLEAR_LIN_SLAVE_DATA - :annotation: = 250 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_ENTER_BL - :annotation: = 117 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_SAVE_EEPROM - :annotation: = 124 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_UPDATE_WAVEFORM_CHANNEL - :annotation: = 125 - - .. py:data:: NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED - :annotation: = 122 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET - :annotation: = 629 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET2 - :annotation: = 630 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET3 - :annotation: = 640 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET_DAQ - :annotation: = 631 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH1 - :annotation: = 617 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH10 - :annotation: = 626 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH11 - :annotation: = 627 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH12 - :annotation: = 628 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH2 - :annotation: = 618 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH3 - :annotation: = 619 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH4 - :annotation: = 620 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH5 - :annotation: = 621 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH6 - :annotation: = 622 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH7 - :annotation: = 623 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH8 - :annotation: = 624 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH9 - :annotation: = 625 - - .. py:data:: NEOVI_ERROR_DLL_RED_NOT_SUPPORTED - :annotation: = 105 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH1 - :annotation: = 537 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH10 - :annotation: = 546 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH11 - :annotation: = 547 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH12 - :annotation: = 548 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH2 - :annotation: = 538 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH3 - :annotation: = 539 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH4 - :annotation: = 540 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH5 - :annotation: = 541 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH6 - :annotation: = 542 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH7 - :annotation: = 543 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH8 - :annotation: = 544 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH9 - :annotation: = 545 - - .. py:data:: NEOVI_ERROR_DLL_RED_READ_BAUD_COMM_FAILURE - :annotation: = 123 - - .. py:data:: NEOVI_ERROR_DLL_RED_REQ_SERIAL_NUMBER - :annotation: = 118 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B1 - :annotation: = 577 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B2 - :annotation: = 585 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_CGI - :annotation: = 206 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET - :annotation: = 513 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET2 - :annotation: = 597 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET3 - :annotation: = 633 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET_DAQ - :annotation: = 525 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_FR1A - :annotation: = 332 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN1 - :annotation: = 129 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN2 - :annotation: = 133 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN3 - :annotation: = 141 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN4 - :annotation: = 295 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN5 - :annotation: = 301 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN6 - :annotation: = 344 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN7 - :annotation: = 350 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C1 - :annotation: = 549 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C2 - :annotation: = 556 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C3 - :annotation: = 563 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C4 - :annotation: = 570 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO - :annotation: = 222 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO1 - :annotation: = 252 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO2 - :annotation: = 235 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO3 - :annotation: = 240 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO4 - :annotation: = 245 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_JVPW - :annotation: = 183 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN1 - :annotation: = 153 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN2 - :annotation: = 157 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN3 - :annotation: = 161 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN4 - :annotation: = 165 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN5 - :annotation: = 337 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN6 - :annotation: = 362 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN - :annotation: = 149 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN2 - :annotation: = 356 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_MSCAN1 - :annotation: = 137 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH1 - :annotation: = 369 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH10 - :annotation: = 477 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH11 - :annotation: = 489 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH12 - :annotation: = 501 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH2 - :annotation: = 381 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH3 - :annotation: = 393 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH4 - :annotation: = 405 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH5 - :annotation: = 417 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH6 - :annotation: = 429 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH7 - :annotation: = 441 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH8 - :annotation: = 453 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH9 - :annotation: = 465 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN - :annotation: = 145 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN2 - :annotation: = 307 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_UNKNOWN_NETWORK - :annotation: = 126 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B1 - :annotation: = 581 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B2 - :annotation: = 589 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_CGI - :annotation: = 210 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET - :annotation: = 518 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET2 - :annotation: = 602 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET3 - :annotation: = 638 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET_DAQ - :annotation: = 530 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN1 - :annotation: = 172 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN2 - :annotation: = 173 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN3 - :annotation: = 174 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN4 - :annotation: = 300 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN5 - :annotation: = 306 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN6 - :annotation: = 349 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN7 - :annotation: = 355 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C1 - :annotation: = 553 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C2 - :annotation: = 560 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C3 - :annotation: = 567 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C4 - :annotation: = 574 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO1 - :annotation: = 255 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO2 - :annotation: = 239 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO3 - :annotation: = 244 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO4 - :annotation: = 249 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_JVPW - :annotation: = 212 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN1 - :annotation: = 178 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN2 - :annotation: = 179 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN3 - :annotation: = 180 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN4 - :annotation: = 181 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN5 - :annotation: = 342 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN6 - :annotation: = 367 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN - :annotation: = 177 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN2 - :annotation: = 361 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_MSCAN - :annotation: = 175 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH1 - :annotation: = 374 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH10 - :annotation: = 482 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH11 - :annotation: = 494 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH12 - :annotation: = 506 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH2 - :annotation: = 386 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH3 - :annotation: = 398 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH4 - :annotation: = 410 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH5 - :annotation: = 422 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH6 - :annotation: = 434 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH7 - :annotation: = 446 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH8 - :annotation: = 458 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH9 - :annotation: = 470 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN - :annotation: = 176 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN2 - :annotation: = 312 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_UNKNOWN_NETWORK - :annotation: = 182 - - .. py:data:: NEOVI_ERROR_DLL_RED_SET_BAUD_COMM_FAILURE - :annotation: = 121 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B1 - :annotation: = 578 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B2 - :annotation: = 586 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_CGI - :annotation: = 207 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET - :annotation: = 514 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET2 - :annotation: = 598 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET3 - :annotation: = 634 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET_DAQ - :annotation: = 526 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN1 - :annotation: = 130 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN2 - :annotation: = 134 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN3 - :annotation: = 142 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN4 - :annotation: = 296 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN5 - :annotation: = 302 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN6 - :annotation: = 345 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN7 - :annotation: = 351 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C1 - :annotation: = 550 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C2 - :annotation: = 557 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C3 - :annotation: = 564 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C4 - :annotation: = 571 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO1 - :annotation: = 253 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO2 - :annotation: = 236 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO3 - :annotation: = 241 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO4 - :annotation: = 246 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_JVPW - :annotation: = 184 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN1 - :annotation: = 154 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN2 - :annotation: = 158 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN3 - :annotation: = 162 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN4 - :annotation: = 166 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN5 - :annotation: = 338 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN6 - :annotation: = 363 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN - :annotation: = 150 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN2 - :annotation: = 357 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_MSCAN1 - :annotation: = 138 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH1 - :annotation: = 370 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH10 - :annotation: = 478 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH11 - :annotation: = 490 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH12 - :annotation: = 502 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH2 - :annotation: = 382 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH3 - :annotation: = 394 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH4 - :annotation: = 406 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH5 - :annotation: = 418 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH6 - :annotation: = 430 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH7 - :annotation: = 442 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH8 - :annotation: = 454 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH9 - :annotation: = 466 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN - :annotation: = 146 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN2 - :annotation: = 308 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_UNKNOWN_NETWORK - :annotation: = 127 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET - :annotation: = 616 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH1 - :annotation: = 604 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH10 - :annotation: = 613 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH11 - :annotation: = 614 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH12 - :annotation: = 615 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH2 - :annotation: = 605 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH3 - :annotation: = 606 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH4 - :annotation: = 607 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH5 - :annotation: = 608 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH6 - :annotation: = 609 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH7 - :annotation: = 610 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH8 - :annotation: = 611 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH9 - :annotation: = 612 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B1 - :annotation: = 579 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B2 - :annotation: = 587 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_CGI - :annotation: = 208 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET - :annotation: = 515 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET2 - :annotation: = 599 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET3 - :annotation: = 635 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET_DAQ - :annotation: = 527 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN1 - :annotation: = 131 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN2 - :annotation: = 135 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN3 - :annotation: = 143 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN4 - :annotation: = 297 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN5 - :annotation: = 303 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN6 - :annotation: = 346 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN7 - :annotation: = 352 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C1 - :annotation: = 551 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C2 - :annotation: = 558 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C3 - :annotation: = 565 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C4 - :annotation: = 572 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO1 - :annotation: = 254 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO2 - :annotation: = 237 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO3 - :annotation: = 242 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO4 - :annotation: = 247 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_JVPW - :annotation: = 185 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN1 - :annotation: = 155 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN2 - :annotation: = 159 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN3 - :annotation: = 163 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN4 - :annotation: = 167 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN5 - :annotation: = 339 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN6 - :annotation: = 364 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN - :annotation: = 151 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN2 - :annotation: = 358 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_MSCAN1 - :annotation: = 139 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH1 - :annotation: = 371 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH10 - :annotation: = 479 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH11 - :annotation: = 491 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH12 - :annotation: = 503 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH2 - :annotation: = 383 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH3 - :annotation: = 395 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH4 - :annotation: = 407 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH5 - :annotation: = 419 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH6 - :annotation: = 431 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH7 - :annotation: = 443 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH8 - :annotation: = 455 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH9 - :annotation: = 467 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN - :annotation: = 147 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN2 - :annotation: = 309 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_UNKNOWN_NETWORK - :annotation: = 128 - - .. py:data:: NEOVI_ERROR_DLL_RESET_STATUS_CHANGED - :annotation: = 47 - - .. py:data:: NEOVI_ERROR_DLL_RS232_BUFFER_ALLOC - :annotation: = 18 - - .. py:data:: NEOVI_ERROR_DLL_RS232_CREATE_FILE - :annotation: = 33 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_BREAK - :annotation: = 26 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_FRAME - :annotation: = 27 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_IOE - :annotation: = 28 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_OVERRUN - :annotation: = 29 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_PARITY - :annotation: = 30 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READ - :annotation: = 17 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READCOMERR - :annotation: = 16 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_BUFFER_ALLOC - :annotation: = 22 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_CLEARCOMM - :annotation: = 23 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_READCOMM - :annotation: = 24 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_TIMEOUT - :annotation: = 25 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_WRITE - :annotation: = 21 - - .. py:data:: NEOVI_ERROR_DLL_RS232_GET_COMM_STATE - :annotation: = 34 - - .. py:data:: NEOVI_ERROR_DLL_RS232_MISC_ERROR - :annotation: = 20 - - .. py:data:: NEOVI_ERROR_DLL_RS232_RX_BUFFER_OVERFLOW - :annotation: = 15 - - .. py:data:: NEOVI_ERROR_DLL_RS232_SET_COMM_STATE - :annotation: = 35 - - .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_RX_THREAD - :annotation: = 36 - - .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_TX_THREAD - :annotation: = 37 - - .. py:data:: NEOVI_ERROR_DLL_RS232_TXBUFFER_ALLOC - :annotation: = 31 - - .. py:data:: NEOVI_ERROR_DLL_RS232_TX_BUFFER_OVERFLOW - :annotation: = 19 - - .. py:data:: NEOVI_ERROR_DLL_RX_BUFFER_ALMOST_FULL - :annotation: = 651 - - .. py:data:: NEOVI_ERROR_DLL_RX_CMD_BUFFER_OVERFLOW - :annotation: = 14 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW - :annotation: = 6 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_CHK_SUM_ERR - :annotation: = 41 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FIFO_OVER - :annotation: = 40 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FRAME_ERR - :annotation: = 39 - - .. py:data:: NEOVI_ERROR_DLL_RX_SOCKET_FIFO_OVER - :annotation: = 76 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_CLEARING_SCRIPT - :annotation: = 221 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_DOWNLOADING_SCRIPT - :annotation: = 220 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX - :annotation: = 225 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX - :annotation: = 219 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_MSG_INDEX - :annotation: = 224 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING - :annotation: = 226 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_START_ERROR - :annotation: = 218 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_FORMATTED - :annotation: = 215 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED - :annotation: = 214 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_READ_ERROR - :annotation: = 217 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR - :annotation: = 216 - - .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR - :annotation: = 229 - - .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_NOTPOSSIBLE - :annotation: = 287 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_RD_BUFFER_ALLOC - :annotation: = 86 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_TX_BUFFER_ALLOC - :annotation: = 87 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_RX_BUFFER_ALLOC - :annotation: = 88 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_TX_BUFFER_ALLOC - :annotation: = 89 - - .. py:data:: NEOVI_ERROR_DLL_STOP_ISO_STREAM - :annotation: = 7 - - .. py:data:: NEOVI_ERROR_DLL_SYNC_COUNT_ERR - :annotation: = 38 - - .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX - :annotation: = 81 - - .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX_SOCK - :annotation: = 82 - - .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_TX - :annotation: = 80 - - .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_PERIODICS - :annotation: = 101 - - .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_TXRXPAIRS - :annotation: = 291 - - .. py:data:: NEOVI_ERROR_DLL_TXRXPAIRS_NOT_SUPPORTED_FOR_DEVICE - :annotation: = 292 - - .. py:data:: NEOVI_ERROR_DLL_TX_BUFFER_OVERFLOW - :annotation: = 0 - - .. py:data:: NEOVI_ERROR_DLL_TX_COM_FIFO_OVERFLOW - :annotation: = 97 - - .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B1 - :annotation: = 584 - - .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B2 - :annotation: = 592 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B1 - :annotation: = 583 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B2 - :annotation: = 591 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET - :annotation: = 524 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET2 - :annotation: = 603 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET3 - :annotation: = 639 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET_DAQ - :annotation: = 536 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C1 - :annotation: = 555 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C2 - :annotation: = 562 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C3 - :annotation: = 569 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C4 - :annotation: = 576 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH1 - :annotation: = 380 + .. py:data:: LOGGER_SETTINGS_SIZE + :annotation: = 4 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH10 - :annotation: = 488 + .. py:data:: LOOPBACK + :annotation: = 2 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH11 - :annotation: = 500 + .. py:data:: MAIN_VNET + :annotation: = 1 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH12 + .. py:data:: MAX_NUMBYTES_PHYSETTINGS :annotation: = 512 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH2 - :annotation: = 392 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH3 - :annotation: = 404 + .. py:data:: MAX_PHY_REG_PKT_ENTRIES + :annotation: = 128 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH4 - :annotation: = 416 + .. py:data:: MAX_PHY_SETTINGS_STRUCT + :annotation: = 128 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH5 - :annotation: = 428 + .. py:data:: MAX_REPORTED_VERSIONS + :annotation: = 16 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH6 - :annotation: = 440 + .. py:data:: MAX_VL_FORWARDING_ENTRIES + :annotation: = 1024 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH7 - :annotation: = 452 + .. py:data:: MAX_VL_POLICING_ENTRIES + :annotation: = 1024 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH8 - :annotation: = 464 + .. py:data:: NEODEVICE_ANY_ION + :annotation: = 262144 - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH9 - :annotation: = 476 + .. py:data:: NEODEVICE_ANY_PLASMA + :annotation: = 4096 - .. py:data:: NEOVI_ERROR_DLL_UNABLE_CONNECT_TO_SRVR - :annotation: = 83 + .. py:data:: NEODEVICE_BLUE + :annotation: = 1 - .. py:data:: NEOVI_ERROR_DLL_UNABLE_CREATE_CLIENT_SOCK - :annotation: = 84 + .. py:data:: NEODEVICE_CMPROBE + :annotation: = 8388608 - .. py:data:: NEOVI_ERROR_DLL_UNABLE_WSASTARTUP - :annotation: = 85 + .. py:data:: NEODEVICE_CT_OBD + :annotation: = 32768 - .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_APP_ERROR - :annotation: = 596 + .. py:data:: NEODEVICE_DONT_REUSE0 + :annotation: = 8192 - .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE - :annotation: = 231 + .. py:data:: NEODEVICE_DONT_REUSE1 + :annotation: = 65536 - .. py:data:: NEOVI_ERROR_DLL_USB_PORT_ALREADY_OPEN - :annotation: = 67 + .. py:data:: NEODEVICE_DONT_REUSE2 + :annotation: = 131072 - .. py:data:: NEOVI_ERROR_DLL_USB_PURGE_FAILED - :annotation: = 169 + .. py:data:: NEODEVICE_DONT_REUSE3 + :annotation: = 1048576 - .. py:data:: NEOVI_ERROR_DLL_USB_SEND_DATA_ERROR - :annotation: = 2 + .. py:data:: NEODEVICE_DW_VCAN + :annotation: = 4 - .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_BCOUNT - :annotation: = 99 + .. py:data:: NEODEVICE_ECU + :annotation: = 128 - .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_ERROR - :annotation: = 32 + .. py:data:: NEODEVICE_ECU22 + :annotation: = 27 - .. py:data:: NEOVI_ERROR_DLL_WRITE_ENTIRE_DEEPROM_ERROR - :annotation: = 66 + .. py:data:: NEODEVICE_ECUCHIP_UART + :annotation: = 2048 - .. py:data:: NEOVI_ERROR_ETHERNET_IP_FRAGMENT_DATA_LOSS - :annotation: = 632 + .. py:data:: NEODEVICE_ECU_AVB + :annotation: = 2 - .. py:data:: NEOVI_ERROR_FAILED_TO_SET_RTC - :annotation: = 331 + .. py:data:: NEODEVICE_EEVB + :annotation: = 16777216 - .. py:data:: NEOVI_ERROR_FIRE_CGI_COMM_BAD_PACKET - :annotation: = 171 + .. py:data:: NEODEVICE_ETHER_BADGE + :annotation: = 22 - .. py:data:: NEOVI_ERROR_FIRE_COMM_BAD_PACKET - :annotation: = 170 + .. py:data:: NEODEVICE_FIRE + :annotation: = 8 - .. py:data:: NEOVI_ERROR_J1708_COMM_BAD_PACKET - :annotation: = 258 + .. py:data:: NEODEVICE_FIRE2 + :annotation: = 67108864 - .. py:data:: NEOVI_ERROR_NEOVISERVER_GENERAL_ERROR - :annotation: = 289 + .. py:data:: NEODEVICE_FIRE2_REDLINE + :annotation: = 21 - .. py:data:: NEOVI_ERROR_PLASMA_CORE_RESTARTED - :annotation: = 280 + .. py:data:: NEODEVICE_FIRE3 + :annotation: = 15 - .. py:data:: NEOVI_ERROR_REQ_VBATT_FAILED - :annotation: = 281 + .. py:data:: NEODEVICE_FLEX + :annotation: = 134217728 - .. py:data:: NEOVI_ERROR_RX_FILTER_MATCH_COUNT_EXCEEDED - :annotation: = 316 + .. py:data:: NEODEVICE_GIGASTAR + :annotation: = 19 - .. py:data:: NEOVI_ERROR_TXRX_PAIRS_BUSY - :annotation: = 283 + .. py:data:: NEODEVICE_IEVB + :annotation: = 256 - .. py:data:: NEOVI_ERROR_TXRX_PAIRS_FAILED - :annotation: = 293 + .. py:data:: NEODEVICE_ION + :annotation: = 262144 - .. py:data:: NEOVI_ERROR_TXRX_PAIRS_TIMEOUT - :annotation: = 282 + .. py:data:: NEODEVICE_NEOANALOG + :annotation: = 16384 - .. py:data:: NEOVI_ERROR_TX_INTERFACE_NOT_IMPLEMENTED - :annotation: = 314 + .. py:data:: NEODEVICE_NEOECU12 + :annotation: = 12 - .. py:data:: NEOVI_ERROR_TX_MESSAGES_COMM_ENABLE_IS_OFF - :annotation: = 315 + .. py:data:: NEODEVICE_NEOECUCHIP + :annotation: = 256 - .. py:data:: NEOVI_ETHER_BADGE_PROD_ID - :annotation: = 38 + .. py:data:: NEODEVICE_NEW_DEVICE_58 + :annotation: = 31 - .. py:data:: NEOVI_FIRE2_CYAN_BLECHIP_ID - :annotation: = 42 + .. py:data:: NEODEVICE_NEW_DEVICE_59 + :annotation: = 33 - .. py:data:: NEOVI_FIRE2_CYAN_CCHIP_ID - :annotation: = 40 + .. py:data:: NEODEVICE_OBD2_DEV + :annotation: = 26 - .. py:data:: NEOVI_FIRE2_CYAN_CORE_ID - :annotation: = 41 + .. py:data:: NEODEVICE_OBD2_LC + :annotation: = 13 - .. py:data:: NEOVI_FIRE2_CYAN_CORE_SG4_ID - :annotation: = 105 + .. py:data:: NEODEVICE_OBD2_PRO + :annotation: = 1024 - .. py:data:: NEOVI_FIRE2_CYAN_MCHIP_ID - :annotation: = 39 + .. py:data:: NEODEVICE_OBD2_SIM + :annotation: = -2147483648 - .. py:data:: NEOVI_FIRE2_CYAN_PROD_ID - :annotation: = 18 + .. py:data:: NEODEVICE_OBD2_SIM_DOIP + :annotation: = 25 - .. py:data:: NEOVI_FIRE2_CYAN_SECURITYCHIP_ID - :annotation: = 44 + .. py:data:: NEODEVICE_PENDANT + :annotation: = 512 - .. py:data:: NEOVI_FIRE2_CYAN_ZYNQ_ID - :annotation: = 43 + .. py:data:: NEODEVICE_PLASMA + :annotation: = 4096 - .. py:data:: NEOVI_FIRE3_PROD_ID - :annotation: = 33 + .. py:data:: NEODEVICE_RADEPSILON + :annotation: = 24 - .. py:data:: NEOVI_FIRE_JCHIP_ID - :annotation: = 3 + .. py:data:: NEODEVICE_RADEPSILON_EXPRESS + :annotation: = 29 - .. py:data:: NEOVI_FIRE_LCHIP_ID - :annotation: = 1 + .. py:data:: NEODEVICE_RADEPSILON_T + :annotation: = 28 - .. py:data:: NEOVI_FIRE_MCHIP_ID - :annotation: = 0 + .. py:data:: NEODEVICE_RADGALAXY + :annotation: = 268435456 - .. py:data:: NEOVI_FIRE_PROD_ID - :annotation: = 1 + .. py:data:: NEODEVICE_RADGIGALOG + :annotation: = 6 - .. py:data:: NEOVI_FIRE_UCHIP_ID - :annotation: = 2 + .. py:data:: NEODEVICE_RADIO_CANHUB + :annotation: = 11 - .. py:data:: NEOVI_IEVB_MPIC_ID - :annotation: = 7 + .. py:data:: NEODEVICE_RADJUPITER + :annotation: = 17 - .. py:data:: NEOVI_IEVB_PROD_ID + .. py:data:: NEODEVICE_RADMOON2 :annotation: = 5 - .. py:data:: NEOVI_ION_CORE_ID - :annotation: = 19 - - .. py:data:: NEOVI_ION_CORE_LOADER_ID - :annotation: = 21 - - .. py:data:: NEOVI_ION_FPGA_BIT_ID - :annotation: = 23 - - .. py:data:: NEOVI_ION_HID_ID - :annotation: = 20 - - .. py:data:: NEOVI_ION_HID_LOADER_ID - :annotation: = 22 + .. py:data:: NEODEVICE_RADMOON3 + :annotation: = 35 - .. py:data:: NEOVI_ION_PROD_ID - :annotation: = 11 + .. py:data:: NEODEVICE_RADPLUTO + :annotation: = 9 - .. py:data:: NEOVI_MOST150_MCHIP - :annotation: = 29 + .. py:data:: NEODEVICE_RADPROXIMA + :annotation: = 30 - .. py:data:: NEOVI_MOST25_MCHIP - :annotation: = 27 + .. py:data:: NEODEVICE_RADSTAR + :annotation: = 524288 - .. py:data:: NEOVI_MOST50_MCHIP - :annotation: = 28 + .. py:data:: NEODEVICE_RADSTAR2 + :annotation: = 536870912 - .. py:data:: NEOVI_NEOANALOG_PROD_ID - :annotation: = 7 + .. py:data:: NEODEVICE_RADSUPERMOON + :annotation: = 3 - .. py:data:: NEOVI_NEOECU12_PROD_ID - :annotation: = 8 + .. py:data:: NEODEVICE_RAD_A2B + :annotation: = 23 - .. py:data:: NEOVI_OBD2_SIM_MCHIP_ID - :annotation: = 53 + .. py:data:: NEODEVICE_RAD_BMS + :annotation: = 34 - .. py:data:: NEOVI_PENDANT_MPIC_ID - :annotation: = 8 + .. py:data:: NEODEVICE_RAD_MOON_DUO + :annotation: = 14 - .. py:data:: NEOVI_PENDANT_PROD_ID - :annotation: = 6 + .. py:data:: NEODEVICE_RED + :annotation: = 64 - .. py:data:: NEOVI_PLASMA_ANALOG_CORE_ID - :annotation: = 14 + .. py:data:: NEODEVICE_RED2 + :annotation: = 20 - .. py:data:: NEOVI_PLASMA_CORE_ID - :annotation: = 11 + .. py:data:: NEODEVICE_UNKNOWN + :annotation: = 0 - .. py:data:: NEOVI_PLASMA_CORE_ID_1_12 + .. py:data:: NEODEVICE_VCAN3 :annotation: = 16 - .. py:data:: NEOVI_PLASMA_FLEXRAY_CORE_ID - :annotation: = 15 + .. py:data:: NEODEVICE_VCAN41 + :annotation: = 7 - .. py:data:: NEOVI_PLASMA_HID_ID - :annotation: = 12 + .. py:data:: NEODEVICE_VCAN42 + :annotation: = 4194304 - .. py:data:: NEOVI_PLASMA_PROD_ID + .. py:data:: NEODEVICE_VCAN42_EL :annotation: = 10 - .. py:data:: NEOVI_PLASMA_SLAVE_B_ANALOG_CORE_ID - :annotation: = 247 - - .. py:data:: NEOVI_PLASMA_SLAVE_B_FLEXRAY_CORE_ID - :annotation: = 248 - - .. py:data:: NEOVI_RADGALAXY_PROD_ID - :annotation: = 19 - - .. py:data:: NEOVI_RADGALAXY_ZYNQ_ID - :annotation: = 45 - - .. py:data:: NEOVI_RADGIGALOG3_ZYNQ_ID - :annotation: = 87 - - .. py:data:: NEOVI_RADGIGALOG_PROD_ID - :annotation: = 29 - - .. py:data:: NEOVI_RADGIGALOG_ZYNQ_ID - :annotation: = 75 + .. py:data:: NEODEVICE_VCAN44 + :annotation: = 2097152 - .. py:data:: NEOVI_RADJUPITER_PROD_ID - :annotation: = 34 + .. py:data:: NEODEVICE_VCAN4_IND + :annotation: = 18 - .. py:data:: NEOVI_RADMOON2_PROD_ID - :annotation: = 27 + .. py:data:: NEODEVICE_VCANRF + :annotation: = 33554432 - .. py:data:: NEOVI_RADMOON2_Z7010_ZYNQ_ID - :annotation: = 104 + .. py:data:: NEODEVICE_VIVIDCAN + :annotation: = 1073741824 - .. py:data:: NEOVI_RADMOON2_ZYNQ_ID - :annotation: = 71 + .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 - .. py:data:: NEOVI_RADPLUTO_PROD_ID - :annotation: = 28 + .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 - .. py:data:: NEOVI_RADSTAR2_PROD_ID - :annotation: = 20 + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 - .. py:data:: NEOVI_RADSTAR2_ZYNQ_ID - :annotation: = 51 + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 - .. py:data:: NEOVI_RADSTAR_MCHIP_ID - :annotation: = 37 + .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE + :annotation: = 942 - .. py:data:: NEOVI_RADSTAR_PROD_ID - :annotation: = 16 + .. py:data:: NEOVI_COMMTYPE_FIRE_USB + :annotation: = 5 - .. py:data:: NEOVI_RADSUPERMOON_PROD_ID - :annotation: = 26 + .. py:data:: NEOVI_COMMTYPE_RS232 + :annotation: = 0 - .. py:data:: NEOVI_RADSUPERMOON_ZYNQ_ID - :annotation: = 70 + .. py:data:: NEOVI_COMMTYPE_TCPIP + :annotation: = 3 - .. py:data:: NEOVI_RED_PROD_ID - :annotation: = 0 + .. py:data:: NEOVI_COMMTYPE_USB_BULK + :annotation: = 1 .. py:data:: NEOVI_RED_TIMESTAMP_1_10NS :annotation: = 1e-08 @@ -3921,87 +1540,12 @@ Module Variables .. py:data:: NEOVI_RED_TIMESTAMP_2_25NS :annotation: = 107.3741824 - .. py:data:: NEOVI_SLAVE_B_AOUT_MCHIP - :annotation: = 252 - - .. py:data:: NEOVI_SLAVE_B_MOST150_MCHIP - :annotation: = 251 - - .. py:data:: NEOVI_SLAVE_B_MOST25_MCHIP - :annotation: = 249 - - .. py:data:: NEOVI_SLAVE_B_MOST50_MCHIP - :annotation: = 250 - - .. py:data:: NEOVI_SLAVE_B_VNETFIRE_LCHIP_ID - :annotation: = 246 - - .. py:data:: NEOVI_SLAVE_B_VNETFIRE_MCHIP_ID - :annotation: = 245 - - .. py:data:: NEOVI_SLAVE_VNETFIRE_LCHIP_ID - :annotation: = 18 - - .. py:data:: NEOVI_SLAVE_VNETFIRE_MCHIP_ID - :annotation: = 17 - .. py:data:: NEOVI_TIMESTAMP_1 :annotation: = 1.6e-06 .. py:data:: NEOVI_TIMESTAMP_2 :annotation: = 0.1048576 - .. py:data:: NEOVI_VCAN3_MCHIP_ID - :annotation: = 4 - - .. py:data:: NEOVI_VCAN3_PROD_ID - :annotation: = 2 - - .. py:data:: NEOVI_VCANRF_MCHIP_ID - :annotation: = 38 - - .. py:data:: NEOVI_VCANRF_PROD_ID - :annotation: = 17 - - .. py:data:: NEOVI_VIVIDCAN_EXT_FLASH_ID - :annotation: = 58 - - .. py:data:: NEOVI_VIVIDCAN_MCHIP_ID - :annotation: = 52 - - .. py:data:: NEOVI_VIVIDCAN_NRF52_ID - :annotation: = 59 - - .. py:data:: NEOVI_VIVIDCAN_PROD_ID - :annotation: = 21 - - .. py:data:: NEOVI_VIVIDCAN_PRO_PROD_ID - :annotation: = 3 - - .. py:data:: NEOVI_VNETFIRE_EP_LCHIP_ID - :annotation: = 25 - - .. py:data:: NEOVI_VNETFIRE_EP_MCHIP_ID - :annotation: = 24 - - .. py:data:: NEOVI_VNETFIRE_LCHIP_ID - :annotation: = 10 - - .. py:data:: NEOVI_VNETFIRE_MCHIP_ID - :annotation: = 9 - - .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_LCHIP_ID - :annotation: = 254 - - .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_MCHIP_ID - :annotation: = 253 - - .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_LCHIP_ID - :annotation: = 36 - - .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_MCHIP_ID - :annotation: = 35 - .. py:data:: NEO_CFG_MPIC_HS_CAN_CNF1 :annotation: = 522 @@ -4041,39 +1585,9 @@ Module Variables .. py:data:: NEO_CFG_MPIC_SW_CAN_CNF3 :annotation: = 544 - .. py:data:: NEO_OBD2_DEV_MCHIP_ID - :annotation: = 94 - - .. py:data:: NEO_OBD2_DEV_SCHIP_ID - :annotation: = 95 - - .. py:data:: NEO_OBD2_LC_MCHIP_ID - :annotation: = 79 - - .. py:data:: NEO_OBD2_LC_SCHIP_ID - :annotation: = 80 - - .. py:data:: NEO_OBD2_PRO_CORE_ID - :annotation: = 69 - - .. py:data:: NEO_OBD2_PRO_MCHIP_ID - :annotation: = 61 - - .. py:data:: NEO_OBD2_PRO_SCHIP_ID - :annotation: = 65 - - .. py:data:: NEO_OBD2_SIM_DOIP_MCHIP_ID - :annotation: = 96 - - .. py:data:: NEO_VCAN412_PROD_ID - :annotation: = 24 - .. py:data:: NETID_3G_APP_SIGNAL_STATUS :annotation: = 56 - .. py:data:: NETID_3G_CAN_ERRBITS - :annotation: = 24 - .. py:data:: NETID_3G_FB_STATUS :annotation: = 55 @@ -4134,27 +1648,6 @@ Module Variables .. py:data:: NETID_ETHERNET_TX_WRAP :annotation: = 521 - .. py:data:: NETID_FIRE_CGI - :annotation: = 53 - - .. py:data:: NETID_FIRE_HSCAN2 - :annotation: = 42 - - .. py:data:: NETID_FIRE_HSCAN3 - :annotation: = 44 - - .. py:data:: NETID_FIRE_LIN2 - :annotation: = 48 - - .. py:data:: NETID_FIRE_LIN3 - :annotation: = 49 - - .. py:data:: NETID_FIRE_LIN4 - :annotation: = 50 - - .. py:data:: NETID_FIRE_MSCAN2 - :annotation: = 44 - .. py:data:: NETID_FLEXRAY :annotation: = 85 @@ -4335,66 +1828,9 @@ Module Variables .. py:data:: NETID_RED_APP_ERROR :annotation: = 52 - .. py:data:: NETID_RED_DFLASH_READ - :annotation: = 22 - - .. py:data:: NETID_RED_DFLASH_WRITE_DONE - :annotation: = 25 - - .. py:data:: NETID_RED_EXT_MEMORYREAD - :annotation: = 20 - - .. py:data:: NETID_RED_GET_RTC - :annotation: = 40 - - .. py:data:: NETID_RED_HARDWARE_EXCEP - :annotation: = 39 - - .. py:data:: NETID_RED_INT_MEMORYREAD - :annotation: = 21 - - .. py:data:: NETID_RED_NEOVI_NETWORK - :annotation: = 35 - - .. py:data:: NETID_RED_OLDFORMAT - :annotation: = 37 - - .. py:data:: NETID_RED_READ_BAUD_SETTINGS - :annotation: = 36 - - .. py:data:: NETID_RED_SCOPE_CAPTURE - :annotation: = 38 - - .. py:data:: NETID_RED_SDCARD_READ - :annotation: = 23 - .. py:data:: NETID_RED_VBAT :annotation: = 74 - .. py:data:: NETID_RED_WAVE_CAN1_LOGICAL - :annotation: = 26 - - .. py:data:: NETID_RED_WAVE_CAN2_LOGICAL - :annotation: = 27 - - .. py:data:: NETID_RED_WAVE_LIN1_ANALOG - :annotation: = 30 - - .. py:data:: NETID_RED_WAVE_LIN1_LOGICAL - :annotation: = 28 - - .. py:data:: NETID_RED_WAVE_LIN2_ANALOG - :annotation: = 31 - - .. py:data:: NETID_RED_WAVE_LIN2_LOGICAL - :annotation: = 29 - - .. py:data:: NETID_RED_WAVE_MISCDIO2_LOGICAL - :annotation: = 33 - - .. py:data:: NETID_RED_WAVE_MISC_ANALOG - :annotation: = 32 - .. py:data:: NETID_RS232 :annotation: = 63 @@ -4431,23 +1867,8 @@ Module Variables .. py:data:: NETID_UDP :annotation: = 514 - .. py:data:: NEW_DEVICE_57_PROD_ID - :annotation: = 45 - - .. py:data:: NEW_DEVICE_57_ZCHIP_ID - :annotation: = 101 - - .. py:data:: NEW_DEVICE_58_PROD_ID - :annotation: = 46 - - .. py:data:: NEW_DEVICE_58_ZCHIP_ID - :annotation: = 102 - - .. py:data:: NEW_DEVICE_59_MCHIP_ID - :annotation: = 103 - - .. py:data:: NEW_DEVICE_59_PROD_ID - :annotation: = 47 + .. py:data:: NETID_WBMS + :annotation: = 532 .. py:data:: NORMAL :annotation: = 0 @@ -4581,96 +2002,21 @@ Module Variables .. py:data:: PLUTO_NUM_PRIORITY :annotation: = 8 - .. py:data:: RADEPSILON_EXPRESS_MCHIP_ID - :annotation: = 99 - - .. py:data:: RADEPSILON_EXPRESS_PROD_ID - :annotation: = 43 - .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 - .. py:data:: RADEPSILON_MCHIP_ID - :annotation: = 92 - - .. py:data:: RADEPSILON_PROD_ID - :annotation: = 39 - - .. py:data:: RADEPSILON_T_MCHIP_ID - :annotation: = 98 - - .. py:data:: RADEPSILON_T_PROD_ID - :annotation: = 42 - - .. py:data:: RADGIGASTAR_USBZ_Z7007S_ZYNQ_ID - :annotation: = 110 - - .. py:data:: RADGIGASTAR_USBZ_Z7010_ZYNQ_ID - :annotation: = 108 - - .. py:data:: RADGIGASTAR_USBZ_ZYNQ_ID - :annotation: = 88 - - .. py:data:: RADGIGASTAR_ZYNQ_ID - :annotation: = 89 - - .. py:data:: RADIO_CANHUB_MCHIP_ID - :annotation: = 77 - - .. py:data:: RADIO_CANHUB_PROD_ID - :annotation: = 30 - - .. py:data:: RADJUPITER_MCHIP_ID - :annotation: = 84 - .. py:data:: RADJUPITER_NUM_PORTS :annotation: = 8 - .. py:data:: RADMOON2_ZL_MCHIP_ID - :annotation: = 107 - .. py:data:: RADMOONDUO_CONVERTER_SETTINGS_SIZE :annotation: = 16 - .. py:data:: RADPLUTO_MCHIP_ID - :annotation: = 74 - - .. py:data:: RADPROXIMA_MCHIP_ID - :annotation: = 100 - - .. py:data:: RADPROXIMA_PROD_ID - :annotation: = 44 - - .. py:data:: RAD_4G_MCHIP_ID - :annotation: = 90 - - .. py:data:: RAD_A2B_PROD_ID - :annotation: = 40 - - .. py:data:: RAD_A2B_ZCHIP_ID - :annotation: = 93 - - .. py:data:: RAD_BMS_MCHIP_ID - :annotation: = 106 - - .. py:data:: RAD_BMS_PROD_ID - :annotation: = 48 - - .. py:data:: RAD_GIGASTAR_PROD_ID - :annotation: = 36 - .. py:data:: RAD_GPTP_AND_TAP_SETTINGS_SIZE :annotation: = 40 .. py:data:: RAD_GPTP_SETTINGS_SIZE :annotation: = 36 - .. py:data:: RAD_MOON_DUO_MCHIP_ID - :annotation: = 81 - - .. py:data:: RAD_MOON_DUO_PROD_ID - :annotation: = 32 - .. py:data:: RAD_REPORTING_SETTINGS_FLAG_AIN1 :annotation: = 256 @@ -4755,9 +2101,6 @@ Module Variables .. py:data:: REPORT_ON_PERIODIC :annotation: = 0 - .. py:data:: RESERVED_CHIP_ID_111 - :annotation: = 111 - .. py:data:: RESISTOR_OFF :annotation: = 1 @@ -5127,36 +2470,6 @@ Module Variables .. py:data:: SERDESPOC_SETTINGS_SIZE :annotation: = 10 - .. py:data:: SFP_MODULE_MCHIP_ID - :annotation: = 97 - - .. py:data:: SFP_MODULE_PROD_ID - :annotation: = 41 - - .. py:data:: SLAVE_A_FIRE2_VNETZ_MCHIP_ID - :annotation: = 56 - - .. py:data:: SLAVE_A_FIRE2_VNETZ_ZYNQ_ID - :annotation: = 57 - - .. py:data:: SLAVE_A_FIRE2_VNET_CCHIP_ID - :annotation: = 48 - - .. py:data:: SLAVE_A_FIRE2_VNET_MCHIP_ID - :annotation: = 47 - - .. py:data:: SLAVE_B_FIRE2_VNETZ_MCHIP_ID - :annotation: = 242 - - .. py:data:: SLAVE_B_FIRE2_VNETZ_ZYNQ_ID - :annotation: = 241 - - .. py:data:: SLAVE_B_FIRE2_VNET_CCHIP_ID - :annotation: = 244 - - .. py:data:: SLAVE_B_FIRE2_VNET_MCHIP_ID - :annotation: = 243 - .. py:data:: SLAVE_VNET_A :annotation: = 2 @@ -5169,15 +2482,6 @@ Module Variables .. py:data:: SLOW_MODE :annotation: = 1 - .. py:data:: SPY_GPS_ALTITUDE - :annotation: = 2 - - .. py:data:: SPY_GPS_LOCATION - :annotation: = 0 - - .. py:data:: SPY_GPS_SPEED - :annotation: = 1 - .. py:data:: SPY_PROTOCOL_A2B :annotation: = 35 @@ -5283,6 +2587,9 @@ Module Variables .. py:data:: SPY_PROTOCOL_UNIO :annotation: = 24 + .. py:data:: SPY_PROTOCOL_WBMS + :annotation: = 36 + .. py:data:: SPY_STATUS2_CAN_HAVE_LINK_DATA :annotation: = 4194304 @@ -5352,6 +2659,9 @@ Module Variables .. py:data:: SPY_STATUS2_I2C_ERR_TIMEOUT :annotation: = 2097152 + .. py:data:: SPY_STATUS2_I2C_NODE_FAULT + :annotation: = 4194304 + .. py:data:: SPY_STATUS2_ISO_FRAME_ERROR :annotation: = 134217728 @@ -5433,6 +2743,9 @@ Module Variables .. py:data:: SPY_STATUS2_VALUE_IS_BOOLEAN :annotation: = 2 + .. py:data:: SPY_STATUS2_WBMS_NODE_DISCONNECTED + :annotation: = 2097152 + .. py:data:: SPY_STATUS3_CANFD_BRS :annotation: = 16 @@ -5586,9 +2899,6 @@ Module Variables .. py:data:: SPY_STATUS_XTD_FRAME :annotation: = 4 - .. py:data:: SWCAN2 - :annotation: = 2 - .. py:data:: SWCAN_AUTOSWITCH_DISABLED :annotation: = 0 @@ -5604,15 +2914,6 @@ Module Variables .. py:data:: SWCAN_SETTINGS_SIZE :annotation: = 14 - .. py:data:: SYSTEM_TIMESTAMP_ID_NONE - :annotation: = 0 - - .. py:data:: SYSTEM_TIMESTAMP_ID_TIMEGETTIME_API - :annotation: = 1 - - .. py:data:: TCP_SUPPORTED - :annotation: = 32 - .. py:data:: TIMESYNC_ICSHARDWARE_SETTINGS_SIZE :annotation: = 4 @@ -5622,80 +2923,17 @@ Module Variables .. py:data:: USE_TQ :annotation: = 1 - .. py:data:: VCAN41_MCHIP_ID - :annotation: = 62 - - .. py:data:: VCAN42_MCHIP_ID - :annotation: = 63 - - .. py:data:: VCAN44_CORE_ID - :annotation: = 64 - - .. py:data:: VCAN44_MCHIP_ID - :annotation: = 30 - - .. py:data:: VCAN44_PROD_ID - :annotation: = 12 - - .. py:data:: VCAN44_SCHIP_ID - :annotation: = 31 - - .. py:data:: VCAN4EL_MCHIP_ID - :annotation: = 67 - - .. py:data:: VCAN4_IND_MCHIP_ID - :annotation: = 85 - - .. py:data:: VCAN4_IND_PROD_ID - :annotation: = 35 - - .. py:data:: VIVIDCAN_PRO_EXT_FLASH_ID - :annotation: = 73 - - .. py:data:: VIVIDCAN_PRO_MCHIP_ID - :annotation: = 72 - - .. py:data:: VIVIDCAN_PRO_PROD_ID - :annotation: = 37 - .. py:data:: VNETBITS_FEATURE_ANDROID_MSGS :annotation: = 1 .. py:data:: VNETBITS_FEATURE_DISABLE_USB_CHECK :annotation: = 2 - .. py:data:: VNET_ID_AIN - :annotation: = 5 - - .. py:data:: VNET_ID_FIRE + .. py:data:: WIFI_ANTENNA_EXTERNAL :annotation: = 1 - .. py:data:: VNET_ID_FIRE2 - :annotation: = 7 - - .. py:data:: VNET_ID_FIRE2Z - :annotation: = 9 - - .. py:data:: VNET_ID_FIRE_EP - :annotation: = 2 - - .. py:data:: VNET_ID_FLEXRAY - :annotation: = 6 - - .. py:data:: VNET_ID_FLEXZ - :annotation: = 11 - - .. py:data:: VNET_ID_SLAVEFIRE - :annotation: = 3 - - .. py:data:: VNET_ID_SLAVEFIRE2 - :annotation: = 8 - - .. py:data:: VNET_ID_SLAVEFIRE2Z - :annotation: = 10 - - .. py:data:: VNET_ID_SLAVEFIRE_EP - :annotation: = 4 + .. py:data:: WIFI_ANTENNA_INTERNAL + :annotation: = 0 .. py:data:: WIFI_CONNECTION :annotation: = 8 \ No newline at end of file From 1825d771d6ae80f5c3405361de423a12b12ae0c9 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 27 Oct 2022 12:54:24 -0400 Subject: [PATCH 026/201] added 3.11 to mac build script --- build_mac.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_mac.sh b/build_mac.sh index 469b977e5..0c7b9514c 100644 --- a/build_mac.sh +++ b/build_mac.sh @@ -1,7 +1,7 @@ #!/bin/sh python_directory="/Library/Frameworks/Python.framework/Versions" -python_versions=("3.7" "3.8" "3.9" "3.10") +python_versions=("3.7" "3.8" "3.9" "3.10" "3.11") # libusb dependencies brew install automake libtool cmake clang-format From dabe6c97953fc2f14aa2fae381d561e5808cafee Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 15:27:53 -0400 Subject: [PATCH 027/201] Fixed crashes with uart_write and generic_api_send_command Signed-off-by: David Rebbe --- src/methods.cpp | 40 +++++++++------------------------------- 1 file changed, 9 insertions(+), 31 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index e05ef5f4c..f86130e7d 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3740,22 +3740,16 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) { PyObject* obj = NULL; EUartPort_t port = eUART0; - PyObject* data = NULL; + const char* data = NULL; + Py_ssize_t data_len = 0; 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, &data_len, &flags, &check_size)) { return NULL; } - // Check if the data buffer is valid and grab the buffer - if (!PyObject_CheckBuffer(data)) { - return set_ics_exception(exception_runtime_error(), "Argument 'data' must be of type 'bytes'"); - } - Py_buffer data_buffer = {}; - PyObject_GetBuffer(data, &data_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - PyBuffer_Release(&data_buffer); return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); @@ -3763,7 +3757,6 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) { ice::Library* lib = dll_get_library(); if (!lib) { - PyBuffer_Release(&data_buffer); char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } @@ -3771,22 +3764,18 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) size_t bytesActuallySent = 0; ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); Py_BEGIN_ALLOW_THREADS - if (!icsneoUartWrite(handle, port, data_buffer.buf, data_buffer.len, &bytesActuallySent, &flags)) { + if (!icsneoUartWrite(handle, port, data, data_len, &bytesActuallySent, &flags)) { Py_BLOCK_THREADS - PyBuffer_Release(&data_buffer); return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); } Py_END_ALLOW_THREADS - if (check_size && data_buffer.len != bytesActuallySent) { - PyBuffer_Release(&data_buffer); + if (check_size && data_len != bytesActuallySent) { return set_ics_exception(exception_runtime_error(), "Bytes actually sent didn't match bytes to send length"); } - PyBuffer_Release(&data_buffer); return Py_BuildValue("i", bytesActuallySent); } catch (ice::Exception& ex) { - PyBuffer_Release(&data_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } return set_ics_exception(exception_runtime_error(), "This is a bug!"); @@ -3928,19 +3917,13 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char apiIndex = 0; unsigned char instanceIndex = 0; unsigned char functionIndex = 0; - PyObject* data = NULL; - if (!PyArg_ParseTuple(args, arg_parse("Obbby*:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, data)) { + const char* data = NULL; + Py_ssize_t data_len = 0; + if (!PyArg_ParseTuple(args, arg_parse("Obbby#:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, data, &data_len)) { return NULL; } - // Check if the data buffer is valid and grab the buffer - if (!PyObject_CheckBuffer(data)) { - return set_ics_exception(exception_runtime_error(), "Argument 'data' must be of type 'bytes'"); - } - Py_buffer data_buffer = {}; - PyObject_GetBuffer(data, &data_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - PyBuffer_Release(&data_buffer); return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); @@ -3948,7 +3931,6 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) { ice::Library* lib = dll_get_library(); if (!lib) { - PyBuffer_Release(&data_buffer); char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } @@ -3964,19 +3946,16 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) ice::Function icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); unsigned char functionError = 0; Py_BEGIN_ALLOW_THREADS - if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, data_buffer.buf, data_buffer.len, &functionError)) { - PyBuffer_Release(&data_buffer); + if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, (void*)data, data_len, &functionError)) { Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); } Py_END_ALLOW_THREADS - PyBuffer_Release(&data_buffer); return Py_BuildValue("i", functionError); } catch (ice::Exception& ex) { - PyBuffer_Release(&data_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } return set_ics_exception(exception_runtime_error(), "This is a bug!"); @@ -3987,7 +3966,6 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) PyObject* obj = NULL; unsigned char apiIndex = 0; unsigned char instanceIndex = 0; - //PyObject* data = NULL; unsigned int length = 0; if (!PyArg_ParseTuple(args, arg_parse("ObbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { return NULL; From 5457f2c7eae9969f83704831a8df3509b4fe0fbc Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 15:28:47 -0400 Subject: [PATCH 028/201] Incremented version. Signed-off-by: David Rebbe --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 7de5364a5..6858c94a4 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 910 MINOR_VERSION = 10 -POST_VERSION = None +POST_VERSION = 1 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) From 1406631f1a81e634fff4b7065d59c8501d72b780 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 16:31:00 -0400 Subject: [PATCH 029/201] Fix for python versions greater than 3.7... Signed-off-by: David Rebbe --- setup.py | 2 +- src/methods.cpp | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/setup.py b/setup.py index 6858c94a4..49ef47d5a 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 910 MINOR_VERSION = 10 -POST_VERSION = 1 +POST_VERSION = 2 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) diff --git a/src/methods.cpp b/src/methods.cpp index f86130e7d..62079fb39 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3740,11 +3740,10 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) { PyObject* obj = NULL; EUartPort_t port = eUART0; - const char* data = NULL; - Py_ssize_t data_len = 0; + Py_buffer data = {}; uint8_t flags = 0; bool check_size = true; - if (!PyArg_ParseTuple(args, arg_parse("OIy#|bp:", __FUNCTION__), &obj, &port, &data, &data_len, &flags, &check_size)) { + if (!PyArg_ParseTuple(args, arg_parse("OIy*|bp:", __FUNCTION__), &obj, &port, &data, &flags, &check_size)) { return NULL; } @@ -3764,12 +3763,12 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) size_t bytesActuallySent = 0; ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); Py_BEGIN_ALLOW_THREADS - if (!icsneoUartWrite(handle, port, data, data_len, &bytesActuallySent, &flags)) { + if (!icsneoUartWrite(handle, port, data.buf, data.len, &bytesActuallySent, &flags)) { Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); } Py_END_ALLOW_THREADS - if (check_size && data_len != bytesActuallySent) { + if (check_size && data.len != bytesActuallySent) { return set_ics_exception(exception_runtime_error(), "Bytes actually sent didn't match bytes to send length"); } return Py_BuildValue("i", bytesActuallySent); @@ -3917,9 +3916,8 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char apiIndex = 0; unsigned char instanceIndex = 0; unsigned char functionIndex = 0; - const char* data = NULL; - Py_ssize_t data_len = 0; - if (!PyArg_ParseTuple(args, arg_parse("Obbby#:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, data, &data_len)) { + Py_buffer data = {}; + if (!PyArg_ParseTuple(args, arg_parse("Obbby*:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, &data)) { return NULL; } // Get the device handle @@ -3946,7 +3944,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) ice::Function icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); unsigned char functionError = 0; Py_BEGIN_ALLOW_THREADS - if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, (void*)data, data_len, &functionError)) { + if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, (void*)data.buf, data.len, &functionError)) { Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); } From 6131c297bb250c62053a73ecf2d31e89b9c3b08d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 17:37:50 -0400 Subject: [PATCH 030/201] another fix for python > 3.7. Signed-off-by: David Rebbe --- src/methods.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 62079fb39..82c09acdc 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3819,11 +3819,12 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); } Py_END_ALLOW_THREADS - PyObject* value = Py_BuildValue("y#", buffer, bytesActuallyRead); + PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, bytesActuallyRead); + PyObject* value = Py_BuildValue("Y", ba_result); free(buffer); buffer = NULL; + Py_DECREF(ba_result); return value; - } catch (ice::Exception& ex) { From 28f9f1d8bfa277506dcb764c6b1057dfdc430945 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 17:38:33 -0400 Subject: [PATCH 031/201] increment version. Signed-off-by: David Rebbe --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 49ef47d5a..20161559f 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 910 MINOR_VERSION = 10 -POST_VERSION = 2 +POST_VERSION = 3 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) From 3e27672462bf0a4962b8ff583bcaf6a80a5e61b3 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 17:52:28 -0400 Subject: [PATCH 032/201] Fixed uart_read Signed-off-by: David Rebbe --- setup.py | 2 +- src/methods.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index 20161559f..3f8bdd37d 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 910 MINOR_VERSION = 10 -POST_VERSION = 3 +POST_VERSION = 4 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) diff --git a/src/methods.cpp b/src/methods.cpp index 82c09acdc..f4fb3ade9 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3820,11 +3820,10 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) } Py_END_ALLOW_THREADS PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, bytesActuallyRead); - PyObject* value = Py_BuildValue("Y", ba_result); + //PyObject* value = Py_BuildValue("O", ba_result); free(buffer); buffer = NULL; - Py_DECREF(ba_result); - return value; + return ba_result; } catch (ice::Exception& ex) { From cda8479c588f2b89075f2f2a9d20f11cd169254a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 18:06:03 -0400 Subject: [PATCH 033/201] one more fix... Signed-off-by: David Rebbe --- setup.py | 2 +- src/methods.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 3f8bdd37d..074a4baf3 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 910 MINOR_VERSION = 10 -POST_VERSION = 4 +POST_VERSION = 5 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) diff --git a/src/methods.cpp b/src/methods.cpp index f4fb3ade9..6087d10ce 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -4004,8 +4004,10 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIReadData() Failed"); } Py_END_ALLOW_THREADS - - PyObject* value = Py_BuildValue("Iy#", functionIndex, buffer, length); + + PyObject* ba = PyByteArray_FromStringAndSize((const char*)buffer, length); + PyObject* value = Py_BuildValue("IO", functionIndex, ba); + Py_DecRef(ba); free(buffer); buffer = NULL; return value; From 18f92746d6d672e45184f0952eac4a7682de4abc Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 20:05:52 -0400 Subject: [PATCH 034/201] Signed-off-by: David Rebbe --- asdf | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 asdf diff --git a/asdf b/asdf new file mode 100644 index 000000000..e69de29bb From 82c4081f67de27beb45353c5b198d41bb67f9baa Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 3 Nov 2022 20:07:00 -0400 Subject: [PATCH 035/201] Revert "Signed-off-by: David Rebbe " This reverts commit 18f92746d6d672e45184f0952eac4a7682de4abc. --- asdf | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 asdf diff --git a/asdf b/asdf deleted file mode 100644 index e69de29bb..000000000 From eae70ffc7a4c67182a4cff660fa0ce5ab1b2fa1a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 15 Nov 2022 16:04:44 -0500 Subject: [PATCH 036/201] made meth_generic_api_read_data optional and better default --- include/methods.h | 4 ++-- setup.py | 2 +- src/methods.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/methods.h b/include/methods.h index 90ccd51b0..e1f482fd9 100644 --- a/include/methods.h +++ b/include/methods.h @@ -1650,7 +1650,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); // if (!PyArg_ParseTuple(args, arg_parse("ObbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { #define _DOC_GENERIC_API_READ_DATA \ - MODULE_NAME ".generic_api_send_command(device, api_index, instance_index, length)\n" \ + MODULE_NAME ".generic_api_read_data(device, api_index, instance_index, [length])\n" \ "\n" \ "Reads data in a generic way.\n" \ "\n" \ @@ -1659,7 +1659,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\tapi_index (:class:`int`): api_index.\n\n" \ "\tinstance_index (:class:`int`): instance_index.\n\n" \ "\tfunction_index (:class:`int`): function_index.\n\n" \ - "\tlength (:class:`int`): Length of the data to read.\n\n" \ + "\tlength (:class:`int`): (optional) Length of the data to read. defaults to `GENERIC_API_DATA_BUFFER_SIZE`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ diff --git a/setup.py b/setup.py index 074a4baf3..7424b5912 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 910 MINOR_VERSION = 10 -POST_VERSION = 5 +POST_VERSION = 6 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) diff --git a/src/methods.cpp b/src/methods.cpp index 6087d10ce..ba0f1d1e2 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3964,8 +3964,8 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) PyObject* obj = NULL; unsigned char apiIndex = 0; unsigned char instanceIndex = 0; - unsigned int length = 0; - if (!PyArg_ParseTuple(args, arg_parse("ObbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { + unsigned int length = GENERIC_API_DATA_BUFFER_SIZE; + if (!PyArg_ParseTuple(args, arg_parse("Obb|I:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { return NULL; } // Get the device handle From 5cb1529be32dacf6a092c2de2699a046b062c87d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 17 Nov 2022 13:58:30 -0500 Subject: [PATCH 037/201] fixed documentation --- include/methods.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/methods.h b/include/methods.h index e1f482fd9..980d53c76 100644 --- a/include/methods.h +++ b/include/methods.h @@ -1665,7 +1665,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ "\n" \ "Returns:\n" \ - "\ttuple of (functionError, data) \n\n" \ + "\ttuple of (functionIndex, data) \n\n" \ "\n" // if (!PyArg_ParseTuple(args, arg_parse("Obb:", __FUNCTION__), &obj, &apiIndex, &instanceIndex)) { From dac46e878b9ec98739e33cc74c78a277384b4a85 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 17 Nov 2022 14:05:25 -0500 Subject: [PATCH 038/201] more doc fixes --- include/methods.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/methods.h b/include/methods.h index 980d53c76..c209a51b1 100644 --- a/include/methods.h +++ b/include/methods.h @@ -1547,7 +1547,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "Args:\n" \ "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tdata (:class:`bytes`): :class:`bytes`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ From 980161f9f6e7543ee4c628541514b434093069c1 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 12 Dec 2022 12:05:05 -0500 Subject: [PATCH 039/201] Updated generation script to support internal header. --- generate_icsneo40_structs.py | 48 +++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 20004a9df..a3b528698 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -464,7 +464,7 @@ def format_file(filename): #processed_fname = "icsnVC40_processed.h" # Run it through the preprocessor # clang -E -P .\include\ics\icsnVC40.h -o output.h - result = run(["clang", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=PIPE) + result = run(["clang", "-DEXTERNAL_PROJECT", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=PIPE) result.check_returncode() # Format the file @@ -518,7 +518,23 @@ def parse_header_file(filename): if debug_print: print("ADDING {} to globals with value of {}".format( words[1], words[2])) - globals()[words[1]] = eval(words[2]) + try: + globals()[words[1]] = eval(words[2]) + except SyntaxError as ex: + # This happens when we have an integer literal + # https://en.cppreference.com/w/cpp/language/integer_literal + # TODO: 0x1p5 + literals = ('u', 'U', 'l', 'L', 'z', 'Z', 'f', 'F') + modified_word = words[2] + while modified_word.endswith(literals): + for literal in literals: + modified_word = modified_word.rstrip(literal) + globals()[words[1]] = eval(modified_word) + except NameError as ex: + # Python interpreter can't parse this word value so lets convert it to a string and be done... + # Line: #57: "#define __INTMAX_C_SUFFIX__ LL" + globals()[words[1]] = eval(f'"{modified_word}"') + continue # Process the object if is_line_start_of_object(line): @@ -531,6 +547,9 @@ def parse_header_file(filename): enum_objects.append(obj) else: c_objects.append(obj) + except Exception as ex: + print(f'Line: #{line_count}: "{line}"') + raise ex finally: last_pos = f.tell() line = f.readline() @@ -797,13 +816,34 @@ def _generate_inner_objects(f, c_object): _write_c_object(f, c_object) return fname, fname_with_path -if __name__ == '__main__': + +def generate_all_files(): import sys import os + import pathlib + try: + # Grab the filename from the command line filename = sys.argv[1] filename = os.path.normpath(filename) print(f"Parsing '{filename}'...") except IndexError as _: + # use our default path if it isn't supplied filename = 'include/ics/icsnVC40.h' - generate(filename) \ No newline at end of file + generate(filename) + + # Internal Header + try: + # Grab the filename from the command line + filename_internal = sys.argv[2] + filename_internal = os.path.normpath(filename_internal) + print(f"Parsing '{filename_internal}'...") + except IndexError as _: + # use our default path if it isn't supplied + filename_internal = 'include/ics/icsnVC40Internal.h' + if pathlib.Path(filename_internal).exists(): + print("WARNING: Generating internal header!") + generate(filename_internal) + +if __name__ == '__main__': + generate_all_files() \ No newline at end of file From 120fef8de884433aac9fa6e47503c71db6f46031 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 14 Dec 2022 20:14:29 -0500 Subject: [PATCH 040/201] Handle setup.py invoking generating files --- generate_icsneo40_structs.py | 54 ++++++++++++++++++++++++++---------- setup.py | 16 +++++------ 2 files changed, 47 insertions(+), 23 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index a3b528698..1206b34c3 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -11,6 +11,8 @@ debug_print = False __unique_numbers = [] + + def get_unique_number(): "Returns a unique integer" global __unique_numbers @@ -28,6 +30,7 @@ class DataType(Enum): Struct = auto() Enum = auto() + class CVariable(object): name = "" data_type = None @@ -43,7 +46,7 @@ def __init__(self, name, data_type, array_length, bitfield_size, enum_value=None self.bitfield_size = bitfield_size self.enum_value = enum_value self.is_enum = bool(self.enum_value) - + def __repr__(self): return f'<{self.__class__.__name__} {self.name} {self.data_type} @ {hex(id(self))}>' @@ -57,6 +60,7 @@ def to_ordered_dict(self): od['enum_value'] = self.enum_value return od + class CEnum(CVariable): def __init__(self, name, value): super().__init__(name, "int", 0, 0, value) @@ -78,7 +82,7 @@ def __repr__(self): name = self.names[-1] else: name = 'Anon' - + if self.data_type == DataType.Struct: t_name = 'Struct' elif self.data_type == DataType.Union: @@ -89,7 +93,7 @@ def __repr__(self): t_name = 'Unknown' return f'<{self.__class__.__name__} {name} {t_name} {len(self.members)} members @ {hex(id(self))}>' - + def to_ordered_dict(self): od = OrderedDict() if self.data_type == DataType.Struct: @@ -125,9 +129,10 @@ def assign_preferred_name(self, is_embedded=False): _start_of_obj_blacklist = ( - re.compile(r'''struct [aA-zZ\\_]+ [aA-zZ\\_]+;'''), # struct some_random_struct_name value; + re.compile(r'''struct [aA-zZ\\_]+ [aA-zZ\\_]+;'''), # struct some_random_struct_name value; ) + def is_line_start_of_object(line): "Returns True if we are a c object (enum, struct, union)" for regex in _start_of_obj_blacklist: @@ -135,11 +140,13 @@ def is_line_start_of_object(line): return False return bool(re.search('\btypedef struct$|struct$|struct \S*$|enum|union', line)) + # This contains all the objects that don't pass convert_to_ctype_object NON_CTYPE_OBJ_NAMES = [] # This contains a list of every object we collected ALL_C_OBJECTS = [] + def get_object_from_name(name): global ALL_C_OBJECTS for obj in ALL_C_OBJECTS: @@ -147,6 +154,7 @@ def get_object_from_name(name): return obj return None + def parse_object(f, pos=-1, pack_size=None, is_embedded=False): """ takes a file object and returns a class with the object data. @@ -239,6 +247,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): f.seek(pos) raise RuntimeError("parse_object(): Failure. This is a bug and we shouldn't be here!") + def reverse_leading_underscores(value: str): """Take a string starting with underscores and moves them to the end. Returns a string""" if value.startswith('_'): @@ -377,6 +386,7 @@ def get_struct_names(data): names[name] = [name, ] return names + def get_preferred_struct_name(_names): # Remove the reference names = _names[:] @@ -410,6 +420,7 @@ def convert_to_snake_case(name): s2 = re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower() return re.sub(r'(_)\1{1,}', '_', s2) + def convert_to_ctype_object(data_type): ctype_types = { "c_bool": ("_Bool", "bool"), @@ -435,7 +446,7 @@ def convert_to_ctype_object(data_type): for d in [8, 16, 32, 64]: ctype_types[f'c_int{d}'] = (f'int{d}_t',) 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",) ctype_types["c_uint64"] = ctype_types["c_uint64"] + ("_clock_identity",) @@ -453,9 +464,10 @@ def convert_to_ctype_object(data_type): t = f'ctypes.POINTER({t})' return t except AttributeError as ex: - return None + return None return None + def format_file(filename): import os processed_fname = os.path.basename(filename) @@ -474,6 +486,7 @@ def format_file(filename): return processed_fname + def parse_header_file(filename): with open(filename, 'r') as f: pack_size = 0 @@ -555,6 +568,7 @@ def parse_header_file(filename): line = f.readline() return c_objects, enum_objects + def generate(filename='include/ics/icsnVC40.h'): import shutil import json @@ -610,10 +624,10 @@ def generate(filename='include/ics/icsnVC40.h'): if debug_print: print(file_name, file_path) file_names.append(file_name) - + # Verify we don't have any unknown data types here global NON_CTYPE_OBJ_NAMES - global ALL_C_OBJECTS + global ALL_C_OBJECTS errors = False for obj_name in NON_CTYPE_OBJ_NAMES: obj = get_object_from_name(obj_name) @@ -665,6 +679,7 @@ def generate(filename='include/ics/icsnVC40.h'): """ print("Done.") + def _write_c_object(f, c_object): # Write the header if c_object.data_type == DataType.Struct: @@ -680,7 +695,7 @@ def _write_c_object(f, c_object): f.write('\n') else: raise ValueError("CObject is not of a known data type!") - + # Write the rest of the header for structs/unions if c_object.data_type in (DataType.Struct, DataType.Union): # Setup the packing @@ -694,7 +709,7 @@ def _write_c_object(f, c_object): if anonymous_names: f.write(f' _anonymous_ = {str(tuple(anonymous_names))}\n') f.write(f' _fields_ = [\n') - + # Write the members for member in c_object.members: if c_object.data_type == DataType.Enum: @@ -744,7 +759,7 @@ def _write_member(f, member, is_struct_or_union=False): _name = member.preferred_name _created_member = CVariable(_name, _name, 0, 0) _write_member(f, _created_member, True) - + # Finalize the _fields_ attribute and extra names if c_object.data_type in (DataType.Struct, DataType.Union): f.write(f' ]\n') @@ -757,6 +772,7 @@ def _write_member(f, member, is_struct_or_union=False): f.write('{} = {}\n'.format(re.sub('^\*', '', name), c_object.preferred_name)) f.write('\n') + def generate_pyfile(c_object, path): #name = get_preferred_struct_name(c_object.names) #c_object.preferred_name = convert_to_snake_case(name) @@ -780,6 +796,7 @@ def generate_pyfile(c_object, path): f.write('import enum\n') f.write('\n') # Generate all the imports + def get_c_object_imports(c_object): import_names = [] for member in c_object.members: @@ -799,7 +816,7 @@ def get_c_object_imports(c_object): # anonymous/nameless objects put an empty string in the list, lets remove it here import_names = [name for name in import_names if name] return sorted(set(import_names)) - + import_names = get_c_object_imports(c_object) for import_name in (import_names): f.write(f"from ics.structures.{import_name} import *\n") @@ -809,7 +826,7 @@ def _generate_inner_objects(f, c_object): for member in c_object.members: if isinstance(member, CObject): _generate_inner_objects(f, member) - _write_c_object(f, member) + _write_c_object(f, member) # generate all the inner objects _generate_inner_objects(f, c_object) # Finally write our main object @@ -823,17 +840,23 @@ def generate_all_files(): import pathlib try: + if sys.argv[0] == 'setup.py': + raise IndexError # Grab the filename from the command line filename = sys.argv[1] filename = os.path.normpath(filename) print(f"Parsing '{filename}'...") except IndexError as _: # use our default path if it isn't supplied - filename = 'include/ics/icsnVC40.h' + filename = 'include/ics/icsnVC40.h' + if not pathlib.Path(filename).exists(): + raise FileNotFoundError(filename) generate(filename) # Internal Header try: + if sys.argv[0] == 'setup.py': + raise IndexError # Grab the filename from the command line filename_internal = sys.argv[2] filename_internal = os.path.normpath(filename_internal) @@ -845,5 +868,6 @@ def generate_all_files(): print("WARNING: Generating internal header!") generate(filename_internal) + if __name__ == '__main__': - generate_all_files() \ No newline at end of file + generate_all_files() diff --git a/setup.py b/setup.py index 7424b5912..276cc1e0b 100644 --- a/setup.py +++ b/setup.py @@ -58,7 +58,7 @@ def run(self): import extract_icsneo40_defines import generate_icsneo40_structs extract_icsneo40_defines.extract() - generate_icsneo40_structs.generate() + generate_icsneo40_structs.generate_all_files() if 'DARWIN' in platform.system().upper(): import build_libicsneo build_libicsneo.checkout() @@ -129,11 +129,11 @@ def read(fname): include_package_data=True, ext_modules=[ics_extension], classifiers=[ - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', ],) From c26c8701401dab948253d489d1908c1333bb03df Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 31 Jan 2023 01:18:52 -0500 Subject: [PATCH 041/201] Added more ignores for standard headers on windows. --- generate_icsneo40_structs.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 1206b34c3..7118f734e 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -597,10 +597,14 @@ def generate(filename='include/ics/icsnVC40.h'): except FileNotFoundError: pass ignore_names = [ - '__fsid_t', '__darwin_pthread_handler_rec', '_mbstate_t', 'mbstate_t_', + '__fsid_t', '__darwin_pthread_handler_rec', + '_mbstate_t', 'mbstate_t_', 'mbstatet_', 'Mbstatet_', '_Mbstatet', + '_LONGDOUBLE', 'LONGDOUBLE_', '_opaque_pthread_attr_t', '_opaque_pthread_cond_t', '_opaque_pthread_condattr_t', '_opaque_pthread_mutex_t', '_opaque_pthread_mutexattr_t', '_opaque_pthread_once_t', '_opaque_pthread_rwlock_t', '_opaque_pthread_rwlockattr_t', '_opaque_pthread_t', + 'crt_locale_pointers_', 'crt_locale_data_public_', 'ldiv_t', 'lldiv_t', 'ldouble_', + 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', 'clock_quality_', 'ndis_adapter_information', 'NeoDevice', 'neo_device', 'NeoDeviceEx', 'neo_device_ex', 'icsSpyMessage', 'icsSpyMessageJ1850', 'ics_spy_message', 'ics_spy_message_j1850'] file_names = [] From 270148b5b7c96aacc76016168783fb81cd75413c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 31 Jan 2023 01:22:51 -0500 Subject: [PATCH 042/201] more ignores I missed --- generate_icsneo40_structs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 7118f734e..57b7a209a 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -599,12 +599,13 @@ def generate(filename='include/ics/icsnVC40.h'): ignore_names = [ '__fsid_t', '__darwin_pthread_handler_rec', '_mbstate_t', 'mbstate_t_', 'mbstatet_', 'Mbstatet_', '_Mbstatet', - '_LONGDOUBLE', 'LONGDOUBLE_', + '_LONGDOUBLE', 'LONGDOUBLE_', '_opaque_pthread_attr_t', '_opaque_pthread_cond_t', '_opaque_pthread_condattr_t', '_opaque_pthread_mutex_t', '_opaque_pthread_mutexattr_t', '_opaque_pthread_once_t', '_opaque_pthread_rwlock_t', '_opaque_pthread_rwlockattr_t', '_opaque_pthread_t', - 'crt_locale_pointers_', 'crt_locale_data_public_', 'ldiv_t', 'lldiv_t', 'ldouble_', - 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', 'clock_quality_', 'ndis_adapter_information', + 'crt_locale_pointers_', 'crt_locale_data_public_', '__crt_locale_data_public', + 'ldiv_t', 'lldiv_t', 'ldouble_', 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', + 'clock_quality_', 'ndis_adapter_information', 'NeoDevice', 'neo_device', 'NeoDeviceEx', 'neo_device_ex', 'icsSpyMessage', 'icsSpyMessageJ1850', 'ics_spy_message', 'ics_spy_message_j1850'] file_names = [] From e58a11bc1297f75be260a8b9fbea38ab59e52561 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 31 Jan 2023 12:40:52 -0500 Subject: [PATCH 043/201] removed an ignore. Signed-off-by: David Rebbe --- generate_icsneo40_structs.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 57b7a209a..b05123c0b 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -605,7 +605,7 @@ def generate(filename='include/ics/icsnVC40.h'): '_opaque_pthread_rwlock_t', '_opaque_pthread_rwlockattr_t', '_opaque_pthread_t', 'crt_locale_pointers_', 'crt_locale_data_public_', '__crt_locale_data_public', 'ldiv_t', 'lldiv_t', 'ldouble_', 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', - 'clock_quality_', 'ndis_adapter_information', + 'ndis_adapter_information', 'NeoDevice', 'neo_device', 'NeoDeviceEx', 'neo_device_ex', 'icsSpyMessage', 'icsSpyMessageJ1850', 'ics_spy_message', 'ics_spy_message_j1850'] file_names = [] From b40a9526dd6761254f784d5acd8f708b3b997292 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 21 Mar 2023 17:22:37 -0400 Subject: [PATCH 044/201] start of CI --- .travis.yml | 28 ++++++++++++++++++++++++++++ travis/build-wheels.sh | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 .travis.yml create mode 100644 travis/build-wheels.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..34970dd89 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,28 @@ +notifications: + email: false + +matrix: + include: + - sudo: required + services: + - docker + env: DOCKER_IMAGE=quay.io/pypa/manylinux_2_24_x86_64 + PLAT=manylinux_2_24_x86_64 + - sudo: required + services: + - docker + env: DOCKER_IMAGE=quay.io/pypa/manylinux_2_24_x86_64 + PRE_CMD=linux32 + PLAT=manylinux_2_24_i686 + - sudo: required + services: + - docker + env: DOCKER_IMAGE=quay.io/pypa/manylinux_2_28_x86_64 + PLAT=manylinux_2_28_x86_64 + +install: + - docker pull $DOCKER_IMAGE + +script: + - docker run --rm -e PLAT=$PLAT -v `pwd`:/io $DOCKER_IMAGE $PRE_CMD /io/travis/build-wheels.sh + - ls wheelhouse/ \ No newline at end of file diff --git a/travis/build-wheels.sh b/travis/build-wheels.sh new file mode 100644 index 000000000..1328210cf --- /dev/null +++ b/travis/build-wheels.sh @@ -0,0 +1,32 @@ +#!/bin/bash +set -e -u -x + +function repair_wheel { + wheel="$1" + if ! auditwheel show "$wheel"; then + echo "Skipping non-platform wheel $wheel" + else + auditwheel repair "$wheel" --plat "$PLAT" -w /io/wheelhouse/ + fi +} + + +# Install a system package required by our library +dnf install -y clang clang-tools-extra + +# Compile wheels +for PYBIN in /opt/python/*/bin; do + "${PYBIN}/pip" install -r /io/dev-requirements.txt + "${PYBIN}/pip" wheel /io/ --no-deps -w wheelhouse/ +done + +# Bundle external shared libraries into the wheels +for whl in wheelhouse/*.whl; do + repair_wheel "$whl" +done + +# Install packages and test +for PYBIN in /opt/python/*/bin/; do + "${PYBIN}/pip" install python_ics --no-index -f /io/wheelhouse + (cd "$HOME"; "${PYBIN}/nosetests" python_ics) +done \ No newline at end of file From 7ced99d0c6c39fee4264535dcda0ba75d156abc1 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:02:53 -0400 Subject: [PATCH 045/201] first test for CI --- include/ics/wheels.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 include/ics/wheels.yml diff --git a/include/ics/wheels.yml b/include/ics/wheels.yml new file mode 100644 index 000000000..02bd9b20d --- /dev/null +++ b/include/ics/wheels.yml @@ -0,0 +1,37 @@ +name: Build + +on: [push, pull_request] + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04, windows-2019, macOS-11] + + steps: + - uses: actions/checkout@v3 + + # Used to host cibuildwheel + - uses: actions/setup-python@v3 + + - name: Set up Clang + - uses: egor-tensin/setup-clang@v1 + with: + version: latest + #platform: x64 + + - name: Install cibuildwheel + run: python -m pip install cibuildwheel==2.12.1 + + - name: Build wheels + run: python -m cibuildwheel --output-dir wheelhouse + # to supply options, put them in 'env', like: + # env: + # CIBW_SOME_OPTION: value + + - uses: actions/upload-artifact@v3 + with: + path: ./wheelhouse/*.whl + if-no-files-found: error \ No newline at end of file From 5c3b355d8b84399abd690fc96d23c9e53a3e8d95 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:05:51 -0400 Subject: [PATCH 046/201] helps if the file is in the right directory... --- {include/ics => .github/workflows}/wheels.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {include/ics => .github/workflows}/wheels.yml (100%) diff --git a/include/ics/wheels.yml b/.github/workflows/wheels.yml similarity index 100% rename from include/ics/wheels.yml rename to .github/workflows/wheels.yml From 8a77a18220e6535bee092c4df352a9b7c8fefee6 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:11:24 -0400 Subject: [PATCH 047/201] fixed a typo --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 02bd9b20d..6ba341acc 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/setup-python@v3 - name: Set up Clang - - uses: egor-tensin/setup-clang@v1 + uses: egor-tensin/setup-clang@v1 with: version: latest #platform: x64 From c8cacfc455b3354eaf190154c7b325a74d08ce32 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:13:06 -0400 Subject: [PATCH 048/201] remove macos for right now --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 6ba341acc..ed5ae58d9 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04, windows-2019, macOS-11] + os: [ubuntu-20.04, windows-2019] #, macOS-11] steps: - uses: actions/checkout@v3 From 0a0dbbad103e4e2beab5ce8771827de680873d75 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:21:46 -0400 Subject: [PATCH 049/201] clang might work now --- .github/workflows/wheels.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index ed5ae58d9..90eeb10ed 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -16,11 +16,19 @@ jobs: # Used to host cibuildwheel - uses: actions/setup-python@v3 - - name: Set up Clang - uses: egor-tensin/setup-clang@v1 - with: - version: latest - #platform: x64 + - name: Install Clang and Clang Format + run: | + if [ "$RUNNER_OS" == "Linux" ]; then + apt install clang clang-format + elif [ "$RUNNER_OS" == "Windows" ]; then + choco install llvm + elif [ "$RUNNER_OS" == "macoOS" ]; then + brew install automake libtool cmake clang-format + else + echo "$RUNNER_OS not supported" + exit 1 + fi + shell: bash - name: Install cibuildwheel run: python -m pip install cibuildwheel==2.12.1 From 346f7d852b554d57aa72db3f678ce2fcd320ae16 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:22:41 -0400 Subject: [PATCH 050/201] sudo missing --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 90eeb10ed..ddaadd936 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -19,7 +19,7 @@ jobs: - name: Install Clang and Clang Format run: | if [ "$RUNNER_OS" == "Linux" ]; then - apt install clang clang-format + sudo apt install clang clang-format elif [ "$RUNNER_OS" == "Windows" ]; then choco install llvm elif [ "$RUNNER_OS" == "macoOS" ]; then From fe49ab8f5e1cf6d634ecd3b17eeeaae9df578ebd Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:28:28 -0400 Subject: [PATCH 051/201] clang debug --- .github/workflows/wheels.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index ddaadd936..45ec6b2f3 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -28,13 +28,20 @@ jobs: echo "$RUNNER_OS not supported" exit 1 fi + echo "Clang Version installed:" + clang --version + clang-format --version shell: bash - name: Install cibuildwheel run: python -m pip install cibuildwheel==2.12.1 - name: Build wheels - run: python -m cibuildwheel --output-dir wheelhouse + run: | + echo "Clang Version installed:" + clang --version + clang-format --version + python -m cibuildwheel --output-dir wheelhouse # to supply options, put them in 'env', like: # env: # CIBW_SOME_OPTION: value From cca939d2e1eba410984d83965e6eb82258e622ec Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:34:04 -0400 Subject: [PATCH 052/201] more debug code --- .github/workflows/wheels.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 45ec6b2f3..2669e4ad1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -31,6 +31,8 @@ jobs: echo "Clang Version installed:" clang --version clang-format --version + which clang + which clang-format shell: bash - name: Install cibuildwheel From 8b9a580d6a1c1cdb0b3f2b039e6697ee071e2388 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:45:10 -0400 Subject: [PATCH 053/201] move clang install to the container instead. --- .github/workflows/wheels.yml | 49 ++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2669e4ad1..539548d55 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -16,24 +16,25 @@ jobs: # Used to host cibuildwheel - uses: actions/setup-python@v3 - - name: Install Clang and Clang Format - run: | - if [ "$RUNNER_OS" == "Linux" ]; then - sudo apt install clang clang-format - elif [ "$RUNNER_OS" == "Windows" ]; then - choco install llvm - elif [ "$RUNNER_OS" == "macoOS" ]; then - brew install automake libtool cmake clang-format - else - echo "$RUNNER_OS not supported" - exit 1 - fi - echo "Clang Version installed:" - clang --version - clang-format --version - which clang - which clang-format - shell: bash + + #- name: Install Clang and Clang Format + # run: | + # if [ "$RUNNER_OS" == "Linux" ]; then + # sudo apt install clang clang-format + # elif [ "$RUNNER_OS" == "Windows" ]; then + # choco install llvm + # elif [ "$RUNNER_OS" == "macoOS" ]; then + # brew install automake libtool cmake clang-format + # else + # echo "$RUNNER_OS not supported" + # exit 1 + # fi + # echo "Clang Version installed:" + # clang --version + # clang-format --version + # which clang + # which clang-format + # shell: bash - name: Install cibuildwheel run: python -m pip install cibuildwheel==2.12.1 @@ -44,9 +45,15 @@ jobs: clang --version clang-format --version python -m cibuildwheel --output-dir wheelhouse - # to supply options, put them in 'env', like: - # env: - # CIBW_SOME_OPTION: value + env: + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2014_x86_64 + CIBW_ARCHS_MACOS: x86_64 + CIBW_BEFORE_ALL_LINUX: > + yum -y install clang clang-tools-extra + CIBW_BEFORE_ALL_MACOS: > + brew install automake libtool cmake clang-format + CIBW_BEFORE_BUILD_WINDOWS: > + choco install llvm - uses: actions/upload-artifact@v3 with: From 5ee833dcbd64b8a4c32613f5d910f241ae773895 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:54:40 -0400 Subject: [PATCH 054/201] update to 2.28 manylinux --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 539548d55..8912c9f9e 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,10 +46,10 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2014_x86_64 + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 CIBW_BEFORE_ALL_LINUX: > - yum -y install clang clang-tools-extra + dnf install -y clang clang-tools-extra CIBW_BEFORE_ALL_MACOS: > brew install automake libtool cmake clang-format CIBW_BEFORE_BUILD_WINDOWS: > From e92de31f72da3f0658e3a2c2cff44956aa242443 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 15:55:37 -0400 Subject: [PATCH 055/201] typo --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 8912c9f9e..b4287a2b6 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,7 +46,7 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2_28_x86_64 + CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 CIBW_BEFORE_ALL_LINUX: > dnf install -y clang clang-tools-extra From df8ffa6ca7a6bfc6808637fd8a4661d4c3b49c08 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:01:07 -0400 Subject: [PATCH 056/201] install missing wheel package --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b4287a2b6..b295d6d92 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -37,7 +37,7 @@ jobs: # shell: bash - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.12.1 + run: python -m pip install cibuildwheel==2.12.1 wheel - name: Build wheels run: | From 643db70890f086934d798560e580f1d95894b721 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:05:05 -0400 Subject: [PATCH 057/201] install wheel package in container --- .github/workflows/wheels.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b295d6d92..7c773c8d5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -48,6 +48,8 @@ jobs: env: CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 + CIBW_BEFORE_ALL: + python -m pip install wheel CIBW_BEFORE_ALL_LINUX: > dnf install -y clang clang-tools-extra CIBW_BEFORE_ALL_MACOS: > From c46e86e60f2ada9619f238b5811f2ba0b99b29c4 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:13:53 -0400 Subject: [PATCH 058/201] skip python 3.6 --- .github/workflows/wheels.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 7c773c8d5..3fa035fdc 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,6 +46,7 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: + CIBW_SKIP: cp36-* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 CIBW_BEFORE_ALL: From 49075e99a6947f0d043e592339668d3417d18e58 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:25:43 -0400 Subject: [PATCH 059/201] maybe? --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 3fa035fdc..9b09a103a 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -49,7 +49,7 @@ jobs: CIBW_SKIP: cp36-* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 - CIBW_BEFORE_ALL: + CIBW_BEFORE_BUILD: python -m pip install wheel CIBW_BEFORE_ALL_LINUX: > dnf install -y clang clang-tools-extra From aaffe421c1d96fad4ff090ad63165a6939e3365a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:27:25 -0400 Subject: [PATCH 060/201] typo, should work now --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 9b09a103a..5b9195440 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -49,7 +49,7 @@ jobs: CIBW_SKIP: cp36-* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 - CIBW_BEFORE_BUILD: + CIBW_BEFORE_ALL: > python -m pip install wheel CIBW_BEFORE_ALL_LINUX: > dnf install -y clang clang-tools-extra From 3ded4168515f87d3f612a25dd2507e27dd8b7035 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:31:33 -0400 Subject: [PATCH 061/201] development tools missing? --- .github/workflows/wheels.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 5b9195440..82abdfbb1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -53,6 +53,7 @@ jobs: python -m pip install wheel CIBW_BEFORE_ALL_LINUX: > dnf install -y clang clang-tools-extra + dnf group install -y "Development Tools" CIBW_BEFORE_ALL_MACOS: > brew install automake libtool cmake clang-format CIBW_BEFORE_BUILD_WINDOWS: > From fa6e664d5f7a1c4646bd715e6b91c272c9cfa7d0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:33:26 -0400 Subject: [PATCH 062/201] another fix... --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 82abdfbb1..385e49eae 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -52,7 +52,7 @@ jobs: CIBW_BEFORE_ALL: > python -m pip install wheel CIBW_BEFORE_ALL_LINUX: > - dnf install -y clang clang-tools-extra + dnf install -y clang clang-tools-extra && dnf group install -y "Development Tools" CIBW_BEFORE_ALL_MACOS: > brew install automake libtool cmake clang-format From c92159cfd94209c7f518a1faefb0763cd82820a0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:39:57 -0400 Subject: [PATCH 063/201] added cmake and debug output --- .github/workflows/wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 385e49eae..b750309d0 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -49,10 +49,11 @@ jobs: CIBW_SKIP: cp36-* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_ARCHS_MACOS: x86_64 + CIBW_ENVIRONMENT: DISTUTILS_DEBUG=1 CIBW_BEFORE_ALL: > python -m pip install wheel CIBW_BEFORE_ALL_LINUX: > - dnf install -y clang clang-tools-extra && + dnf install -y cmake clang clang-tools-extra && dnf group install -y "Development Tools" CIBW_BEFORE_ALL_MACOS: > brew install automake libtool cmake clang-format From 95e54b6746647f8acc5d5dfee1d8f9a2dee2f295 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:48:48 -0400 Subject: [PATCH 064/201] build script fixes --- generate_icsneo40_structs.py | 52 +++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index b05123c0b..d6229d07c 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -844,34 +844,38 @@ def generate_all_files(): import os import pathlib - try: - if sys.argv[0] == 'setup.py': - raise IndexError - # Grab the filename from the command line - filename = sys.argv[1] - filename = os.path.normpath(filename) - print(f"Parsing '{filename}'...") - except IndexError as _: - # use our default path if it isn't supplied - filename = 'include/ics/icsnVC40.h' - if not pathlib.Path(filename).exists(): - raise FileNotFoundError(filename) + filename = 'include/ics/icsnVC40.h' + if __name__ == '__main__': + try: + if sys.argv[0] == 'setup.py': + raise IndexError + # Grab the filename from the command line + filename = sys.argv[1] + filename = os.path.normpath(filename) + print(f"Parsing '{filename}'...") + except IndexError as _: + # use our default path if it isn't supplied + filename = 'include/ics/icsnVC40.h' + if not pathlib.Path(filename).exists(): + raise FileNotFoundError(filename) generate(filename) # Internal Header - try: - if sys.argv[0] == 'setup.py': - raise IndexError - # Grab the filename from the command line - filename_internal = sys.argv[2] - filename_internal = os.path.normpath(filename_internal) - print(f"Parsing '{filename_internal}'...") - except IndexError as _: - # use our default path if it isn't supplied + if __name__ == '__main__': filename_internal = 'include/ics/icsnVC40Internal.h' - if pathlib.Path(filename_internal).exists(): - print("WARNING: Generating internal header!") - generate(filename_internal) + try: + if sys.argv[0] == 'setup.py': + raise IndexError + # Grab the filename from the command line + filename_internal = sys.argv[2] + filename_internal = os.path.normpath(filename_internal) + print(f"Parsing '{filename_internal}'...") + except IndexError as _: + # use our default path if it isn't supplied + filename_internal = 'include/ics/icsnVC40Internal.h' + if pathlib.Path(filename_internal).exists(): + print("WARNING: Generating internal header!") + generate(filename_internal) if __name__ == '__main__': From 8d6f303e40a2f5354dc0291078c8be8304b0ac0c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 16:55:52 -0400 Subject: [PATCH 065/201] disable windows for now and set i686 image type --- .github/workflows/wheels.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b750309d0..0ebf9a8ab 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04, windows-2019] #, macOS-11] + os: [ubuntu-20.04] #, windows-2019] #, macOS-11] steps: - uses: actions/checkout@v3 @@ -48,6 +48,7 @@ jobs: env: CIBW_SKIP: cp36-* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 + CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: x86_64 CIBW_ENVIRONMENT: DISTUTILS_DEBUG=1 CIBW_BEFORE_ALL: > From b8e2cba46ae66747b6f52d29ec916602e579072a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 17:04:07 -0400 Subject: [PATCH 066/201] disable pypy builds --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 0ebf9a8ab..1f34abaf6 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,7 +46,7 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_SKIP: cp36-* + CIBW_SKIP: cp36-* pp* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: x86_64 From dbac315239bd10a423e1b8e1a2092102a60bb37f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 17:09:54 -0400 Subject: [PATCH 067/201] skip 32-bit builds --- .github/workflows/wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1f34abaf6..36a5059e1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,9 +46,9 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_SKIP: cp36-* pp* + CIBW_SKIP: cp36-* pp* *-win32 *-manylinux_i686 CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 - CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 + #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: x86_64 CIBW_ENVIRONMENT: DISTUTILS_DEBUG=1 CIBW_BEFORE_ALL: > From b50849a8ab1975267023eee2f9da5e60e0d27d78 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 17:22:25 -0400 Subject: [PATCH 068/201] updated env --- .github/workflows/wheels.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 36a5059e1..1993a8d64 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -51,12 +51,12 @@ jobs: #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: x86_64 CIBW_ENVIRONMENT: DISTUTILS_DEBUG=1 - CIBW_BEFORE_ALL: > + CIBW_BEFORE_BUILD: > python -m pip install wheel - CIBW_BEFORE_ALL_LINUX: > + CIBW_BEFORE_BUILD_LINUX: > dnf install -y cmake clang clang-tools-extra && dnf group install -y "Development Tools" - CIBW_BEFORE_ALL_MACOS: > + CIBW_BEFORE_BUILD_MACOS: > brew install automake libtool cmake clang-format CIBW_BEFORE_BUILD_WINDOWS: > choco install llvm From 82344b1f9b54002fd686160392c6b63c457a30c9 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 17:32:06 -0400 Subject: [PATCH 069/201] ignore musllinux --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1993a8d64..784656ea7 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,7 +46,7 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_SKIP: cp36-* pp* *-win32 *-manylinux_i686 + CIBW_SKIP: cp36-* pp* *-win32 *-manylinux_i686 *-musllinux CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: x86_64 From c192beec2686cf32196db229b2426767d6369892 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 22 Mar 2023 17:38:53 -0400 Subject: [PATCH 070/201] lets try this again --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 784656ea7..64363722d 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -46,7 +46,7 @@ jobs: clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_SKIP: cp36-* pp* *-win32 *-manylinux_i686 *-musllinux + CIBW_SKIP: cp36-* pp* *-win32 *-manylinux_i686 *-musllinux_* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: x86_64 From 5ff6a2166c3aa5bcdb3dacce09c461ebce59d903 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 23 Mar 2023 13:37:20 -0400 Subject: [PATCH 071/201] cleanup and enable windows/mac --- .github/workflows/wheels.yml | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 64363722d..62dc44344 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04] #, windows-2019] #, macOS-11] + os: [ubuntu-20.04, windows-2019, macOS-11] steps: - uses: actions/checkout@v3 @@ -16,46 +16,23 @@ jobs: # Used to host cibuildwheel - uses: actions/setup-python@v3 - - #- name: Install Clang and Clang Format - # run: | - # if [ "$RUNNER_OS" == "Linux" ]; then - # sudo apt install clang clang-format - # elif [ "$RUNNER_OS" == "Windows" ]; then - # choco install llvm - # elif [ "$RUNNER_OS" == "macoOS" ]; then - # brew install automake libtool cmake clang-format - # else - # echo "$RUNNER_OS not supported" - # exit 1 - # fi - # echo "Clang Version installed:" - # clang --version - # clang-format --version - # which clang - # which clang-format - # shell: bash - - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.12.1 wheel + run: python -m pip install cibuildwheel==2.12.1 - name: Build wheels run: | - echo "Clang Version installed:" - clang --version - clang-format --version python -m cibuildwheel --output-dir wheelhouse env: - CIBW_SKIP: cp36-* pp* *-win32 *-manylinux_i686 *-musllinux_* + CIBW_BUILD: *-win32 *-win_amd64 *-macosx_universal2 *-manylinux_x86_64 *-manylinux_aarch64 + CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 - CIBW_ARCHS_MACOS: x86_64 + CIBW_ARCHS_MACOS: universal2 CIBW_ENVIRONMENT: DISTUTILS_DEBUG=1 CIBW_BEFORE_BUILD: > python -m pip install wheel CIBW_BEFORE_BUILD_LINUX: > - dnf install -y cmake clang clang-tools-extra && - dnf group install -y "Development Tools" + dnf install -y clang clang-tools-extra CIBW_BEFORE_BUILD_MACOS: > brew install automake libtool cmake clang-format CIBW_BEFORE_BUILD_WINDOWS: > From 398ca98f37af6fe7100c3ce96c96076b8ee81401 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 23 Mar 2023 13:42:49 -0400 Subject: [PATCH 072/201] extra space removed --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 62dc44344..8f9411459 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -24,7 +24,7 @@ jobs: python -m cibuildwheel --output-dir wheelhouse env: CIBW_BUILD: *-win32 *-win_amd64 *-macosx_universal2 *-manylinux_x86_64 *-manylinux_aarch64 - CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_* + CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 CIBW_ARCHS_MACOS: universal2 From ffe69575d9faee86b95bb84a21364af9d8a0db73 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 23 Mar 2023 13:47:12 -0400 Subject: [PATCH 073/201] possible fix --- .github/workflows/wheels.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 8f9411459..95a9eb6a4 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -20,8 +20,7 @@ jobs: run: python -m pip install cibuildwheel==2.12.1 - name: Build wheels - run: | - python -m cibuildwheel --output-dir wheelhouse + run: python -m cibuildwheel --output-dir wheelhouse env: CIBW_BUILD: *-win32 *-win_amd64 *-macosx_universal2 *-manylinux_x86_64 *-manylinux_aarch64 CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_* From 6315e00e247cf0cb683e0effb6b6109a93fb15a0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 23 Mar 2023 13:51:09 -0400 Subject: [PATCH 074/201] another fix --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 95a9eb6a4..96917b8c1 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -22,7 +22,7 @@ jobs: - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse env: - CIBW_BUILD: *-win32 *-win_amd64 *-macosx_universal2 *-manylinux_x86_64 *-manylinux_aarch64 + CIBW_BUILD: "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_* CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 From 2d66faa5a347efd7bafdd6ff9bfcb5b55aabd93c Mon Sep 17 00:00:00 2001 From: pierreluctg Date: Thu, 30 Mar 2023 12:48:41 -0400 Subject: [PATCH 075/201] Moving cibuildwheel configuration to pyproject.toml (#144) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This allows to use cibuildwheel outside Github actions and makes it easier to test/modify the cibuildwheel configurations. Co-authored-by: Pierre-Luc Tessier Gagné --- .github/workflows/wheels.yml | 15 --------------- pyproject.toml | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 15 deletions(-) create mode 100644 pyproject.toml diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 96917b8c1..b1f7f9af2 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -21,21 +21,6 @@ jobs: - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse - env: - CIBW_BUILD: "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" - CIBW_SKIP: cp36-* pp* *-manylinux_i686 *-musllinux_* - CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux_2_28_x86_64 - #CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux_2_28_i686 - CIBW_ARCHS_MACOS: universal2 - CIBW_ENVIRONMENT: DISTUTILS_DEBUG=1 - CIBW_BEFORE_BUILD: > - python -m pip install wheel - CIBW_BEFORE_BUILD_LINUX: > - dnf install -y clang clang-tools-extra - CIBW_BEFORE_BUILD_MACOS: > - brew install automake libtool cmake clang-format - CIBW_BEFORE_BUILD_WINDOWS: > - choco install llvm - uses: actions/upload-artifact@v3 with: diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..36707429b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,16 @@ +[tool.cibuildwheel] +build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" +skip = "cp36-* pp* *-manylinux_i686 *-musllinux_*" +environment = {DISTUTILS_DEBUG=1} +before-build = "python -m pip install wheel" +manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" + +[tool.cibuildwheel.linux] +before-build = "dnf install -y clang clang-tools-extra" + +[tool.cibuildwheel.macos] +archs = ["universal2"] +before-build = "brew install automake libtool cmake clang-format" + +[tool.cibuildwheel.windows] +before-build = "choco install llvm" \ No newline at end of file From df187b3a4264721938fbc15a02f23855533d719e Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 30 Mar 2023 18:52:09 -0400 Subject: [PATCH 076/201] building libicsneolegacy.so for linux works now. Signed-off-by: David Rebbe --- build_libicsneo.py | 34 +++++++++++++++++++++++++--------- setup.py | 4 +++- src/dll.cpp | 2 +- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 92edea154..2adbc310c 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -16,7 +16,7 @@ def checkout(): subprocess.check_output( ['git', 'checkout', LIBICSNEO_COMMIT], cwd='libicsneo') - if not os.path.isdir('libusb'): + if not os.path.isdir('libusb') and sys.platform == 'darwin': subprocess.check_output( ['git', 'clone', 'https://github.com/libusb/libusb.git']) subprocess.check_output(['git', 'checkout', LIBUSB_COMMIT], cwd='libusb') @@ -37,11 +37,19 @@ def _build_libusb(): subprocess.check_output(['make', 'install'], cwd='libusb') -def _build_icsneo(): +def _build_icsneo_linux(): subprocess.check_output(['git', 'clean', '-xdf'], cwd='libicsneo') subprocess.check_output(['mkdir', '-p', 'libicsneo/build']) - subprocess.check_output(['cmake', '..', '-DCMAKE_BUILD_TYPE=RelWithDebInfo', '-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64', + subprocess.check_output(['cmake', '..', '-DCMAKE_BUILD_TYPE=Release', '-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON'], cwd='libicsneo/build') + subprocess.check_output(['cmake', '--build', '.', '--target', + 'icsneolegacy', '--parallel', CPUS], cwd='libicsneo/build') + +def _build_icsneo_macos(): + subprocess.check_output(['git', 'clean', '-xdf'], cwd='libicsneo') + subprocess.check_output(['mkdir', '-p', 'libicsneo/build']) + + subprocess.check_output(['cmake', '..', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64', '-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON', '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13', '-DLIBUSB_LIBRARIES=/tmp/libusb/lib/libusb-1.0.0.dylib', '-DLIBUSB_INCLUDE_DIR=/tmp/libusb/include/libusb-1.0'], cwd='libicsneo/build') @@ -53,15 +61,23 @@ def _build_icsneo(): def build(): - _build_libusb() - _build_icsneo() + print("Building libicsneo...") + if sys.platform == 'darwin': + _build_libusb() + _build_icsneo_macos() + elif sys.platform == 'linux': + _build_icsneo_linux() def copy(): - shutil.copyfile('/tmp/libusb/lib/libusb-1.0.0.dylib', - 'ics/libusb-1.0.0.dylib') - shutil.copyfile('libicsneo/build/libicsneolegacy.dylib', - 'ics/libicsneolegacy.dylib') + if sys.platform == 'darwin': + shutil.copyfile('/tmp/libusb/lib/libusb-1.0.0.dylib', + 'ics/libusb-1.0.0.dylib') + shutil.copyfile('libicsneo/build/libicsneolegacy.dylib', + 'ics/libicsneolegacy.dylib') + elif sys.platform == 'linux': + shutil.copyfile('libicsneo/build/libicsneolegacy.so', + 'ics/libicsneolegacy.so') def clean(): diff --git a/setup.py b/setup.py index 276cc1e0b..a0ac878f9 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ def run(self): import generate_icsneo40_structs extract_icsneo40_defines.extract() generate_icsneo40_structs.generate_all_files() - if 'DARWIN' in platform.system().upper(): + if platform.system().upper() in ('DARWIN', 'LINUX'): import build_libicsneo build_libicsneo.checkout() build_libicsneo.build() @@ -111,6 +111,8 @@ def read(fname): package_data = {} if 'DARWIN' in platform.system().upper(): package_data['ics'] = ['*.dylib'] +elif 'LINUX' in platform.system().upper(): + package_data[''] = ['*.so'] setup(name='python_ics', version=VERSION_STRING, diff --git a/src/dll.cpp b/src/dll.cpp index a5d346e7d..61c47cc8c 100644 --- a/src/dll.cpp +++ b/src/dll.cpp @@ -19,7 +19,7 @@ bool __initialize(char* name) #elif (defined(__APPLE__)) LIBRARY = new ice::Library("@loader_path/libicsneolegacy.dylib"); #else - LIBRARY = new ice::Library("libicsneolegacy.so"); + LIBRARY = new ice::Library("${ORIGIN}/libicsneolegacy.so"); #endif } else From 414b798af06c5877d8039a5be3802ffa422a0936 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 30 Mar 2023 19:05:52 -0400 Subject: [PATCH 077/201] add libusbx dependency Signed-off-by: David Rebbe --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 36707429b..04d6ef6dc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] -before-build = "dnf install -y clang clang-tools-extra" +before-build = "dnf install -y libusbx-devel clang clang-tools-extra" [tool.cibuildwheel.macos] archs = ["universal2"] From cbe2eacea9c8951efd926616b2eb686e06787ba2 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 30 Mar 2023 19:08:47 -0400 Subject: [PATCH 078/201] Failed indentation... Signed-off-by: David Rebbe --- build_libicsneo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 2adbc310c..6530e84c1 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -19,7 +19,7 @@ def checkout(): if not os.path.isdir('libusb') and sys.platform == 'darwin': subprocess.check_output( ['git', 'clone', 'https://github.com/libusb/libusb.git']) - subprocess.check_output(['git', 'checkout', LIBUSB_COMMIT], cwd='libusb') + subprocess.check_output(['git', 'checkout', LIBUSB_COMMIT], cwd='libusb') def _build_libusb(): From ef4da8ede6a52a6c204714576b07a8bad66f0d4f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 30 Mar 2023 19:12:14 -0400 Subject: [PATCH 079/201] added cmake for linux build. Signed-off-by: David Rebbe --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 04d6ef6dc..7fbb352cc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] -before-build = "dnf install -y libusbx-devel clang clang-tools-extra" +before-build = "dnf install -y cmake libusbx-devel clang clang-tools-extra" [tool.cibuildwheel.macos] archs = ["universal2"] From 967e1b9e0f59b9bbca84ebb5c3f1280348c6cd70 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 30 Mar 2023 19:15:26 -0400 Subject: [PATCH 080/201] added libpcap to linux build Signed-off-by: David Rebbe --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7fbb352cc..e2aec3b34 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] -before-build = "dnf install -y cmake libusbx-devel clang clang-tools-extra" +before-build = "dnf install -y libpcap-dev cmake libusbx-devel clang clang-tools-extra" [tool.cibuildwheel.macos] archs = ["universal2"] From c089f370d1039d0c61b02018f77a9312ad396e80 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 30 Mar 2023 19:19:02 -0400 Subject: [PATCH 081/201] actually add libpcap-devel this time... Signed-off-by: David Rebbe --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e2aec3b34..57842c7da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] -before-build = "dnf install -y libpcap-dev cmake libusbx-devel clang clang-tools-extra" +before-build = "dnf install -y libpcap-devel cmake libusbx-devel clang clang-tools-extra" [tool.cibuildwheel.macos] archs = ["universal2"] From 8386b78f11d36d9f4452ad03783f3482715c2323 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 11:41:37 -0400 Subject: [PATCH 082/201] Updated libicsneo and libusb to 1.0.26 Signed-off-by: David Rebbe --- build_libicsneo.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 6530e84c1..5b7d64650 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -4,8 +4,8 @@ import shutil import sys -LIBICSNEO_COMMIT = '1bb33156f7ce15cf6e7b4736dbce845428ca4819' -LIBUSB_COMMIT = '4622bfcf44db373c53502e3fe873bd611e8332f6' +LIBICSNEO_COMMIT = 'bf6a059820e753c7672adbc01b0e8fdc58b2cfea' +LIBUSB_COMMIT = '4239bc3a50014b8e6a5a2a59df1fff3b7469543b' CPUS = str(multiprocessing.cpu_count()) From 65a0e16b58300664202c8a4d17c6bd63002f9d0f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 11:43:06 -0400 Subject: [PATCH 083/201] Updated to 911.12 Signed-off-by: David Rebbe --- doc/source/conf.py | 2 +- include/ics/icsnVC40.h | 203 +++++++++++++++++++++++++++++------------ setup.py | 6 +- 3 files changed, 147 insertions(+), 64 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index efb2ab8eb..87f67e529 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = '910.10' +version = '911.12' # The full version, including alpha/beta/rc tags. release = version diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index ff7c055e7..3cfea6c5b 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -201,6 +201,8 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEW_DEVICE_59 (0x00000021) #define NEODEVICE_RAD_BMS (0x00000022) #define NEODEVICE_RADMOON3 (0x00000023) +#define NEODEVICE_RADCOMET (0x00000024) +#define NEODEVICE_NEW_DEVICE_FF (0x00000025) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -232,7 +234,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB //clang-format on -#define DEVICECOUNT_FOR_EXPLORER 42 //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER 43 //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -955,6 +957,11 @@ typedef union _stChipVersions { 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; @@ -1168,55 +1175,65 @@ typedef struct ETHERNET_SETTINGS_t #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 + typedef struct ETHERNET_SETTINGS2_t { - /* bit0: 0=half duplex, 1=full duplex + /* 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 + uint8_t link_speed; // 0=10, 1=100, 2=1000 uint32_t ip_addr; uint32_t netmask; uint32_t gateway; - uint8_t rsvd[2]; + /* FLAGS2 + * bit0: link mode - 0=master, 1=slave + * bit1: PHY mode - 0=IEEE, 1=legacy + * bit2: auto master/slave + */ + uint8_t flags2; + uint8_t rsvd; } ETHERNET_SETTINGS2; #define ETHERNET_SETTINGS2_SIZE 16 -/* ETHERNET_SETTINGS2 link speed, duplex options */ -enum -{ - LINK_SPEED_AUTO_NEGOTIATION = 0, - LINK_SPEED_1GBPS_FULL_DUPLEX, - LINK_SPEED_1GBPS_HALF_DUPLEX, - LINK_SPEED_100MBPS_FULL_DUPLEX, - LINK_SPEED_100MBPS_HALF_DUPLEX, - LINK_SPEED_10MBPS_FULL_DUPLEX, - LINK_SPEED_10MBPS_HALF_DUPLEX, - // NOTE: new entries must be appended to maintain backwards compatibility - // insert new entries here - LINK_SPEED_COUNT, -}; - -#define ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX 0x01 -#define ETHERNET_SETTINGS10G_FLAG_AUTO_NEG 0x02 -#define ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE 0x04 -#define ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE 0x08 -#define ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE 0x10 -#define ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE 0x80000000 +#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_COMM_IN_USE 0x80000000 typedef struct ETHERNET10G_SETTINGS_t { - /* bit0: 0=half duplex, 1=full duplex + /* 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 * bit31: comm in use */ uint32_t flags; @@ -2604,7 +2621,6 @@ typedef struct typedef struct _SRADA2BSettings { - // TODO!!!! uint16_t perf_en; struct { @@ -2632,9 +2648,10 @@ typedef struct _SRADA2BSettings uint32_t pwr_man_timeout; uint16_t pwr_man_enable; ETHERNET_SETTINGS2 ethernet; + RAD_GPTP_SETTINGS gPTP; } SRADA2BSettings; -#define SRADA2BSettings_SIZE 296 +#define SRADA2BSettings_SIZE 332 typedef struct _SRADMoon2Settings { @@ -2659,6 +2676,27 @@ typedef struct _SRADMoon2Settings #define SRADMoon2Settings_SIZE 162 +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 +} SRADMoon3Settings; + +#define SRADMoon3Settings_SIZE 60 + typedef struct _SRADGigalogSettings { uint32_t ecu_id; @@ -3751,8 +3789,10 @@ typedef struct _SFire3Settings ETHERNET_SETTINGS ethernet_2; ETHERNET_SETTINGS2 ethernet2_2; Fire3LinuxSettings os_settings; + + RAD_GPTP_SETTINGS gPTP; }SFire3Settings; -#define SFire3Settings_SIZE (632) +#define SFire3Settings_SIZE (668) typedef struct { @@ -3883,58 +3923,96 @@ typedef struct _SRADEpsilonSettings }SRADEpsilonSettings;//384 #define SRADEpsilonSettings_SIZE 384 +typedef struct +{ + uint8_t wBMSDeviceID; + uint8_t enabled; +} sWIL_FAULT_SERVICING_SETTINGS; + +typedef struct +{ + uint8_t enabled; +} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; + +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 +{ + SPI_PORT_ONBOARD = 0, + SPI_PORT_EXTERNAL, +}; + +typedef struct _sSPI_PORT_SETTINGS +{ + uint8_t port_a_onbaord_external; + uint8_t port_b_onbaord_external; +} sSPI_PORT_SETTINGS; + typedef union { uint64_t dword; struct { - unsigned can_id:29; - unsigned can_id_isExtended:1; + unsigned can_id : 29; + unsigned can_id_isExtended : 1; uint16_t tcp_port; - unsigned manager_onboard_external : 1; - unsigned reserved:18; - }config; -} SWILBridgeConfig; + unsigned reserved : 18; + } config; +} sWILBridgeConfig; typedef struct _SRADBMSSettings { - /* Performance Test */ - uint16_t perf_en;//2 + /* Performance Test */ + uint16_t perf_en; //2 - uint64_t termination_enables; + uint64_t termination_enables; //8 - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; + CAN_SETTINGS can1; //12 + CANFD_SETTINGS canfd1; //10 - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; + CAN_SETTINGS can2; //12 + CANFD_SETTINGS canfd2; //10 - 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 /* ISO15765-2 Transport Layer */ - int16_t iso15765_separation_time_offset;//2 + int16_t iso15765_separation_time_offset; //2 - struct + struct { uint32_t disableUsbCheckOnBoot : 1; uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags;//4 + } 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 //WIL wrapped CAN and ETHERNET - SWILBridgeConfig wil_config; -} SRADBMSSettings; -#define SRADBMSSettings_SIZE 108 + sWILBridgeConfig wil_config; //8 + + sSPI_PORT_SETTINGS spi_config; //2 + + sWIL_CONNECTION_SETTINGS wbms_wil_1; //8 + sWIL_CONNECTION_SETTINGS wbms_wil_2; //8 + +}SRADBMSSettings; +#define SRADBMSSettings_SIZE 126 #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS @@ -3980,6 +4058,7 @@ typedef struct _GLOBAL_SETTINGS SRADEpsilonSettings epsilon; SOBD2LCSettings obd2lc; SRADBMSSettings rad_bms; + SRADMoon3Settings radmoon3; // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; @@ -4024,10 +4103,11 @@ typedef enum _EDeviceSettingsType DeviceRADEpsilonSettingsType, DeviceOBD2LCSettingsType, DeviceRADBMSSettingsType, + DeviceRADMoon3SettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, - DeviceSettingsNone = 0xFFFFFFFF// just wanted to reserve this + DeviceSettingsNone = 0xFFFFFFFF // just wanted to reserve this } EDeviceSettingsType; typedef struct _SDeviceSettings @@ -4072,6 +4152,7 @@ typedef struct _SDeviceSettings SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; + SRADMoon3Settings radmoon3; // Make sure GLOBAL_SETTINGS matches this // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; @@ -4663,7 +4744,7 @@ typedef enum SPhyRegPktStatus PHYREG_FAILURE, PHYREG_INVALID_MDIO_BUS_INDEX, PHYREG_INVALID_PHY_ADDR, - PHYREG_RESERVED0, + PHYREG_UNSUPPORTED_MDIO_CLAUSE, PHYREG_RESERVED1, PHYREG_RESERVED2, PHYREG_RESERVED3 @@ -4684,8 +4765,8 @@ typedef struct SPhyRegPkt uint16_t Enabled:1; uint16_t WriteEnable:1; uint16_t Clause45Enable:1; - uint16_t status:2; - uint16_t reserved:3; + uint16_t status : 3; + uint16_t reserved : 2; uint16_t BusIndex:4; uint16_t version:4; }; @@ -4717,6 +4798,7 @@ typedef enum networkTerminationDWCAN06, networkTerminationDWCAN07, networkTerminationDWCAN08, + enhancedFlashDriver, NUM_VALID_DEVICE_FEATURES, supportedFeatureMax = 0xFFFF, } DeviceFeature; @@ -4815,6 +4897,7 @@ CHECK_STRUCT_SIZE(A2BMonitorSettings); CHECK_STRUCT_SIZE(SRADEpsilonSettings); CHECK_STRUCT_SIZE(RAD_GPTP_SETTINGS); CHECK_STRUCT_SIZE(SRADBMSSettings); +CHECK_STRUCT_SIZE(SRADMoon3Settings); #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/setup.py b/setup.py index a0ac878f9..8da93c289 100644 --- a/setup.py +++ b/setup.py @@ -8,9 +8,9 @@ import unittest import shutil -MAJOR_VERSION = 910 -MINOR_VERSION = 10 -POST_VERSION = 6 +MAJOR_VERSION = 911 +MINOR_VERSION = 12 +POST_VERSION = None if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) From c71bd3e9e577cce7e0c86ce20895978bb14230e6 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 11:46:13 -0400 Subject: [PATCH 084/201] updated generated files to 911.12 Signed-off-by: David Rebbe --- ics/hiddenimports.py | 8 +- ics/structures/__init__.py | 8 +- ics/structures/device_feature.py | 1 + ics/structures/e_device_settings_type.py | 1 + ics/structures/ethernet_settings2.py | 3 +- ics/structures/global_settings.py | 2 + ics/structures/ndis_adapter_information.py | 20 - ics/structures/s_device_settings.py | 2 + ics/structures/s_fire3_settings.py | 8 +- ics/structures/s_flex_vnetz_settings.py | 6 +- ics/structures/s_phy_reg_pkt.py | 4 +- ics/structures/s_phy_reg_pkt_status.py | 2 +- ics/structures/s_pluto_vl_lookup_entry_s.py | 6 +- ics/structures/s_spi_port_settings.py | 17 + ...ridge_config.py => s_wil_bridge_config.py} | 5 +- ics/structures/s_wil_connection_settings.py | 23 + .../s_wil_fault_servicing_settings.py | 16 + .../s_wil_network_data_capture_settings.py | 15 + ics/structures/sobd2_lc_settings.py | 6 +- ics/structures/srad_moon3_settings.py | 33 + ics/structures/srada2_b_settings.py | 2 + ics/structures/sradbms_settings.py | 9 +- ics/structures/st_chip_versions.py | 10 + ics/structures/svcan4_ind_settings.py | 6 +- icsnVC40.h.enums.json | 274 +++--- icsnVC40.h.json | 331 ++++++- icsnVC40_processed.h | 811 +++--------------- src/setup_module_auto_defines.cpp | 32 +- 28 files changed, 773 insertions(+), 888 deletions(-) delete mode 100644 ics/structures/ndis_adapter_information.py create mode 100644 ics/structures/s_spi_port_settings.py rename ics/structures/{swil_bridge_config.py => s_wil_bridge_config.py} (76%) create mode 100644 ics/structures/s_wil_connection_settings.py create mode 100644 ics/structures/s_wil_fault_servicing_settings.py create mode 100644 ics/structures/s_wil_network_data_capture_settings.py create mode 100644 ics/structures/srad_moon3_settings.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index b6fafe46e..35daf00c6 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -77,6 +77,7 @@ "ics.structures.a2_b_monitor_settings", "ics.structures.srada2_b_settings", "ics.structures.srad_moon2_settings", + "ics.structures.srad_moon3_settings", "ics.structures.srad_gigalog_settings", "ics.structures.srad_gigastar_settings", "ics.structures.s_vivid_can_settings", @@ -119,7 +120,11 @@ "ics.structures.s_ether_badge_settings", "ics.structures.srad_epsilon_switch_settings", "ics.structures.srad_epsilon_settings", - "ics.structures.swil_bridge_config", + "ics.structures.s_wil_fault_servicing_settings", + "ics.structures.s_wil_network_data_capture_settings", + "ics.structures.s_wil_connection_settings", + "ics.structures.s_spi_port_settings", + "ics.structures.s_wil_bridge_config", "ics.structures.sradbms_settings", "ics.structures.global_settings", "ics.structures.s_device_settings", @@ -144,7 +149,6 @@ "ics.structures.ics_rad_epsilon_device_status", "ics.structures.ics_rad_bms_device_status", "ics.structures.ics_device_status", - "ics.structures.ndis_adapter_information", "ics.structures.s_phy_reg_pkt_hdr", "ics.structures.s_phy_reg_pkt_clause22_mess", "ics.structures.s_phy_reg_pkt_clause45_mess", diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index 7cb052791..cbff13289 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -77,6 +77,7 @@ "a2_b_monitor_settings", "srada2_b_settings", "srad_moon2_settings", + "srad_moon3_settings", "srad_gigalog_settings", "srad_gigastar_settings", "s_vivid_can_settings", @@ -119,7 +120,11 @@ "s_ether_badge_settings", "srad_epsilon_switch_settings", "srad_epsilon_settings", - "swil_bridge_config", + "s_wil_fault_servicing_settings", + "s_wil_network_data_capture_settings", + "s_wil_connection_settings", + "s_spi_port_settings", + "s_wil_bridge_config", "sradbms_settings", "global_settings", "s_device_settings", @@ -144,7 +149,6 @@ "ics_rad_epsilon_device_status", "ics_rad_bms_device_status", "ics_device_status", - "ndis_adapter_information", "s_phy_reg_pkt_hdr", "s_phy_reg_pkt_clause22_mess", "s_phy_reg_pkt_clause45_mess", diff --git a/ics/structures/device_feature.py b/ics/structures/device_feature.py index ba862d7da..1b7aa2bba 100644 --- a/ics/structures/device_feature.py +++ b/ics/structures/device_feature.py @@ -26,6 +26,7 @@ def from_param(cls, obj): networkTerminationDWCAN06 = enum.auto() networkTerminationDWCAN07 = enum.auto() networkTerminationDWCAN08 = enum.auto() + enhancedFlashDriver = enum.auto() NUM_VALID_DEVICE_FEATURES = enum.auto() supportedFeatureMax = 65535 diff --git a/ics/structures/e_device_settings_type.py b/ics/structures/e_device_settings_type.py index cc8385a98..9b170da7c 100644 --- a/ics/structures/e_device_settings_type.py +++ b/ics/structures/e_device_settings_type.py @@ -45,6 +45,7 @@ def from_param(cls, obj): DeviceRADEpsilonSettingsType = enum.auto() DeviceOBD2LCSettingsType = enum.auto() DeviceRADBMSSettingsType = enum.auto() + DeviceRADMoon3SettingsType = enum.auto() DeviceSettingsTypeMax = enum.auto() DeviceSettingsNone = 4294967295 diff --git a/ics/structures/ethernet_settings2.py b/ics/structures/ethernet_settings2.py index fade7c2e0..4979f2a3d 100644 --- a/ics/structures/ethernet_settings2.py +++ b/ics/structures/ethernet_settings2.py @@ -12,7 +12,8 @@ class ethernet_settings2(ctypes.Structure): ('ip_addr', ctypes.c_uint32), ('netmask', ctypes.c_uint32), ('gateway', ctypes.c_uint32), - ('rsvd', ctypes.c_uint8 * 2), + ('flags2', ctypes.c_uint8), + ('rsvd', ctypes.c_uint8), ] diff --git a/ics/structures/global_settings.py b/ics/structures/global_settings.py index 297ecb955..609c2febb 100644 --- a/ics/structures/global_settings.py +++ b/ics/structures/global_settings.py @@ -28,6 +28,7 @@ from ics.structures.srad_gigastar_settings import * from ics.structures.srad_jupiter_settings import * from ics.structures.srad_moon2_settings import * +from ics.structures.srad_moon3_settings import * from ics.structures.srad_pluto_settings import * from ics.structures.srad_star2_settings import * from ics.structures.srad_super_moon_settings import * @@ -80,6 +81,7 @@ class Nameless46561(ctypes.Union): ('epsilon', SRADEpsilonSettings), ('obd2lc', SOBD2LCSettings), ('rad_bms', SRADBMSSettings), + ('radmoon3', SRADMoon3Settings), ] diff --git a/ics/structures/ndis_adapter_information.py b/ics/structures/ndis_adapter_information.py deleted file mode 100644 index 377f62af1..000000000 --- a/ics/structures/ndis_adapter_information.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 ndis_adapter_information(ctypes.Structure): - _fields_ = [ - ('szName', ctypes.c_char * 128), - ('szDeviceName', ctypes.c_char * 64), - ('Status', ctypes.c_ulong), - ('bMAC_Address', ctypes.c_ubyte * 6), - ('bIPV6_Address', ctypes.c_ubyte * 16), - ('bIPV4_Address', ctypes.c_ubyte * 4), - ('EthernetPinConfig', ctypes.c_ulong), - ] - - -NDIS_ADAPTER_INFORMATION = ndis_adapter_information - diff --git a/ics/structures/s_device_settings.py b/ics/structures/s_device_settings.py index df81e7548..05e6ce9d8 100644 --- a/ics/structures/s_device_settings.py +++ b/ics/structures/s_device_settings.py @@ -30,6 +30,7 @@ from ics.structures.srad_gigastar_settings import * from ics.structures.srad_jupiter_settings import * from ics.structures.srad_moon2_settings import * +from ics.structures.srad_moon3_settings import * from ics.structures.srad_pluto_settings import * from ics.structures.srad_star2_settings import * from ics.structures.srad_super_moon_settings import * @@ -83,6 +84,7 @@ class Settings(ctypes.Union): ('rad_a2b', SRADA2BSettings), ('epsilon', SRADEpsilonSettings), ('rad_bms', SRADBMSSettings), + ('radmoon3', SRADMoon3Settings), ] diff --git a/ics/structures/s_fire3_settings.py b/ics/structures/s_fire3_settings.py index f7ec33f77..0683e7f33 100644 --- a/ics/structures/s_fire3_settings.py +++ b/ics/structures/s_fire3_settings.py @@ -11,10 +11,11 @@ from ics.structures.iso9141_keyword2000_settings import * from ics.structures.lin_settings import * from ics.structures.s_text_api_settings import * +from ics.structures.srad_gptp_settings_s import * from ics.structures.timesync_icshardware_settings import * -class Nameless63050(ctypes.Structure): +class Nameless39639(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -27,10 +28,10 @@ class Nameless63050(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless63050',) + _anonymous_ = ('Nameless39639',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless63050', Nameless63050), + ('Nameless39639', Nameless39639), ] @@ -102,6 +103,7 @@ class s_fire3_settings(ctypes.Structure): ('ethernet_2', ETHERNET_SETTINGS), ('ethernet2_2', ETHERNET_SETTINGS2), ('os_settings', Fire3LinuxSettings), + ('gPTP', RAD_GPTP_SETTINGS), ] diff --git a/ics/structures/s_flex_vnetz_settings.py b/ics/structures/s_flex_vnetz_settings.py index b3ca5a23a..da44cfc89 100644 --- a/ics/structures/s_flex_vnetz_settings.py +++ b/ics/structures/s_flex_vnetz_settings.py @@ -11,7 +11,7 @@ from ics.structures.timesync_icshardware_settings import * -class Nameless35335(ctypes.Structure): +class Nameless6024(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -23,10 +23,10 @@ class Nameless35335(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless35335',) + _anonymous_ = ('Nameless6024',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless35335', Nameless35335), + ('Nameless6024', Nameless6024), ] diff --git a/ics/structures/s_phy_reg_pkt.py b/ics/structures/s_phy_reg_pkt.py index f0ec91975..b33906bb1 100644 --- a/ics/structures/s_phy_reg_pkt.py +++ b/ics/structures/s_phy_reg_pkt.py @@ -11,8 +11,8 @@ class Nameless3555(ctypes.Structure): ('Enabled', ctypes.c_uint16, 1), ('WriteEnable', ctypes.c_uint16, 1), ('Clause45Enable', ctypes.c_uint16, 1), - ('status', ctypes.c_uint16, 2), - ('reserved', ctypes.c_uint16, 3), + ('status', ctypes.c_uint16, 3), + ('reserved', ctypes.c_uint16, 2), ('BusIndex', ctypes.c_uint16, 4), ('version', ctypes.c_uint16, 4), ] diff --git a/ics/structures/s_phy_reg_pkt_status.py b/ics/structures/s_phy_reg_pkt_status.py index ec4e70e81..5d95bded7 100644 --- a/ics/structures/s_phy_reg_pkt_status.py +++ b/ics/structures/s_phy_reg_pkt_status.py @@ -14,7 +14,7 @@ def from_param(cls, obj): PHYREG_FAILURE = enum.auto() PHYREG_INVALID_MDIO_BUS_INDEX = enum.auto() PHYREG_INVALID_PHY_ADDR = enum.auto() - PHYREG_RESERVED0 = enum.auto() + PHYREG_UNSUPPORTED_MDIO_CLAUSE = enum.auto() PHYREG_RESERVED1 = enum.auto() PHYREG_RESERVED2 = enum.auto() PHYREG_RESERVED3 = enum.auto() diff --git a/ics/structures/s_pluto_vl_lookup_entry_s.py b/ics/structures/s_pluto_vl_lookup_entry_s.py index f2ad7c7c9..56e03a69e 100644 --- a/ics/structures/s_pluto_vl_lookup_entry_s.py +++ b/ics/structures/s_pluto_vl_lookup_entry_s.py @@ -28,7 +28,7 @@ class vllupformat1(ctypes.Structure): -class Nameless6024(ctypes.Union): +class Nameless11656(ctypes.Union): _pack_ = 2 _fields_ = [ ('vllupformat0', vllupformat0), @@ -39,9 +39,9 @@ class Nameless6024(ctypes.Union): class s_pluto_vl_lookup_entry_s(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless6024',) + _anonymous_ = ('Nameless11656',) _fields_ = [ - ('Nameless6024', Nameless6024), + ('Nameless11656', Nameless11656), ] diff --git a/ics/structures/s_spi_port_settings.py b/ics/structures/s_spi_port_settings.py new file mode 100644 index 000000000..4f98f8527 --- /dev/null +++ b/ics/structures/s_spi_port_settings.py @@ -0,0 +1,17 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class s_spi_port_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('port_a_onbaord_external', ctypes.c_uint8), + ('port_b_onbaord_external', ctypes.c_uint8), + ] + + +_sSPI_PORT_SETTINGS = s_spi_port_settings +sSPI_PORT_SETTINGS = s_spi_port_settings + diff --git a/ics/structures/swil_bridge_config.py b/ics/structures/s_wil_bridge_config.py similarity index 76% rename from ics/structures/swil_bridge_config.py rename to ics/structures/s_wil_bridge_config.py index 424a60ef9..eeb2f29f1 100644 --- a/ics/structures/swil_bridge_config.py +++ b/ics/structures/s_wil_bridge_config.py @@ -10,13 +10,12 @@ class config(ctypes.Structure): ('can_id', ctypes.c_uint, 29), ('can_id_isExtended', ctypes.c_uint, 1), ('tcp_port', ctypes.c_uint16), - ('manager_onboard_external', ctypes.c_uint, 1), ('reserved', ctypes.c_uint, 18), ] -class swil_bridge_config(ctypes.Union): +class s_wil_bridge_config(ctypes.Union): _pack_ = 2 _fields_ = [ ('dword', ctypes.c_uint64), @@ -24,5 +23,5 @@ class swil_bridge_config(ctypes.Union): ] -SWILBridgeConfig = swil_bridge_config +sWILBridgeConfig = s_wil_bridge_config diff --git a/ics/structures/s_wil_connection_settings.py b/ics/structures/s_wil_connection_settings.py new file mode 100644 index 000000000..7e60607b6 --- /dev/null +++ b/ics/structures/s_wil_connection_settings.py @@ -0,0 +1,23 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.s_wil_fault_servicing_settings import * +from ics.structures.s_wil_network_data_capture_settings import * + + +class s_wil_connection_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('using_port_a', ctypes.c_uint8), + ('using_port_b', ctypes.c_uint8), + ('attemptConnect', ctypes.c_uint8), + ('fault_servicing_config', sWIL_FAULT_SERVICING_SETTINGS), + ('network_data_capture_config', sWIL_NETWORK_DATA_CAPTURE_SETTINGS), + ('sensor_buffer_size', ctypes.c_uint16), + ] + + +_sWIL_CONNECTION_SETTINGS = s_wil_connection_settings +sWIL_CONNECTION_SETTINGS = s_wil_connection_settings + diff --git a/ics/structures/s_wil_fault_servicing_settings.py b/ics/structures/s_wil_fault_servicing_settings.py new file mode 100644 index 000000000..c812651f1 --- /dev/null +++ b/ics/structures/s_wil_fault_servicing_settings.py @@ -0,0 +1,16 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class s_wil_fault_servicing_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('wBMSDeviceID', ctypes.c_uint8), + ('enabled', ctypes.c_uint8), + ] + + +sWIL_FAULT_SERVICING_SETTINGS = s_wil_fault_servicing_settings + diff --git a/ics/structures/s_wil_network_data_capture_settings.py b/ics/structures/s_wil_network_data_capture_settings.py new file mode 100644 index 000000000..261cee4be --- /dev/null +++ b/ics/structures/s_wil_network_data_capture_settings.py @@ -0,0 +1,15 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class s_wil_network_data_capture_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('enabled', ctypes.c_uint8), + ] + + +sWIL_NETWORK_DATA_CAPTURE_SETTINGS = s_wil_network_data_capture_settings + diff --git a/ics/structures/sobd2_lc_settings.py b/ics/structures/sobd2_lc_settings.py index 1eb7583f5..02055c301 100644 --- a/ics/structures/sobd2_lc_settings.py +++ b/ics/structures/sobd2_lc_settings.py @@ -13,7 +13,7 @@ from ics.structures.swcan_settings import * -class Nameless39639(ctypes.Structure): +class Nameless8267(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -25,10 +25,10 @@ class Nameless39639(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless39639',) + _anonymous_ = ('Nameless8267',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless39639', Nameless39639), + ('Nameless8267', Nameless8267), ] diff --git a/ics/structures/srad_moon3_settings.py b/ics/structures/srad_moon3_settings.py new file mode 100644 index 000000000..4a1e75fce --- /dev/null +++ b/ics/structures/srad_moon3_settings.py @@ -0,0 +1,33 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.ethernet10_g_settings import * + + +class flags(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('enableLatencyTest', ctypes.c_uint16, 1), + ('reserved', ctypes.c_uint16, 15), + ] + + + +class srad_moon3_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('perf_en', ctypes.c_uint16), + ('autoEth10g', ETHERNET10G_SETTINGS), + ('eth10g', ETHERNET10G_SETTINGS), + ('network_enables', ctypes.c_uint16), + ('network_enables_2', ctypes.c_uint16), + ('network_enabled_on_boot', ctypes.c_uint16), + ('network_enables_3', ctypes.c_uint16), + ('flags', flags), + ] + + +_SRADMoon3Settings = srad_moon3_settings +SRADMoon3Settings = srad_moon3_settings + diff --git a/ics/structures/srada2_b_settings.py b/ics/structures/srada2_b_settings.py index 0e9b8a92f..140babfbd 100644 --- a/ics/structures/srada2_b_settings.py +++ b/ics/structures/srada2_b_settings.py @@ -11,6 +11,7 @@ from ics.structures.lin_settings import * from ics.structures.logger_settings import * from ics.structures.rad_reporting_settings import * +from ics.structures.srad_gptp_settings_s import * from ics.structures.timesync_icshardware_settings import * @@ -49,6 +50,7 @@ class srada2_b_settings(ctypes.Structure): ('pwr_man_timeout', ctypes.c_uint32), ('pwr_man_enable', ctypes.c_uint16), ('ethernet', ETHERNET_SETTINGS2), + ('gPTP', RAD_GPTP_SETTINGS), ] diff --git a/ics/structures/sradbms_settings.py b/ics/structures/sradbms_settings.py index bff52e34a..272e77d9b 100644 --- a/ics/structures/sradbms_settings.py +++ b/ics/structures/sradbms_settings.py @@ -6,7 +6,9 @@ from ics.structures.canfd_settings import * from ics.structures.ethernet_settings import * from ics.structures.ethernet_settings2 import * -from ics.structures.swil_bridge_config import * +from ics.structures.s_spi_port_settings import * +from ics.structures.s_wil_bridge_config import * +from ics.structures.s_wil_connection_settings import * class flags(ctypes.Structure): @@ -39,7 +41,10 @@ class sradbms_settings(ctypes.Structure): ('pwr_man_timeout', ctypes.c_uint32), ('pwr_man_enable', ctypes.c_uint16), ('network_enabled_on_boot', ctypes.c_uint16), - ('wil_config', SWILBridgeConfig), + ('wil_config', sWILBridgeConfig), + ('spi_config', sSPI_PORT_SETTINGS), + ('wbms_wil_1', sWIL_CONNECTION_SETTINGS), + ('wbms_wil_2', sWIL_CONNECTION_SETTINGS), ] diff --git a/ics/structures/st_chip_versions.py b/ics/structures/st_chip_versions.py index f32565cf9..beae6aa15 100644 --- a/ics/structures/st_chip_versions.py +++ b/ics/structures/st_chip_versions.py @@ -159,6 +159,15 @@ class radmoon2_z7010_versions(ctypes.Structure): +class radmoon3_versions(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('mchip_major', ctypes.c_uint8), + ('mchip_minor', ctypes.c_uint8), + ] + + + class pluto_versions(ctypes.Structure): _pack_ = 2 _fields_ = [ @@ -300,6 +309,7 @@ class st_chip_versions(ctypes.Union): ('radsupermoon_versions', radsupermoon_versions), ('radmoon2_versions', radmoon2_versions), ('radmoon2_z7010_versions', radmoon2_z7010_versions), + ('radmoon3_versions', radmoon3_versions), ('pluto_versions', pluto_versions), ('radgigalog_versions', radgigalog_versions), ('radgigalog3_versions', radgigalog3_versions), diff --git a/ics/structures/svcan4_ind_settings.py b/ics/structures/svcan4_ind_settings.py index 2c8923cff..88ef347b2 100644 --- a/ics/structures/svcan4_ind_settings.py +++ b/ics/structures/svcan4_ind_settings.py @@ -10,7 +10,7 @@ from ics.structures.lin_settings import * -class Nameless8267(ctypes.Structure): +class Nameless35335(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -22,10 +22,10 @@ class Nameless8267(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless8267',) + _anonymous_ = ('Nameless35335',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless8267', Nameless8267), + ('Nameless35335', Nameless35335), ] diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index 2a2156ee9..a4d5f3091 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -570,78 +570,6 @@ } ] }, - { - "names": [], - "data_type": "Enum", - "packing": 2, - "is_anonymous": true, - "members": [ - { - "name": "LINK_SPEED_AUTO_NEGOTIATION ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "LINK_SPEED_1GBPS_FULL_DUPLEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "LINK_SPEED_1GBPS_HALF_DUPLEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "LINK_SPEED_100MBPS_FULL_DUPLEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "LINK_SPEED_100MBPS_HALF_DUPLEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "LINK_SPEED_10MBPS_FULL_DUPLEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "LINK_SPEED_10MBPS_HALF_DUPLEX", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "LINK_SPEED_COUNT", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, { "names": [ "_EDiskFormat", @@ -2190,6 +2118,30 @@ } ] }, + { + "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": [ "_EDeviceSettingsType", @@ -2479,6 +2431,14 @@ "is_enum": false, "enum_value": null }, + { + "name": "DeviceRADMoon3SettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "DeviceSettingsTypeMax", "data_type": "int", @@ -2725,7 +2685,7 @@ "enum_value": null }, { - "name": "PHYREG_RESERVED0", + "name": "PHYREG_UNSUPPORTED_MDIO_CLAUSE", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2929,6 +2889,14 @@ "is_enum": false, "enum_value": null }, + { + "name": "enhancedFlashDriver", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "NUM_VALID_DEVICE_FEATURES", "data_type": "int", @@ -2954,7 +2922,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4746 ", + "name": "assert_line_4828 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2970,7 +2938,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4747 ", + "name": "assert_line_4829 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2986,7 +2954,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4748 ", + "name": "assert_line_4830 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3002,7 +2970,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4749 ", + "name": "assert_line_4831 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3018,7 +2986,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4750 ", + "name": "assert_line_4832 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3034,7 +3002,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4751 ", + "name": "assert_line_4833 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3050,7 +3018,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4752 ", + "name": "assert_line_4834 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3066,7 +3034,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4753 ", + "name": "assert_line_4835 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3082,7 +3050,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4754 ", + "name": "assert_line_4836 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3098,7 +3066,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4755 ", + "name": "assert_line_4837 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3114,7 +3082,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4756 ", + "name": "assert_line_4838 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3130,7 +3098,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4757 ", + "name": "assert_line_4839 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3146,7 +3114,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4758 ", + "name": "assert_line_4840 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3162,7 +3130,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4759 ", + "name": "assert_line_4841 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3178,7 +3146,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4760 ", + "name": "assert_line_4842 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3194,7 +3162,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4761 ", + "name": "assert_line_4843 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3210,7 +3178,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4762 ", + "name": "assert_line_4844 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3226,7 +3194,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4763 ", + "name": "assert_line_4845 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3242,7 +3210,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4764 ", + "name": "assert_line_4846 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3258,7 +3226,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4765 ", + "name": "assert_line_4847 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3274,7 +3242,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4766 ", + "name": "assert_line_4848 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3290,7 +3258,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4767 ", + "name": "assert_line_4849 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3306,7 +3274,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4768 ", + "name": "assert_line_4850 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3322,7 +3290,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4769 ", + "name": "assert_line_4851 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3338,7 +3306,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4770 ", + "name": "assert_line_4852 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3354,7 +3322,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4771 ", + "name": "assert_line_4853 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3370,7 +3338,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4772 ", + "name": "assert_line_4854 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3386,7 +3354,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4773 ", + "name": "assert_line_4855 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3402,7 +3370,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4774 ", + "name": "assert_line_4856 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3418,7 +3386,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4775 ", + "name": "assert_line_4857 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3434,7 +3402,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4776 ", + "name": "assert_line_4858 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3450,7 +3418,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4777 ", + "name": "assert_line_4859 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3466,7 +3434,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4778 ", + "name": "assert_line_4860 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3482,7 +3450,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4779 ", + "name": "assert_line_4861 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3498,7 +3466,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4780 ", + "name": "assert_line_4862 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3514,7 +3482,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4781 ", + "name": "assert_line_4863 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3530,7 +3498,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4782 ", + "name": "assert_line_4864 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3546,7 +3514,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4783 ", + "name": "assert_line_4865 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3562,7 +3530,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4784 ", + "name": "assert_line_4866 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3578,7 +3546,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4785 ", + "name": "assert_line_4867 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3594,7 +3562,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4786 ", + "name": "assert_line_4868 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3610,7 +3578,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4787 ", + "name": "assert_line_4869 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3626,7 +3594,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4788 ", + "name": "assert_line_4870 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3642,7 +3610,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4789 ", + "name": "assert_line_4871 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3658,7 +3626,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4790 ", + "name": "assert_line_4872 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3674,7 +3642,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4791 ", + "name": "assert_line_4873 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3690,7 +3658,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4792 ", + "name": "assert_line_4874 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3706,7 +3674,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4793 ", + "name": "assert_line_4875 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3722,7 +3690,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4794 ", + "name": "assert_line_4876 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3738,7 +3706,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4795 ", + "name": "assert_line_4877 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3754,7 +3722,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4796 ", + "name": "assert_line_4878 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3770,7 +3738,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4797 ", + "name": "assert_line_4879 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3786,7 +3754,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4798 ", + "name": "assert_line_4880 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3802,7 +3770,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4799 ", + "name": "assert_line_4881 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3818,7 +3786,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4800 ", + "name": "assert_line_4882 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3834,7 +3802,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4801 ", + "name": "assert_line_4883 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3850,7 +3818,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4802 ", + "name": "assert_line_4884 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3866,7 +3834,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4803 ", + "name": "assert_line_4885 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3882,7 +3850,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4804 ", + "name": "assert_line_4886 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3898,7 +3866,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4805 ", + "name": "assert_line_4887 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3914,7 +3882,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4806 ", + "name": "assert_line_4888 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3930,7 +3898,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4807 ", + "name": "assert_line_4889 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3946,7 +3914,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4808 ", + "name": "assert_line_4890 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3962,7 +3930,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4809 ", + "name": "assert_line_4891 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3978,7 +3946,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4810 ", + "name": "assert_line_4892 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3994,7 +3962,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4811 ", + "name": "assert_line_4893 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4010,7 +3978,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4812 ", + "name": "assert_line_4894 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4026,7 +3994,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4813 ", + "name": "assert_line_4895 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4042,7 +4010,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4814 ", + "name": "assert_line_4896 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4058,7 +4026,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4815 ", + "name": "assert_line_4897 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4074,7 +4042,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4816 ", + "name": "assert_line_4898 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4090,7 +4058,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4817 ", + "name": "assert_line_4899 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4098,5 +4066,21 @@ "enum_value": "1/(int)(!!(sizeof(SRADBMSSettings)" } ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_4900 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(SRADMoon3Settings)" + } + ] } ] \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json index bf295abb0..e0aea947d 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -1953,6 +1953,32 @@ } ] }, + { + "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" @@ -2901,10 +2927,18 @@ "is_enum": false, "enum_value": null }, + { + "name": "flags2", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "rsvd", "data_type": "uint8_t", - "array_length": 2, + "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -8795,6 +8829,14 @@ "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 } ] }, @@ -8905,6 +8947,99 @@ } ] }, + { + "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 + } + ] + } + ] + }, { "names": [ "_SRADGigalogSettings", @@ -14934,6 +15069,14 @@ "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 } ] }, @@ -15629,7 +15772,137 @@ }, { "names": [ - "SWILBridgeConfig" + "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": [ + "_sSPI_PORT_SETTINGS", + "sSPI_PORT_SETTINGS" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "port_a_onbaord_external", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "port_b_onbaord_external", + "data_type": "uint8_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "sWILBridgeConfig" ], "data_type": "Union", "packing": 2, @@ -15675,14 +15948,6 @@ "is_enum": false, "enum_value": null }, - { - "name": "manager_onboard_external", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, { "name": "reserved", "data_type": "unsigned", @@ -15868,7 +16133,31 @@ }, { "name": "wil_config", - "data_type": "SWILBridgeConfig", + "data_type": "sWILBridgeConfig", + "array_length": 0, + "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, @@ -16210,6 +16499,14 @@ "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 } ] } @@ -16543,6 +16840,14 @@ "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 } ] } @@ -19382,7 +19687,7 @@ "name": "status", "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 2, + "bitfield_size": 3, "is_enum": false, "enum_value": null }, @@ -19390,7 +19695,7 @@ "name": "reserved", "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 3, + "bitfield_size": 2, "is_enum": false, "enum_value": null }, diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index f23c2da25..f08c9282a 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -18,16 +18,11 @@ 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) - typedef signed char int8_t; typedef short int16_t; typedef int int32_t; @@ -36,7 +31,6 @@ 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; @@ -45,7 +39,6 @@ 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; @@ -54,11 +47,9 @@ 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) - #pragma warning(disable : 4200) typedef struct SExtendedDataFlashHeader { @@ -66,7 +57,6 @@ typedef struct SExtendedDataFlashHeader uint16_t chksum; uint32_t len; } ExtendedDataFlashHeader_t; - typedef struct { uint32_t DeviceType; @@ -74,42 +64,30 @@ typedef struct int32_t NumberOfClients; int32_t SerialNumber; int32_t MaxAllowedClients; - } NeoDevice; - typedef struct _NeoDeviceEx { NeoDevice neoDevice; - uint32_t FirmwareMajor; uint32_t FirmwareMinor; - uint32_t Status; - uint32_t Options; - void* pAvailWIFINetwork; void* pWIFIInterfaceInfo; - int isEthernetDevice; - uint8_t MACAddress[6]; uint16_t hardwareRev; uint16_t revReserved; uint32_t Reserved[6]; - } NeoDeviceEx; - typedef union tagOptionsOpenNeoEx { struct { int32_t iNetworkID; } CANOptions; - uint32_t Reserved[16]; } OptionsOpenNeoEx, *POptionsOpenNeoEx; - typedef union tagOptionsFindNeoEx { struct @@ -117,22 +95,17 @@ typedef union tagOptionsFindNeoEx int32_t iNetworkID; } CANOptions; uint32_t Reserved[16]; - } 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; - int32_t iMainFirmDateDay; int32_t iMainFirmDateMonth; int32_t iMainFirmDateYear; @@ -140,36 +113,27 @@ typedef struct _stAPIFirmwareInfo int32_t iMainFirmDateMin; int32_t iMainFirmDateSecond; int32_t iMainFirmChkSum; - 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) - #pragma pack(push, 2) - enum { AUTO, USE_TQ }; - enum { BPS20, @@ -191,7 +155,6 @@ enum CAN_BPS8000, CAN_BPS10000, }; - enum { NORMAL = 0, @@ -200,7 +163,6 @@ enum LISTEN_ONLY = 3, LISTEN_ALL = 7 }; - typedef struct { uint8_t Mode; @@ -215,7 +177,6 @@ typedef struct uint8_t auto_baud; uint8_t innerFrameDelay25us; } CAN_SETTINGS; - enum { NO_CANFD, @@ -224,7 +185,6 @@ enum CANFD_ENABLED_ISO, CANFD_BRS_ENABLED_ISO }; - typedef struct _CANFD_SETTINGS { uint8_t FDMode; @@ -237,7 +197,6 @@ typedef struct _CANFD_SETTINGS uint8_t FDTDC; uint8_t reserved; } CANFD_SETTINGS; - enum { SWCAN_AUTOSWITCH_DISABLED, @@ -245,7 +204,6 @@ enum SWCAN_AUTOSWITCH_WITH_RESISTOR, SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED }; - typedef struct { uint8_t Mode; @@ -261,7 +219,6 @@ typedef struct uint8_t auto_baud; uint8_t RESERVED; } SWCAN_SETTINGS; - enum { BPS5000, @@ -274,13 +231,11 @@ enum BPS100000, BPS117647 }; - enum { RESISTOR_ON, RESISTOR_OFF }; - enum { SLEEP_MODE, @@ -288,7 +243,6 @@ enum NORMAL_MODE, FAST_MODE }; - typedef struct _LIN_SETTINGS { uint32_t Baudrate; @@ -298,14 +252,12 @@ typedef struct _LIN_SETTINGS uint8_t MasterResistor; uint8_t Mode; } LIN_SETTINGS; - typedef struct { uint16_t time_500us; uint16_t k; uint16_t l; } ISO9141_KEYWORD2000__INIT_STEP; - typedef struct { uint32_t Baudrate; @@ -318,7 +270,6 @@ typedef struct uint16_t p4_500us; uint16_t chksum_enabled; } ISO9141_KEYWORD2000_SETTINGS; - typedef struct _UART_SETTINGS { uint16_t Baudrate; @@ -341,12 +292,10 @@ typedef struct _UART_SETTINGS }; }; } UART_SETTINGS; - typedef struct { uint16_t enable_convert_mode; } J1708_SETTINGS; - typedef struct _SRedSettings { CAN_SETTINGS can1; @@ -354,7 +303,6 @@ typedef struct _SRedSettings LIN_SETTINGS lin1; LIN_SETTINGS lin2; } SRedSettings; - typedef struct _STextAPISettings { uint32_t can1_tx_id; @@ -379,9 +327,7 @@ typedef struct _STextAPISettings }; uint32_t DWord; } can2_options; - uint32_t network_enables; - uint32_t can3_tx_id; uint32_t can3_rx_id; union @@ -393,7 +339,6 @@ typedef struct _STextAPISettings }; uint32_t DWord; } can3_options; - uint32_t can4_tx_id; uint32_t can4_rx_id; union @@ -405,11 +350,8 @@ typedef struct _STextAPISettings }; uint32_t DWord; } can4_options; - uint32_t reserved[5]; - } STextAPISettings; - typedef union _stChipVersions { struct @@ -423,7 +365,6 @@ typedef union _stChipVersions uint8_t jpic_maj; uint8_t jpic_min; } fire_versions; - struct { uint8_t mpic_maj; @@ -435,31 +376,26 @@ typedef union _stChipVersions 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 mpic_maj; uint8_t mpic_min; } vcanrf_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; @@ -469,13 +405,11 @@ typedef union _stChipVersions 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; @@ -485,13 +419,11 @@ typedef union _stChipVersions 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; @@ -518,6 +450,11 @@ typedef union _stChipVersions 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; @@ -527,25 +464,21 @@ typedef union _stChipVersions 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 mchip_major; @@ -558,7 +491,6 @@ typedef union _stChipVersions uint8_t mchip_major; uint8_t mchip_minor; } jupiter_versions; - struct { uint8_t zchip_major; @@ -566,13 +498,11 @@ typedef union _stChipVersions uint8_t schip_major; uint8_t schip_minor; } fire3_versions; - struct { uint8_t mchip_major; uint8_t mchip_minor; } rad_moon_duo_versions; - struct { uint8_t mchip_major; @@ -580,34 +510,28 @@ typedef union _stChipVersions 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; - } stChipVersions; - typedef struct _SNeoMostGatewaySettings { uint16_t netId; uint8_t zero0; uint8_t Config; } SNeoMostGatewaySettings; - enum { OPETH_FUNC_TAP = 0, @@ -617,7 +541,6 @@ enum OPETH_FUNC_RAW_MEDIA_CONVERTER2, OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY, }; - typedef struct OP_ETH_GENERAL_SETTINGS_t { uint8_t ucInterfaceType; @@ -641,7 +564,6 @@ typedef struct OP_ETH_GENERAL_SETTINGS_t uint32_t uFlags; }; } OP_ETH_GENERAL_SETTINGS; - typedef struct SRAD_GPTP_SETTINGS_s { uint32_t neighborPropDelayThresh; @@ -660,31 +582,26 @@ typedef struct SRAD_GPTP_SETTINGS_s uint8_t enableClockSyntonization; uint8_t rsvd[15]; } RAD_GPTP_SETTINGS; - typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s { RAD_GPTP_SETTINGS gPTP; OP_ETH_GENERAL_SETTINGS tap; } RAD_GPTP_AND_TAP_SETTINGS; - typedef struct HW_ETH_SETTINGS_t { OP_ETH_GENERAL_SETTINGS General_Settings; } HW_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; @@ -693,7 +610,6 @@ typedef struct OP_ETH_SETTINGS_t { struct { - unsigned char mac_addr1[6]; unsigned char mac_addr2[6]; unsigned short mac_spoofing_en : 1; @@ -705,7 +621,6 @@ typedef struct OP_ETH_SETTINGS_t unsigned char reserved0[14]; }; } OP_ETH_SETTINGS; - typedef struct ETHERNET_SETTINGS_t { uint8_t duplex; @@ -716,30 +631,16 @@ typedef struct ETHERNET_SETTINGS_t } ETHERNET_SETTINGS; typedef struct ETHERNET_SETTINGS2_t { - uint8_t flags; uint8_t link_speed; uint32_t ip_addr; uint32_t netmask; uint32_t gateway; - uint8_t rsvd[2]; + uint8_t flags2; + uint8_t rsvd; } ETHERNET_SETTINGS2; - -enum -{ - LINK_SPEED_AUTO_NEGOTIATION = 0, - LINK_SPEED_1GBPS_FULL_DUPLEX, - LINK_SPEED_1GBPS_HALF_DUPLEX, - LINK_SPEED_100MBPS_FULL_DUPLEX, - LINK_SPEED_100MBPS_HALF_DUPLEX, - LINK_SPEED_10MBPS_FULL_DUPLEX, - LINK_SPEED_10MBPS_HALF_DUPLEX, - - LINK_SPEED_COUNT, -}; typedef struct ETHERNET10G_SETTINGS_t { - uint32_t flags; uint32_t ip_addr; uint32_t netmask; @@ -747,14 +648,11 @@ typedef struct ETHERNET10G_SETTINGS_t uint8_t link_speed; uint8_t rsvd2[7]; } ETHERNET10G_SETTINGS; - typedef struct LOGGER_SETTINGS_t { - uint8_t extraction_timeout; uint8_t rsvd[3]; } LOGGER_SETTINGS; - typedef struct DISK_SETTINGS_t { uint8_t disk_layout; @@ -762,14 +660,12 @@ typedef struct DISK_SETTINGS_t uint32_t disk_enables; uint8_t rsvd[8]; } DISK_SETTINGS; - typedef struct { uint8_t term_enabled; uint8_t term_network; uint16_t reserved[2]; } CANTERM_SETTINGS; - typedef struct { uint8_t MasterEnable; @@ -777,14 +673,12 @@ typedef struct uint8_t MasterNetwork; uint8_t SlaveNetwork; } TIMESYNC_ICSHARDWARE_SETTINGS; - typedef enum _EDiskFormat { DiskFormatUnknown = 0, DiskFormatFAT32, DiskFormatexFAT, } EDiskFormat; - typedef enum _EDiskLayout { DiskLayoutSpanned = 0, @@ -793,32 +687,27 @@ typedef enum _EDiskLayout DiskLayoutRAID5, DiskLayoutIndividual, } EDiskLayout; - typedef struct _SDiskStatus { uint16_t status; uint8_t sectors[8]; uint8_t bytesPerSector[4]; } SDiskStatus; - typedef struct _SDiskStructure { DISK_SETTINGS settings; uint16_t options; } SDiskStructure; - typedef struct _SDiskDetails { SDiskStructure structure; SDiskStatus status[12]; } SDiskDetails; - typedef struct _SDiskFormatProgress { uint16_t state; uint8_t sectorsRemaining[8]; } SDiskFormatProgress; - typedef struct _StartDHCPServerCommand { uint16_t networkId; @@ -830,40 +719,30 @@ typedef struct _StartDHCPServerCommand uint32_t leaseTime; uint32_t overwrite; } StartDHCPServerCommand; - typedef struct _StopDHCPServerCommand { uint16_t networkId; } StopDHCPServerCommand; - typedef enum _ExtendedResponseCode { EXTENDED_RESPONSE_OK = 0, - EXTENDED_RESPONSE_INVALID_COMMAND = -1, - EXTENDED_RESPONSE_INVALID_STATE = -2, - EXTENDED_RESPONSE_OPERATION_FAILED = -3, - EXTENDED_RESPONSE_OPERATION_PENDING = -4, - EXTENDED_RESPONSE_INVALID_PARAMETER = -5, } ExtendedResponseCode; - typedef struct _ExtendedResponseGeneric { uint16_t commandType; int32_t returnCode; } ExtendedResponseGeneric; - typedef struct _GenericAPISelector { uint8_t apiIndex; uint8_t instance; uint8_t functionID; } GenericAPISelector; - typedef struct _GenericAPIStatus { GenericAPISelector api; @@ -871,53 +750,45 @@ typedef struct _GenericAPIStatus uint8_t calbackError; uint8_t finishedProcessing; } GenericAPIStatus; - typedef struct _GenericAPIData { GenericAPISelector api; uint8_t bData[513]; uint16_t length; } GenericAPIData; - 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; - typedef struct { uint16_t cmdVersion; uint16_t numValidBits; uint32_t featureBitfields[0]; } GetSupportedFeaturesResponse; - typedef struct _VersionReport { uint8_t valid; @@ -928,18 +799,15 @@ typedef struct _VersionReport uint32_t dotVersion; uint32_t commitHash; } VersionReport; - typedef struct _GetComponentVersions { uint32_t reserved[2]; } GetComponentVersions; - typedef struct _ExtendedGetVersionsResponse { uint16_t numVersions; VersionReport versions[(16)]; } GetComponentVersionsResponse; - enum { swUpdateWrite, @@ -949,7 +817,6 @@ enum swUpdateGetBufferSize, swUpdateCheckVersion, }; - typedef struct { uint32_t componentIdentifier; @@ -958,24 +825,19 @@ typedef struct uint32_t commandSizeOrProgress; uint8_t commandData[0]; } SoftwareUpdateCommand; - typedef struct _SExtSubCmdHdr { uint16_t command; uint16_t length; } SExtSubCmdHdr; - #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; @@ -1001,25 +863,20 @@ struct priority_vector 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; - #pragma pack(pop) - typedef struct _SExtSubCmdComm { SExtSubCmdHdr header; @@ -1044,7 +901,6 @@ typedef struct _SExtSubCmdComm UartPortData uartData; UartPortPortBytes uartBytesLen; UartPortConfig uartConfig; - } extension; } SExtSubCmdComm; enum @@ -1053,10 +909,8 @@ enum SERDESCAM_MODE_SPLITTER, SERDESCAM_MODE_LOG_ONLY, SERDESCAM_MODE_CUSTOM, - SERDESCAM_MODE_COUNT, }; - enum { SERDESCAM_PIXEL_BIT_POS_0 = 0, @@ -1064,7 +918,6 @@ enum SERDESCAM_PIXEL_BIT_POS_2, SERDESCAM_PIXEL_BIT_POS_3, }; - enum { SERDESCAM_VIDEO_FORMAT_NONE = -1, @@ -1103,7 +956,6 @@ enum 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, @@ -1134,7 +986,6 @@ enum SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32, 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, @@ -1143,7 +994,6 @@ enum 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_BAYER_GBRG_8, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED, @@ -1152,7 +1002,6 @@ enum 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_BAYER_GRBG_8, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED, @@ -1161,10 +1010,8 @@ enum 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_COUNT, }; - typedef struct SERDESCAM_SETTINGS_t { uint32_t flags; @@ -1177,7 +1024,6 @@ typedef struct SERDESCAM_SETTINGS_t uint8_t frameSkip; uint8_t rsvd2[19]; } SERDESCAM_SETTINGS; - typedef struct SERDESPOC_SETTINGS_t { uint8_t mode; @@ -1185,7 +1031,6 @@ typedef struct SERDESPOC_SETTINGS_t uint8_t voltage; uint16_t chksum; } SERDESPOC_SETTINGS; - enum { SERDESGEN_MOD_ID_NONE = 0, @@ -1193,30 +1038,22 @@ enum SERDESGEN_MOD_ID_GMSL2_2x2 = 2, SERDESGEN_MOD_ID_GMSL1_4x4 = 3, SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2 = 4, - SERDESGEN_MOD_ID_UNKNOWN = -1, }; - typedef struct SERDESGEN_SETTINGS_t { - uint16_t flags; uint8_t rsvd1; uint8_t mod_id; uint16_t tx_speed; uint16_t rx_speed; - uint8_t rsvd2[24]; } SERDESGEN_SETTINGS; - typedef struct _RadMoonDuoConverterSettings { - uint8_t linkMode0; uint8_t linkMode1; - uint8_t converter1Mode; - uint32_t ipAddress; uint32_t ipMask; uint32_t ipGateway; @@ -1231,7 +1068,6 @@ typedef struct RAD_REPORTING_SETTINGS_t uint16_t fan_speed_interval_ms; uint8_t rsvd[2]; } RAD_REPORTING_SETTINGS; - enum { REPORT_ON_PERIODIC, @@ -1251,107 +1087,80 @@ enum REPORT_ON_PWM_IN1, REPORT_ON_GPS, }; - 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; - 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; uint16_t vnetBits; } SFireSettings; - 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; - uint16_t misc_io_initial_ddr; uint16_t misc_io_initial_latch; uint16_t misc_io_analog_enable; @@ -1359,53 +1168,38 @@ typedef struct _SFireVnetSettings 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; - 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; uint16_t vnetBits; - CAN_SETTINGS can5; CAN_SETTINGS can6; LIN_SETTINGS lin5; SWCAN_SETTINGS swcan2; } SFireVnetSettings; - typedef struct _SCyanSettings { uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -1422,15 +1216,12 @@ typedef struct _SCyanSettings CANFD_SETTINGS canfd7; CAN_SETTINGS can8; CANFD_SETTINGS canfd8; - 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; @@ -1443,38 +1234,27 @@ typedef struct _SCyanSettings 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; - uint16_t network_enables_3; uint16_t idle_wakeup_network_enables_3; - uint16_t can_switch_mode; STextAPISettings text_api; uint64_t termination_enables; @@ -1498,27 +1278,20 @@ typedef struct _SCyanSettings DISK_SETTINGS disk; ETHERNET_SETTINGS2 ethernet2; } 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; - typedef struct _SVCAN4Settings { uint16_t perf_en; @@ -1553,82 +1326,59 @@ typedef struct _SVCAN4Settings uint16_t pwr_man_timeout; ETHERNET_SETTINGS2 ethernet2; } SVCAN4Settings; - 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; - typedef struct _SECUSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; @@ -1636,48 +1386,34 @@ typedef struct _SECUSettings 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; - typedef struct _SPendantSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; @@ -1685,32 +1421,23 @@ typedef struct _SPendantSettings 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; - typedef struct _SIEVBSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; @@ -1718,58 +1445,39 @@ typedef struct _SIEVBSettings 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; - 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; - enum eGPTPPort { ePortDisabled = 0, @@ -1788,7 +1496,6 @@ enum eGPTPPort ePortStdEth1 = 13, ePortStdEth2 = 14, }; - enum eGPTPRole { eRoleDisabled = 0, @@ -1796,11 +1503,9 @@ enum eGPTPRole eRoleMaster = 2, eRoleSlave = 3, }; - typedef struct _SRADGalaxySettings { uint16_t perf_en; - OP_ETH_GENERAL_SETTINGS opEthGen; OP_ETH_SETTINGS opEth1; OP_ETH_SETTINGS opEth2; @@ -1814,7 +1519,6 @@ typedef struct _SRADGalaxySettings OP_ETH_SETTINGS opEth10; OP_ETH_SETTINGS opEth11; OP_ETH_SETTINGS opEth12; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -1831,12 +1535,10 @@ typedef struct _SRADGalaxySettings CANFD_SETTINGS canfd7; CAN_SETTINGS can8; CANFD_SETTINGS canfd8; - 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; @@ -1845,26 +1547,18 @@ typedef struct _SRADGalaxySettings 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; @@ -1872,30 +1566,23 @@ typedef struct _SRADGalaxySettings RAD_REPORTING_SETTINGS reporting; DISK_SETTINGS disk; LOGGER_SETTINGS logger; - ETHERNET_SETTINGS2 ethernet1; ETHERNET_SETTINGS2 ethernet2; uint16_t network_enables_4; - RAD_GPTP_SETTINGS gPTP; } SRADGalaxySettings; - 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; @@ -1904,26 +1591,18 @@ typedef struct _SRADStar2Settings 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; @@ -1931,33 +1610,24 @@ typedef struct _SRADStar2Settings uint16_t hwComLatencyTestEn; RAD_REPORTING_SETTINGS reporting; ETHERNET_SETTINGS2 ethernet; - RAD_GPTP_SETTINGS gPTP; } SRADStar2Settings; - 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; } SRADSuperMoonSettings; - typedef enum { tdmModeTDM2 = 0, @@ -1969,28 +1639,23 @@ typedef enum tdmModeTDM24, tdmModeTDM32, } A2BTDMMode; - typedef enum { a2bNodeTypeMonitor = 0, a2bNodeTypeMaster, a2bNodeTypeSlave, } A2BNodeType; - typedef struct { uint8_t tdmMode; uint8_t upstreamChannelOffset; uint8_t downstreamChannelOffset; uint8_t nodeType; - uint8_t flags; uint8_t reserved[15]; } A2BMonitorSettings; - typedef struct _SRADA2BSettings { - uint16_t perf_en; struct { @@ -2018,35 +1683,42 @@ typedef struct _SRADA2BSettings uint32_t pwr_man_timeout; uint16_t pwr_man_enable; ETHERNET_SETTINGS2 ethernet; + RAD_GPTP_SETTINGS gPTP; } SRADA2BSettings; - 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; } SRADMoon2Settings; - +typedef struct _SRADMoon3Settings +{ + uint16_t perf_en; + ETHERNET10G_SETTINGS autoEth10g; + ETHERNET10G_SETTINGS eth10g; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enabled_on_boot; + uint16_t network_enables_3; + struct + { + uint16_t enableLatencyTest : 1; + uint16_t reserved : 15; + } flags; +} SRADMoon3Settings; typedef struct _SRADGigalogSettings { uint32_t ecu_id; - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -2063,36 +1735,25 @@ typedef struct _SRADGigalogSettings 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]; uint8_t rsvd2[8]; - DISK_SETTINGS disk; - TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; struct { @@ -2101,31 +1762,23 @@ typedef struct _SRADGigalogSettings 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; - } SRADGigalogSettings; - typedef struct _SRADGigastarSettings { uint32_t ecu_id; - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -2138,34 +1791,23 @@ typedef struct _SRADGigastarSettings 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 { @@ -2175,13 +1817,10 @@ typedef struct _SRADGigastarSettings } 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; @@ -2191,31 +1830,22 @@ typedef struct _SRADGigastarSettings RAD_REPORTING_SETTINGS reporting; uint16_t network_enables_4; SERDESGEN_SETTINGS serdesgen; - RAD_GPTP_SETTINGS gPTP; } SRADGigastarSettings; - typedef struct _SVividCANSettings { uint32_t ecu_id; - CAN_SETTINGS can1; SWCAN_SETTINGS swcan1; CAN_SETTINGS lsftcan1; - 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; @@ -2223,21 +1853,16 @@ typedef struct _SVividCANSettings uint32_t reserved : 30; } flags; } SVividCANSettings; - 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; @@ -2245,30 +1870,22 @@ typedef struct _SOBD2SimSettings 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; - typedef struct _CmProbeSettings { - uint16_t network_enables; uint16_t network_enabled_on_boot; - } CmProbeSettings, SCmProbeSettings; - typedef struct _OBD2ProSettings { - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -2277,31 +1894,21 @@ typedef struct _OBD2ProSettings CANFD_SETTINGS canfd3; CAN_SETTINGS can4; CANFD_SETTINGS canfd4; - SWCAN_SETTINGS swcan1; - LIN_SETTINGS lin1; LIN_SETTINGS lin2; - ETHERNET_SETTINGS ethernet; - 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; - int16_t iso15765_separation_time_offset; - STextAPISettings text_api; struct { @@ -2310,31 +1917,22 @@ typedef struct _OBD2ProSettings uint32_t reserved : 30; } flags; uint16_t can_switch_mode; - uint16_t misc_io_analog_enable; ETHERNET_SETTINGS2 ethernet2; } OBD2ProSettings, SOBD2ProSettings; - typedef struct _VCAN412Settings { - 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; - int16_t iso15765_separation_time_offset; - STextAPISettings text_api; struct { @@ -2343,27 +1941,19 @@ typedef struct _VCAN412Settings uint32_t reserved : 30; } flags; } VCAN412Settings, SVCAN412Settings; - typedef struct _neoECU_AVBSettings { - 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; - int16_t iso15765_separation_time_offset; - STextAPISettings text_api; struct { @@ -2384,7 +1974,6 @@ typedef struct SPluto_L2AddressLookupEntry_s uint8_t pad2; uint8_t pad3; } SPluto_L2AddressLookupEntry; - typedef struct SPluto_L2AddressLookupParams_s { uint16_t maxage; @@ -2395,14 +1984,12 @@ typedef struct SPluto_L2AddressLookupParams_s uint8_t no_mgmt_learn; uint8_t pad; } SPluto_L2AddressLookupParams; - typedef struct SPluto_L2ForwardingParams_s { uint16_t part_spc[8]; uint8_t max_dynp; uint8_t pad; } SPluto_L2ForwardingParams; - typedef struct SPluto_L2ForwardingEntry_s { uint8_t vlan_pmap[8]; @@ -2411,7 +1998,6 @@ typedef struct SPluto_L2ForwardingEntry_s uint8_t fl_domain; uint8_t pad; } SPluto_L2ForwardingEntry; - typedef struct SPluto_L2Policing_s { uint16_t smax; @@ -2420,7 +2006,6 @@ typedef struct SPluto_L2Policing_s uint8_t sharindx; uint8_t partition; } SPluto_L2Policing; - typedef struct SPluto_VlanLookup_s { uint16_t vlanid; @@ -2431,7 +2016,6 @@ typedef struct SPluto_VlanLookup_s uint8_t tag_port; uint8_t pad; } SPluto_VlanLookup; - typedef struct SPluto_MacConfig_s { uint16_t top[8]; @@ -2455,7 +2039,6 @@ typedef struct SPluto_MacConfig_s uint8_t ingress; uint8_t pad; } SPluto_MacConfig; - typedef struct SPluto_RetaggingEntry_s { uint16_t vlan_egr; @@ -2467,7 +2050,6 @@ typedef struct SPluto_RetaggingEntry_s uint8_t destports; uint8_t pad; } SPluto_RetaggingEntry; - typedef struct SPluto_GeneralParams_s { uint64_t mac_fltres1; @@ -2491,12 +2073,10 @@ typedef struct SPluto_GeneralParams_s uint8_t mirr_port; uint8_t ignore2stf; } SPluto_GeneralParams; - typedef struct SPluto_VlLookupEntry_s { union { - struct { uint64_t macaddr; @@ -2506,7 +2086,6 @@ typedef struct SPluto_VlLookupEntry_s uint8_t port; uint8_t vlanprior; } vllupformat0; - struct { uint16_t vlid; @@ -2516,7 +2095,6 @@ typedef struct SPluto_VlLookupEntry_s } vllupformat1; }; } SPluto_VlLookupEntry; - typedef struct SPluto_VlPolicingEntry_s { uint64_t type; @@ -2525,14 +2103,12 @@ typedef struct SPluto_VlPolicingEntry_s uint64_t bag; uint64_t jitter; } SPluto_VlPolicingEntry; - typedef struct SPluto_VlForwardingParams_s { uint16_t partspc[8]; uint8_t debugen; uint8_t pad; } SPluto_VlForwardingParams; - typedef struct SPluto_VlForwardingEntry_s { uint8_t type; @@ -2540,13 +2116,11 @@ typedef struct SPluto_VlForwardingEntry_s uint8_t partition; uint8_t destports; } SPluto_VlForwardingEntry; - typedef struct SPluto_AVBParams_s { uint64_t destmeta; uint64_t srcmeta; } SPluto_AVBParams; - typedef struct SPluto_ClockSyncParams_s { uint64_t etssrcpcf; @@ -2611,7 +2185,6 @@ typedef struct SPlutoPtpParams_s uint8_t gPTPportRole[5 - 1]; uint8_t portEnable[5 - 1]; } PlutoPtpParams_t; - typedef struct SPluto_CustomParams_s { uint8_t mode[5]; @@ -2622,7 +2195,6 @@ typedef struct SPluto_CustomParams_s uint8_t pad; PlutoPtpParams_t ptpParams; } SPluto_CustomParams; - typedef struct SPlutoSwitchSettings_s { ExtendedDataFlashHeader_t flashHeader; @@ -2635,31 +2207,23 @@ typedef struct SPlutoSwitchSettings_s SPluto_MacConfig macConfig[5]; SPluto_GeneralParams generalParams; SPluto_RetaggingEntry retagging[32]; - } SPlutoSwitchSettings; - typedef struct _RADPlutoSettings { - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; uint16_t iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -2667,7 +2231,6 @@ typedef struct _RADPlutoSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; - STextAPISettings text_api; struct { @@ -2676,11 +2239,9 @@ typedef struct _RADPlutoSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; - SPluto_CustomParams custom; ETHERNET_SETTINGS2 ethernet2; } SRADPlutoSettings; - typedef union { uint32_t word; @@ -2704,7 +2265,6 @@ typedef struct uint32_t ecu_id; SCANSleepID sleep_id; } CANHubSettings, SCANHubSettings; - typedef struct _SFlexVnetzSettings { uint16_t perf_en; @@ -2758,7 +2318,6 @@ typedef struct _SFlexVnetzSettings DISK_SETTINGS disk; ETHERNET_SETTINGS2 ethernet2; } SFlexVnetzSettings; - typedef enum _flexVnetMode { flexVnetModeDisabled, @@ -2767,7 +2326,6 @@ typedef enum _flexVnetMode flexVnetModeTwoSingle, flexVnetModeColdStart } flexVnetMode; - typedef struct _NeoECU12Settings { uint32_t ecu_id; @@ -2780,18 +2338,14 @@ typedef struct _NeoECU12Settings 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; - 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; @@ -2812,7 +2366,6 @@ typedef struct _NeoECU12Settings } flags; uint32_t reserved_field[2]; } SNeoECU12Settings; - typedef struct _VCAN4IndSettings { CAN_SETTINGS can1; @@ -2824,13 +2377,11 @@ typedef struct _VCAN4IndSettings 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; @@ -2852,10 +2403,8 @@ typedef struct _VCAN4IndSettings } flags; ETHERNET_SETTINGS2 ethernet2; } VCAN4IndSettings, SVCAN4IndSettings; - typedef struct _SOBD2LCSettings { - uint16_t perf_en; CAN_SETTINGS can1; CANFD_SETTINGS canfd1; @@ -2867,7 +2416,6 @@ typedef struct _SOBD2LCSettings CANFD_SETTINGS canfd4; SWCAN_SETTINGS swcan1; LIN_SETTINGS lin1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; uint16_t iso_parity_1; uint16_t iso_msg_termination_1; @@ -2884,7 +2432,6 @@ typedef struct _SOBD2LCSettings uint32_t pwr_man_timeout; uint16_t pwr_man_enable; uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; STextAPISettings text_api; struct @@ -2903,7 +2450,6 @@ typedef struct _SOBD2LCSettings ETHERNET_SETTINGS ethernet; ETHERNET_SETTINGS2 ethernet2; } OBD2LCSettings, SOBD2LCSettings; - typedef struct SJupiterPtpParams_s { uint32_t neighborPropDelay; @@ -2913,7 +2459,6 @@ typedef struct SJupiterPtpParams_s int8_t operationLogSyncInterval; uint8_t gPTPportRole[8]; } JupiterPtpParams_t; - typedef struct _SRADJupiterSwitchSettings { uint8_t phyMode[8]; @@ -2927,29 +2472,22 @@ typedef struct _SRADJupiterSwitchSettings uint8_t pad; JupiterPtpParams_t ptpParams; } SRADJupiterSwitchSettings; - typedef struct _SRADJupiterSettings { - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; uint16_t iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -2957,9 +2495,7 @@ typedef struct _SRADJupiterSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; - STextAPISettings text_api; - struct { uint32_t disableUsbCheckOnBoot : 1; @@ -2967,7 +2503,6 @@ typedef struct _SRADJupiterSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; - SRADJupiterSwitchSettings switchSettings; ETHERNET_SETTINGS2 ethernet2; } SRADJupiterSettings; @@ -2978,7 +2513,6 @@ typedef struct uint8_t ethConfigurationPort; uint8_t reserved[5]; } Fire3LinuxSettings; - typedef struct _SFire3Settings { uint16_t perf_en; @@ -3050,8 +2584,8 @@ typedef struct _SFire3Settings ETHERNET_SETTINGS ethernet_2; ETHERNET_SETTINGS2 ethernet2_2; Fire3LinuxSettings os_settings; + RAD_GPTP_SETTINGS gPTP; } SFire3Settings; - typedef struct { uint16_t perf_en; @@ -3067,28 +2601,21 @@ typedef struct uint32_t reserved : 30; } flags; } RadMoonDuoSettings, SRadMoonDuoSettings; - typedef struct _SEtherBadgeSettings { - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; - uint16_t network_enables; uint16_t network_enables_2; uint16_t network_enables_3; 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 iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -3096,7 +2623,6 @@ typedef struct _SEtherBadgeSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; - uint16_t misc_io_initial_ddr; uint16_t misc_io_initial_latch; uint16_t misc_io_report_period; @@ -3104,9 +2630,7 @@ typedef struct _SEtherBadgeSettings uint16_t misc_io_analog_enable; uint16_t ain_sample_period; uint16_t ain_threshold; - STextAPISettings text_api; - struct { uint32_t disableUsbCheckOnBoot : 1; @@ -3114,10 +2638,8 @@ typedef struct _SEtherBadgeSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; - ETHERNET_SETTINGS2 ethernet2; } SEtherBadgeSettings; - typedef struct _SRADEpsilonSwitchSettings { uint8_t phyMode[18]; @@ -3128,29 +2650,22 @@ typedef struct _SRADEpsilonSwitchSettings uint8_t spoofMacFlag; uint8_t pad; } SRADEpsilonSwitchSettings; - typedef struct _SRADEpsilonSettings { - uint16_t perf_en; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; uint16_t iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -3158,9 +2673,7 @@ typedef struct _SRADEpsilonSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; - STextAPISettings text_api; - struct { uint32_t disableUsbCheckOnBoot : 1; @@ -3168,11 +2681,37 @@ typedef struct _SRADEpsilonSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; - SRADEpsilonSwitchSettings switchSettings; ETHERNET_SETTINGS2 ethernet2; } SRADEpsilonSettings; - +typedef struct +{ + uint8_t wBMSDeviceID; + uint8_t enabled; +} sWIL_FAULT_SERVICING_SETTINGS; +typedef struct +{ + uint8_t enabled; +} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; +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; +} sWIL_CONNECTION_SETTINGS; +enum +{ + SPI_PORT_ONBOARD = 0, + SPI_PORT_EXTERNAL, +}; +typedef struct _sSPI_PORT_SETTINGS +{ + uint8_t port_a_onbaord_external; + uint8_t port_b_onbaord_external; +} sSPI_PORT_SETTINGS; typedef union { uint64_t dword; @@ -3181,30 +2720,21 @@ typedef union unsigned can_id : 29; unsigned can_id_isExtended : 1; uint16_t tcp_port; - unsigned manager_onboard_external : 1; unsigned reserved : 18; } config; -} SWILBridgeConfig; - +} sWILBridgeConfig; typedef struct _SRADBMSSettings { - uint16_t perf_en; - uint64_t termination_enables; - CAN_SETTINGS can1; CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; CANFD_SETTINGS canfd2; - uint16_t network_enables; uint16_t network_enables_2; uint16_t network_enables_3; - int16_t iso15765_separation_time_offset; - struct { uint32_t disableUsbCheckOnBoot : 1; @@ -3212,17 +2742,16 @@ typedef struct _SRADBMSSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; - ETHERNET_SETTINGS ethernet; ETHERNET_SETTINGS2 ethernet2; - uint32_t pwr_man_timeout; uint16_t pwr_man_enable; uint16_t network_enabled_on_boot; - - SWILBridgeConfig wil_config; + sWILBridgeConfig wil_config; + sSPI_PORT_SETTINGS spi_config; + sWIL_CONNECTION_SETTINGS wbms_wil_1; + sWIL_CONNECTION_SETTINGS wbms_wil_2; } SRADBMSSettings; - typedef struct _GLOBAL_SETTINGS { uint16_t version; @@ -3267,9 +2796,9 @@ typedef struct _GLOBAL_SETTINGS SRADEpsilonSettings epsilon; SOBD2LCSettings obd2lc; SRADBMSSettings rad_bms; + SRADMoon3Settings radmoon3; }; } GLOBAL_SETTINGS; - typedef enum _EDeviceSettingsType { DeviceFireSettingsType, @@ -3307,11 +2836,10 @@ typedef enum _EDeviceSettingsType DeviceRADEpsilonSettingsType, DeviceOBD2LCSettingsType, DeviceRADBMSSettingsType, - + DeviceRADMoon3SettingsType, DeviceSettingsTypeMax, DeviceSettingsNone = 0xFFFFFFFF } EDeviceSettingsType; - typedef struct _SDeviceSettings { EDeviceSettingsType DeviceSettingType; @@ -3355,10 +2883,9 @@ typedef struct _SDeviceSettings SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; - + SRADMoon3Settings radmoon3; } Settings; } SDeviceSettings; - typedef enum _EPlasmaIonVnetChannel_t { PlasmaIonVnetChannelMain, @@ -3367,61 +2894,47 @@ typedef enum _EPlasmaIonVnetChannel_t 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; - uint8_t padding; - uint8_t tx_index; - uint32_t id; uint32_t fc_id; uint32_t fc_id_mask; - uint8_t stMin; uint8_t blockSize; uint8_t flowControlExtendedAddress; uint8_t extendedAddress; - uint16_t fs_timeout; uint16_t fs_wait; - uint8_t data[4 * 1024]; - uint32_t num_bytes; - union { struct @@ -3430,7 +2943,6 @@ typedef struct _stCM_ISO157652_TxMessage 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; @@ -3442,32 +2954,23 @@ typedef struct _stCM_ISO157652_TxMessage uint32_t flags; }; } stCM_ISO157652_TxMessage; - typedef struct { uint16_t vs_netid; uint8_t padding; - uint8_t tx_index; - uint32_t id; uint32_t fc_id; uint32_t fc_id_mask; - uint8_t stMin; uint8_t blockSize; - uint8_t flowControlExtendedAddress; uint8_t extendedAddress; - uint16_t fs_timeout; uint16_t fs_wait; - uint8_t* data; uint32_t num_bytes; - uint8_t tx_dl; - union { struct @@ -3486,25 +2989,18 @@ typedef struct uint16_t flags; }; } ISO15765_2015_TxMessage; - typedef struct _stCM_ISO157652_RxMessage { uint16_t vs_netid; - uint8_t padding; - uint32_t id; uint32_t id_mask; uint32_t fc_id; - uint8_t flowControlExtendedAddress; uint8_t extendedAddress; - uint8_t blockSize; uint8_t stMin; - uint16_t cf_timeout; - union { struct @@ -3522,9 +3018,7 @@ typedef struct _stCM_ISO157652_RxMessage }; uint8_t reserved[16]; } stCM_ISO157652_RxMessage; - #pragma pack(pop) - typedef struct { uint32_t StatusValue; @@ -3548,9 +3042,7 @@ typedef struct uint32_t ExpectedLength; uint32_t NodeID; } spyFilterLong; - typedef int16_t descIdType; - typedef struct _icsSpyMessage { uint32_t StatusBitField; @@ -3585,7 +3077,6 @@ typedef struct _icsSpyMessage uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessage; - typedef struct _icsSpyMessageFlexRay { uint32_t StatusBitField; @@ -3683,7 +3174,6 @@ typedef struct _icsSpyMessageLong uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageLong; - typedef struct _icsSpyMessageJ1850 { uint32_t StatusBitField; @@ -3718,7 +3208,6 @@ typedef struct _icsSpyMessageJ1850 uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageJ1850; - typedef struct _icsSpyMessageVSB { uint32_t StatusBitField; @@ -3764,7 +3253,6 @@ typedef struct _ethernetNetworkStatus_t uint8_t linkMode; } ethernetNetworkStatus_t; #pragma pack(pop) - typedef struct { uint8_t backupPowerGood; @@ -3773,73 +3261,60 @@ typedef struct 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; uint8_t unused; } icsFire3DeviceStatus; - typedef struct { ethernetNetworkStatus_t ethernetStatus[4]; } icsRadMoonDuoDeviceStatus; - typedef struct { ethernetNetworkStatus_t ethernetStatus[8 - 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; } icsRadEpsilonDeviceStatus; - typedef struct { ethernetNetworkStatus_t ethernetStatus; } icsRadBMSDeviceStatus; - #pragma pack(push) #pragma pack(4) - typedef union { icsFire2DeviceStatus fire2Status; @@ -3853,9 +3328,7 @@ typedef union icsVcan4IndustrialDeviceStatus vcan4indStatus; icsRadBMSDeviceStatus radBMSStatus; } icsDeviceStatus; - #pragma pack(pop) - typedef struct { char szName[128]; @@ -3866,14 +3339,12 @@ typedef struct unsigned char bIPV4_Address[4]; unsigned long EthernetPinConfig; } NDIS_ADAPTER_INFORMATION; - typedef struct SPhyRegPktHdr { uint16_t numEntries; uint8_t version; uint8_t entryBytes; } PhyRegPktHdr_t; - typedef struct SPhyRegPktClause22Mess { uint8_t phyAddr; @@ -3881,7 +3352,6 @@ typedef struct SPhyRegPktClause22Mess uint16_t regAddr; uint16_t regVal; } PhyRegPktClause22Mess_t; - typedef struct SPhyRegPktClause45Mess { uint8_t port; @@ -3889,26 +3359,23 @@ typedef struct SPhyRegPktClause45Mess uint16_t regAddr; uint16_t regVal; } PhyRegPktClause45Mess_t; - typedef enum SPhyRegPktStatus { PHYREG_SUCCESS = 0, PHYREG_FAILURE, PHYREG_INVALID_MDIO_BUS_INDEX, PHYREG_INVALID_PHY_ADDR, - PHYREG_RESERVED0, + 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 @@ -3918,21 +3385,19 @@ typedef struct SPhyRegPkt uint16_t Enabled : 1; uint16_t WriteEnable : 1; uint16_t Clause45Enable : 1; - uint16_t status : 2; - uint16_t reserved : 3; + 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, @@ -3951,365 +3416,371 @@ typedef enum networkTerminationDWCAN06, networkTerminationDWCAN07, networkTerminationDWCAN08, + enhancedFlashDriver, NUM_VALID_DEVICE_FEATURES, supportedFeatureMax = 0xFFFF, } DeviceFeature; enum { - assert_line_4746 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_4828 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_4747 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_4829 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_4748 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_4830 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_4749 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_4831 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_4750 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_4832 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_4751 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_4833 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_4752 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_4834 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_4753 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_4835 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_4754 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_4836 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_4755 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_4837 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_4756 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_4838 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_4757 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_4839 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_4758 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_4840 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_4759 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_4841 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_4760 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_4842 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_4761 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_4843 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_4762 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_4844 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_4763 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_4845 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_4764 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_4846 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_4765 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_4847 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_4766 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_4848 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_4767 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_4849 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_4768 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_4850 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_4769 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_4851 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_4770 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_4852 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_4771 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_4853 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_4772 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_4854 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_4773 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_4855 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_4774 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_4856 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_4775 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_4857 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_4776 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_4858 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_4777 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_4859 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_4778 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_4860 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_4779 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_4861 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_4780 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) + assert_line_4862 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) }; ; enum { - assert_line_4781 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) + assert_line_4863 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) }; ; enum { - assert_line_4782 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_4864 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_4783 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_4865 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) +}; +; +enum +{ + assert_line_4866 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) }; ; enum { - assert_line_4784 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) + assert_line_4867 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_4785 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_4868 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_4786 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_4869 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_4787 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_4870 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_4788 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_4871 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_4789 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_4872 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_4790 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_4873 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_4791 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_4874 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_4792 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_4875 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_4793 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_4876 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_4794 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_4877 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) }; ; enum { - assert_line_4795 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) + assert_line_4878 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) }; ; enum { - assert_line_4796 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) + assert_line_4879 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) }; ; enum { - assert_line_4797 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) + assert_line_4880 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) }; ; enum { - assert_line_4798 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) + assert_line_4881 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_4799 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_4882 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_4800 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_4883 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_4801 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_4884 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_4802 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_4885 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 522)) }; ; enum { - assert_line_4803 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 522)) + assert_line_4886 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_4804 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_4887 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_4805 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_4888 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_4806 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_4889 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_4807 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_4890 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_4808 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_4891 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_4809 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_4892 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_4810 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_4893 = 1 / (int)(!!(sizeof(SFire3Settings) == (668))) }; ; enum { - assert_line_4811 = 1 / (int)(!!(sizeof(SFire3Settings) == (632))) + assert_line_4894 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_4812 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_4895 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 332)) }; ; enum { - assert_line_4813 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 296)) + assert_line_4896 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_4814 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_4897 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) }; ; enum { - assert_line_4815 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) + assert_line_4898 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_4816 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_4899 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 126)) }; ; enum { - assert_line_4817 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 108)) + assert_line_4900 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 60)) }; ; diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 45c0090b1..cdbf7f52d 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -146,6 +146,8 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); result += PyModule_AddIntMacro(module, NEODEVICE_RAD_BMS); result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON3); + result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET); + result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_FF); result += PyModule_AddIntMacro(module, NEODEVICE_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -497,24 +499,22 @@ int setup_module_auto_defines(PyObject * module) 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_SIZE); - // enum - result += PyModule_AddIntMacro(module, LINK_SPEED_AUTO_NEGOTIATION); - result += PyModule_AddIntMacro(module, LINK_SPEED_1GBPS_FULL_DUPLEX); - result += PyModule_AddIntMacro(module, LINK_SPEED_1GBPS_HALF_DUPLEX); - result += PyModule_AddIntMacro(module, LINK_SPEED_100MBPS_FULL_DUPLEX); - result += PyModule_AddIntMacro(module, LINK_SPEED_100MBPS_HALF_DUPLEX); - result += PyModule_AddIntMacro(module, LINK_SPEED_10MBPS_FULL_DUPLEX); - result += PyModule_AddIntMacro(module, LINK_SPEED_10MBPS_HALF_DUPLEX); - result += PyModule_AddIntMacro(module, LINK_SPEED_COUNT); - // end of enum - }; - 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_COMM_IN_USE); result += PyModule_AddIntMacro(module, ETHERNET10G_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, LOGGER_SETTINGS_SIZE); @@ -792,6 +792,7 @@ int setup_module_auto_defines(PyObject * module) 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, SVividCANSettings_SIZE); @@ -850,6 +851,11 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SEtherBadgeSettings_SIZE); result += PyModule_AddIntMacro(module, RADEPSILON_MAX_PHY); result += PyModule_AddIntMacro(module, SRADEpsilonSettings_SIZE); + // enum + result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); + result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); + // end of enum - }; + result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); result += PyModule_AddIntMacro(module, GS_VERSION); result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); @@ -890,6 +896,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, DeviceRADEpsilonSettingsType); result += PyModule_AddIntMacro(module, DeviceOBD2LCSettingsType); result += PyModule_AddIntMacro(module, DeviceRADBMSSettingsType); + result += PyModule_AddIntMacro(module, DeviceRADMoon3SettingsType); result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); result += PyModule_AddIntMacro(module, DeviceSettingsNone); // end of enum - } EDeviceSettingsType; @@ -947,7 +954,7 @@ int setup_module_auto_defines(PyObject * module) 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_RESERVED0); + 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); @@ -976,6 +983,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, networkTerminationDWCAN06); result += PyModule_AddIntMacro(module, networkTerminationDWCAN07); result += PyModule_AddIntMacro(module, networkTerminationDWCAN08); + result += PyModule_AddIntMacro(module, enhancedFlashDriver); result += PyModule_AddIntMacro(module, NUM_VALID_DEVICE_FEATURES); result += PyModule_AddIntMacro(module, supportedFeatureMax); // end of enum - } DeviceFeature; From d25c827760b3840dd61542a8a82ffca5717e0493 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 11:47:29 -0400 Subject: [PATCH 085/201] updated documentation Signed-off-by: David Rebbe --- doc/source/index.rst | 3924 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 3678 insertions(+), 246 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index f70e97eff..15351cbd6 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -41,6 +41,7 @@ Module Functions ics.enable_network_com ics.find_devices ics.firmware_update_required + ics.flash_devices ics.force_firmware_update ics.generic_api_get_status ics.generic_api_read_data @@ -72,6 +73,7 @@ Module Functions ics.iso15765_receive_message ics.iso15765_transmit_message ics.load_default_settings + ics.load_readbin ics.open_device ics.override_library_name ics.read_jupiter_firmware @@ -105,6 +107,7 @@ Module Functions ics.EnableNetworkCom ics.FindNeoDevices ics.FirmwareUpdateRequired + ics.FlashDevice2 ics.ForceFirmwareUpdate ics.GenericAPIGetStatus ics.GenericAPIReadData @@ -141,6 +144,7 @@ Module Functions ics.ScriptGetScriptStatus ics.ScriptGetScriptStatusEx ics.ScriptLoad + ics.ScriptLoadReadBin ics.ScriptReadAppSignal ics.ScriptReadRxMessage ics.ScriptReadTxMessage @@ -220,6 +224,7 @@ Module Functions ics.icsneoScriptGetScriptStatus ics.icsneoScriptGetScriptStatusEx ics.icsneoScriptLoad + ics.icsneoScriptLoadReadBin ics.icsneoScriptReadAppSignal ics.icsneoScriptReadRxMessage ics.icsneoScriptReadTxMessage @@ -270,10 +275,30 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.bootloader_extended_pars_t.bootloader_extended_pars_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.bootloader_pars_t.bootloader_pars_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.can_clock_fire2_t.can_clock_fire2_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.can_clock_t.can_clock_t + :members: + :undoc-members: + .. autoclass:: ics.structures.can_settings.can_settings :members: :undoc-members: + .. autoclass:: ics.structures.can_settings_decode.can_settings_decode + :members: + :undoc-members: + .. autoclass:: ics.structures.canfd_settings.canfd_settings :members: :undoc-members: @@ -354,6 +379,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ext_comm_subcommand.ext_comm_subcommand + :members: + :undoc-members: + .. autoclass:: ics.structures.extended_response_code.extended_response_code :members: :undoc-members: @@ -450,10 +479,18 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ics_spy_message_analog.ics_spy_message_analog + :members: + :undoc-members: + .. autoclass:: ics.structures.ics_spy_message_flex_ray.ics_spy_message_flex_ray :members: :undoc-members: + .. autoclass:: ics.structures.ics_spy_message_gps.ics_spy_message_gps + :members: + :undoc-members: + .. autoclass:: ics.structures.ics_spy_message_long.ics_spy_message_long :members: :undoc-members: @@ -462,6 +499,14 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ics_spy_msg_time.ics_spy_msg_time + :members: + :undoc-members: + + .. autoclass:: ics.structures.ics_spy_time.ics_spy_time + :members: + :undoc-members: + .. autoclass:: ics.structures.ics_vcan4_device_status.ics_vcan4_device_status :members: :undoc-members: @@ -494,7 +539,15 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ndis_adapter_information.ndis_adapter_information + .. autoclass:: ics.structures.manufacturing_error_type.manufacturing_error_type + :members: + :undoc-members: + + .. autoclass:: ics.structures.manufacturing_operation.manufacturing_operation + :members: + :undoc-members: + + .. autoclass:: ics.structures.manufacturing_operation_params.manufacturing_operation_params :members: :undoc-members: @@ -570,6 +623,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.s_fire3_flexray_settings.s_fire3_flexray_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.s_fire3_settings.s_fire3_settings :members: :undoc-members: @@ -598,10 +655,18 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.s_neo_most_gateway_settings_decode.s_neo_most_gateway_settings_decode + :members: + :undoc-members: + .. autoclass:: ics.structures.s_pendant_settings.s_pendant_settings :members: :undoc-members: + .. autoclass:: ics.structures.s_performance_stats.s_performance_stats + :members: + :undoc-members: + .. autoclass:: ics.structures.s_phy_reg_pkt.s_phy_reg_pkt :members: :undoc-members: @@ -702,10 +767,30 @@ Module Structures :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_reflash_chip_t.s_reflash_chip_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.s_reflash_request.s_reflash_request + :members: + :undoc-members: + + .. autoclass:: ics.structures.s_spi_port_setting.s_spi_port_setting + :members: + :undoc-members: + + .. autoclass:: ics.structures.s_spi_port_settings.s_spi_port_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.s_text_api_settings.s_text_api_settings :members: :undoc-members: @@ -714,6 +799,22 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.s_wil_bridge_config.s_wil_bridge_config + :members: + :undoc-members: + + .. autoclass:: ics.structures.s_wil_connection_settings.s_wil_connection_settings + :members: + :undoc-members: + + .. autoclass:: ics.structures.s_wil_fault_servicing_settings.s_wil_fault_servicing_settings + :members: + :undoc-members: + + .. autoclass:: ics.structures.s_wil_network_data_capture_settings.s_wil_network_data_capture_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.scan_hub_settings.scan_hub_settings :members: :undoc-members: @@ -766,6 +867,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.spy_filter_bytes.spy_filter_bytes + :members: + :undoc-members: + .. autoclass:: ics.structures.spy_filter_long.spy_filter_long :members: :undoc-members: @@ -810,6 +915,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.srad_moon3_settings.srad_moon3_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.srad_pluto_settings.srad_pluto_settings :members: :undoc-members: @@ -878,10 +987,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.swil_bridge_config.swil_bridge_config - :members: - :undoc-members: - .. autoclass:: ics.structures.system_identity.system_identity :members: :undoc-members: @@ -943,6 +1048,117 @@ Module Variables .. py:data:: A2B_SETTINGS_FLAG_16BIT :annotation: = 1 + .. py:data:: ACKBYTE_CANFD_DATALINK_LEN + :annotation: = 6 + + .. py:data:: ACKBYTE_CANFD_FLAGS + :annotation: = 0 + + .. py:data:: ACKBYTE_CAN_ETHERNET_PDU_TYPE + :annotation: = 1 + + .. py:data:: ACKBYTE_CATPGBPGT_GROUP + :annotation: = 7 + + .. py:data:: ACKBYTE_CATPGBPGT_PID_START + :annotation: = 2 + + .. py:data:: ACKBYTE_CGI_CRC_LOWER + :annotation: = 1 + + .. py:data:: ACKBYTE_CGI_CRC_UPPER + :annotation: = 0 + + .. py:data:: ACKBYTE_EXTRADATAPTR_LEN_START + :annotation: = 4 + + .. py:data:: ACKBYTE_FLEXRAT_TSSLENGTH + :annotation: = 7 + + .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_LOWER + :annotation: = 4 + + .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_MIDDLE + :annotation: = 5 + + .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_UPPER + :annotation: = 6 + + .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_LOWER + :annotation: = 1 + + .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_UPPER + :annotation: = 0 + + .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_LOWER + :annotation: = 2 + + .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_UPPER + :annotation: = 3 + + .. py:data:: ACKBYTE_FLEXRAY_TX_LEN_START + :annotation: = 4 + + .. py:data:: ACKBYTE_GMFSA_DEST_IP_START + :annotation: = 4 + + .. py:data:: ACKBYTE_GMFSA_SRC_IP_START + :annotation: = 0 + + .. py:data:: ACKBYTE_I2C_BITRATE_START + :annotation: = 0 + + .. py:data:: ACKBYTE_ISO15765_PENDING_DESCID_START + :annotation: = 2 + + .. py:data:: ACKBYTE_ISO15765_PENDING_STATUS + :annotation: = 1 + + .. py:data:: ACKBYTE_J1708_TX + :annotation: = 1 + + .. py:data:: ACKBYTE_LIN_CHECKSUM + :annotation: = 0 + + .. py:data:: ACKBYTE_LIN_P0_P1 + :annotation: = 3 + + .. py:data:: ACKBYTE_LIN_TFRAME_LOWER + :annotation: = 2 + + .. py:data:: ACKBYTE_LIN_TFRAME_UPPER + :annotation: = 1 + + .. py:data:: ACKBYTE_LIN_TX + :annotation: = 1 + + .. py:data:: ACKBYTE_MOST_EVENT_TYPE + :annotation: = 0 + + .. py:data:: ACKBYTE_MOST_LEN_LOWER + :annotation: = 1 + + .. py:data:: ACKBYTE_MOST_LEN_UPPER + :annotation: = 0 + + .. py:data:: ACKBYTE_MOST_SOURCE_LOWER + :annotation: = 5 + + .. py:data:: ACKBYTE_MOST_SOURCE_UPPER + :annotation: = 4 + + .. py:data:: ACKBYTE_MOST_TARGET_LOWER + :annotation: = 7 + + .. py:data:: ACKBYTE_MOST_TARGET_UPPER + :annotation: = 6 + + .. py:data:: ACKBYTE_TCP_ACK_START + :annotation: = 4 + + .. py:data:: ACKBYTE_TCP_SEQ_START + :annotation: = 0 + .. py:data:: AUTO :annotation: = 0 @@ -1016,7 +1232,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Oct 27 2022 12:46:26 + :annotation: = Mar 15 2023 13:46:39 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1054,11 +1270,44 @@ Module Variables .. py:data:: CAN_BPS8000 :annotation: = 16 + .. py:data:: CAN_CLK_16MIPS + :annotation: = 3 + + .. py:data:: CAN_CLK_40MIPS + :annotation: = 1 + + .. py:data:: CAN_CLK_64MIPS + :annotation: = 2 + + .. py:data:: CAN_CLK_INVALID + :annotation: = 0 + .. py:data:: CAN_SETTINGS_SIZE :annotation: = 12 + .. py:data:: CHIP_ID_INVALID + :annotation: = 255 + + .. py:data:: CMPROBE_ZYNQ_ID + :annotation: = 60 + + .. py:data:: DEVELOPER_BACKDOOR + :annotation: = 943047254 + .. py:data:: DEVICECOUNT_FOR_EXPLORER - :annotation: = 42 + :annotation: = 44 + + .. py:data:: DEVICE_OPTION_DISABLE_AUTO_UPDATE + :annotation: = 2 + + .. py:data:: DEVICE_OPTION_DONT_ENABLE_NETCOMS + :annotation: = 4 + + .. py:data:: DEVICE_OPTION_DONT_USE_NEOVISERVER + :annotation: = 8 + + .. py:data:: DEVICE_OPTION_ENABLE_TIMESYNC + :annotation: = 1 .. py:data:: DISABLE :annotation: = 1 @@ -1075,6 +1324,18 @@ Module Variables .. py:data:: DISK_STRUCTURE_FLAG_FULL_FORMAT :annotation: = 1 + .. py:data:: DRIVER_MASK + :annotation: = 192 + + .. py:data:: DRIVER_USB1 + :annotation: = 64 + + .. py:data:: DRIVER_USB2 + :annotation: = 128 + + .. py:data:: DRIVER_USB3 + :annotation: = 192 + .. py:data:: ETHERNET10G_SETTINGS_SIZE :annotation: = 24 @@ -1084,18 +1345,42 @@ Module Variables .. py:data:: ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE :annotation: = -2147483648 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED + :annotation: = 32 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_DEVICE_HOSTING_ENABLE :annotation: = 16 .. py:data:: ETHERNET_SETTINGS10G_FLAG_FULL_DUPLEX :annotation: = 1 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_ICS_SFP + :annotation: = 64 + + .. py:data:: ETHERNET_SETTINGS10G_FLAG_LINK_MODE + :annotation: = 128 + + .. py:data:: ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO + :annotation: = 512 + + .. py:data:: ETHERNET_SETTINGS10G_FLAG_PHY_MODE + :annotation: = 256 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_RTSP_ENABLE :annotation: = 8 .. py:data:: ETHERNET_SETTINGS10G_FLAG_TCPIP_ENABLE :annotation: = 4 + .. py:data:: ETHERNET_SETTINGS2_FLAG2_LINK_MODE + :annotation: = 1 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO + :annotation: = 4 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_PHY_MODE + :annotation: = 2 + .. py:data:: ETHERNET_SETTINGS2_FLAG_AUTO_NEG :annotation: = 2 @@ -1111,6 +1396,9 @@ Module Variables .. py:data:: ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX :annotation: = 1 + .. py:data:: ETHERNET_SETTINGS2_FLAG_ICS_SFP + :annotation: = 64 + .. py:data:: ETHERNET_SETTINGS2_FLAG_RTSP_ENABLE :annotation: = 8 @@ -1123,6 +1411,9 @@ Module Variables .. py:data:: ETHERNET_SETTINGS_SIZE :annotation: = 8 + .. py:data:: ETHER_BADGE_MCHIP_ID + :annotation: = 86 + .. py:data:: EXTENDED_RESPONSE_INVALID_COMMAND :annotation: = -1 @@ -1141,392 +1432,3047 @@ Module Variables .. py:data:: EXTENDED_RESPONSE_OPERATION_PENDING :annotation: = -4 - .. py:data:: FAST_MODE - :annotation: = 3 + .. py:data:: EXT_RESPONSE_GENERIC_RETURNCODE + :annotation: = 0 - .. py:data:: GENERIC_API_DATA_BUFFER_SIZE - :annotation: = 513 + .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_CANCEL + :annotation: = 18 - .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION - :annotation: = 1 + .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_PROGRESS + :annotation: = 19 - .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 942 + .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_START + :annotation: = 17 - .. py:data:: GS_VERSION - :annotation: = 5 + .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_UPDATE + :annotation: = 20 - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 - :annotation: = 2 + .. py:data:: EXT_SUBCOMMAND_EXTRACT + :annotation: = 21 - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 - :annotation: = 5 + .. py:data:: EXT_SUBCOMMAND_GET_COMPONENT_VERSIONS + :annotation: = 26 - .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC - :annotation: = 7 + .. py:data:: EXT_SUBCOMMAND_GET_DISK_DETAILS + :annotation: = 16 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS - :annotation: = 10 + .. py:data:: EXT_SUBCOMMAND_GET_SUPPORTED_FEATURES + :annotation: = 24 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US - :annotation: = 8 + .. py:data:: EXT_SUBCOMMAND_GPTP_GET_STATUS + :annotation: = 25 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS - :annotation: = 9 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_GET_FAN_PWM + :annotation: = 49 - .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI - :annotation: = 4 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_GET_FAN_RPM + :annotation: = 48 - .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN - :annotation: = 3 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_GET_RTC_CAL_VALUE + :annotation: = 45 - .. py:data:: HARDWARE_TIMESTAMP_ID_NONE - :annotation: = 0 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_LOCK + :annotation: = 42 - .. py:data:: HARDWARE_TIMESTAMP_ID_VSI - :annotation: = 1 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_FAN_ENABLE + :annotation: = 46 - .. py:data:: HW_ETH_SETTINGS_SIZE - :annotation: = 20 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_FAN_PWM + :annotation: = 47 - .. py:data:: ISO15765_2_NETWORK_HSCAN - :annotation: = 1 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_RTC_CAL_ENABLE + :annotation: = 43 - .. py:data:: ISO15765_2_NETWORK_HSCAN2 - :annotation: = 4 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_RTC_CAL_VALUE + :annotation: = 44 - .. py:data:: ISO15765_2_NETWORK_HSCAN3 - :annotation: = 8 + .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_UNLOCK + :annotation: = 41 - .. py:data:: ISO15765_2_NETWORK_HSCAN4 - :annotation: = 20 + .. py:data:: EXT_SUBCOMMAND_MAX + :annotation: = 65535 - .. py:data:: ISO15765_2_NETWORK_HSCAN5 - :annotation: = 24 + .. py:data:: EXT_SUBCOMMAND_READ_GENERIC_API_DATA + :annotation: = 30 - .. py:data:: ISO15765_2_NETWORK_HSCAN6 + .. py:data:: EXT_SUBCOMMAND_READ_GENERIC_API_STATUS + :annotation: = 29 + + .. py:data:: EXT_SUBCOMMAND_REBOOT_DEVICE :annotation: = 28 - .. py:data:: ISO15765_2_NETWORK_HSCAN7 + .. py:data:: EXT_SUBCOMMAND_SET_UPLOADED_FLAG + :annotation: = 39 + + .. py:data:: EXT_SUBCOMMAND_SOFTWARE_UPDATE + :annotation: = 27 + + .. py:data:: EXT_SUBCOMMAND_START_DHCPSERVER + :annotation: = 22 + + .. py:data:: EXT_SUBCOMMAND_STOP_DHCPSERVER + :annotation: = 23 + + .. py:data:: EXT_SUBCOMMAND_TX_COREMINI_MSG + :annotation: = 40 + + .. py:data:: EXT_SUBCOMMAND_UART_PORT_GET_BAUDRATE + :annotation: = 38 + + .. py:data:: EXT_SUBCOMMAND_UART_PORT_READ + :annotation: = 35 + + .. py:data:: EXT_SUBCOMMAND_UART_PORT_REQUEST_AND_ACTUAL_BYTES + :annotation: = 36 + + .. py:data:: EXT_SUBCOMMAND_UART_PORT_SET_BAUDRATE + :annotation: = 37 + + .. py:data:: EXT_SUBCOMMAND_UART_PORT_WRITE + :annotation: = 34 + + .. py:data:: EXT_SUBCOMMAND_WBMS_LOCK_UNLOCK_MANAGER :annotation: = 32 - .. py:data:: ISO15765_2_NETWORK_MSCAN + .. py:data:: EXT_SUBCOMMAND_WBMS_RESET_MANAGER + :annotation: = 33 + + .. py:data:: EXT_SUBCOMMAND_WRITE_GENERIC_API_COMMAND + :annotation: = 31 + + .. py:data:: FAST_MODE + :annotation: = 3 + + .. py:data:: FIRE2_REPORT_EMISC1_ANALOG + :annotation: = 32 + + .. py:data:: FIRE2_REPORT_EMISC1_DIGITAL :annotation: = 2 - .. py:data:: ISO15765_2_NETWORK_SWCAN + .. py:data:: FIRE2_REPORT_EMISC2_ANALOG + :annotation: = 64 + + .. py:data:: FIRE2_REPORT_EMISC2_DIGITAL + :annotation: = 4 + + .. py:data:: FIRE2_REPORT_GPS + :annotation: = 1024 + + .. py:data:: FIRE2_REPORT_MISC5_DIGITAL + :annotation: = 8 + + .. py:data:: FIRE2_REPORT_MISC6_DIGITAL :annotation: = 16 - .. py:data:: ISO15765_2_NETWORK_SWCAN2 - :annotation: = 36 + .. py:data:: FIRE2_REPORT_PERIODIC + :annotation: = 1 - .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE - :annotation: = 114 + .. py:data:: FIRE2_REPORT_PWM_IN + :annotation: = 512 - .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE - :annotation: = 6 + .. py:data:: FIRE2_REPORT_TEMP_ANALOG + :annotation: = 256 - .. py:data:: J1708_SETTINGS_SIZE + .. py:data:: FIRE2_REPORT_VBATT_ANALOG + :annotation: = 128 + + .. py:data:: FIRE2_VNETZ_MCHIP_ID + :annotation: = 54 + + .. py:data:: FIRE2_VNETZ_ZYNQ_ID + :annotation: = 55 + + .. py:data:: FIRE2_VNET_CCHIP_ID + :annotation: = 49 + + .. py:data:: FIRE2_VNET_CORE_ID + :annotation: = 50 + + .. py:data:: FIRE2_VNET_MCHIP_ID + :annotation: = 46 + + .. py:data:: FIRE3_LINUX_ID + :annotation: = 109 + + .. py:data:: FIRE3_REPORT_ORIENTATION + :annotation: = 2048 + + .. py:data:: FIRE3_SCHIP_ID + :annotation: = 91 + + .. py:data:: FIRE3_ZCHIP_ID + :annotation: = 82 + + .. py:data:: FIRE3_ZCHIP_MB_PATCH_ID + :annotation: = -2 + + .. py:data:: FLEXRAY_ERROR_BIT_FILE_NOT_FOUND + :annotation: = 319 + + .. py:data:: FLEXRAY_ERROR_DATA_INCORRECT_SEQUENCE_ERROR + :annotation: = 322 + + .. py:data:: FLEXRAY_ERROR_DATA_SYNCHRONIZATION_ERROR + :annotation: = 323 + + .. py:data:: FLEXRAY_ERROR_DEVICE_COULD_NOT_BE_OPENED + :annotation: = 318 + + .. py:data:: FLEXRAY_ERROR_ERROR_FIFO_OVERFLOW + :annotation: = 328 + + .. py:data:: FLEXRAY_ERROR_FPGA_CONFIG_FAILED + :annotation: = 320 + + .. py:data:: FLEXRAY_ERROR_HEARTBEAT_SEQUENCE_ERROR + :annotation: = 329 + + .. py:data:: FLEXRAY_ERROR_HEARTBEAT_TIMEOUT_ERROR + :annotation: = 330 + + .. py:data:: FLEXRAY_ERROR_HELPER_DLL_COULD_NOT_BE_LOADED + :annotation: = 324 + + .. py:data:: FLEXRAY_ERROR_INPUT_FIFO_OVERFLOW + :annotation: = 325 + + .. py:data:: FLEXRAY_ERROR_INVALID_ESCAPE_SEQUENCE + :annotation: = 326 + + .. py:data:: FLEXRAY_ERROR_NO_DEVICES_ATTACHED + :annotation: = 317 + + .. py:data:: FLEXRAY_ERROR_OUTPUT_MESSAGE_FIFO_OVERFLOW + :annotation: = 321 + + .. py:data:: FLEXRAY_ERROR_USB_LOW_LEVEL_READ_FAILURE + :annotation: = 327 + + .. py:data:: FLEX_VNETZ_FCHIP_ID + :annotation: = 83 + + .. py:data:: FLEX_VNETZ_ZCHIP_ID + :annotation: = 78 + + .. py:data:: GENERIC_API_DATA_BUFFER_SIZE + :annotation: = 513 + + .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION + :annotation: = 1 + + .. py:data:: GLOBAL_SETTINGS_SIZE + :annotation: = 1478 + + .. py:data:: GS_EX_ERR_API_FAILURE + :annotation: = 5 + + .. py:data:: GS_EX_ERR_GENERAL_FAILURE + :annotation: = 1 + + .. py:data:: GS_EX_ERR_INVALID_SUBCMD :annotation: = 2 - .. py:data:: JUPITER_PTP_ROLE_DISABLED + .. py:data:: GS_EX_ERR_INVALID_SUBVER + :annotation: = 3 + + .. py:data:: GS_EX_ERR_NOT_ENOUGH_MEM + :annotation: = 4 + + .. py:data:: GS_EX_ERR_OK :annotation: = 0 - .. py:data:: JUPITER_PTP_ROLE_MASTER + .. py:data:: GS_EX_ERR_OK_DEFAULTS_USED + :annotation: = 7 + + .. py:data:: GS_EX_SUBCMD_DWCAN1 + :annotation: = 2 + + .. py:data:: GS_EX_SUBCMD_DWCAN2 + :annotation: = 3 + + .. py:data:: GS_EX_SUBCMD_DWCAN3 + :annotation: = 4 + + .. py:data:: GS_EX_SUBCMD_DWCAN4 + :annotation: = 5 + + .. py:data:: GS_EX_SUBCMD_GLOBAL :annotation: = 1 - .. py:data:: JUPITER_PTP_ROLE_SLAVE + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LATEST + :annotation: = 1 + + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_0 :annotation: = 2 - .. py:data:: LINK_SPEED_100MBPS_FULL_DUPLEX + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_1 :annotation: = 3 - .. py:data:: LINK_SPEED_100MBPS_HALF_DUPLEX + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_2 :annotation: = 4 - .. py:data:: LINK_SPEED_10MBPS_FULL_DUPLEX + .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_3 :annotation: = 5 - .. py:data:: LINK_SPEED_10MBPS_HALF_DUPLEX + .. py:data:: GS_EX_SUBCMD_HSCAN1 :annotation: = 6 - .. py:data:: LINK_SPEED_1GBPS_FULL_DUPLEX + .. py:data:: GS_EX_SUBCMD_HSCAN2 + :annotation: = 7 + + .. py:data:: GS_EX_SUBCMD_HSCAN3 + :annotation: = 8 + + .. py:data:: GS_EX_SUBCMD_HSCAN4 + :annotation: = 9 + + .. py:data:: GS_EX_SUBCMD_LSFTCAN1 + :annotation: = 18 + + .. py:data:: GS_EX_SUBCMD_LSFTCAN2 + :annotation: = 19 + + .. py:data:: GS_EX_SUBCMD_LSFTCAN3 + :annotation: = 20 + + .. py:data:: GS_EX_SUBCMD_LSFTCAN4 + :annotation: = 21 + + .. py:data:: GS_EX_SUBCMD_MSCAN1 + :annotation: = 10 + + .. py:data:: GS_EX_SUBCMD_MSCAN2 + :annotation: = 11 + + .. py:data:: GS_EX_SUBCMD_MSCAN3 + :annotation: = 12 + + .. py:data:: GS_EX_SUBCMD_MSCAN4 + :annotation: = 13 + + .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET + :annotation: = 32 + + .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET_SUBVER_LATEST + :annotation: = 1 + + .. py:data:: GS_EX_SUBCMD_SWCAN1 + :annotation: = 14 + + .. py:data:: GS_EX_SUBCMD_SWCAN2 + :annotation: = 15 + + .. py:data:: GS_EX_SUBCMD_SWCAN3 + :annotation: = 16 + + .. py:data:: GS_EX_SUBCMD_SWCAN4 + :annotation: = 17 + + .. py:data:: GS_EX_SUBVER_STANDARD_STRUCT :annotation: = 1 - .. py:data:: LINK_SPEED_1GBPS_HALF_DUPLEX + .. py:data:: GS_VERSION + :annotation: = 5 + + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 :annotation: = 2 - .. py:data:: LINK_SPEED_AUTO_NEGOTIATION - :annotation: = 0 + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 + :annotation: = 5 - .. py:data:: LINK_SPEED_COUNT + .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC :annotation: = 7 - .. py:data:: LINUX_BOOT_ALLOWED - :annotation: = 1 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS + :annotation: = 10 - .. py:data:: LINUX_CONFIG_PORT_ETH_01 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US + :annotation: = 8 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS + :annotation: = 9 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI + :annotation: = 4 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN + :annotation: = 3 + + .. py:data:: HARDWARE_TIMESTAMP_ID_NONE + :annotation: = 0 + + .. py:data:: HARDWARE_TIMESTAMP_ID_VSI :annotation: = 1 - .. py:data:: LINUX_CONFIG_PORT_ETH_02 + .. py:data:: HW_ETH_SETTINGS_SIZE + :annotation: = 20 + + .. py:data:: INTREPIDCS_15765_RX_COMPLETE + :annotation: = 128 + + .. py:data:: INTREPIDCS_15765_RX_ERR_CFRX_EXP_FF :annotation: = 2 - .. py:data:: LINUX_CONFIG_PORT_NONE + .. py:data:: INTREPIDCS_15765_RX_ERR_CF_TIME_OUT + :annotation: = 64 + + .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_CF + :annotation: = 32 + + .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_FF + :annotation: = 4 + + .. py:data:: INTREPIDCS_15765_RX_ERR_FFRX_EXP_CF + :annotation: = 16 + + .. py:data:: INTREPIDCS_15765_RX_ERR_GLOBAL + :annotation: = 1 + + .. py:data:: INTREPIDCS_15765_RX_ERR_INVALID_LEN + :annotation: = 1024 + + .. py:data:: INTREPIDCS_15765_RX_ERR_SEQ_ERR_CF + :annotation: = 512 + + .. py:data:: INTREPIDCS_15765_RX_ERR_SFRX_EXP_CF + :annotation: = 8 + + .. py:data:: INTREPIDCS_15765_RX_IN_PROGRESS + :annotation: = 256 + + .. py:data:: INTREPIDCS_DEVICE_NEO4 :annotation: = 0 - .. py:data:: LIN_SETTINGS_SIZE + .. py:data:: INTREPIDCS_DEVICE_NEO6 + :annotation: = 2 + + .. py:data:: INTREPIDCS_DEVICE_NEOFIRE :annotation: = 10 - .. py:data:: LISTEN_ALL - :annotation: = 7 + .. py:data:: INTREPIDCS_DEVICE_NEORED + :annotation: = 10 - .. py:data:: LISTEN_ONLY + .. py:data:: INTREPIDCS_DEVICE_UNKNOWN :annotation: = 3 - .. py:data:: LOGGER_SETTINGS_SIZE + .. py:data:: INTREPIDCS_DEVICE_VCAN + :annotation: = 1 + + .. py:data:: INTREPIDCS_DEVICE_VCAN2_DW :annotation: = 4 - .. py:data:: LOOPBACK + .. py:data:: INTREPIDCS_DEVICE_VCAN2_LSFT + :annotation: = 6 + + .. py:data:: INTREPIDCS_DEVICE_VCAN2_SW + :annotation: = 5 + + .. py:data:: INTREPIDCS_DEVICE_VCAN2_WIFI + :annotation: = 7 + + .. py:data:: INTREPIDCS_DEVICE_VCAN3 + :annotation: = 11 + + .. py:data:: INTREPIDCS_DEVICE_VCAN3_CANDOC + :annotation: = 8 + + .. py:data:: INTREPIDCS_DRIVER_CYPRESS :annotation: = 2 - .. py:data:: MAIN_VNET + .. py:data:: INTREPIDCS_DRIVER_ENHANCED_3G + :annotation: = 4 + + .. py:data:: INTREPIDCS_DRIVER_STANDARD + :annotation: = 0 + + .. py:data:: INTREPIDCS_DRIVER_SYNCTOPC + :annotation: = 3 + + .. py:data:: INTREPIDCS_DRIVER_TEST :annotation: = 1 - .. py:data:: MAX_NUMBYTES_PHYSETTINGS - :annotation: = 512 + .. py:data:: ISO15765_2_NETWORK_HSCAN + :annotation: = 1 + + .. py:data:: ISO15765_2_NETWORK_HSCAN2 + :annotation: = 4 + + .. py:data:: ISO15765_2_NETWORK_HSCAN3 + :annotation: = 8 + + .. py:data:: ISO15765_2_NETWORK_HSCAN4 + :annotation: = 20 + + .. py:data:: ISO15765_2_NETWORK_HSCAN5 + :annotation: = 24 + + .. py:data:: ISO15765_2_NETWORK_HSCAN6 + :annotation: = 28 + + .. py:data:: ISO15765_2_NETWORK_HSCAN7 + :annotation: = 32 + + .. py:data:: ISO15765_2_NETWORK_MSCAN + :annotation: = 2 + + .. py:data:: ISO15765_2_NETWORK_SWCAN + :annotation: = 16 + + .. py:data:: ISO15765_2_NETWORK_SWCAN2 + :annotation: = 36 + + .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE + :annotation: = 114 + + .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE + :annotation: = 6 + + .. py:data:: J1708_SETTINGS_SIZE + :annotation: = 2 + + .. py:data:: JUPITER_PTP_ROLE_DISABLED + :annotation: = 0 + + .. py:data:: JUPITER_PTP_ROLE_MASTER + :annotation: = 1 + + .. py:data:: JUPITER_PTP_ROLE_SLAVE + :annotation: = 2 + + .. py:data:: LINUX_BOOT_ALLOWED + :annotation: = 1 + + .. py:data:: LINUX_CONFIG_PORT_ETH_01 + :annotation: = 1 + + .. py:data:: LINUX_CONFIG_PORT_ETH_02 + :annotation: = 2 + + .. py:data:: LINUX_CONFIG_PORT_NONE + :annotation: = 0 + + .. py:data:: LIN_SETTINGS_SIZE + :annotation: = 10 + + .. py:data:: LISTEN_ALL + :annotation: = 7 + + .. py:data:: LISTEN_ONLY + :annotation: = 3 + + .. py:data:: LL_AUTONOMOUS + :annotation: = 43 + + .. py:data:: LL_CMPROBE + :annotation: = 23 + + .. py:data:: LL_DEAD + :annotation: = 0 + + .. py:data:: LL_ECU22 + :annotation: = 47 + + .. py:data:: LL_ECU_20 + :annotation: = 14 + + .. py:data:: LL_ECU_40 + :annotation: = 12 + + .. py:data:: LL_ETHERNET_EVB + :annotation: = 17 + + .. py:data:: LL_ETHER_BADGE + :annotation: = 48 + + .. py:data:: LL_FIRE + :annotation: = 3 + + .. py:data:: LL_FIRE2_CYAN + :annotation: = 19 + + .. py:data:: LL_FIRE3 + :annotation: = 39 + + .. py:data:: LL_FIRE_DEMO + :annotation: = 2 + + .. py:data:: LL_FIRE_PRODUCTION + :annotation: = 11 + + .. py:data:: LL_GIGASTARLITE + :annotation: = 60 + + .. py:data:: LL_IEVB + :annotation: = 13 + + .. py:data:: LL_NEOECU12 + :annotation: = 36 + + .. py:data:: LL_NEOECU_AVB + :annotation: = 31 + + .. py:data:: LL_NEOOBD2_SIM + :annotation: = 24 + + .. py:data:: LL_NEOOBD_LOGGER + :annotation: = 16 + + .. py:data:: LL_NEO_HDA + :annotation: = 15 + + .. py:data:: LL_OBD2_DEV + :annotation: = 38 + + .. py:data:: LL_OBD2_LC + :annotation: = 37 + + .. py:data:: LL_OBD2_PRO + :annotation: = 29 + + .. py:data:: LL_OBDSIM_ETHERNET + :annotation: = 53 + + .. py:data:: LL_PRODUCTION + :annotation: = 1 + + .. py:data:: LL_RADCCS + :annotation: = 59 + + .. py:data:: LL_RADCOMET + :annotation: = 61 + + .. py:data:: LL_RADEPSILON + :annotation: = 49 + + .. py:data:: LL_RADEPSILON_EXPRESS + :annotation: = 55 + + .. py:data:: LL_RADEPSILON_T + :annotation: = 54 + + .. py:data:: LL_RADGALAXY + :annotation: = 20 + + .. py:data:: LL_RADGALAXY2 + :annotation: = 57 + + .. py:data:: LL_RADGIGALOG + :annotation: = 33 + + .. py:data:: LL_RADGIGASTAR + :annotation: = 41 + + .. py:data:: LL_RADJUPITER + :annotation: = 40 + + .. py:data:: LL_RADMOON2 + :annotation: = 32 + + .. py:data:: LL_RADMOON3 + :annotation: = 63 + + .. py:data:: LL_RADMOONDUO + :annotation: = 42 + + .. py:data:: LL_RADPLUTO + :annotation: = 34 + + .. py:data:: LL_RADPLUTO_LITE + :annotation: = 45 + + .. py:data:: LL_RADPROXIMA + :annotation: = 56 + + .. py:data:: LL_RADSTAR2 + :annotation: = 21 + + .. py:data:: LL_RADSUPERMOON + :annotation: = 30 + + .. py:data:: LL_RADUNIVERSE + :annotation: = 58 + + .. py:data:: LL_RAD_A2B + :annotation: = 50 + + .. py:data:: LL_RAD_BMS + :annotation: = 62 + + .. py:data:: LL_RED + :annotation: = 5 + + .. py:data:: LL_RED2 + :annotation: = 46 + + .. py:data:: LL_RED2_2 + :annotation: = 52 + + .. py:data:: LL_RED2_4 + :annotation: = 51 + + .. py:data:: LL_RED_LIMITED + :annotation: = 4 + + .. py:data:: LL_VALUECAN_RF + :annotation: = 18 + + .. py:data:: LL_VCAN3 + :annotation: = 9 + + .. py:data:: LL_VCAN3_LIMITED + :annotation: = 8 + + .. py:data:: LL_VCAN3_PRODUCTION + :annotation: = 10 + + .. py:data:: LL_VCAN4_1 + :annotation: = 25 + + .. py:data:: LL_VCAN4_2 + :annotation: = 26 + + .. py:data:: LL_VCAN4_4 + :annotation: = 27 + + .. py:data:: LL_VCAN4_EL + :annotation: = 28 + + .. py:data:: LL_VCAN4_IND + :annotation: = 44 + + .. py:data:: LL_VIVIDCAN + :annotation: = 22 + + .. py:data:: LL_VIVIDCAN_PRO + :annotation: = 35 + + .. py:data:: LL_YELLOW + :annotation: = 7 + + .. py:data:: LL_YELLOW_LIMITED + :annotation: = 6 + + .. py:data:: LOGGER_SETTINGS_SIZE + :annotation: = 4 + + .. py:data:: LOOPBACK + :annotation: = 2 + + .. py:data:: LSFTCAN2 + :annotation: = 1 + + .. py:data:: MAIN_VNET + :annotation: = 1 + + .. py:data:: MANUFACTURING_OPERATION_MAX_SIZE + :annotation: = 256 + + .. py:data:: MAX_NUMBYTES_PHYSETTINGS + :annotation: = 512 + + .. py:data:: MAX_PHY_REG_PKT_ENTRIES + :annotation: = 128 + + .. py:data:: MAX_PHY_SETTINGS_STRUCT + :annotation: = 128 + + .. py:data:: MAX_REPORTED_VERSIONS + :annotation: = 16 + + .. py:data:: MAX_VL_FORWARDING_ENTRIES + :annotation: = 1024 + + .. py:data:: MAX_VL_POLICING_ENTRIES + :annotation: = 1024 + + .. py:data:: MSCAN2 + :annotation: = 0 + + .. py:data:: NEODEVICE_ANY_ION + :annotation: = 262144 + + .. py:data:: NEODEVICE_ANY_PLASMA + :annotation: = 4096 + + .. py:data:: NEODEVICE_BLUE + :annotation: = 1 + + .. py:data:: NEODEVICE_CMPROBE + :annotation: = 8388608 + + .. py:data:: NEODEVICE_CT_OBD + :annotation: = 32768 + + .. py:data:: NEODEVICE_DONT_REUSE0 + :annotation: = 8192 + + .. py:data:: NEODEVICE_DONT_REUSE1 + :annotation: = 65536 + + .. py:data:: NEODEVICE_DONT_REUSE2 + :annotation: = 131072 + + .. py:data:: NEODEVICE_DONT_REUSE3 + :annotation: = 1048576 + + .. py:data:: NEODEVICE_DW_VCAN + :annotation: = 4 + + .. py:data:: NEODEVICE_ECU + :annotation: = 128 + + .. py:data:: NEODEVICE_ECU22 + :annotation: = 27 + + .. py:data:: NEODEVICE_ECUCHIP_UART + :annotation: = 2048 + + .. py:data:: NEODEVICE_ECU_AVB + :annotation: = 2 + + .. py:data:: NEODEVICE_EEVB + :annotation: = 16777216 + + .. py:data:: NEODEVICE_ETHER_BADGE + :annotation: = 22 + + .. py:data:: NEODEVICE_FIRE + :annotation: = 8 + + .. py:data:: NEODEVICE_FIRE2 + :annotation: = 67108864 + + .. py:data:: NEODEVICE_FIRE2_CYAN + :annotation: = 67108864 + + .. py:data:: NEODEVICE_FIRE2_REDLINE + :annotation: = 21 + + .. py:data:: NEODEVICE_FIRE3 + :annotation: = 15 + + .. py:data:: NEODEVICE_FIRE3_FLEXRAY + :annotation: = 37 + + .. py:data:: NEODEVICE_FLEX + :annotation: = 134217728 + + .. py:data:: NEODEVICE_GIGASTAR + :annotation: = 19 + + .. py:data:: NEODEVICE_IEVB + :annotation: = 256 + + .. py:data:: NEODEVICE_ION + :annotation: = 262144 + + .. py:data:: NEODEVICE_NEOANALOG + :annotation: = 16384 + + .. py:data:: NEODEVICE_NEOECU12 + :annotation: = 12 + + .. py:data:: NEODEVICE_NEOECUCHIP + :annotation: = 256 + + .. py:data:: NEODEVICE_NEW_DEVICE_58 + :annotation: = 31 + + .. py:data:: NEODEVICE_NEW_DEVICE_59 + :annotation: = 33 + + .. py:data:: NEODEVICE_OBD2_DEV + :annotation: = 26 + + .. py:data:: NEODEVICE_OBD2_LC + :annotation: = 13 + + .. py:data:: NEODEVICE_OBD2_PRO + :annotation: = 1024 + + .. py:data:: NEODEVICE_OBD2_SIM + :annotation: = -2147483648 + + .. py:data:: NEODEVICE_OBD2_SIM_DOIP + :annotation: = 25 + + .. py:data:: NEODEVICE_PENDANT + :annotation: = 512 + + .. py:data:: NEODEVICE_PLASMA + :annotation: = 4096 + + .. py:data:: NEODEVICE_RADCOMET + :annotation: = 36 + + .. py:data:: NEODEVICE_RADEPSILON + :annotation: = 24 + + .. py:data:: NEODEVICE_RADEPSILON_EXPRESS + :annotation: = 29 + + .. py:data:: NEODEVICE_RADEPSILON_T + :annotation: = 28 + + .. py:data:: NEODEVICE_RADGALAXY + :annotation: = 268435456 + + .. py:data:: NEODEVICE_RADGIGALOG + :annotation: = 6 + + .. py:data:: NEODEVICE_RADIO_CANHUB + :annotation: = 11 + + .. py:data:: NEODEVICE_RADJUPITER + :annotation: = 17 + + .. py:data:: NEODEVICE_RADMOON2 + :annotation: = 5 + + .. py:data:: NEODEVICE_RADMOON3 + :annotation: = 35 + + .. py:data:: NEODEVICE_RADPLUTO + :annotation: = 9 + + .. py:data:: NEODEVICE_RADPROXIMA + :annotation: = 30 + + .. py:data:: NEODEVICE_RADSTAR + :annotation: = 524288 + + .. py:data:: NEODEVICE_RADSTAR2 + :annotation: = 536870912 + + .. py:data:: NEODEVICE_RADSUPERMOON + :annotation: = 3 + + .. py:data:: NEODEVICE_RAD_A2B + :annotation: = 23 + + .. py:data:: NEODEVICE_RAD_BMS + :annotation: = 34 + + .. py:data:: NEODEVICE_RAD_MOON_DUO + :annotation: = 14 + + .. py:data:: NEODEVICE_RED + :annotation: = 64 + + .. py:data:: NEODEVICE_RED2 + :annotation: = 20 + + .. py:data:: NEODEVICE_UNKNOWN + :annotation: = 0 + + .. py:data:: NEODEVICE_VCAN3 + :annotation: = 16 + + .. py:data:: NEODEVICE_VCAN41 + :annotation: = 7 + + .. py:data:: NEODEVICE_VCAN42 + :annotation: = 4194304 + + .. py:data:: NEODEVICE_VCAN42_EL + :annotation: = 10 + + .. py:data:: NEODEVICE_VCAN44 + :annotation: = 2097152 + + .. py:data:: NEODEVICE_VCAN4_IND + :annotation: = 18 + + .. py:data:: NEODEVICE_VCANRF + :annotation: = 33554432 + + .. py:data:: NEODEVICE_VIVIDCAN + :annotation: = 1073741824 + + .. py:data:: NEOECU12_MCHIP_ID + :annotation: = 76 + + .. py:data:: NEOECU_AVB_MCHIP_ID + :annotation: = 68 + + .. py:data:: NEOECU_AVB_PROD_ID + :annotation: = 25 + + .. py:data:: NEOOBD2_LC_PROD_ID + :annotation: = 31 + + .. py:data:: NEOOBD2_PRO_PROD_ID + :annotation: = 23 + + .. py:data:: NEOOBD2_SIM_PROD_ID + :annotation: = 22 + + .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 + + .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 + + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 + + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 + + .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE + :annotation: = 1478 + + .. py:data:: NEOVI_ANALOG_MPIC_ID + :annotation: = 13 + + .. py:data:: NEOVI_AOUT_MCHIP + :annotation: = 26 + + .. py:data:: NEOVI_CMPROBE_PROD_ID + :annotation: = 14 + + .. py:data:: NEOVI_CMPROBE_ZYNQ_ID + :annotation: = 33 + + .. py:data:: NEOVI_COMMTYPE_FIRE_USB + :annotation: = 5 + + .. py:data:: NEOVI_COMMTYPE_RS232 + :annotation: = 0 + + .. py:data:: NEOVI_COMMTYPE_TCPIP + :annotation: = 3 + + .. py:data:: NEOVI_COMMTYPE_USB_BULK + :annotation: = 1 + + .. py:data:: NEOVI_ECU_MPIC_ID + :annotation: = 6 + + .. py:data:: NEOVI_ECU_PROD_ID + :annotation: = 4 + + .. py:data:: NEOVI_EEVB_PROD_ID + :annotation: = 15 + + .. py:data:: NEOVI_EEVB_STM32_ID + :annotation: = 34 + + .. py:data:: NEOVI_ERROR_ABORTED_FOR_SHUTDOWN + :annotation: = 286 + + .. py:data:: NEOVI_ERROR_ACTIVE_CONNECTION_ALREADY_EXISTS + :annotation: = 277 + + .. py:data:: NEOVI_ERROR_CHANNEL_LOCKED_BY_OTHER_CLIENT + :annotation: = 288 + + .. py:data:: NEOVI_ERROR_CHANNEL_LOCKING_NOT_SUPPORTED_FOR_DEVICE + :annotation: = 290 + + .. py:data:: NEOVI_ERROR_COREMINI_IN_USE + :annotation: = 284 + + .. py:data:: NEOVI_ERROR_DEVICE_COMMUNICATION_FAILURE + :annotation: = 732 + + .. py:data:: NEOVI_ERROR_DEVICE_ERROR_BUFFER_OVERFLOWED + :annotation: = 727 + + .. py:data:: NEOVI_ERROR_DEVICE_PERIPHERAL_RESET + :annotation: = 731 + + .. py:data:: NEOVI_ERROR_DEVICE_SYSTEM_CLOCK_FAILURE + :annotation: = 729 + + .. py:data:: NEOVI_ERROR_DEVICE_SYSTEM_CLOCK_RECOVERED + :annotation: = 730 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORBADINIT + :annotation: = 263 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMININULLPTR + :annotation: = 271 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMINIZEROLEN + :annotation: = 272 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOULDNOTOPENTOOL + :annotation: = 268 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORINVALIDDEVICESELECTED + :annotation: = 267 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORISONEG7FRESPONSE + :annotation: = 265 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOCANPIPE + :annotation: = 264 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOFLOWCONTROL + :annotation: = 269 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORTOOLNOTSELECTED + :annotation: = 266 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORUNSPECIFIC + :annotation: = 270 + + .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_OK + :annotation: = 262 + + .. py:data:: NEOVI_ERROR_DLL_3G_BL_FAILURE + :annotation: = 107 + + .. py:data:: NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED + :annotation: = 190 + + .. py:data:: NEOVI_ERROR_DLL_BULKIN_ERR_READ + :annotation: = 43 + + .. py:data:: NEOVI_ERROR_DLL_CLOSE_PURGE_COMM + :annotation: = 96 + + .. py:data:: NEOVI_ERROR_DLL_CONTACT_TECH_SUPPORT + :annotation: = 368 + + .. py:data:: NEOVI_ERROR_DLL_COULD_NOT_SET_SETTINGS_FIRMWARE_MISMATCH + :annotation: = 227 + + .. py:data:: NEOVI_ERROR_DLL_DEVICE_NOT_POWERED + :annotation: = 261 + + .. py:data:: NEOVI_ERROR_DLL_DEVICE_STATUS_FAN_FAILURE + :annotation: = 733 + + .. py:data:: NEOVI_ERROR_DLL_DEVICE_STATUS_OVERTEMPERATURE + :annotation: = 734 + + .. py:data:: NEOVI_ERROR_DLL_DEVICE_USB_CONNECTED_BUT_NOT_POWER + :annotation: = 294 + + .. py:data:: NEOVI_ERROR_DLL_DROPPED_RTC_CMD + :annotation: = 256 + + .. py:data:: NEOVI_ERROR_DLL_ERROR_BUFFER_OVERFLOW + :annotation: = 1 + + .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_RX_ERROR + :annotation: = 594 + + .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_TX_ERROR + :annotation: = 593 + + .. py:data:: NEOVI_ERROR_DLL_FAILED_TO_SET_LICENSE + :annotation: = 189 + + .. py:data:: NEOVI_ERROR_DLL_FEATURE_NOT_UNLOCKED + :annotation: = 260 + + .. py:data:: NEOVI_ERROR_DLL_FIRE_CGI_TX_NOT_ENABLED + :annotation: = 228 + + .. py:data:: NEOVI_ERROR_DLL_FIRMWARE_OLD_CANNOT_FLASH + :annotation: = 595 + + .. py:data:: NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR + :annotation: = 230 + + .. py:data:: NEOVI_ERROR_DLL_GET_USBSERIAL_DEVICES + :annotation: = 98 + + .. py:data:: NEOVI_ERROR_DLL_HARDWARE_FAILURE_SRAM + :annotation: = 276 + + .. py:data:: NEOVI_ERROR_DLL_HARDWARE_WATCHDOG_EVENT + :annotation: = 726 + + .. py:data:: NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK + :annotation: = 90 + + .. py:data:: NEOVI_ERROR_DLL_INTERNAL_SERIAL_NO_DOES_NOT_MATCH_REGISTRY_SERIAL_NO + :annotation: = 187 + + .. py:data:: NEOVI_ERROR_DLL_INVALID_DEVICE_RESPONSE + :annotation: = 12 + + .. py:data:: NEOVI_ERROR_DLL_INVALID_NETID + :annotation: = 8 + + .. py:data:: NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION + :annotation: = 213 + + .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_HOST_MISSED_BYTE + :annotation: = 74 + + .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_IN + :annotation: = 69 + + .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_OUT + :annotation: = 71 + + .. py:data:: NEOVI_ERROR_DLL_ISORX_LONG_BUFFER_ALLOC + :annotation: = 49 + + .. py:data:: NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC + :annotation: = 13 + + .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_BUFFER_ALLOC + :annotation: = 3 + + .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_READ_BUFFER + :annotation: = 4 + + .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_ZERO_PACKETS + :annotation: = 5 + + .. py:data:: NEOVI_ERROR_DLL_ISO_LONG_CACHE_OVERFLOW + :annotation: = 48 + + .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_BUFFER_ALLOC + :annotation: = 51 + + .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_CACHE_OVERFLOW + :annotation: = 50 + + .. py:data:: NEOVI_ERROR_DLL_J1850_TX_REQUESTS_FLUSHED + :annotation: = 257 + + .. py:data:: NEOVI_ERROR_DLL_JVPW_LONG_CACHE_OVERFLOW + :annotation: = 188 + + .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_IN + :annotation: = 68 + + .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_OUT + :annotation: = 70 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_DEV_FIFO_OVERFLOW + :annotation: = 46 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_LOADED_DEFAULT_SETTINGS + :annotation: = 205 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_AUTO_RTC + :annotation: = 279 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_FAILED_READ + :annotation: = 278 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_INVALID + :annotation: = 204 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_RX_FIFO_OVERFLOW + :annotation: = 44 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW + :annotation: = 45 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_DEVICE + :annotation: = 52 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN2 + :annotation: = 311 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_CHKSUM + :annotation: = 73 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_OVERRUN + :annotation: = 91 + + .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_IN_FROM_HOST_FIFO + :annotation: = 72 + + .. py:data:: NEOVI_ERROR_DLL_MAIN_PIC_BUFFER_OVERFLOW + :annotation: = 11 + + .. py:data:: NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE + :annotation: = 75 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B1 + :annotation: = 582 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B2 + :annotation: = 590 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_CGI + :annotation: = 211 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_09 + :annotation: = 665 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_10 + :annotation: = 671 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_11 + :annotation: = 677 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_12 + :annotation: = 683 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_13 + :annotation: = 689 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_14 + :annotation: = 695 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_15 + :annotation: = 701 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_16 + :annotation: = 707 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET + :annotation: = 517 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET2 + :annotation: = 601 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET3 + :annotation: = 637 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET_DAQ + :annotation: = 529 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN + :annotation: = 191 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN2 + :annotation: = 193 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN3 + :annotation: = 194 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN4 + :annotation: = 299 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN5 + :annotation: = 305 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN6 + :annotation: = 348 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN7 + :annotation: = 354 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C1 + :annotation: = 554 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C2 + :annotation: = 561 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C3 + :annotation: = 568 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C4 + :annotation: = 575 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO + :annotation: = 223 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO2 + :annotation: = 232 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO3 + :annotation: = 233 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO4 + :annotation: = 234 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_J1708 + :annotation: = 203 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_JVPW + :annotation: = 201 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_KYW + :annotation: = 202 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN1 + :annotation: = 197 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN2 + :annotation: = 198 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN3 + :annotation: = 199 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN4 + :annotation: = 200 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN5 + :annotation: = 343 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN6 + :annotation: = 366 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN_07 + :annotation: = 713 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN_08 + :annotation: = 719 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFT + :annotation: = 195 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFTCAN2 + :annotation: = 360 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_MSCAN + :annotation: = 192 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH1 + :annotation: = 373 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH10 + :annotation: = 481 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH11 + :annotation: = 493 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH12 + :annotation: = 505 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH2 + :annotation: = 385 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH3 + :annotation: = 397 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH4 + :annotation: = 409 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH5 + :annotation: = 421 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH6 + :annotation: = 433 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH7 + :annotation: = 445 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH8 + :annotation: = 457 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH9 + :annotation: = 469 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW + :annotation: = 196 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW2 + :annotation: = 313 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_UNKNOWN_NETWORK + :annotation: = 721 + + .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_SUPPORTED_BY_HARDWARE + :annotation: = 259 + + .. py:data:: NEOVI_ERROR_DLL_NRED_ODDNUMBYTES + :annotation: = 103 + + .. py:data:: NEOVI_ERROR_DLL_NRED_UNKNOWN_RED_NETID + :annotation: = 104 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_GET_COMM_TIMEOUT + :annotation: = 92 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_INBOOTLOADER + :annotation: = 100 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE + :annotation: = 94 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE_TOUT + :annotation: = 95 + + .. py:data:: NEOVI_ERROR_DLL_OPEN_SET_COMM_TIMEOUT + :annotation: = 93 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_FIRMWARE_INFO + :annotation: = 102 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_BULKIN_THREAD + :annotation: = 42 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_CLIENT_THREAD + :annotation: = 79 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_THREAD + :annotation: = 78 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RX_THREAD + :annotation: = 9 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_CLIENT_THREAD + :annotation: = 285 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_THREAD + :annotation: = 77 + + .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TX_THREAD + :annotation: = 10 + + .. py:data:: NEOVI_ERROR_DLL_READ_ENTIRE_DEEPROM_ERROR + :annotation: = 65 + + .. py:data:: NEOVI_ERROR_DLL_RED_APP_VERSION + :annotation: = 120 + + .. py:data:: NEOVI_ERROR_DLL_RED_AUTHENTICATE + :annotation: = 119 + + .. py:data:: NEOVI_ERROR_DLL_RED_BL_END_INDEX + :annotation: = 116 + + .. py:data:: NEOVI_ERROR_DLL_RED_BL_START_INDEX + :annotation: = 106 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B1 + :annotation: = 580 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B2 + :annotation: = 588 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_CGI + :annotation: = 209 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_09 + :annotation: = 663 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_10 + :annotation: = 669 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_11 + :annotation: = 675 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_12 + :annotation: = 681 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_13 + :annotation: = 687 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_14 + :annotation: = 693 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_15 + :annotation: = 699 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_16 + :annotation: = 705 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET + :annotation: = 516 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET2 + :annotation: = 600 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET3 + :annotation: = 636 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET_DAQ + :annotation: = 528 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1A + :annotation: = 333 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1B + :annotation: = 334 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2A + :annotation: = 335 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2B + :annotation: = 336 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN1 + :annotation: = 132 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN2 + :annotation: = 136 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN3 + :annotation: = 144 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN4 + :annotation: = 298 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN5 + :annotation: = 304 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN6 + :annotation: = 347 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN7 + :annotation: = 353 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C1 + :annotation: = 552 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C2 + :annotation: = 559 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C3 + :annotation: = 566 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C4 + :annotation: = 573 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO1 + :annotation: = 652 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO2 + :annotation: = 238 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO3 + :annotation: = 243 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO4 + :annotation: = 248 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_JVPW + :annotation: = 186 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN1 + :annotation: = 156 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN2 + :annotation: = 160 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN3 + :annotation: = 164 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN4 + :annotation: = 168 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN5 + :annotation: = 340 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN6 + :annotation: = 365 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN_07 + :annotation: = 711 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN_08 + :annotation: = 717 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN + :annotation: = 152 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN2 + :annotation: = 359 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_MSCAN1 + :annotation: = 140 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH1 + :annotation: = 372 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH10 + :annotation: = 480 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH11 + :annotation: = 492 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH12 + :annotation: = 504 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH2 + :annotation: = 384 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH3 + :annotation: = 396 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH4 + :annotation: = 408 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH5 + :annotation: = 420 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH6 + :annotation: = 432 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH7 + :annotation: = 444 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH8 + :annotation: = 456 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH9 + :annotation: = 468 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN + :annotation: = 148 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN2 + :annotation: = 310 + + .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_UNKNOWN_NETWORK + :annotation: = 720 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_CLEAR_LIN_SLAVE_DATA + :annotation: = 250 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_ENTER_BL + :annotation: = 117 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_SAVE_EEPROM + :annotation: = 124 + + .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_UPDATE_WAVEFORM_CHANNEL + :annotation: = 125 + + .. py:data:: NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED + :annotation: = 122 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET + :annotation: = 629 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET2 + :annotation: = 630 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET3 + :annotation: = 640 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET_DAQ + :annotation: = 631 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH1 + :annotation: = 617 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH10 + :annotation: = 626 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH11 + :annotation: = 627 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH12 + :annotation: = 628 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH2 + :annotation: = 618 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH3 + :annotation: = 619 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH4 + :annotation: = 620 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH5 + :annotation: = 621 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH6 + :annotation: = 622 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH7 + :annotation: = 623 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH8 + :annotation: = 624 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH9 + :annotation: = 625 + + .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_UNKNOWN_NETWORK + :annotation: = 724 + + .. py:data:: NEOVI_ERROR_DLL_RED_NOT_SUPPORTED + :annotation: = 105 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET + :annotation: = 653 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET2 + :annotation: = 654 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET3 + :annotation: = 656 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET_DAQ + :annotation: = 658 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH1 + :annotation: = 537 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH10 + :annotation: = 546 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH11 + :annotation: = 547 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH12 + :annotation: = 548 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH2 + :annotation: = 538 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH3 + :annotation: = 539 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH4 + :annotation: = 540 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH5 + :annotation: = 541 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH6 + :annotation: = 542 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH7 + :annotation: = 543 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH8 + :annotation: = 544 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH9 + :annotation: = 545 + + .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_UNKNOWN_NETWORK + :annotation: = 722 + + .. py:data:: NEOVI_ERROR_DLL_RED_READ_BAUD_COMM_FAILURE + :annotation: = 123 + + .. py:data:: NEOVI_ERROR_DLL_RED_REQ_SERIAL_NUMBER + :annotation: = 118 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B1 + :annotation: = 577 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B2 + :annotation: = 585 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_CGI + :annotation: = 206 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_09 + :annotation: = 660 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_10 + :annotation: = 666 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_11 + :annotation: = 672 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_12 + :annotation: = 678 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_13 + :annotation: = 684 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_14 + :annotation: = 690 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_15 + :annotation: = 696 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_16 + :annotation: = 702 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET + :annotation: = 513 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET2 + :annotation: = 597 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET3 + :annotation: = 633 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET_DAQ + :annotation: = 525 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_FR1A + :annotation: = 332 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN1 + :annotation: = 129 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN2 + :annotation: = 133 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN3 + :annotation: = 141 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN4 + :annotation: = 295 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN5 + :annotation: = 301 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN6 + :annotation: = 344 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN7 + :annotation: = 350 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C1 + :annotation: = 549 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C2 + :annotation: = 556 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C3 + :annotation: = 563 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C4 + :annotation: = 570 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO + :annotation: = 222 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO2 + :annotation: = 235 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO3 + :annotation: = 240 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO4 + :annotation: = 245 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_JVPW + :annotation: = 183 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN1 + :annotation: = 153 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN2 + :annotation: = 157 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN3 + :annotation: = 161 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN4 + :annotation: = 165 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN5 + :annotation: = 337 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN6 + :annotation: = 362 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN_07 + :annotation: = 708 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN_08 + :annotation: = 714 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN + :annotation: = 149 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN2 + :annotation: = 356 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_MSCAN1 + :annotation: = 137 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH1 + :annotation: = 369 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH10 + :annotation: = 477 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH11 + :annotation: = 489 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH12 + :annotation: = 501 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH2 + :annotation: = 381 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH3 + :annotation: = 393 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH4 + :annotation: = 405 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH5 + :annotation: = 417 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH6 + :annotation: = 429 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH7 + :annotation: = 441 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH8 + :annotation: = 453 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH9 + :annotation: = 465 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN + :annotation: = 145 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN2 + :annotation: = 307 + + .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_UNKNOWN_NETWORK + :annotation: = 126 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B1 + :annotation: = 581 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B2 + :annotation: = 589 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_CGI + :annotation: = 210 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_09 + :annotation: = 664 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_10 + :annotation: = 670 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_11 + :annotation: = 676 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_12 + :annotation: = 682 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_13 + :annotation: = 688 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_14 + :annotation: = 694 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_15 + :annotation: = 700 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_16 + :annotation: = 706 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET + :annotation: = 518 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET2 + :annotation: = 602 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET3 + :annotation: = 638 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET_DAQ + :annotation: = 530 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN1 + :annotation: = 172 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN2 + :annotation: = 173 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN3 + :annotation: = 174 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN4 + :annotation: = 300 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN5 + :annotation: = 306 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN6 + :annotation: = 349 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN7 + :annotation: = 355 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C1 + :annotation: = 553 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C2 + :annotation: = 560 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C3 + :annotation: = 567 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C4 + :annotation: = 574 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO1 + :annotation: = 255 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO2 + :annotation: = 239 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO3 + :annotation: = 244 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO4 + :annotation: = 249 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_JVPW + :annotation: = 212 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN1 + :annotation: = 178 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN2 + :annotation: = 179 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN3 + :annotation: = 180 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN4 + :annotation: = 181 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN5 + :annotation: = 342 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN6 + :annotation: = 367 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN_07 + :annotation: = 712 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN_08 + :annotation: = 718 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN + :annotation: = 177 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN2 + :annotation: = 361 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_MSCAN + :annotation: = 175 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH1 + :annotation: = 374 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH10 + :annotation: = 482 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH11 + :annotation: = 494 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH12 + :annotation: = 506 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH2 + :annotation: = 386 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH3 + :annotation: = 398 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH4 + :annotation: = 410 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH5 + :annotation: = 422 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH6 + :annotation: = 434 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH7 + :annotation: = 446 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH8 + :annotation: = 458 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH9 + :annotation: = 470 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN + :annotation: = 176 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN2 + :annotation: = 312 + + .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_UNKNOWN_NETWORK + :annotation: = 182 + + .. py:data:: NEOVI_ERROR_DLL_RED_SET_BAUD_COMM_FAILURE + :annotation: = 121 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B1 + :annotation: = 578 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B2 + :annotation: = 586 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_CGI + :annotation: = 207 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_09 + :annotation: = 661 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_10 + :annotation: = 667 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_11 + :annotation: = 673 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_12 + :annotation: = 679 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_13 + :annotation: = 685 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_14 + :annotation: = 691 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_15 + :annotation: = 697 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_16 + :annotation: = 703 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET + :annotation: = 514 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET2 + :annotation: = 598 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET3 + :annotation: = 634 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET_DAQ + :annotation: = 526 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN1 + :annotation: = 130 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN2 + :annotation: = 134 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN3 + :annotation: = 142 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN4 + :annotation: = 296 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN5 + :annotation: = 302 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN6 + :annotation: = 345 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN7 + :annotation: = 351 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C1 + :annotation: = 550 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C2 + :annotation: = 557 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C3 + :annotation: = 564 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C4 + :annotation: = 571 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO1 + :annotation: = 253 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO2 + :annotation: = 236 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO3 + :annotation: = 241 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO4 + :annotation: = 246 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_JVPW + :annotation: = 184 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN1 + :annotation: = 154 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN2 + :annotation: = 158 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN3 + :annotation: = 162 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN4 + :annotation: = 166 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN5 + :annotation: = 338 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN6 + :annotation: = 363 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN_07 + :annotation: = 709 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN_08 + :annotation: = 715 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN + :annotation: = 150 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN2 + :annotation: = 357 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_MSCAN1 + :annotation: = 138 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH1 + :annotation: = 370 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH10 + :annotation: = 478 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH11 + :annotation: = 490 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH12 + :annotation: = 502 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH2 + :annotation: = 382 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH3 + :annotation: = 394 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH4 + :annotation: = 406 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH5 + :annotation: = 418 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH6 + :annotation: = 430 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH7 + :annotation: = 442 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH8 + :annotation: = 454 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH9 + :annotation: = 466 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN + :annotation: = 146 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN2 + :annotation: = 308 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_UNKNOWN_NETWORK + :annotation: = 127 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET + :annotation: = 616 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET2 + :annotation: = 655 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET3 + :annotation: = 657 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET_DAQ + :annotation: = 659 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH1 + :annotation: = 604 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH10 + :annotation: = 613 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH11 + :annotation: = 614 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH12 + :annotation: = 615 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH2 + :annotation: = 605 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH3 + :annotation: = 606 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH4 + :annotation: = 607 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH5 + :annotation: = 608 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH6 + :annotation: = 609 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH7 + :annotation: = 610 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH8 + :annotation: = 611 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH9 + :annotation: = 612 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B1 + :annotation: = 579 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B2 + :annotation: = 587 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_CGI + :annotation: = 208 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_09 + :annotation: = 662 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_10 + :annotation: = 668 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_11 + :annotation: = 674 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_12 + :annotation: = 680 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_13 + :annotation: = 686 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_14 + :annotation: = 692 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_15 + :annotation: = 698 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_16 + :annotation: = 704 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET + :annotation: = 515 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET2 + :annotation: = 599 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET3 + :annotation: = 635 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET_DAQ + :annotation: = 527 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN1 + :annotation: = 131 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN2 + :annotation: = 135 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN3 + :annotation: = 143 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN4 + :annotation: = 297 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN5 + :annotation: = 303 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN6 + :annotation: = 346 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN7 + :annotation: = 352 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C1 + :annotation: = 551 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C2 + :annotation: = 558 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C3 + :annotation: = 565 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C4 + :annotation: = 572 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO1 + :annotation: = 254 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO2 + :annotation: = 237 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO3 + :annotation: = 242 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO4 + :annotation: = 247 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_JVPW + :annotation: = 185 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN1 + :annotation: = 155 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN2 + :annotation: = 159 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN3 + :annotation: = 163 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN4 + :annotation: = 167 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN5 + :annotation: = 339 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN6 + :annotation: = 364 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN_07 + :annotation: = 710 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN_08 + :annotation: = 716 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN + :annotation: = 151 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN2 + :annotation: = 358 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_MSCAN1 + :annotation: = 139 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH1 + :annotation: = 371 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH10 + :annotation: = 479 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH11 + :annotation: = 491 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH12 + :annotation: = 503 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH2 + :annotation: = 383 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH3 + :annotation: = 395 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH4 + :annotation: = 407 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH5 + :annotation: = 419 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH6 + :annotation: = 431 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH7 + :annotation: = 443 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH8 + :annotation: = 455 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH9 + :annotation: = 467 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN + :annotation: = 147 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN2 + :annotation: = 309 + + .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_UNKNOWN_NETWORK + :annotation: = 128 + + .. py:data:: NEOVI_ERROR_DLL_RESET_STATUS_CHANGED + :annotation: = 47 + + .. py:data:: NEOVI_ERROR_DLL_RS232_BUFFER_ALLOC + :annotation: = 18 + + .. py:data:: NEOVI_ERROR_DLL_RS232_CREATE_FILE + :annotation: = 33 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_BREAK + :annotation: = 26 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_FRAME + :annotation: = 27 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_IOE + :annotation: = 28 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_OVERRUN + :annotation: = 29 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_PARITY + :annotation: = 30 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READ + :annotation: = 17 + + .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READCOMERR + :annotation: = 16 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_BUFFER_ALLOC + :annotation: = 22 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_CLEARCOMM + :annotation: = 23 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_READCOMM + :annotation: = 24 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_TIMEOUT + :annotation: = 25 + + .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_WRITE + :annotation: = 21 + + .. py:data:: NEOVI_ERROR_DLL_RS232_GET_COMM_STATE + :annotation: = 34 + + .. py:data:: NEOVI_ERROR_DLL_RS232_MISC_ERROR + :annotation: = 20 + + .. py:data:: NEOVI_ERROR_DLL_RS232_RX_BUFFER_OVERFLOW + :annotation: = 15 + + .. py:data:: NEOVI_ERROR_DLL_RS232_SET_COMM_STATE + :annotation: = 35 + + .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_RX_THREAD + :annotation: = 36 + + .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_TX_THREAD + :annotation: = 37 + + .. py:data:: NEOVI_ERROR_DLL_RS232_TXBUFFER_ALLOC + :annotation: = 31 + + .. py:data:: NEOVI_ERROR_DLL_RS232_TX_BUFFER_OVERFLOW + :annotation: = 19 + + .. py:data:: NEOVI_ERROR_DLL_RX_BUFFER_ALMOST_FULL + :annotation: = 651 + + .. py:data:: NEOVI_ERROR_DLL_RX_CMD_BUFFER_OVERFLOW + :annotation: = 14 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW + :annotation: = 6 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_CHK_SUM_ERR + :annotation: = 41 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FIFO_OVER + :annotation: = 40 + + .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FRAME_ERR + :annotation: = 39 + + .. py:data:: NEOVI_ERROR_DLL_RX_SOCKET_FIFO_OVER + :annotation: = 76 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_CLEARING_SCRIPT + :annotation: = 221 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_DOWNLOADING_SCRIPT + :annotation: = 220 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX + :annotation: = 225 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX + :annotation: = 219 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_MSG_INDEX + :annotation: = 224 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING + :annotation: = 226 + + .. py:data:: NEOVI_ERROR_DLL_SCRIPT_START_ERROR + :annotation: = 218 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_FORMATTED + :annotation: = 215 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED + :annotation: = 214 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_READ_ERROR + :annotation: = 217 + + .. py:data:: NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR + :annotation: = 216 + + .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR + :annotation: = 229 + + .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_NOTPOSSIBLE + :annotation: = 287 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_RD_BUFFER_ALLOC + :annotation: = 86 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_TX_BUFFER_ALLOC + :annotation: = 87 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_RX_BUFFER_ALLOC + :annotation: = 88 + + .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_TX_BUFFER_ALLOC + :annotation: = 89 + + .. py:data:: NEOVI_ERROR_DLL_STOP_ISO_STREAM + :annotation: = 7 + + .. py:data:: NEOVI_ERROR_DLL_SYNC_COUNT_ERR + :annotation: = 38 + + .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX + :annotation: = 81 + + .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX_SOCK + :annotation: = 82 + + .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_TX + :annotation: = 80 + + .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_PERIODICS + :annotation: = 101 + + .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_TXRXPAIRS + :annotation: = 291 + + .. py:data:: NEOVI_ERROR_DLL_TXRXPAIRS_NOT_SUPPORTED_FOR_DEVICE + :annotation: = 292 + + .. py:data:: NEOVI_ERROR_DLL_TX_BUFFER_OVERFLOW + :annotation: = 0 + + .. py:data:: NEOVI_ERROR_DLL_TX_COM_FIFO_OVERFLOW + :annotation: = 97 + + .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B1 + :annotation: = 584 + + .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B2 + :annotation: = 592 + + .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_UNKNOWN_NETWORK + :annotation: = 725 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B1 + :annotation: = 583 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B2 + :annotation: = 591 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET + :annotation: = 524 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET2 + :annotation: = 603 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET3 + :annotation: = 639 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET_DAQ + :annotation: = 536 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C1 + :annotation: = 555 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C2 + :annotation: = 562 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C3 + :annotation: = 569 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C4 + :annotation: = 576 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH1 + :annotation: = 380 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH10 + :annotation: = 488 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH11 + :annotation: = 500 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH12 + :annotation: = 512 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH2 + :annotation: = 392 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH3 + :annotation: = 404 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH4 + :annotation: = 416 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH5 + :annotation: = 428 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH6 + :annotation: = 440 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH7 + :annotation: = 452 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH8 + :annotation: = 464 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH9 + :annotation: = 476 + + .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_UNKNOWN_NETWORK + :annotation: = 723 + + .. py:data:: NEOVI_ERROR_DLL_UNABLE_CONNECT_TO_SRVR + :annotation: = 83 - .. py:data:: MAX_PHY_REG_PKT_ENTRIES - :annotation: = 128 + .. py:data:: NEOVI_ERROR_DLL_UNABLE_CREATE_CLIENT_SOCK + :annotation: = 84 - .. py:data:: MAX_PHY_SETTINGS_STRUCT - :annotation: = 128 + .. py:data:: NEOVI_ERROR_DLL_UNABLE_WSASTARTUP + :annotation: = 85 - .. py:data:: MAX_REPORTED_VERSIONS - :annotation: = 16 + .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_APP_ERROR + :annotation: = 596 - .. py:data:: MAX_VL_FORWARDING_ENTRIES - :annotation: = 1024 + .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE + :annotation: = 231 - .. py:data:: MAX_VL_POLICING_ENTRIES - :annotation: = 1024 + .. py:data:: NEOVI_ERROR_DLL_USB_PORT_ALREADY_OPEN + :annotation: = 67 - .. py:data:: NEODEVICE_ANY_ION - :annotation: = 262144 + .. py:data:: NEOVI_ERROR_DLL_USB_PURGE_FAILED + :annotation: = 169 - .. py:data:: NEODEVICE_ANY_PLASMA - :annotation: = 4096 + .. py:data:: NEOVI_ERROR_DLL_USB_SEND_DATA_ERROR + :annotation: = 2 - .. py:data:: NEODEVICE_BLUE - :annotation: = 1 + .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_BCOUNT + :annotation: = 99 - .. py:data:: NEODEVICE_CMPROBE - :annotation: = 8388608 + .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_ERROR + :annotation: = 32 - .. py:data:: NEODEVICE_CT_OBD - :annotation: = 32768 + .. py:data:: NEOVI_ERROR_DLL_WRITE_ENTIRE_DEEPROM_ERROR + :annotation: = 66 - .. py:data:: NEODEVICE_DONT_REUSE0 - :annotation: = 8192 + .. py:data:: NEOVI_ERROR_ETHERNET_IP_FRAGMENT_DATA_LOSS + :annotation: = 632 - .. py:data:: NEODEVICE_DONT_REUSE1 - :annotation: = 65536 + .. py:data:: NEOVI_ERROR_FAILED_TO_SET_RTC + :annotation: = 331 - .. py:data:: NEODEVICE_DONT_REUSE2 - :annotation: = 131072 + .. py:data:: NEOVI_ERROR_FIRE_CGI_COMM_BAD_PACKET + :annotation: = 171 - .. py:data:: NEODEVICE_DONT_REUSE3 - :annotation: = 1048576 + .. py:data:: NEOVI_ERROR_FIRE_COMM_BAD_PACKET + :annotation: = 170 - .. py:data:: NEODEVICE_DW_VCAN - :annotation: = 4 + .. py:data:: NEOVI_ERROR_J1708_COMM_BAD_PACKET + :annotation: = 258 - .. py:data:: NEODEVICE_ECU - :annotation: = 128 + .. py:data:: NEOVI_ERROR_NEOVISERVER_GENERAL_ERROR + :annotation: = 289 - .. py:data:: NEODEVICE_ECU22 - :annotation: = 27 + .. py:data:: NEOVI_ERROR_PLASMA_CORE_RESTARTED + :annotation: = 280 - .. py:data:: NEODEVICE_ECUCHIP_UART - :annotation: = 2048 + .. py:data:: NEOVI_ERROR_REQ_VBATT_FAILED + :annotation: = 281 - .. py:data:: NEODEVICE_ECU_AVB - :annotation: = 2 + .. py:data:: NEOVI_ERROR_RX_FILTER_MATCH_COUNT_EXCEEDED + :annotation: = 316 - .. py:data:: NEODEVICE_EEVB - :annotation: = 16777216 + .. py:data:: NEOVI_ERROR_TXRX_PAIRS_BUSY + :annotation: = 283 - .. py:data:: NEODEVICE_ETHER_BADGE - :annotation: = 22 + .. py:data:: NEOVI_ERROR_TXRX_PAIRS_FAILED + :annotation: = 293 - .. py:data:: NEODEVICE_FIRE - :annotation: = 8 + .. py:data:: NEOVI_ERROR_TXRX_PAIRS_TIMEOUT + :annotation: = 282 - .. py:data:: NEODEVICE_FIRE2 - :annotation: = 67108864 + .. py:data:: NEOVI_ERROR_TX_INTERFACE_NOT_IMPLEMENTED + :annotation: = 314 - .. py:data:: NEODEVICE_FIRE2_REDLINE - :annotation: = 21 + .. py:data:: NEOVI_ERROR_TX_MESSAGES_COMM_ENABLE_IS_OFF + :annotation: = 315 - .. py:data:: NEODEVICE_FIRE3 - :annotation: = 15 + .. py:data:: NEOVI_ERROR_TX_MESSAGE_INDEX_OUT_OF_RANGE + :annotation: = 728 - .. py:data:: NEODEVICE_FLEX - :annotation: = 134217728 + .. py:data:: NEOVI_ETHER_BADGE_PROD_ID + :annotation: = 38 - .. py:data:: NEODEVICE_GIGASTAR - :annotation: = 19 + .. py:data:: NEOVI_FIRE2_CYAN_BLECHIP_ID + :annotation: = 42 - .. py:data:: NEODEVICE_IEVB - :annotation: = 256 + .. py:data:: NEOVI_FIRE2_CYAN_CCHIP_ID + :annotation: = 40 - .. py:data:: NEODEVICE_ION - :annotation: = 262144 + .. py:data:: NEOVI_FIRE2_CYAN_CORE_ID + :annotation: = 41 - .. py:data:: NEODEVICE_NEOANALOG - :annotation: = 16384 + .. py:data:: NEOVI_FIRE2_CYAN_CORE_SG4_ID + :annotation: = 105 - .. py:data:: NEODEVICE_NEOECU12 - :annotation: = 12 + .. py:data:: NEOVI_FIRE2_CYAN_MCHIP_ID + :annotation: = 39 - .. py:data:: NEODEVICE_NEOECUCHIP - :annotation: = 256 + .. py:data:: NEOVI_FIRE2_CYAN_PROD_ID + :annotation: = 18 - .. py:data:: NEODEVICE_NEW_DEVICE_58 - :annotation: = 31 + .. py:data:: NEOVI_FIRE2_CYAN_SECURITYCHIP_ID + :annotation: = 44 - .. py:data:: NEODEVICE_NEW_DEVICE_59 + .. py:data:: NEOVI_FIRE2_CYAN_ZYNQ_ID + :annotation: = 43 + + .. py:data:: NEOVI_FIRE3_PROD_ID :annotation: = 33 - .. py:data:: NEODEVICE_OBD2_DEV - :annotation: = 26 + .. py:data:: NEOVI_FIRE_JCHIP_ID + :annotation: = 3 - .. py:data:: NEODEVICE_OBD2_LC - :annotation: = 13 + .. py:data:: NEOVI_FIRE_LCHIP_ID + :annotation: = 1 - .. py:data:: NEODEVICE_OBD2_PRO - :annotation: = 1024 + .. py:data:: NEOVI_FIRE_MCHIP_ID + :annotation: = 0 - .. py:data:: NEODEVICE_OBD2_SIM - :annotation: = -2147483648 + .. py:data:: NEOVI_FIRE_PROD_ID + :annotation: = 1 - .. py:data:: NEODEVICE_OBD2_SIM_DOIP - :annotation: = 25 + .. py:data:: NEOVI_FIRE_UCHIP_ID + :annotation: = 2 - .. py:data:: NEODEVICE_PENDANT - :annotation: = 512 + .. py:data:: NEOVI_IEVB_MPIC_ID + :annotation: = 7 - .. py:data:: NEODEVICE_PLASMA - :annotation: = 4096 + .. py:data:: NEOVI_IEVB_PROD_ID + :annotation: = 5 - .. py:data:: NEODEVICE_RADEPSILON - :annotation: = 24 + .. py:data:: NEOVI_ION_CORE_ID + :annotation: = 19 - .. py:data:: NEODEVICE_RADEPSILON_EXPRESS - :annotation: = 29 + .. py:data:: NEOVI_ION_CORE_LOADER_ID + :annotation: = 21 - .. py:data:: NEODEVICE_RADEPSILON_T - :annotation: = 28 + .. py:data:: NEOVI_ION_FPGA_BIT_ID + :annotation: = 23 - .. py:data:: NEODEVICE_RADGALAXY - :annotation: = 268435456 + .. py:data:: NEOVI_ION_HID_ID + :annotation: = 20 - .. py:data:: NEODEVICE_RADGIGALOG - :annotation: = 6 + .. py:data:: NEOVI_ION_HID_LOADER_ID + :annotation: = 22 - .. py:data:: NEODEVICE_RADIO_CANHUB + .. py:data:: NEOVI_ION_PROD_ID :annotation: = 11 - .. py:data:: NEODEVICE_RADJUPITER - :annotation: = 17 + .. py:data:: NEOVI_MOST150_MCHIP + :annotation: = 29 - .. py:data:: NEODEVICE_RADMOON2 - :annotation: = 5 + .. py:data:: NEOVI_MOST25_MCHIP + :annotation: = 27 - .. py:data:: NEODEVICE_RADMOON3 - :annotation: = 35 + .. py:data:: NEOVI_MOST50_MCHIP + :annotation: = 28 - .. py:data:: NEODEVICE_RADPLUTO - :annotation: = 9 + .. py:data:: NEOVI_NEOANALOG_PROD_ID + :annotation: = 7 - .. py:data:: NEODEVICE_RADPROXIMA - :annotation: = 30 + .. py:data:: NEOVI_NEOECU12_PROD_ID + :annotation: = 8 - .. py:data:: NEODEVICE_RADSTAR - :annotation: = 524288 + .. py:data:: NEOVI_OBD2_SIM_MCHIP_ID + :annotation: = 53 - .. py:data:: NEODEVICE_RADSTAR2 - :annotation: = 536870912 + .. py:data:: NEOVI_PENDANT_MPIC_ID + :annotation: = 8 - .. py:data:: NEODEVICE_RADSUPERMOON - :annotation: = 3 + .. py:data:: NEOVI_PENDANT_PROD_ID + :annotation: = 6 - .. py:data:: NEODEVICE_RAD_A2B - :annotation: = 23 + .. py:data:: NEOVI_PLASMA_ANALOG_CORE_ID + :annotation: = 14 - .. py:data:: NEODEVICE_RAD_BMS - :annotation: = 34 + .. py:data:: NEOVI_PLASMA_CORE_ID + :annotation: = 11 - .. py:data:: NEODEVICE_RAD_MOON_DUO - :annotation: = 14 + .. py:data:: NEOVI_PLASMA_CORE_ID_1_12 + :annotation: = 16 - .. py:data:: NEODEVICE_RED - :annotation: = 64 + .. py:data:: NEOVI_PLASMA_FLEXRAY_CORE_ID + :annotation: = 15 - .. py:data:: NEODEVICE_RED2 - :annotation: = 20 + .. py:data:: NEOVI_PLASMA_HID_ID + :annotation: = 12 - .. py:data:: NEODEVICE_UNKNOWN - :annotation: = 0 + .. py:data:: NEOVI_PLASMA_PROD_ID + :annotation: = 10 - .. py:data:: NEODEVICE_VCAN3 - :annotation: = 16 + .. py:data:: NEOVI_PLASMA_SLAVE_B_ANALOG_CORE_ID + :annotation: = 247 - .. py:data:: NEODEVICE_VCAN41 - :annotation: = 7 + .. py:data:: NEOVI_PLASMA_SLAVE_B_FLEXRAY_CORE_ID + :annotation: = 248 - .. py:data:: NEODEVICE_VCAN42 - :annotation: = 4194304 + .. py:data:: NEOVI_RADGALAXY_FFG_ZYNQ_ID + :annotation: = 112 - .. py:data:: NEODEVICE_VCAN42_EL - :annotation: = 10 + .. py:data:: NEOVI_RADGALAXY_PROD_ID + :annotation: = 19 - .. py:data:: NEODEVICE_VCAN44 - :annotation: = 2097152 + .. py:data:: NEOVI_RADGALAXY_ZYNQ_ID + :annotation: = 45 - .. py:data:: NEODEVICE_VCAN4_IND - :annotation: = 18 + .. py:data:: NEOVI_RADGIGALOG3_ZYNQ_ID + :annotation: = 87 - .. py:data:: NEODEVICE_VCANRF - :annotation: = 33554432 + .. py:data:: NEOVI_RADGIGALOG_PROD_ID + :annotation: = 29 - .. py:data:: NEODEVICE_VIVIDCAN - :annotation: = 1073741824 + .. py:data:: NEOVI_RADGIGALOG_ZYNQ_ID + :annotation: = 75 - .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 + .. py:data:: NEOVI_RADJUPITER_PROD_ID + :annotation: = 34 - .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 + .. py:data:: NEOVI_RADMOON2_PROD_ID + :annotation: = 27 - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 + .. py:data:: NEOVI_RADMOON2_Z7010_ZYNQ_ID + :annotation: = 104 - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 + .. py:data:: NEOVI_RADMOON2_ZYNQ_ID + :annotation: = 71 - .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 942 + .. py:data:: NEOVI_RADPLUTO_PROD_ID + :annotation: = 28 - .. py:data:: NEOVI_COMMTYPE_FIRE_USB - :annotation: = 5 + .. py:data:: NEOVI_RADSTAR2_PROD_ID + :annotation: = 20 - .. py:data:: NEOVI_COMMTYPE_RS232 - :annotation: = 0 + .. py:data:: NEOVI_RADSTAR2_ZYNQ_ID + :annotation: = 51 - .. py:data:: NEOVI_COMMTYPE_TCPIP - :annotation: = 3 + .. py:data:: NEOVI_RADSTAR_MCHIP_ID + :annotation: = 37 - .. py:data:: NEOVI_COMMTYPE_USB_BULK - :annotation: = 1 + .. py:data:: NEOVI_RADSTAR_PROD_ID + :annotation: = 16 + + .. py:data:: NEOVI_RADSUPERMOON_PROD_ID + :annotation: = 26 + + .. py:data:: NEOVI_RADSUPERMOON_ZYNQ_ID + :annotation: = 70 + + .. py:data:: NEOVI_RED_PROD_ID + :annotation: = 0 .. py:data:: NEOVI_RED_TIMESTAMP_1_10NS :annotation: = 1e-08 @@ -1540,11 +4486,86 @@ Module Variables .. py:data:: NEOVI_RED_TIMESTAMP_2_25NS :annotation: = 107.3741824 + .. py:data:: NEOVI_SLAVE_B_AOUT_MCHIP + :annotation: = 252 + + .. py:data:: NEOVI_SLAVE_B_MOST150_MCHIP + :annotation: = 251 + + .. py:data:: NEOVI_SLAVE_B_MOST25_MCHIP + :annotation: = 249 + + .. py:data:: NEOVI_SLAVE_B_MOST50_MCHIP + :annotation: = 250 + + .. py:data:: NEOVI_SLAVE_B_VNETFIRE_LCHIP_ID + :annotation: = 246 + + .. py:data:: NEOVI_SLAVE_B_VNETFIRE_MCHIP_ID + :annotation: = 245 + + .. py:data:: NEOVI_SLAVE_VNETFIRE_LCHIP_ID + :annotation: = 18 + + .. py:data:: NEOVI_SLAVE_VNETFIRE_MCHIP_ID + :annotation: = 17 + .. py:data:: NEOVI_TIMESTAMP_1 :annotation: = 1.6e-06 - .. py:data:: NEOVI_TIMESTAMP_2 - :annotation: = 0.1048576 + .. py:data:: NEOVI_TIMESTAMP_2 + :annotation: = 0.1048576 + + .. py:data:: NEOVI_VCAN3_MCHIP_ID + :annotation: = 4 + + .. py:data:: NEOVI_VCAN3_PROD_ID + :annotation: = 2 + + .. py:data:: NEOVI_VCANRF_MCHIP_ID + :annotation: = 38 + + .. py:data:: NEOVI_VCANRF_PROD_ID + :annotation: = 17 + + .. py:data:: NEOVI_VIVIDCAN_EXT_FLASH_ID + :annotation: = 58 + + .. py:data:: NEOVI_VIVIDCAN_MCHIP_ID + :annotation: = 52 + + .. py:data:: NEOVI_VIVIDCAN_NRF52_ID + :annotation: = 59 + + .. py:data:: NEOVI_VIVIDCAN_PROD_ID + :annotation: = 21 + + .. py:data:: NEOVI_VIVIDCAN_PRO_PROD_ID + :annotation: = 3 + + .. py:data:: NEOVI_VNETFIRE_EP_LCHIP_ID + :annotation: = 25 + + .. py:data:: NEOVI_VNETFIRE_EP_MCHIP_ID + :annotation: = 24 + + .. py:data:: NEOVI_VNETFIRE_LCHIP_ID + :annotation: = 10 + + .. py:data:: NEOVI_VNETFIRE_MCHIP_ID + :annotation: = 9 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_LCHIP_ID + :annotation: = 254 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_MCHIP_ID + :annotation: = 253 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_LCHIP_ID + :annotation: = 36 + + .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_MCHIP_ID + :annotation: = 35 .. py:data:: NEO_CFG_MPIC_HS_CAN_CNF1 :annotation: = 522 @@ -1585,9 +4606,39 @@ Module Variables .. py:data:: NEO_CFG_MPIC_SW_CAN_CNF3 :annotation: = 544 + .. py:data:: NEO_OBD2_DEV_MCHIP_ID + :annotation: = 94 + + .. py:data:: NEO_OBD2_DEV_SCHIP_ID + :annotation: = 95 + + .. py:data:: NEO_OBD2_LC_MCHIP_ID + :annotation: = 79 + + .. py:data:: NEO_OBD2_LC_SCHIP_ID + :annotation: = 80 + + .. py:data:: NEO_OBD2_PRO_CORE_ID + :annotation: = 69 + + .. py:data:: NEO_OBD2_PRO_MCHIP_ID + :annotation: = 61 + + .. py:data:: NEO_OBD2_PRO_SCHIP_ID + :annotation: = 65 + + .. py:data:: NEO_OBD2_SIM_DOIP_MCHIP_ID + :annotation: = 96 + + .. py:data:: NEO_VCAN412_PROD_ID + :annotation: = 24 + .. py:data:: NETID_3G_APP_SIGNAL_STATUS :annotation: = 56 + .. py:data:: NETID_3G_CAN_ERRBITS + :annotation: = 24 + .. py:data:: NETID_3G_FB_STATUS :annotation: = 55 @@ -1633,6 +4684,30 @@ Module Variables .. py:data:: NETID_DEVICE_STATUS :annotation: = 513 + .. py:data:: NETID_DWCAN_09 + :annotation: = 534 + + .. py:data:: NETID_DWCAN_10 + :annotation: = 535 + + .. py:data:: NETID_DWCAN_11 + :annotation: = 536 + + .. py:data:: NETID_DWCAN_12 + :annotation: = 537 + + .. py:data:: NETID_DWCAN_13 + :annotation: = 538 + + .. py:data:: NETID_DWCAN_14 + :annotation: = 539 + + .. py:data:: NETID_DWCAN_15 + :annotation: = 540 + + .. py:data:: NETID_DWCAN_16 + :annotation: = 541 + .. py:data:: NETID_ETHERNET :annotation: = 93 @@ -1648,6 +4723,27 @@ Module Variables .. py:data:: NETID_ETHERNET_TX_WRAP :annotation: = 521 + .. py:data:: NETID_FIRE_CGI + :annotation: = 53 + + .. py:data:: NETID_FIRE_HSCAN2 + :annotation: = 42 + + .. py:data:: NETID_FIRE_HSCAN3 + :annotation: = 44 + + .. py:data:: NETID_FIRE_LIN2 + :annotation: = 48 + + .. py:data:: NETID_FIRE_LIN3 + :annotation: = 49 + + .. py:data:: NETID_FIRE_LIN4 + :annotation: = 50 + + .. py:data:: NETID_FIRE_MSCAN2 + :annotation: = 44 + .. py:data:: NETID_FLEXRAY :annotation: = 85 @@ -1759,6 +4855,12 @@ Module Variables .. py:data:: NETID_LIN6 :annotation: = 98 + .. py:data:: NETID_LIN_07 + :annotation: = 542 + + .. py:data:: NETID_LIN_08 + :annotation: = 543 + .. py:data:: NETID_LSFTCAN :annotation: = 4 @@ -1828,9 +4930,66 @@ Module Variables .. py:data:: NETID_RED_APP_ERROR :annotation: = 52 + .. py:data:: NETID_RED_DFLASH_READ + :annotation: = 22 + + .. py:data:: NETID_RED_DFLASH_WRITE_DONE + :annotation: = 25 + + .. py:data:: NETID_RED_EXT_MEMORYREAD + :annotation: = 20 + + .. py:data:: NETID_RED_GET_RTC + :annotation: = 40 + + .. py:data:: NETID_RED_HARDWARE_EXCEP + :annotation: = 39 + + .. py:data:: NETID_RED_INT_MEMORYREAD + :annotation: = 21 + + .. py:data:: NETID_RED_NEOVI_NETWORK + :annotation: = 35 + + .. py:data:: NETID_RED_OLDFORMAT + :annotation: = 37 + + .. py:data:: NETID_RED_READ_BAUD_SETTINGS + :annotation: = 36 + + .. py:data:: NETID_RED_SCOPE_CAPTURE + :annotation: = 38 + + .. py:data:: NETID_RED_SDCARD_READ + :annotation: = 23 + .. py:data:: NETID_RED_VBAT :annotation: = 74 + .. py:data:: NETID_RED_WAVE_CAN1_LOGICAL + :annotation: = 26 + + .. py:data:: NETID_RED_WAVE_CAN2_LOGICAL + :annotation: = 27 + + .. py:data:: NETID_RED_WAVE_LIN1_ANALOG + :annotation: = 30 + + .. py:data:: NETID_RED_WAVE_LIN1_LOGICAL + :annotation: = 28 + + .. py:data:: NETID_RED_WAVE_LIN2_ANALOG + :annotation: = 31 + + .. py:data:: NETID_RED_WAVE_LIN2_LOGICAL + :annotation: = 29 + + .. py:data:: NETID_RED_WAVE_MISCDIO2_LOGICAL + :annotation: = 33 + + .. py:data:: NETID_RED_WAVE_MISC_ANALOG + :annotation: = 32 + .. py:data:: NETID_RS232 :annotation: = 63 @@ -1840,6 +4999,9 @@ Module Variables .. py:data:: NETID_SPI1 :annotation: = 72 + .. py:data:: NETID_SPI2 + :annotation: = 544 + .. py:data:: NETID_SWCAN :annotation: = 3 @@ -1870,6 +5032,27 @@ Module Variables .. py:data:: NETID_WBMS :annotation: = 532 + .. py:data:: NETID_WBMS2 + :annotation: = 533 + + .. py:data:: NEW_DEVICE_57_PROD_ID + :annotation: = 45 + + .. py:data:: NEW_DEVICE_57_ZCHIP_ID + :annotation: = 101 + + .. py:data:: NEW_DEVICE_58_PROD_ID + :annotation: = 46 + + .. py:data:: NEW_DEVICE_58_ZCHIP_ID + :annotation: = 102 + + .. py:data:: NEW_DEVICE_59_MCHIP_ID + :annotation: = 103 + + .. py:data:: NEW_DEVICE_59_PROD_ID + :annotation: = 47 + .. py:data:: NORMAL :annotation: = 0 @@ -1883,7 +5066,7 @@ Module Variables :annotation: = 1 .. py:data:: NUM_VALID_DEVICE_FEATURES - :annotation: = 16 + :annotation: = 17 .. py:data:: OPETH_FUNC_MEDIACONVERTER :annotation: = 1 @@ -1939,9 +5122,6 @@ Module Variables .. py:data:: PHYREG_READ :annotation: = 0 - .. py:data:: PHYREG_RESERVED0 - :annotation: = 4 - .. py:data:: PHYREG_RESERVED1 :annotation: = 5 @@ -1954,6 +5134,9 @@ Module Variables .. py:data:: PHYREG_SUCCESS :annotation: = 0 + .. py:data:: PHYREG_UNSUPPORTED_MDIO_CLAUSE + :annotation: = 4 + .. py:data:: PHYREG_WRITE :annotation: = 1 @@ -2002,21 +5185,114 @@ Module Variables .. py:data:: PLUTO_NUM_PRIORITY :annotation: = 8 + .. py:data:: RADCOMET_PROD_ID + :annotation: = 50 + + .. py:data:: RADCOMET_ZCHIP_ID + :annotation: = 114 + + .. py:data:: RADEPSILON_EXPRESS_MCHIP_ID + :annotation: = 99 + + .. py:data:: RADEPSILON_EXPRESS_PROD_ID + :annotation: = 43 + .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 + .. py:data:: RADEPSILON_MCHIP_ID + :annotation: = 92 + + .. py:data:: RADEPSILON_PROD_ID + :annotation: = 39 + + .. py:data:: RADEPSILON_T_MCHIP_ID + :annotation: = 98 + + .. py:data:: RADEPSILON_T_PROD_ID + :annotation: = 42 + + .. py:data:: RADGIGASTAR_FFG_ZYNQ_ID + :annotation: = 117 + + .. py:data:: RADGIGASTAR_USBZ_Z7007S_ZYNQ_ID + :annotation: = 110 + + .. py:data:: RADGIGASTAR_USBZ_Z7010_ZYNQ_ID + :annotation: = 108 + + .. py:data:: RADGIGASTAR_USBZ_ZYNQ_ID + :annotation: = 88 + + .. py:data:: RADGIGASTAR_ZYNQ_ID + :annotation: = 89 + + .. py:data:: RADIO_CANHUB_MCHIP_ID + :annotation: = 77 + + .. py:data:: RADIO_CANHUB_PROD_ID + :annotation: = 30 + + .. py:data:: RADJUPITER_MCHIP_ID + :annotation: = 84 + .. py:data:: RADJUPITER_NUM_PORTS :annotation: = 8 + .. py:data:: RADMOON2_ZL_MCHIP_ID + :annotation: = 107 + + .. py:data:: RADMOON3_MCHIP_ID + :annotation: = 113 + + .. py:data:: RADMOON3_PROD_ID + :annotation: = 49 + .. py:data:: RADMOONDUO_CONVERTER_SETTINGS_SIZE :annotation: = 16 + .. py:data:: RADPLUTO_MCHIP_ID + :annotation: = 74 + + .. py:data:: RADPROXIMA_MCHIP_ID + :annotation: = 100 + + .. py:data:: RADPROXIMA_PROD_ID + :annotation: = 44 + + .. py:data:: RAD_4G_MCHIP_ID + :annotation: = 90 + + .. py:data:: RAD_A2B_PROD_ID + :annotation: = 40 + + .. py:data:: RAD_A2B_REVB_ZCHIP_ID + :annotation: = 116 + + .. py:data:: RAD_A2B_ZCHIP_ID + :annotation: = 93 + + .. py:data:: RAD_BMS_MCHIP_ID + :annotation: = 106 + + .. py:data:: RAD_BMS_PROD_ID + :annotation: = 48 + + .. py:data:: RAD_GIGASTAR_PROD_ID + :annotation: = 36 + .. py:data:: RAD_GPTP_AND_TAP_SETTINGS_SIZE :annotation: = 40 .. py:data:: RAD_GPTP_SETTINGS_SIZE :annotation: = 36 + .. py:data:: RAD_MOON_DUO_MCHIP_ID + :annotation: = 81 + + .. py:data:: RAD_MOON_DUO_PROD_ID + :annotation: = 32 + .. py:data:: RAD_REPORTING_SETTINGS_FLAG_AIN1 :annotation: = 256 @@ -2101,6 +5377,12 @@ Module Variables .. py:data:: REPORT_ON_PERIODIC :annotation: = 0 + .. py:data:: RESERVED_CHIP_ID_119 + :annotation: = 119 + + .. py:data:: RESERVED_CHIP_ID_120 + :annotation: = 120 + .. py:data:: RESISTOR_OFF :annotation: = 1 @@ -2470,6 +5752,36 @@ Module Variables .. py:data:: SERDESPOC_SETTINGS_SIZE :annotation: = 10 + .. py:data:: SFP_MODULE_MCHIP_ID + :annotation: = 97 + + .. py:data:: SFP_MODULE_PROD_ID + :annotation: = 41 + + .. py:data:: SLAVE_A_FIRE2_VNETZ_MCHIP_ID + :annotation: = 56 + + .. py:data:: SLAVE_A_FIRE2_VNETZ_ZYNQ_ID + :annotation: = 57 + + .. py:data:: SLAVE_A_FIRE2_VNET_CCHIP_ID + :annotation: = 48 + + .. py:data:: SLAVE_A_FIRE2_VNET_MCHIP_ID + :annotation: = 47 + + .. py:data:: SLAVE_B_FIRE2_VNETZ_MCHIP_ID + :annotation: = 242 + + .. py:data:: SLAVE_B_FIRE2_VNETZ_ZYNQ_ID + :annotation: = 241 + + .. py:data:: SLAVE_B_FIRE2_VNET_CCHIP_ID + :annotation: = 244 + + .. py:data:: SLAVE_B_FIRE2_VNET_MCHIP_ID + :annotation: = 243 + .. py:data:: SLAVE_VNET_A :annotation: = 2 @@ -2482,6 +5794,36 @@ Module Variables .. py:data:: SLOW_MODE :annotation: = 1 + .. py:data:: SPI_MODE_MASTER + :annotation: = 0 + + .. py:data:: SPI_MODE_PMS_EMULATION + :annotation: = 2 + + .. py:data:: SPI_MODE_SLAVE + :annotation: = 1 + + .. py:data:: SPI_PORT_EXTERNAL + :annotation: = 1 + + .. py:data:: SPI_PORT_ONBOARD + :annotation: = 0 + + .. py:data:: SPI_TYPE_RAW + :annotation: = 1 + + .. py:data:: SPI_TYPE_WIL + :annotation: = 0 + + .. py:data:: SPY_GPS_ALTITUDE + :annotation: = 2 + + .. py:data:: SPY_GPS_LOCATION + :annotation: = 0 + + .. py:data:: SPY_GPS_SPEED + :annotation: = 1 + .. py:data:: SPY_PROTOCOL_A2B :annotation: = 35 @@ -2899,6 +6241,9 @@ Module Variables .. py:data:: SPY_STATUS_XTD_FRAME :annotation: = 4 + .. py:data:: SWCAN2 + :annotation: = 2 + .. py:data:: SWCAN_AUTOSWITCH_DISABLED :annotation: = 0 @@ -2914,6 +6259,15 @@ Module Variables .. py:data:: SWCAN_SETTINGS_SIZE :annotation: = 14 + .. py:data:: SYSTEM_TIMESTAMP_ID_NONE + :annotation: = 0 + + .. py:data:: SYSTEM_TIMESTAMP_ID_TIMEGETTIME_API + :annotation: = 1 + + .. py:data:: TCP_SUPPORTED + :annotation: = 32 + .. py:data:: TIMESYNC_ICSHARDWARE_SETTINGS_SIZE :annotation: = 4 @@ -2923,12 +6277,90 @@ Module Variables .. py:data:: USE_TQ :annotation: = 1 + .. py:data:: VCAN41_MCHIP_ID + :annotation: = 62 + + .. py:data:: VCAN42_MCHIP_ID + :annotation: = 63 + + .. py:data:: VCAN44_CORE_ID + :annotation: = 64 + + .. py:data:: VCAN44_MCHIP_ID + :annotation: = 30 + + .. py:data:: VCAN44_PROD_ID + :annotation: = 12 + + .. py:data:: VCAN44_SCHIP_ID + :annotation: = 31 + + .. py:data:: VCAN4EL_MCHIP_ID + :annotation: = 67 + + .. py:data:: VCAN4_IND_MCHIP_ID + :annotation: = 85 + + .. py:data:: VCAN4_IND_PROD_ID + :annotation: = 35 + + .. py:data:: VEM_01_8DW_ZCHIP_ID + :annotation: = 111 + + .. py:data:: VEM_02_FR_FCHIP_ID + :annotation: = 118 + + .. py:data:: VEM_02_FR_ZCHIP_ID + :annotation: = 115 + + .. py:data:: VIVIDCAN_PRO_EXT_FLASH_ID + :annotation: = 73 + + .. py:data:: VIVIDCAN_PRO_MCHIP_ID + :annotation: = 72 + + .. py:data:: VIVIDCAN_PRO_PROD_ID + :annotation: = 37 + .. py:data:: VNETBITS_FEATURE_ANDROID_MSGS :annotation: = 1 .. py:data:: VNETBITS_FEATURE_DISABLE_USB_CHECK :annotation: = 2 + .. py:data:: VNET_ID_AIN + :annotation: = 5 + + .. py:data:: VNET_ID_FIRE + :annotation: = 1 + + .. py:data:: VNET_ID_FIRE2 + :annotation: = 7 + + .. py:data:: VNET_ID_FIRE2Z + :annotation: = 9 + + .. py:data:: VNET_ID_FIRE_EP + :annotation: = 2 + + .. py:data:: VNET_ID_FLEXRAY + :annotation: = 6 + + .. py:data:: VNET_ID_FLEXZ + :annotation: = 11 + + .. py:data:: VNET_ID_SLAVEFIRE + :annotation: = 3 + + .. py:data:: VNET_ID_SLAVEFIRE2 + :annotation: = 8 + + .. py:data:: VNET_ID_SLAVEFIRE2Z + :annotation: = 10 + + .. py:data:: VNET_ID_SLAVEFIRE_EP + :annotation: = 4 + .. py:data:: WIFI_ANTENNA_EXTERNAL :annotation: = 1 From f24a80ef97c46c6906f69893710e8ec02d8b64f0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 12:09:31 -0400 Subject: [PATCH 086/201] updated readme --- IntrepidCS.png | Bin 0 -> 5285 bytes README.md | 40 ++++++++++++++++------------------------ 2 files changed, 16 insertions(+), 24 deletions(-) create mode 100644 IntrepidCS.png diff --git a/IntrepidCS.png b/IntrepidCS.png new file mode 100644 index 0000000000000000000000000000000000000000..df0b6cb66db65dbaf3b21f552e89bbd35e2dc6f5 GIT binary patch literal 5285 zcmeI0XH%08(C*VnLJ5T4;iiLvbOZ?ydO+!*G!-y3rHj%fl)n%}xIsY>5LCLL(vd2? zSCL+%cMwpKemryLe1hlgGqZE;Z)W$!&d%)4?2?TQbum;NR1gRRqesv(g+QR-KPIB# z|1^_1S^J-3_tm!aHS=`x^|SYJgs2le9UK8YcY9|?Q%8GZfOnT84g!HgjBl80>w4Wl zpiuv7|C0_}TwEX@*7WoZ(lWAqZE6yiltFQcg-1kCpwZj_AS17U!7?zhu`vfXo}QlF zFfw7|Xm=+Snc*oxMm(uB&fY*gZTrJUu_ZNNZmbifn0U zY?4=0LQ&HUefvH>F+ojBH#0L^{ONPm_sxTYUju`~W*LLkUuu?r{_ULmiSn)GAvJM4 z`FiL5uxsJy)W&ayfQHDLncH{m|BH$aenLu4eVvn+uT9Vw6cKA}Yq!3AM^Z+%Z(;xM z@tJmVZ%D;d?fBNao|O*+YsV)iq^fDltf5O1S3JERx_Njxy10Iw+%`-baLW4*Cceme z`~G=+qN=*a{KDei;mP;WF-2w7nAo_Rme#3h8T8Do4Jd3EwMW^ESyD9oQYpNwtlX>vTAj0;|VGJlqu`hzkzw+Yiei) z$pQu%!OwV-o$*gvFVs0F{FeYm?og_imFgBwR3Wk)`+BohRp-S#G?RJcNb^x_@Z6>M zXZvH;+y*-<;cZp6ZVZ#^4ibd?p?K#`{pk-%*|7A0FEoy(p6fz6AEjUUG%vb7l?)|& zm)4&xv|2(S*j7C)b#wp8t&9MFmNxE=tB0HnK3KxOaO9HwQUgIB!uT;#n2XMt003A3 zSaTzdf{~g)C*Pq}3_$Tg)aO3*gC!jdtzT@t>0U81sd}lnetTwTOIdk$YiFzBWM_-> z;N{tQLY=a#vg~f~dHs z3S?gR@fwZwuYR(`AYMMA!eUK4#jucWSvC@6aL$pbv%@ApWxKkh#~Qe&j6z3$tYkq) zrwqUlf;BYIfa-|D+{_BkDh71^E*Ag{IRHQkB|2XgvefE08@&^vK^&1i zrj__TeP@B9^ZUa(y1<%LW`Y0@YIF^fAjWj0B>Du(@udHnSjO8+z_FP;N=0Xt&4RoE zp|sF?Z6*(@F5QAnoU`qwDU?gYQcZynszVWM+;uJ092E&@vp042NzgH^R!XuV=)s!< zUplxIaQF9wwgNCsoPMTt%-rcFmNCl$Ex4(=pbDMm7Xasc-2n;ix?Sssv6KWiE)S!; zBWA+e(po2qX0af(Ig-~|&Pj$f{$tU+!MZ97ki_+|c0&FfVd|~~GAx-9X$iUa@p%x3 zWK`oi5)R@A-cvvQ%ScFE#)mVjs=~bW*Nt-EuF^dbs{_SSbb@h zUKfJ(9)hRXbEXfZ*a~zfkqV4g!Bs*BJ;FQZ3}9gc4@T^! zpSAwQME|ltt%`;zips#UQTtY%XhD2NPvw|*(-X=QKiQd1g9CiEvN!Yk>QzAYWzUD2 z&3i~vt5m;cwVXQ;A4v6>>~$pZFO8K3@8iWx{`89xyff69H+~6V?k;Hjgx5&w$zbcW zo`nG}Ph6zml#VH2B(VzZGmmsM3^5!gt7(oj@4-NPVfI&8WaJ}Zu z#T@Bmh!~}?Tn)rnI8znYB~uAi%E*>lBU)&tMZODNWRZgYC+wZvnx*yTzkm}DEp?E9nXxi|d1_n4XRjXENNBz$}~-Ftdz*e0vPC&m_3lQJ>cO_`xSW{_E@{ zV)ty|NdX<-Lpw^)Bp}@tcnCUQRRTZYxI1;hmZ-awnW{{xMRz<91Z6mO;GJi1_5}(1 zU}g)y&uL2IA(R8t%WI@NlHl$X0XvfKYUa`X=;+fSZ8<>`)&KA(_iF~SC_t8bzc~X< z`*#}o%lwM?vnQ4h$udA~vRRnzG4oc>+@sniolT6U`=|jD@VBK!R*PpA9L5-L=h)q` zT^c9#cAVgd_$R$)VZpqkG4bFO)PFCG9uTo4{oo3x+I(e*EC@{a#2H=Qe*4m0n2J8d z{&!7S_^v~TZ1Z<^{iDW{_P1p+QLI)ZuP^>BZi&C2Jv-_y&b)gSR4VK%<_A^GfdNVc ztw(E|QS&7qt+vHqZ*y}k^7LL^NI}Wu_NmolOIo5jE8Hily`hL(4$uWiRg_~AF%PQV zkeYU0DOHq0_RJIL%fwNpBNZe?#)7Hd7N`*%7PN;NqyM-%59_|BJqX`_Y%pRi3`oNT zSFIcCvo;v;iG}Tpw6Z$MJxOxFh57S`MxPjLpJbt_ocE(<6Kad?U<(s(l(HDZ21iS| zD3f9Agx2&)V^*yjPC7jgzl0-~rZn^}Y^WKh?B2JbCX_Es=Lv(MVl!8%mm6c&M(3g|R*LTb_{}eX_1KW0Ad>cR)xw}r(#~Ov z#~EdCKqYz9&I%%^a54%t?uey&H57AZ3DCGDg(*P=#shl3l4&-gGaR) zcN7cg{9U^~fz7HuTGkOhyTU;d|vaXeetX+JA) zdSu~nv6r2EA)tW02}t}~+D7${SL)S53)kzLk}7Z z#Tm_v{|Qa_{WU#X==AJgoD%H#6lBdMYaK7br+~dqBCVQ`d2WC4m&WN&)s3U-gXdrE z)K+sd}NA~ZHgBHc<2 z^K~1ekkJY$t@ROJSGXaLF5d&Vld@XssrhfXzrPw=BlMR4&2+eeiEjj__?qNrvo5yQ zcRj*1eb> z^ye#!CA19sN};@>RYWH?!mq1}kMy*)Heg*~)YC^qY{RoO($s{xa z#{2C{k|2mE3Dit`p}vrZ@OztO77Aq(!NC|am)GuCETxbJI3K{e!kwfqW#z;cx|#o- zzCAukg=0@Zr!l%nDFt!RDAcu{<%^cdwqX#vxgJ_wh9WdQ_=8p<2CU2aJ&k(oJ$tp3 zJ`N5n?(y=`qH@UU-nZ=<{13C__{m>PmIn3_nC&P6ROhV@9M;7h@BT;erOx=CHd~2V zAufSMX=zsMe(f2tsg#BD0^OJzWB{e0+!l6HH-<(uMWDWfoYM}>jynCljY0^F%Myl))4)9I?jpoUo=8%si!)Mu2u#a+$b^(nvw$S2$28$%jH})tbY=Rj3n(HY4id{L z;*|4P{uB;DVb+IfKT14v{HAvO%t*u+cv~4@q5AWPE0#c8WPHyU63_R_UbMQz-jo01 z$7`<{S%^^_Q4R1}-K}s48 zLt#57ah^Ey#xv-%AT_p#zODbF!cSGr0Aa$FS(JPIy4X~)jY$^T z;k_NpgD@&BeRLy&>75u-P8bxGRtW&4=_S4Pe`ud0$oju_`rea~Do1Mm`(vR$dbfJ} z(;WSj(^C8={O(^Z%a}OZ>JReFJ>d355L&KK+we{Jy1EWojae?EbUW`K*^etT3u~3k z;sL#Nx-(kPq=t6ptIDX3HKeH|LS=Botlp(N_KY+#r@LO+pi1{mjiGWKzJx>!uS4HG zH|es}27c=+OG*LIbvH<)4SnO~7ONELkH^eq-XD5zAo2{CZ}x4KKfL?8u6ERJby#Fq z{YS0X_<(1jY5mE3xOp=Hp-Q3bm;NBW<$+>{DVjDiPF6mX7PUa!NMly@E%g%Y?v8{? z%k^zHJdi?qCh+ju_WsD!yY*0n3QJX`xQd4Q0Imk#6i3U`b`kIbwezgj#g3b|nb8vo z4$wPw!f))V@T>?KJ^lo!eBK*7Sa0Q`KhDz*0DJ7@Et*|l@Pbr>+(NfKl^C$YtOIF= zmi=MV$b}wJ{QYTVgY!Kr0j{8U4*g2XvaA&KwgBJNw*nF+=Cc&xH_0Cw3Yq>)-uQH^ zioQ7{NG5B9*}^#^=QWDiLxE@Fi>pWG*BG!@dK93f@(6Eg&A@1l$H&vhT*<-3;WY72cOK-OMJlMY>%<{IIqzd;AwcN~!(PJe!)QrMvC(Q(p)a!U zZN0|8dwYBe1o@<>7%Ca?&K}M$g~kT~Fn%Pwp^hx~o2KL_^%H7jZBW{)y>;JZa;tes^)vTk@t*OYg1k%gwyIi^(`23JbrPGEJ zpTn;C{z{E?5_^kJd@Z}prsiW43TcxUjq(vVeD!z;0?2O^OsrnKWvqxD`7&~8*6MRf z6%Aq;sa0B>FA?fvZYCFsAT>> import ics as icsneo - >>> devices = icsneo.FindNeoDevices() - >>> for device in devices: - ... print(device.Name, device.SerialNumber) - ... - neoVI FIRE 59886 - -#### Recommended Python way by doing the following: +### MacOS - >>> import ics - >>> devices = ics.find_devices() - >>> for device in devices: - ... print(device.Name, device.SerialNumber) - ... - neoVI FIRE 59886 +- Mac builds use [libicsneo](https://github.com/intrepidcs/libicsneo) and are built using cibuildwheel -It should be noted that `ics.NeoDevice` is used a little bit differently than the C API. `ics.NeoDevice` contains two extra members: +# Documentation + +http://python-ics.readthedocs.io/ -`ics.NeoDevice.AutoHandleClose` and `ics.NeoDevice._Handle` -The handle normally returned from `icsneoOpenNeoDevice()` is stored inside `_Handle` and setting `AutoHandleClose` to `True` (Default) will automatically close the handle when the `ics.NeoDevice` goes out of scope. # License - MIT From 29ff0ba34745cc73459f4755bc0e8c1428b63611 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 12:12:55 -0400 Subject: [PATCH 087/201] more changes to readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 17108539f..abe2935a5 100644 --- a/README.md +++ b/README.md @@ -19,16 +19,22 @@ Python wrapper for interfacing to IntrepidCS Hardware. ### Linux - Linux builds use [libicsneo](https://github.com/intrepidcs/libicsneo) and are built against [manylinux](https://github.com/pypa/manylinux) using cibuildwheel. +- libicsneolegacy.so is bundled with the wheel and python_ics will automatically use it. ### MacOS - 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. # Documentation http://python-ics.readthedocs.io/ +# Building from source + +- Building from source requires clang and clang-format to be present on the build machine. + # License - MIT Copyright (c) Intrepid Control Systems, Inc. From e680d920e4491b343d0d5ae0888b08c342d1eb25 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 Mar 2023 16:14:48 -0400 Subject: [PATCH 088/201] pypi markup fix. --- setup.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 8da93c289..9a52e16d4 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 911 MINOR_VERSION = 12 -POST_VERSION = None +POST_VERSION = 1 if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) @@ -118,6 +118,7 @@ def read(fname): version=VERSION_STRING, description='Library for interfacing with Intrepid devices in Python', long_description=read('README.md'), + long_description_content_type='text/markdown', license="MIT", author='David Rebbe', author_email='drebbe@intrepidcs.com', From f38993ded9a5e8c66313a1a45d018c1bef10fab0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 3 Apr 2023 12:55:49 -0400 Subject: [PATCH 089/201] implemented #139 and #132 methods --- include/methods.h | 35 ++++++++++++++- src/methods.cpp | 109 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+), 1 deletion(-) diff --git a/include/methods.h b/include/methods.h index c209a51b1..3842a56a4 100644 --- a/include/methods.h +++ b/include/methods.h @@ -96,7 +96,8 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); - +PyObject* meth_get_gptp_status(PyObject* self, PyObject* args); // icsneoGetGPTPStatus +PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args); // icsneoGetAllChipVersions #ifdef _cplusplus } @@ -1686,6 +1687,36 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); "\ttuple of (:class:`int`): (functionIndex, callbackError, finishedProcessing) \n\n" \ "\n" +#define _DOC_GET_GPTP_STATUS \ + MODULE_NAME ".get_gptp_status(device)\n" \ + "\n" \ + "Gets the gPTP Status from the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tics.structures.gptp_status.gptp_status (:class:`ics.structures.gptp_status.gptp_status`)\n\n" \ + "\n" + +#define _DOC_GET_ALL_CHIP_VERSIONS \ + MODULE_NAME ".get_all_chip_versions(device, api_index, instance_index)\n" \ + "\n" \ + "Get all the chip (firmware) versions of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tics.structures.st_chip_versions.st_chip_versions (:class:`ics.structures.st_chip_versions.st_chip_versions`)\n\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), @@ -1780,6 +1811,8 @@ static PyMethodDef IcsMethods[] = { _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), {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, diff --git a/src/methods.cpp b/src/methods.cpp index ba0f1d1e2..0bbde0b59 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -4070,3 +4070,112 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) } return set_ics_exception(exception_runtime_error(), "This is a bug!"); } + +PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + return NULL; + } + // Before we do anything, we need to grab the python gptp_status ctype.Structure. + PyObject* status = _getPythonModuleObject("ics.structures.gptp_status", "gptp_status"); + if (!status) + { + return NULL; + } + // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&status_buffer) when done. + Py_buffer status_buffer = {}; + PyObject_GetBuffer(status, &status_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + // Verify we have a valid NeoDevice Object - This comes after gptp_status allocation for testing purposes + if (!PyNeoDevice_CheckExact(obj)) { + PyBuffer_Release(&status_buffer); + Py_DECREF(status); + return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + PyBuffer_Release(&status_buffer); + Py_DECREF(status); + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + // Get the gptp_status + Py_BEGIN_ALLOW_THREADS + // int _stdcall icsneoGetGPTPStatus(void* hObject, GPTPStatus* gptpStatus) + ice::Function icsneoGetGPTPStatus(lib, "icsneoGetGPTPStatus"); + if (!icsneoGetGPTPStatus(handle, (GPTPStatus*)status_buffer.buf)) + { + Py_BLOCK_THREADS + PyBuffer_Release(&status_buffer); + Py_DECREF(status); + return set_ics_exception(exception_runtime_error(), "icsneoGetGPTPStatus() Failed"); + } + Py_END_ALLOW_THREADS + PyBuffer_Release(&status_buffer); + return status; + } + catch (ice::Exception& ex) + { + 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) +{ + PyObject* obj = NULL; + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + return NULL; + } + // Before we do anything, we need to grab the python ctype.Structure. + PyObject* py_struct = _getPythonModuleObject("ics.structures.st_chip_versions", "st_chip_versions"); + if (!py_struct) + { + return NULL; + } + // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&py_struct_buffer) when done. + Py_buffer py_struct_buffer = {}; + PyObject_GetBuffer(py_struct, &py_struct_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + // Verify we have a valid NeoDevice Object - This comes after ctypes struct allocation for testing purposes + if (!PyNeoDevice_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 "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + try + { + ice::Library* lib = dll_get_library(); + if (!lib) { + PyBuffer_Release(&py_struct_buffer); + Py_DECREF(py_struct); + char buffer[512]; + return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); + } + // 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, py_struct_buffer.len)) + { + Py_BLOCK_THREADS + PyBuffer_Release(&py_struct_buffer); + Py_DECREF(py_struct); + return set_ics_exception(exception_runtime_error(), "icsneoGetAllChipVersions() Failed"); + } + Py_END_ALLOW_THREADS + PyBuffer_Release(&py_struct_buffer); + return py_struct; + } + catch (ice::Exception& ex) + { + 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!"); +} From 3b8eb621f3318b8a4ae67199830c54c46a5347d9 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 3 Apr 2023 13:14:13 -0400 Subject: [PATCH 090/201] updated to v912.4 --- doc/source/conf.py | 4 +- doc/source/index.rst | 3915 ++---------------- ics/hiddenimports.py | 4 + ics/structures/__init__.py | 4 + ics/structures/e_device_settings_type.py | 4 +- ics/structures/global_settings.py | 12 +- ics/structures/ics_fire3_device_status.py | 4 +- ics/structures/ics_spy_message_flex_ray.py | 26 +- ics/structures/ics_spy_message_long.py | 12 +- ics/structures/ics_spy_message_vsb.py | 12 +- ics/structures/iso15765_2015_tx_message.py | 12 +- ics/structures/manufacturing_operation.py | 28 + ics/structures/s_device_settings.py | 4 + ics/structures/s_ext_sub_cmd_comm.py | 2 + ics/structures/s_fire3_flexray_settings.py | 119 + ics/structures/s_fire3_settings.py | 70 +- ics/structures/s_phy_reg_pkt.py | 16 +- ics/structures/s_red2_settings.py | 112 + ics/structures/s_spi_port_setting.py | 27 + ics/structures/s_spi_port_settings.py | 6 +- ics/structures/srada2_b_settings.py | 3 +- ics/structures/sradbms_settings.py | 2 + ics/structures/st_chip_versions.py | 30 + ics/structures/st_cm_iso157652_rx_message.py | 12 +- ics/structures/st_cm_iso157652_tx_message.py | 12 +- icsnVC40.h.enums.json | 326 +- icsnVC40.h.json | 1928 ++++++++- icsnVC40_processed.h | 460 +- include/ics/icsnVC40.h | 373 +- setup.py | 6 +- src/setup_module_auto_defines.cpp | 55 +- 31 files changed, 3614 insertions(+), 3986 deletions(-) create mode 100644 ics/structures/manufacturing_operation.py create mode 100644 ics/structures/s_fire3_flexray_settings.py create mode 100644 ics/structures/s_red2_settings.py create mode 100644 ics/structures/s_spi_port_setting.py diff --git a/doc/source/conf.py b/doc/source/conf.py index 87f67e529..af4d66789 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -49,14 +49,14 @@ # General information about the project. project = 'ics' -copyright = '2022, Intrepid Control Systems, Inc.' +copyright = 'Intrepid Control Systems, Inc.' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '911.12' +version = '912.4' # The full version, including alpha/beta/rc tags. release = version diff --git a/doc/source/index.rst b/doc/source/index.rst index 15351cbd6..474f7b22c 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -41,12 +41,12 @@ Module Functions ics.enable_network_com ics.find_devices ics.firmware_update_required - ics.flash_devices ics.force_firmware_update ics.generic_api_get_status ics.generic_api_read_data ics.generic_api_send_command ics.get_active_vnet_channel + ics.get_all_chip_versions ics.get_backup_power_enabled ics.get_backup_power_ready ics.get_bus_voltage @@ -57,6 +57,7 @@ Module Functions ics.get_dll_firmware_info ics.get_dll_version ics.get_error_messages + ics.get_gptp_status ics.get_hw_firmware_info ics.get_last_api_error ics.get_library_path @@ -73,7 +74,6 @@ Module Functions ics.iso15765_receive_message ics.iso15765_transmit_message ics.load_default_settings - ics.load_readbin ics.open_device ics.override_library_name ics.read_jupiter_firmware @@ -107,12 +107,12 @@ Module Functions ics.EnableNetworkCom ics.FindNeoDevices ics.FirmwareUpdateRequired - ics.FlashDevice2 ics.ForceFirmwareUpdate ics.GenericAPIGetStatus ics.GenericAPIReadData ics.GenericAPISendCommand ics.GetActiveVNETChannel + ics.GetAllChipVersions ics.GetBackupPowerEnabled ics.GetBackupPowerReady ics.GetBusVoltage @@ -121,6 +121,7 @@ Module Functions ics.GetDeviceSettings ics.GetDeviceStatus ics.GetErrorMessages + ics.GetGPTPStatus ics.GetHWFirmwareInfo ics.GetLastAPIError ics.GetMessages @@ -144,7 +145,6 @@ Module Functions ics.ScriptGetScriptStatus ics.ScriptGetScriptStatusEx ics.ScriptLoad - ics.ScriptLoadReadBin ics.ScriptReadAppSignal ics.ScriptReadRxMessage ics.ScriptReadTxMessage @@ -189,6 +189,7 @@ Module Functions ics.icsneoGenericAPIReadData ics.icsneoGenericAPISendCommand ics.icsneoGetActiveVNETChannel + ics.icsneoGetAllChipVersions ics.icsneoGetBackupPowerEnabled ics.icsneoGetBackupPowerReady ics.icsneoGetBusVoltage @@ -197,6 +198,7 @@ Module Functions ics.icsneoGetDeviceSettings ics.icsneoGetDeviceStatus ics.icsneoGetErrorMessages + ics.icsneoGetGPTPStatus ics.icsneoGetHWFirmwareInfo ics.icsneoGetLastAPIError ics.icsneoGetMessages @@ -224,7 +226,6 @@ Module Functions ics.icsneoScriptGetScriptStatus ics.icsneoScriptGetScriptStatusEx ics.icsneoScriptLoad - ics.icsneoScriptLoadReadBin ics.icsneoScriptReadAppSignal ics.icsneoScriptReadRxMessage ics.icsneoScriptReadTxMessage @@ -275,30 +276,10 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.bootloader_extended_pars_t.bootloader_extended_pars_t - :members: - :undoc-members: - - .. autoclass:: ics.structures.bootloader_pars_t.bootloader_pars_t - :members: - :undoc-members: - - .. autoclass:: ics.structures.can_clock_fire2_t.can_clock_fire2_t - :members: - :undoc-members: - - .. autoclass:: ics.structures.can_clock_t.can_clock_t - :members: - :undoc-members: - .. autoclass:: ics.structures.can_settings.can_settings :members: :undoc-members: - .. autoclass:: ics.structures.can_settings_decode.can_settings_decode - :members: - :undoc-members: - .. autoclass:: ics.structures.canfd_settings.canfd_settings :members: :undoc-members: @@ -379,10 +360,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ext_comm_subcommand.ext_comm_subcommand - :members: - :undoc-members: - .. autoclass:: ics.structures.extended_response_code.extended_response_code :members: :undoc-members: @@ -479,18 +456,10 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ics_spy_message_analog.ics_spy_message_analog - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_spy_message_flex_ray.ics_spy_message_flex_ray :members: :undoc-members: - .. autoclass:: ics.structures.ics_spy_message_gps.ics_spy_message_gps - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_spy_message_long.ics_spy_message_long :members: :undoc-members: @@ -499,14 +468,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.ics_spy_msg_time.ics_spy_msg_time - :members: - :undoc-members: - - .. autoclass:: ics.structures.ics_spy_time.ics_spy_time - :members: - :undoc-members: - .. autoclass:: ics.structures.ics_vcan4_device_status.ics_vcan4_device_status :members: :undoc-members: @@ -539,18 +500,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.manufacturing_error_type.manufacturing_error_type - :members: - :undoc-members: - - .. autoclass:: ics.structures.manufacturing_operation.manufacturing_operation - :members: - :undoc-members: - - .. autoclass:: ics.structures.manufacturing_operation_params.manufacturing_operation_params - :members: - :undoc-members: - .. autoclass:: ics.structures.op_eth_general_settings.op_eth_general_settings :members: :undoc-members: @@ -623,10 +572,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_fire3_flexray_settings.s_fire3_flexray_settings - :members: - :undoc-members: - .. autoclass:: ics.structures.s_fire3_settings.s_fire3_settings :members: :undoc-members: @@ -655,18 +600,10 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_neo_most_gateway_settings_decode.s_neo_most_gateway_settings_decode - :members: - :undoc-members: - .. autoclass:: ics.structures.s_pendant_settings.s_pendant_settings :members: :undoc-members: - .. autoclass:: ics.structures.s_performance_stats.s_performance_stats - :members: - :undoc-members: - .. autoclass:: ics.structures.s_phy_reg_pkt.s_phy_reg_pkt :members: :undoc-members: @@ -767,26 +704,10 @@ Module Structures :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_reflash_chip_t.s_reflash_chip_t - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_reflash_request.s_reflash_request - :members: - :undoc-members: - - .. autoclass:: ics.structures.s_spi_port_setting.s_spi_port_setting - :members: - :undoc-members: - .. autoclass:: ics.structures.s_spi_port_settings.s_spi_port_settings :members: :undoc-members: @@ -867,10 +788,6 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.spy_filter_bytes.spy_filter_bytes - :members: - :undoc-members: - .. autoclass:: ics.structures.spy_filter_long.spy_filter_long :members: :undoc-members: @@ -1048,117 +965,6 @@ Module Variables .. py:data:: A2B_SETTINGS_FLAG_16BIT :annotation: = 1 - .. py:data:: ACKBYTE_CANFD_DATALINK_LEN - :annotation: = 6 - - .. py:data:: ACKBYTE_CANFD_FLAGS - :annotation: = 0 - - .. py:data:: ACKBYTE_CAN_ETHERNET_PDU_TYPE - :annotation: = 1 - - .. py:data:: ACKBYTE_CATPGBPGT_GROUP - :annotation: = 7 - - .. py:data:: ACKBYTE_CATPGBPGT_PID_START - :annotation: = 2 - - .. py:data:: ACKBYTE_CGI_CRC_LOWER - :annotation: = 1 - - .. py:data:: ACKBYTE_CGI_CRC_UPPER - :annotation: = 0 - - .. py:data:: ACKBYTE_EXTRADATAPTR_LEN_START - :annotation: = 4 - - .. py:data:: ACKBYTE_FLEXRAT_TSSLENGTH - :annotation: = 7 - - .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_LOWER - :annotation: = 4 - - .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_MIDDLE - :annotation: = 5 - - .. py:data:: ACKBYTE_FLEXRAY_FRAME_CRC_UPPER - :annotation: = 6 - - .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_LOWER - :annotation: = 1 - - .. py:data:: ACKBYTE_FLEXRAY_HEADER_CRC_UPPER - :annotation: = 0 - - .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_LOWER - :annotation: = 2 - - .. py:data:: ACKBYTE_FLEXRAY_SLOT_WIDTH_UPPER - :annotation: = 3 - - .. py:data:: ACKBYTE_FLEXRAY_TX_LEN_START - :annotation: = 4 - - .. py:data:: ACKBYTE_GMFSA_DEST_IP_START - :annotation: = 4 - - .. py:data:: ACKBYTE_GMFSA_SRC_IP_START - :annotation: = 0 - - .. py:data:: ACKBYTE_I2C_BITRATE_START - :annotation: = 0 - - .. py:data:: ACKBYTE_ISO15765_PENDING_DESCID_START - :annotation: = 2 - - .. py:data:: ACKBYTE_ISO15765_PENDING_STATUS - :annotation: = 1 - - .. py:data:: ACKBYTE_J1708_TX - :annotation: = 1 - - .. py:data:: ACKBYTE_LIN_CHECKSUM - :annotation: = 0 - - .. py:data:: ACKBYTE_LIN_P0_P1 - :annotation: = 3 - - .. py:data:: ACKBYTE_LIN_TFRAME_LOWER - :annotation: = 2 - - .. py:data:: ACKBYTE_LIN_TFRAME_UPPER - :annotation: = 1 - - .. py:data:: ACKBYTE_LIN_TX - :annotation: = 1 - - .. py:data:: ACKBYTE_MOST_EVENT_TYPE - :annotation: = 0 - - .. py:data:: ACKBYTE_MOST_LEN_LOWER - :annotation: = 1 - - .. py:data:: ACKBYTE_MOST_LEN_UPPER - :annotation: = 0 - - .. py:data:: ACKBYTE_MOST_SOURCE_LOWER - :annotation: = 5 - - .. py:data:: ACKBYTE_MOST_SOURCE_UPPER - :annotation: = 4 - - .. py:data:: ACKBYTE_MOST_TARGET_LOWER - :annotation: = 7 - - .. py:data:: ACKBYTE_MOST_TARGET_UPPER - :annotation: = 6 - - .. py:data:: ACKBYTE_TCP_ACK_START - :annotation: = 4 - - .. py:data:: ACKBYTE_TCP_SEQ_START - :annotation: = 0 - .. py:data:: AUTO :annotation: = 0 @@ -1232,7 +1038,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Mar 15 2023 13:46:39 + :annotation: = Apr 3 2023 12:37:17 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1270,44 +1076,11 @@ Module Variables .. py:data:: CAN_BPS8000 :annotation: = 16 - .. py:data:: CAN_CLK_16MIPS - :annotation: = 3 - - .. py:data:: CAN_CLK_40MIPS - :annotation: = 1 - - .. py:data:: CAN_CLK_64MIPS - :annotation: = 2 - - .. py:data:: CAN_CLK_INVALID - :annotation: = 0 - .. py:data:: CAN_SETTINGS_SIZE :annotation: = 12 - .. py:data:: CHIP_ID_INVALID - :annotation: = 255 - - .. py:data:: CMPROBE_ZYNQ_ID - :annotation: = 60 - - .. py:data:: DEVELOPER_BACKDOOR - :annotation: = 943047254 - .. py:data:: DEVICECOUNT_FOR_EXPLORER - :annotation: = 44 - - .. py:data:: DEVICE_OPTION_DISABLE_AUTO_UPDATE - :annotation: = 2 - - .. py:data:: DEVICE_OPTION_DONT_ENABLE_NETCOMS - :annotation: = 4 - - .. py:data:: DEVICE_OPTION_DONT_USE_NEOVISERVER - :annotation: = 8 - - .. py:data:: DEVICE_OPTION_ENABLE_TIMESYNC - :annotation: = 1 + :annotation: = 43 .. py:data:: DISABLE :annotation: = 1 @@ -1324,18 +1097,6 @@ Module Variables .. py:data:: DISK_STRUCTURE_FLAG_FULL_FORMAT :annotation: = 1 - .. py:data:: DRIVER_MASK - :annotation: = 192 - - .. py:data:: DRIVER_USB1 - :annotation: = 64 - - .. py:data:: DRIVER_USB2 - :annotation: = 128 - - .. py:data:: DRIVER_USB3 - :annotation: = 192 - .. py:data:: ETHERNET10G_SETTINGS_SIZE :annotation: = 24 @@ -1411,9 +1172,6 @@ Module Variables .. py:data:: ETHERNET_SETTINGS_SIZE :annotation: = 8 - .. py:data:: ETHER_BADGE_MCHIP_ID - :annotation: = 86 - .. py:data:: EXTENDED_RESPONSE_INVALID_COMMAND :annotation: = -1 @@ -1432,3140 +1190,392 @@ Module Variables .. py:data:: EXTENDED_RESPONSE_OPERATION_PENDING :annotation: = -4 - .. py:data:: EXT_RESPONSE_GENERIC_RETURNCODE - :annotation: = 0 - - .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_CANCEL - :annotation: = 18 + .. py:data:: FAST_MODE + :annotation: = 3 - .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_PROGRESS - :annotation: = 19 + .. py:data:: GENERIC_API_DATA_BUFFER_SIZE + :annotation: = 513 - .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_START - :annotation: = 17 + .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION + :annotation: = 1 - .. py:data:: EXT_SUBCOMMAND_DISK_FORMAT_UPDATE - :annotation: = 20 + .. py:data:: GLOBAL_SETTINGS_SIZE + :annotation: = 942 - .. py:data:: EXT_SUBCOMMAND_EXTRACT - :annotation: = 21 + .. py:data:: GS_VERSION + :annotation: = 5 - .. py:data:: EXT_SUBCOMMAND_GET_COMPONENT_VERSIONS - :annotation: = 26 + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 + :annotation: = 2 - .. py:data:: EXT_SUBCOMMAND_GET_DISK_DETAILS - :annotation: = 16 + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 + :annotation: = 5 - .. py:data:: EXT_SUBCOMMAND_GET_SUPPORTED_FEATURES - :annotation: = 24 + .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC + :annotation: = 7 - .. py:data:: EXT_SUBCOMMAND_GPTP_GET_STATUS - :annotation: = 25 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS + :annotation: = 10 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_GET_FAN_PWM - :annotation: = 49 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US + :annotation: = 8 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_GET_FAN_RPM - :annotation: = 48 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS + :annotation: = 9 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_GET_RTC_CAL_VALUE - :annotation: = 45 + .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI + :annotation: = 4 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_LOCK - :annotation: = 42 + .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN + :annotation: = 3 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_FAN_ENABLE - :annotation: = 46 + .. py:data:: HARDWARE_TIMESTAMP_ID_NONE + :annotation: = 0 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_FAN_PWM - :annotation: = 47 + .. py:data:: HARDWARE_TIMESTAMP_ID_VSI + :annotation: = 1 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_RTC_CAL_ENABLE - :annotation: = 43 + .. py:data:: HW_ETH_SETTINGS_SIZE + :annotation: = 20 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_SET_RTC_CAL_VALUE - :annotation: = 44 + .. py:data:: ISO15765_2_NETWORK_HSCAN + :annotation: = 1 - .. py:data:: EXT_SUBCOMMAND_MANUFACTURING_UNLOCK - :annotation: = 41 + .. py:data:: ISO15765_2_NETWORK_HSCAN2 + :annotation: = 4 - .. py:data:: EXT_SUBCOMMAND_MAX - :annotation: = 65535 + .. py:data:: ISO15765_2_NETWORK_HSCAN3 + :annotation: = 8 - .. py:data:: EXT_SUBCOMMAND_READ_GENERIC_API_DATA - :annotation: = 30 + .. py:data:: ISO15765_2_NETWORK_HSCAN4 + :annotation: = 20 - .. py:data:: EXT_SUBCOMMAND_READ_GENERIC_API_STATUS - :annotation: = 29 + .. py:data:: ISO15765_2_NETWORK_HSCAN5 + :annotation: = 24 - .. py:data:: EXT_SUBCOMMAND_REBOOT_DEVICE + .. py:data:: ISO15765_2_NETWORK_HSCAN6 :annotation: = 28 - .. py:data:: EXT_SUBCOMMAND_SET_UPLOADED_FLAG - :annotation: = 39 + .. py:data:: ISO15765_2_NETWORK_HSCAN7 + :annotation: = 32 - .. py:data:: EXT_SUBCOMMAND_SOFTWARE_UPDATE - :annotation: = 27 + .. py:data:: ISO15765_2_NETWORK_MSCAN + :annotation: = 2 - .. py:data:: EXT_SUBCOMMAND_START_DHCPSERVER - :annotation: = 22 + .. py:data:: ISO15765_2_NETWORK_SWCAN + :annotation: = 16 - .. py:data:: EXT_SUBCOMMAND_STOP_DHCPSERVER - :annotation: = 23 + .. py:data:: ISO15765_2_NETWORK_SWCAN2 + :annotation: = 36 - .. py:data:: EXT_SUBCOMMAND_TX_COREMINI_MSG - :annotation: = 40 + .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE + :annotation: = 114 - .. py:data:: EXT_SUBCOMMAND_UART_PORT_GET_BAUDRATE - :annotation: = 38 + .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE + :annotation: = 6 - .. py:data:: EXT_SUBCOMMAND_UART_PORT_READ - :annotation: = 35 + .. py:data:: J1708_SETTINGS_SIZE + :annotation: = 2 - .. py:data:: EXT_SUBCOMMAND_UART_PORT_REQUEST_AND_ACTUAL_BYTES - :annotation: = 36 + .. py:data:: JUPITER_PTP_ROLE_DISABLED + :annotation: = 0 - .. py:data:: EXT_SUBCOMMAND_UART_PORT_SET_BAUDRATE - :annotation: = 37 - - .. py:data:: EXT_SUBCOMMAND_UART_PORT_WRITE - :annotation: = 34 - - .. py:data:: EXT_SUBCOMMAND_WBMS_LOCK_UNLOCK_MANAGER - :annotation: = 32 - - .. py:data:: EXT_SUBCOMMAND_WBMS_RESET_MANAGER - :annotation: = 33 - - .. py:data:: EXT_SUBCOMMAND_WRITE_GENERIC_API_COMMAND - :annotation: = 31 - - .. py:data:: FAST_MODE - :annotation: = 3 - - .. py:data:: FIRE2_REPORT_EMISC1_ANALOG - :annotation: = 32 - - .. py:data:: FIRE2_REPORT_EMISC1_DIGITAL - :annotation: = 2 - - .. py:data:: FIRE2_REPORT_EMISC2_ANALOG - :annotation: = 64 - - .. py:data:: FIRE2_REPORT_EMISC2_DIGITAL - :annotation: = 4 - - .. py:data:: FIRE2_REPORT_GPS - :annotation: = 1024 - - .. py:data:: FIRE2_REPORT_MISC5_DIGITAL - :annotation: = 8 - - .. py:data:: FIRE2_REPORT_MISC6_DIGITAL - :annotation: = 16 - - .. py:data:: FIRE2_REPORT_PERIODIC - :annotation: = 1 - - .. py:data:: FIRE2_REPORT_PWM_IN - :annotation: = 512 - - .. py:data:: FIRE2_REPORT_TEMP_ANALOG - :annotation: = 256 - - .. py:data:: FIRE2_REPORT_VBATT_ANALOG - :annotation: = 128 - - .. py:data:: FIRE2_VNETZ_MCHIP_ID - :annotation: = 54 - - .. py:data:: FIRE2_VNETZ_ZYNQ_ID - :annotation: = 55 - - .. py:data:: FIRE2_VNET_CCHIP_ID - :annotation: = 49 - - .. py:data:: FIRE2_VNET_CORE_ID - :annotation: = 50 - - .. py:data:: FIRE2_VNET_MCHIP_ID - :annotation: = 46 - - .. py:data:: FIRE3_LINUX_ID - :annotation: = 109 - - .. py:data:: FIRE3_REPORT_ORIENTATION - :annotation: = 2048 - - .. py:data:: FIRE3_SCHIP_ID - :annotation: = 91 - - .. py:data:: FIRE3_ZCHIP_ID - :annotation: = 82 - - .. py:data:: FIRE3_ZCHIP_MB_PATCH_ID - :annotation: = -2 - - .. py:data:: FLEXRAY_ERROR_BIT_FILE_NOT_FOUND - :annotation: = 319 - - .. py:data:: FLEXRAY_ERROR_DATA_INCORRECT_SEQUENCE_ERROR - :annotation: = 322 - - .. py:data:: FLEXRAY_ERROR_DATA_SYNCHRONIZATION_ERROR - :annotation: = 323 - - .. py:data:: FLEXRAY_ERROR_DEVICE_COULD_NOT_BE_OPENED - :annotation: = 318 - - .. py:data:: FLEXRAY_ERROR_ERROR_FIFO_OVERFLOW - :annotation: = 328 - - .. py:data:: FLEXRAY_ERROR_FPGA_CONFIG_FAILED - :annotation: = 320 - - .. py:data:: FLEXRAY_ERROR_HEARTBEAT_SEQUENCE_ERROR - :annotation: = 329 - - .. py:data:: FLEXRAY_ERROR_HEARTBEAT_TIMEOUT_ERROR - :annotation: = 330 - - .. py:data:: FLEXRAY_ERROR_HELPER_DLL_COULD_NOT_BE_LOADED - :annotation: = 324 - - .. py:data:: FLEXRAY_ERROR_INPUT_FIFO_OVERFLOW - :annotation: = 325 - - .. py:data:: FLEXRAY_ERROR_INVALID_ESCAPE_SEQUENCE - :annotation: = 326 - - .. py:data:: FLEXRAY_ERROR_NO_DEVICES_ATTACHED - :annotation: = 317 - - .. py:data:: FLEXRAY_ERROR_OUTPUT_MESSAGE_FIFO_OVERFLOW - :annotation: = 321 - - .. py:data:: FLEXRAY_ERROR_USB_LOW_LEVEL_READ_FAILURE - :annotation: = 327 - - .. py:data:: FLEX_VNETZ_FCHIP_ID - :annotation: = 83 - - .. py:data:: FLEX_VNETZ_ZCHIP_ID - :annotation: = 78 - - .. py:data:: GENERIC_API_DATA_BUFFER_SIZE - :annotation: = 513 - - .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION - :annotation: = 1 - - .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 1478 - - .. py:data:: GS_EX_ERR_API_FAILURE - :annotation: = 5 - - .. py:data:: GS_EX_ERR_GENERAL_FAILURE - :annotation: = 1 - - .. py:data:: GS_EX_ERR_INVALID_SUBCMD - :annotation: = 2 - - .. py:data:: GS_EX_ERR_INVALID_SUBVER - :annotation: = 3 - - .. py:data:: GS_EX_ERR_NOT_ENOUGH_MEM - :annotation: = 4 - - .. py:data:: GS_EX_ERR_OK - :annotation: = 0 - - .. py:data:: GS_EX_ERR_OK_DEFAULTS_USED - :annotation: = 7 - - .. py:data:: GS_EX_SUBCMD_DWCAN1 - :annotation: = 2 - - .. py:data:: GS_EX_SUBCMD_DWCAN2 - :annotation: = 3 - - .. py:data:: GS_EX_SUBCMD_DWCAN3 - :annotation: = 4 - - .. py:data:: GS_EX_SUBCMD_DWCAN4 - :annotation: = 5 - - .. py:data:: GS_EX_SUBCMD_GLOBAL - :annotation: = 1 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LATEST - :annotation: = 1 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_0 - :annotation: = 2 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_1 - :annotation: = 3 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_2 - :annotation: = 4 - - .. py:data:: GS_EX_SUBCMD_GLOBAL_SUBVER_LEGACY_3 - :annotation: = 5 - - .. py:data:: GS_EX_SUBCMD_HSCAN1 - :annotation: = 6 - - .. py:data:: GS_EX_SUBCMD_HSCAN2 - :annotation: = 7 - - .. py:data:: GS_EX_SUBCMD_HSCAN3 - :annotation: = 8 - - .. py:data:: GS_EX_SUBCMD_HSCAN4 - :annotation: = 9 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN1 - :annotation: = 18 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN2 - :annotation: = 19 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN3 - :annotation: = 20 - - .. py:data:: GS_EX_SUBCMD_LSFTCAN4 - :annotation: = 21 - - .. py:data:: GS_EX_SUBCMD_MSCAN1 - :annotation: = 10 - - .. py:data:: GS_EX_SUBCMD_MSCAN2 - :annotation: = 11 - - .. py:data:: GS_EX_SUBCMD_MSCAN3 - :annotation: = 12 - - .. py:data:: GS_EX_SUBCMD_MSCAN4 - :annotation: = 13 - - .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET - :annotation: = 32 - - .. py:data:: GS_EX_SUBCMD_SLAVEFIREVNET_SUBVER_LATEST - :annotation: = 1 - - .. py:data:: GS_EX_SUBCMD_SWCAN1 - :annotation: = 14 - - .. py:data:: GS_EX_SUBCMD_SWCAN2 - :annotation: = 15 - - .. py:data:: GS_EX_SUBCMD_SWCAN3 - :annotation: = 16 - - .. py:data:: GS_EX_SUBCMD_SWCAN4 - :annotation: = 17 - - .. py:data:: GS_EX_SUBVER_STANDARD_STRUCT - :annotation: = 1 - - .. py:data:: GS_VERSION - :annotation: = 5 - - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 - :annotation: = 2 - - .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_717 - :annotation: = 5 - - .. py:data:: HARDWARE_TIMESTAMP_ID_DOUBLE_SEC - :annotation: = 7 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10NS - :annotation: = 10 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_10US - :annotation: = 8 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEORED_25NS - :annotation: = 9 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NEOVI - :annotation: = 4 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NI_CAN - :annotation: = 3 - - .. py:data:: HARDWARE_TIMESTAMP_ID_NONE - :annotation: = 0 - - .. py:data:: HARDWARE_TIMESTAMP_ID_VSI - :annotation: = 1 - - .. py:data:: HW_ETH_SETTINGS_SIZE - :annotation: = 20 - - .. py:data:: INTREPIDCS_15765_RX_COMPLETE - :annotation: = 128 - - .. py:data:: INTREPIDCS_15765_RX_ERR_CFRX_EXP_FF - :annotation: = 2 - - .. py:data:: INTREPIDCS_15765_RX_ERR_CF_TIME_OUT - :annotation: = 64 - - .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_CF - :annotation: = 32 - - .. py:data:: INTREPIDCS_15765_RX_ERR_FCRX_EXP_FF - :annotation: = 4 - - .. py:data:: INTREPIDCS_15765_RX_ERR_FFRX_EXP_CF - :annotation: = 16 - - .. py:data:: INTREPIDCS_15765_RX_ERR_GLOBAL - :annotation: = 1 - - .. py:data:: INTREPIDCS_15765_RX_ERR_INVALID_LEN - :annotation: = 1024 - - .. py:data:: INTREPIDCS_15765_RX_ERR_SEQ_ERR_CF - :annotation: = 512 - - .. py:data:: INTREPIDCS_15765_RX_ERR_SFRX_EXP_CF - :annotation: = 8 - - .. py:data:: INTREPIDCS_15765_RX_IN_PROGRESS - :annotation: = 256 - - .. py:data:: INTREPIDCS_DEVICE_NEO4 - :annotation: = 0 - - .. py:data:: INTREPIDCS_DEVICE_NEO6 - :annotation: = 2 - - .. py:data:: INTREPIDCS_DEVICE_NEOFIRE - :annotation: = 10 - - .. py:data:: INTREPIDCS_DEVICE_NEORED - :annotation: = 10 - - .. py:data:: INTREPIDCS_DEVICE_UNKNOWN - :annotation: = 3 - - .. py:data:: INTREPIDCS_DEVICE_VCAN + .. py:data:: JUPITER_PTP_ROLE_MASTER :annotation: = 1 - .. py:data:: INTREPIDCS_DEVICE_VCAN2_DW - :annotation: = 4 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_LSFT - :annotation: = 6 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_SW - :annotation: = 5 - - .. py:data:: INTREPIDCS_DEVICE_VCAN2_WIFI - :annotation: = 7 - - .. py:data:: INTREPIDCS_DEVICE_VCAN3 - :annotation: = 11 - - .. py:data:: INTREPIDCS_DEVICE_VCAN3_CANDOC - :annotation: = 8 - - .. py:data:: INTREPIDCS_DRIVER_CYPRESS + .. py:data:: JUPITER_PTP_ROLE_SLAVE :annotation: = 2 - .. py:data:: INTREPIDCS_DRIVER_ENHANCED_3G - :annotation: = 4 - - .. py:data:: INTREPIDCS_DRIVER_STANDARD - :annotation: = 0 - - .. py:data:: INTREPIDCS_DRIVER_SYNCTOPC - :annotation: = 3 - - .. py:data:: INTREPIDCS_DRIVER_TEST - :annotation: = 1 - - .. py:data:: ISO15765_2_NETWORK_HSCAN - :annotation: = 1 - - .. py:data:: ISO15765_2_NETWORK_HSCAN2 - :annotation: = 4 - - .. py:data:: ISO15765_2_NETWORK_HSCAN3 - :annotation: = 8 - - .. py:data:: ISO15765_2_NETWORK_HSCAN4 - :annotation: = 20 - - .. py:data:: ISO15765_2_NETWORK_HSCAN5 - :annotation: = 24 - - .. py:data:: ISO15765_2_NETWORK_HSCAN6 - :annotation: = 28 - - .. py:data:: ISO15765_2_NETWORK_HSCAN7 - :annotation: = 32 - - .. py:data:: ISO15765_2_NETWORK_MSCAN - :annotation: = 2 - - .. py:data:: ISO15765_2_NETWORK_SWCAN - :annotation: = 16 - - .. py:data:: ISO15765_2_NETWORK_SWCAN2 - :annotation: = 36 - - .. py:data:: ISO9141_KEYWORD2000_SETTINGS_SIZE - :annotation: = 114 - - .. py:data:: ISO9141_KEYWORD2000__INIT_STEP_SIZE - :annotation: = 6 - - .. py:data:: J1708_SETTINGS_SIZE - :annotation: = 2 - - .. py:data:: JUPITER_PTP_ROLE_DISABLED - :annotation: = 0 - - .. py:data:: JUPITER_PTP_ROLE_MASTER - :annotation: = 1 - - .. py:data:: JUPITER_PTP_ROLE_SLAVE - :annotation: = 2 - - .. py:data:: LINUX_BOOT_ALLOWED - :annotation: = 1 - - .. py:data:: LINUX_CONFIG_PORT_ETH_01 - :annotation: = 1 - - .. py:data:: LINUX_CONFIG_PORT_ETH_02 - :annotation: = 2 - - .. py:data:: LINUX_CONFIG_PORT_NONE - :annotation: = 0 - - .. py:data:: LIN_SETTINGS_SIZE - :annotation: = 10 - - .. py:data:: LISTEN_ALL - :annotation: = 7 - - .. py:data:: LISTEN_ONLY - :annotation: = 3 - - .. py:data:: LL_AUTONOMOUS - :annotation: = 43 - - .. py:data:: LL_CMPROBE - :annotation: = 23 - - .. py:data:: LL_DEAD - :annotation: = 0 - - .. py:data:: LL_ECU22 - :annotation: = 47 - - .. py:data:: LL_ECU_20 - :annotation: = 14 - - .. py:data:: LL_ECU_40 - :annotation: = 12 - - .. py:data:: LL_ETHERNET_EVB - :annotation: = 17 - - .. py:data:: LL_ETHER_BADGE - :annotation: = 48 - - .. py:data:: LL_FIRE - :annotation: = 3 - - .. py:data:: LL_FIRE2_CYAN - :annotation: = 19 - - .. py:data:: LL_FIRE3 - :annotation: = 39 - - .. py:data:: LL_FIRE_DEMO - :annotation: = 2 - - .. py:data:: LL_FIRE_PRODUCTION - :annotation: = 11 - - .. py:data:: LL_GIGASTARLITE - :annotation: = 60 - - .. py:data:: LL_IEVB - :annotation: = 13 - - .. py:data:: LL_NEOECU12 - :annotation: = 36 - - .. py:data:: LL_NEOECU_AVB - :annotation: = 31 - - .. py:data:: LL_NEOOBD2_SIM - :annotation: = 24 - - .. py:data:: LL_NEOOBD_LOGGER - :annotation: = 16 - - .. py:data:: LL_NEO_HDA - :annotation: = 15 - - .. py:data:: LL_OBD2_DEV - :annotation: = 38 - - .. py:data:: LL_OBD2_LC - :annotation: = 37 - - .. py:data:: LL_OBD2_PRO - :annotation: = 29 - - .. py:data:: LL_OBDSIM_ETHERNET - :annotation: = 53 - - .. py:data:: LL_PRODUCTION - :annotation: = 1 - - .. py:data:: LL_RADCCS - :annotation: = 59 - - .. py:data:: LL_RADCOMET - :annotation: = 61 - - .. py:data:: LL_RADEPSILON - :annotation: = 49 - - .. py:data:: LL_RADEPSILON_EXPRESS - :annotation: = 55 - - .. py:data:: LL_RADEPSILON_T - :annotation: = 54 - - .. py:data:: LL_RADGALAXY - :annotation: = 20 - - .. py:data:: LL_RADGALAXY2 - :annotation: = 57 - - .. py:data:: LL_RADGIGALOG - :annotation: = 33 - - .. py:data:: LL_RADGIGASTAR - :annotation: = 41 - - .. py:data:: LL_RADJUPITER - :annotation: = 40 - - .. py:data:: LL_RADMOON2 - :annotation: = 32 - - .. py:data:: LL_RADMOON3 - :annotation: = 63 - - .. py:data:: LL_RADMOONDUO - :annotation: = 42 - - .. py:data:: LL_RADPLUTO - :annotation: = 34 - - .. py:data:: LL_RADPLUTO_LITE - :annotation: = 45 - - .. py:data:: LL_RADPROXIMA - :annotation: = 56 - - .. py:data:: LL_RADSTAR2 - :annotation: = 21 - - .. py:data:: LL_RADSUPERMOON - :annotation: = 30 - - .. py:data:: LL_RADUNIVERSE - :annotation: = 58 - - .. py:data:: LL_RAD_A2B - :annotation: = 50 - - .. py:data:: LL_RAD_BMS - :annotation: = 62 - - .. py:data:: LL_RED - :annotation: = 5 - - .. py:data:: LL_RED2 - :annotation: = 46 - - .. py:data:: LL_RED2_2 - :annotation: = 52 - - .. py:data:: LL_RED2_4 - :annotation: = 51 - - .. py:data:: LL_RED_LIMITED - :annotation: = 4 - - .. py:data:: LL_VALUECAN_RF - :annotation: = 18 - - .. py:data:: LL_VCAN3 - :annotation: = 9 - - .. py:data:: LL_VCAN3_LIMITED - :annotation: = 8 - - .. py:data:: LL_VCAN3_PRODUCTION - :annotation: = 10 - - .. py:data:: LL_VCAN4_1 - :annotation: = 25 - - .. py:data:: LL_VCAN4_2 - :annotation: = 26 - - .. py:data:: LL_VCAN4_4 - :annotation: = 27 - - .. py:data:: LL_VCAN4_EL - :annotation: = 28 - - .. py:data:: LL_VCAN4_IND - :annotation: = 44 - - .. py:data:: LL_VIVIDCAN - :annotation: = 22 - - .. py:data:: LL_VIVIDCAN_PRO - :annotation: = 35 - - .. py:data:: LL_YELLOW - :annotation: = 7 - - .. py:data:: LL_YELLOW_LIMITED - :annotation: = 6 - - .. py:data:: LOGGER_SETTINGS_SIZE - :annotation: = 4 - - .. py:data:: LOOPBACK - :annotation: = 2 - - .. py:data:: LSFTCAN2 - :annotation: = 1 - - .. py:data:: MAIN_VNET - :annotation: = 1 - - .. py:data:: MANUFACTURING_OPERATION_MAX_SIZE - :annotation: = 256 - - .. py:data:: MAX_NUMBYTES_PHYSETTINGS - :annotation: = 512 - - .. py:data:: MAX_PHY_REG_PKT_ENTRIES - :annotation: = 128 - - .. py:data:: MAX_PHY_SETTINGS_STRUCT - :annotation: = 128 - - .. py:data:: MAX_REPORTED_VERSIONS - :annotation: = 16 - - .. py:data:: MAX_VL_FORWARDING_ENTRIES - :annotation: = 1024 - - .. py:data:: MAX_VL_POLICING_ENTRIES - :annotation: = 1024 - - .. py:data:: MSCAN2 - :annotation: = 0 - - .. py:data:: NEODEVICE_ANY_ION - :annotation: = 262144 - - .. py:data:: NEODEVICE_ANY_PLASMA - :annotation: = 4096 - - .. py:data:: NEODEVICE_BLUE - :annotation: = 1 - - .. py:data:: NEODEVICE_CMPROBE - :annotation: = 8388608 - - .. py:data:: NEODEVICE_CT_OBD - :annotation: = 32768 - - .. py:data:: NEODEVICE_DONT_REUSE0 - :annotation: = 8192 - - .. py:data:: NEODEVICE_DONT_REUSE1 - :annotation: = 65536 - - .. py:data:: NEODEVICE_DONT_REUSE2 - :annotation: = 131072 - - .. py:data:: NEODEVICE_DONT_REUSE3 - :annotation: = 1048576 - - .. py:data:: NEODEVICE_DW_VCAN - :annotation: = 4 - - .. py:data:: NEODEVICE_ECU - :annotation: = 128 - - .. py:data:: NEODEVICE_ECU22 - :annotation: = 27 - - .. py:data:: NEODEVICE_ECUCHIP_UART - :annotation: = 2048 - - .. py:data:: NEODEVICE_ECU_AVB - :annotation: = 2 - - .. py:data:: NEODEVICE_EEVB - :annotation: = 16777216 - - .. py:data:: NEODEVICE_ETHER_BADGE - :annotation: = 22 - - .. py:data:: NEODEVICE_FIRE - :annotation: = 8 - - .. py:data:: NEODEVICE_FIRE2 - :annotation: = 67108864 - - .. py:data:: NEODEVICE_FIRE2_CYAN - :annotation: = 67108864 - - .. py:data:: NEODEVICE_FIRE2_REDLINE - :annotation: = 21 - - .. py:data:: NEODEVICE_FIRE3 - :annotation: = 15 - - .. py:data:: NEODEVICE_FIRE3_FLEXRAY - :annotation: = 37 - - .. py:data:: NEODEVICE_FLEX - :annotation: = 134217728 - - .. py:data:: NEODEVICE_GIGASTAR - :annotation: = 19 - - .. py:data:: NEODEVICE_IEVB - :annotation: = 256 - - .. py:data:: NEODEVICE_ION - :annotation: = 262144 - - .. py:data:: NEODEVICE_NEOANALOG - :annotation: = 16384 - - .. py:data:: NEODEVICE_NEOECU12 - :annotation: = 12 - - .. py:data:: NEODEVICE_NEOECUCHIP - :annotation: = 256 - - .. py:data:: NEODEVICE_NEW_DEVICE_58 - :annotation: = 31 - - .. py:data:: NEODEVICE_NEW_DEVICE_59 - :annotation: = 33 - - .. py:data:: NEODEVICE_OBD2_DEV - :annotation: = 26 - - .. py:data:: NEODEVICE_OBD2_LC - :annotation: = 13 - - .. py:data:: NEODEVICE_OBD2_PRO - :annotation: = 1024 - - .. py:data:: NEODEVICE_OBD2_SIM - :annotation: = -2147483648 - - .. py:data:: NEODEVICE_OBD2_SIM_DOIP - :annotation: = 25 - - .. py:data:: NEODEVICE_PENDANT - :annotation: = 512 - - .. py:data:: NEODEVICE_PLASMA - :annotation: = 4096 - - .. py:data:: NEODEVICE_RADCOMET - :annotation: = 36 - - .. py:data:: NEODEVICE_RADEPSILON - :annotation: = 24 - - .. py:data:: NEODEVICE_RADEPSILON_EXPRESS - :annotation: = 29 - - .. py:data:: NEODEVICE_RADEPSILON_T - :annotation: = 28 - - .. py:data:: NEODEVICE_RADGALAXY - :annotation: = 268435456 - - .. py:data:: NEODEVICE_RADGIGALOG - :annotation: = 6 - - .. py:data:: NEODEVICE_RADIO_CANHUB - :annotation: = 11 - - .. py:data:: NEODEVICE_RADJUPITER - :annotation: = 17 - - .. py:data:: NEODEVICE_RADMOON2 - :annotation: = 5 - - .. py:data:: NEODEVICE_RADMOON3 - :annotation: = 35 - - .. py:data:: NEODEVICE_RADPLUTO - :annotation: = 9 - - .. py:data:: NEODEVICE_RADPROXIMA - :annotation: = 30 - - .. py:data:: NEODEVICE_RADSTAR - :annotation: = 524288 - - .. py:data:: NEODEVICE_RADSTAR2 - :annotation: = 536870912 - - .. py:data:: NEODEVICE_RADSUPERMOON - :annotation: = 3 - - .. py:data:: NEODEVICE_RAD_A2B - :annotation: = 23 - - .. py:data:: NEODEVICE_RAD_BMS - :annotation: = 34 - - .. py:data:: NEODEVICE_RAD_MOON_DUO - :annotation: = 14 - - .. py:data:: NEODEVICE_RED - :annotation: = 64 - - .. py:data:: NEODEVICE_RED2 - :annotation: = 20 - - .. py:data:: NEODEVICE_UNKNOWN - :annotation: = 0 - - .. py:data:: NEODEVICE_VCAN3 - :annotation: = 16 - - .. py:data:: NEODEVICE_VCAN41 - :annotation: = 7 - - .. py:data:: NEODEVICE_VCAN42 - :annotation: = 4194304 - - .. py:data:: NEODEVICE_VCAN42_EL - :annotation: = 10 - - .. py:data:: NEODEVICE_VCAN44 - :annotation: = 2097152 - - .. py:data:: NEODEVICE_VCAN4_IND - :annotation: = 18 - - .. py:data:: NEODEVICE_VCANRF - :annotation: = 33554432 - - .. py:data:: NEODEVICE_VIVIDCAN - :annotation: = 1073741824 - - .. py:data:: NEOECU12_MCHIP_ID - :annotation: = 76 - - .. py:data:: NEOECU_AVB_MCHIP_ID - :annotation: = 68 - - .. py:data:: NEOECU_AVB_PROD_ID - :annotation: = 25 - - .. py:data:: NEOOBD2_LC_PROD_ID - :annotation: = 31 - - .. py:data:: NEOOBD2_PRO_PROD_ID - :annotation: = 23 - - .. py:data:: NEOOBD2_SIM_PROD_ID - :annotation: = 22 - - .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 - - .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 - - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 - :annotation: = 1e-06 - - .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 - :annotation: = 0.065536 - - .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 1478 - - .. py:data:: NEOVI_ANALOG_MPIC_ID - :annotation: = 13 - - .. py:data:: NEOVI_AOUT_MCHIP - :annotation: = 26 - - .. py:data:: NEOVI_CMPROBE_PROD_ID - :annotation: = 14 - - .. py:data:: NEOVI_CMPROBE_ZYNQ_ID - :annotation: = 33 - - .. py:data:: NEOVI_COMMTYPE_FIRE_USB - :annotation: = 5 - - .. py:data:: NEOVI_COMMTYPE_RS232 - :annotation: = 0 - - .. py:data:: NEOVI_COMMTYPE_TCPIP - :annotation: = 3 - - .. py:data:: NEOVI_COMMTYPE_USB_BULK - :annotation: = 1 - - .. py:data:: NEOVI_ECU_MPIC_ID - :annotation: = 6 - - .. py:data:: NEOVI_ECU_PROD_ID - :annotation: = 4 - - .. py:data:: NEOVI_EEVB_PROD_ID - :annotation: = 15 - - .. py:data:: NEOVI_EEVB_STM32_ID - :annotation: = 34 - - .. py:data:: NEOVI_ERROR_ABORTED_FOR_SHUTDOWN - :annotation: = 286 - - .. py:data:: NEOVI_ERROR_ACTIVE_CONNECTION_ALREADY_EXISTS - :annotation: = 277 - - .. py:data:: NEOVI_ERROR_CHANNEL_LOCKED_BY_OTHER_CLIENT - :annotation: = 288 - - .. py:data:: NEOVI_ERROR_CHANNEL_LOCKING_NOT_SUPPORTED_FOR_DEVICE - :annotation: = 290 - - .. py:data:: NEOVI_ERROR_COREMINI_IN_USE - :annotation: = 284 - - .. py:data:: NEOVI_ERROR_DEVICE_COMMUNICATION_FAILURE - :annotation: = 732 - - .. py:data:: NEOVI_ERROR_DEVICE_ERROR_BUFFER_OVERFLOWED - :annotation: = 727 - - .. py:data:: NEOVI_ERROR_DEVICE_PERIPHERAL_RESET - :annotation: = 731 - - .. py:data:: NEOVI_ERROR_DEVICE_SYSTEM_CLOCK_FAILURE - :annotation: = 729 - - .. py:data:: NEOVI_ERROR_DEVICE_SYSTEM_CLOCK_RECOVERED - :annotation: = 730 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORBADINIT - :annotation: = 263 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMININULLPTR - :annotation: = 271 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOREMINIZEROLEN - :annotation: = 272 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORCOULDNOTOPENTOOL - :annotation: = 268 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORINVALIDDEVICESELECTED - :annotation: = 267 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORISONEG7FRESPONSE - :annotation: = 265 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOCANPIPE - :annotation: = 264 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORNOFLOWCONTROL - :annotation: = 269 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORTOOLNOTSELECTED - :annotation: = 266 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_ERRORUNSPECIFIC - :annotation: = 270 - - .. py:data:: NEOVI_ERROR_DLL_3GCANDOWNLOADER_OK - :annotation: = 262 - - .. py:data:: NEOVI_ERROR_DLL_3G_BL_FAILURE - :annotation: = 107 - - .. py:data:: NEOVI_ERROR_DLL_3G_DEVICE_LICENSE_NEEDS_TO_BE_UPGRADED - :annotation: = 190 - - .. py:data:: NEOVI_ERROR_DLL_BULKIN_ERR_READ - :annotation: = 43 - - .. py:data:: NEOVI_ERROR_DLL_CLOSE_PURGE_COMM - :annotation: = 96 - - .. py:data:: NEOVI_ERROR_DLL_CONTACT_TECH_SUPPORT - :annotation: = 368 - - .. py:data:: NEOVI_ERROR_DLL_COULD_NOT_SET_SETTINGS_FIRMWARE_MISMATCH - :annotation: = 227 - - .. py:data:: NEOVI_ERROR_DLL_DEVICE_NOT_POWERED - :annotation: = 261 - - .. py:data:: NEOVI_ERROR_DLL_DEVICE_STATUS_FAN_FAILURE - :annotation: = 733 - - .. py:data:: NEOVI_ERROR_DLL_DEVICE_STATUS_OVERTEMPERATURE - :annotation: = 734 - - .. py:data:: NEOVI_ERROR_DLL_DEVICE_USB_CONNECTED_BUT_NOT_POWER - :annotation: = 294 - - .. py:data:: NEOVI_ERROR_DLL_DROPPED_RTC_CMD - :annotation: = 256 - - .. py:data:: NEOVI_ERROR_DLL_ERROR_BUFFER_OVERFLOW - :annotation: = 1 - - .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_RX_ERROR - :annotation: = 594 - - .. py:data:: NEOVI_ERROR_DLL_ETH_PCAP_TX_ERROR - :annotation: = 593 - - .. py:data:: NEOVI_ERROR_DLL_FAILED_TO_SET_LICENSE - :annotation: = 189 - - .. py:data:: NEOVI_ERROR_DLL_FEATURE_NOT_UNLOCKED - :annotation: = 260 - - .. py:data:: NEOVI_ERROR_DLL_FIRE_CGI_TX_NOT_ENABLED - :annotation: = 228 - - .. py:data:: NEOVI_ERROR_DLL_FIRMWARE_OLD_CANNOT_FLASH - :annotation: = 595 - - .. py:data:: NEOVI_ERROR_DLL_GET_DEVICE_CONFIG_ERROR - :annotation: = 230 - - .. py:data:: NEOVI_ERROR_DLL_GET_USBSERIAL_DEVICES - :annotation: = 98 - - .. py:data:: NEOVI_ERROR_DLL_HARDWARE_FAILURE_SRAM - :annotation: = 276 - - .. py:data:: NEOVI_ERROR_DLL_HARDWARE_WATCHDOG_EVENT - :annotation: = 726 - - .. py:data:: NEOVI_ERROR_DLL_ILLEGAL_TX_NETWORK - :annotation: = 90 - - .. py:data:: NEOVI_ERROR_DLL_INTERNAL_SERIAL_NO_DOES_NOT_MATCH_REGISTRY_SERIAL_NO - :annotation: = 187 - - .. py:data:: NEOVI_ERROR_DLL_INVALID_DEVICE_RESPONSE - :annotation: = 12 - - .. py:data:: NEOVI_ERROR_DLL_INVALID_NETID - :annotation: = 8 - - .. py:data:: NEOVI_ERROR_DLL_INVALID_SCRIPT_LOCATION - :annotation: = 213 - - .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_HOST_MISSED_BYTE - :annotation: = 74 - - .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_IN - :annotation: = 69 - - .. py:data:: NEOVI_ERROR_DLL_ISOJ_TX_REPORT_FIFO_ERR_OUT - :annotation: = 71 - - .. py:data:: NEOVI_ERROR_DLL_ISORX_LONG_BUFFER_ALLOC - :annotation: = 49 - - .. py:data:: NEOVI_ERROR_DLL_ISOTX_DATA_BUFFER_ALLOC - :annotation: = 13 - - .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_BUFFER_ALLOC - :annotation: = 3 - - .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_READ_BUFFER - :annotation: = 4 - - .. py:data:: NEOVI_ERROR_DLL_ISO_DATA_ZERO_PACKETS - :annotation: = 5 - - .. py:data:: NEOVI_ERROR_DLL_ISO_LONG_CACHE_OVERFLOW - :annotation: = 48 - - .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_BUFFER_ALLOC - :annotation: = 51 - - .. py:data:: NEOVI_ERROR_DLL_J1708_LONG_CACHE_OVERFLOW - :annotation: = 50 - - .. py:data:: NEOVI_ERROR_DLL_J1850_TX_REQUESTS_FLUSHED - :annotation: = 257 - - .. py:data:: NEOVI_ERROR_DLL_JVPW_LONG_CACHE_OVERFLOW - :annotation: = 188 - - .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_IN - :annotation: = 68 - - .. py:data:: NEOVI_ERROR_DLL_JVPW_TX_REPORT_FIFO_ERR_OUT - :annotation: = 70 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_DEV_FIFO_OVERFLOW - :annotation: = 46 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_LOADED_DEFAULT_SETTINGS - :annotation: = 205 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_AUTO_RTC - :annotation: = 279 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_FAILED_READ - :annotation: = 278 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RTC_INVALID - :annotation: = 204 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_RX_FIFO_OVERFLOW - :annotation: = 44 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW - :annotation: = 45 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_DEVICE - :annotation: = 52 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_FIFO_OVERFLOW_SWCAN2 - :annotation: = 311 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_CHKSUM - :annotation: = 73 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_HOST_OVERRUN - :annotation: = 91 - - .. py:data:: NEOVI_ERROR_DLL_MAIN51_TX_IN_FROM_HOST_FIFO - :annotation: = 72 - - .. py:data:: NEOVI_ERROR_DLL_MAIN_PIC_BUFFER_OVERFLOW - :annotation: = 11 - - .. py:data:: NEOVI_ERROR_DLL_NEOVI_NO_RESPONSE - :annotation: = 75 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B1 - :annotation: = 582 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_A2B2 - :annotation: = 590 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_CGI - :annotation: = 211 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_09 - :annotation: = 665 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_10 - :annotation: = 671 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_11 - :annotation: = 677 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_12 - :annotation: = 683 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_13 - :annotation: = 689 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_14 - :annotation: = 695 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_15 - :annotation: = 701 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_DWCAN_16 - :annotation: = 707 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET - :annotation: = 517 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET2 - :annotation: = 601 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET3 - :annotation: = 637 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ETHERNET_DAQ - :annotation: = 529 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN - :annotation: = 191 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN2 - :annotation: = 193 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN3 - :annotation: = 194 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN4 - :annotation: = 299 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN5 - :annotation: = 305 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN6 - :annotation: = 348 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_HSCAN7 - :annotation: = 354 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C1 - :annotation: = 554 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C2 - :annotation: = 561 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C3 - :annotation: = 568 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_I2C4 - :annotation: = 575 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO - :annotation: = 223 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO2 - :annotation: = 232 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO3 - :annotation: = 233 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_ISO4 - :annotation: = 234 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_J1708 - :annotation: = 203 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_JVPW - :annotation: = 201 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_KYW - :annotation: = 202 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN1 - :annotation: = 197 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN2 - :annotation: = 198 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN3 - :annotation: = 199 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN4 - :annotation: = 200 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN5 - :annotation: = 343 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN6 - :annotation: = 366 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN_07 - :annotation: = 713 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LIN_08 - :annotation: = 719 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFT - :annotation: = 195 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_LSFTCAN2 - :annotation: = 360 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_MSCAN - :annotation: = 192 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH1 - :annotation: = 373 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH10 - :annotation: = 481 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH11 - :annotation: = 493 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH12 - :annotation: = 505 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH2 - :annotation: = 385 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH3 - :annotation: = 397 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH4 - :annotation: = 409 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH5 - :annotation: = 421 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH6 - :annotation: = 433 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH7 - :annotation: = 445 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH8 - :annotation: = 457 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_OP_ETH9 - :annotation: = 469 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW - :annotation: = 196 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_SW2 - :annotation: = 313 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_ENABLED_UNKNOWN_NETWORK - :annotation: = 721 - - .. py:data:: NEOVI_ERROR_DLL_NETWORK_NOT_SUPPORTED_BY_HARDWARE - :annotation: = 259 - - .. py:data:: NEOVI_ERROR_DLL_NRED_ODDNUMBYTES - :annotation: = 103 - - .. py:data:: NEOVI_ERROR_DLL_NRED_UNKNOWN_RED_NETID - :annotation: = 104 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_GET_COMM_TIMEOUT - :annotation: = 92 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_INBOOTLOADER - :annotation: = 100 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE - :annotation: = 94 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_READ_DEVICE_TYPE_TOUT - :annotation: = 95 - - .. py:data:: NEOVI_ERROR_DLL_OPEN_SET_COMM_TIMEOUT - :annotation: = 93 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_FIRMWARE_INFO - :annotation: = 102 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_BULKIN_THREAD - :annotation: = 42 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_CLIENT_THREAD - :annotation: = 79 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RXSOCKET_THREAD - :annotation: = 78 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_RX_THREAD - :annotation: = 9 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_CLIENT_THREAD - :annotation: = 285 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TXSOCKET_THREAD - :annotation: = 77 - - .. py:data:: NEOVI_ERROR_DLL_PROBLEM_STOPPING_TX_THREAD - :annotation: = 10 - - .. py:data:: NEOVI_ERROR_DLL_READ_ENTIRE_DEEPROM_ERROR - :annotation: = 65 - - .. py:data:: NEOVI_ERROR_DLL_RED_APP_VERSION - :annotation: = 120 - - .. py:data:: NEOVI_ERROR_DLL_RED_AUTHENTICATE - :annotation: = 119 - - .. py:data:: NEOVI_ERROR_DLL_RED_BL_END_INDEX - :annotation: = 116 - - .. py:data:: NEOVI_ERROR_DLL_RED_BL_START_INDEX - :annotation: = 106 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B1 - :annotation: = 580 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_A2B2 - :annotation: = 588 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_CGI - :annotation: = 209 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_09 - :annotation: = 663 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_10 - :annotation: = 669 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_11 - :annotation: = 675 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_12 - :annotation: = 681 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_13 - :annotation: = 687 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_14 - :annotation: = 693 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_15 - :annotation: = 699 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_DWCAN_16 - :annotation: = 705 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET - :annotation: = 516 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET2 - :annotation: = 600 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET3 - :annotation: = 636 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ETHERNET_DAQ - :annotation: = 528 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1A - :annotation: = 333 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR1B - :annotation: = 334 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2A - :annotation: = 335 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_FR2B - :annotation: = 336 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN1 - :annotation: = 132 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN2 - :annotation: = 136 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN3 - :annotation: = 144 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN4 - :annotation: = 298 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN5 - :annotation: = 304 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN6 - :annotation: = 347 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_HSCAN7 - :annotation: = 353 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C1 - :annotation: = 552 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C2 - :annotation: = 559 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C3 - :annotation: = 566 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_I2C4 - :annotation: = 573 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO1 - :annotation: = 652 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO2 - :annotation: = 238 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO3 - :annotation: = 243 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_ISO4 - :annotation: = 248 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_JVPW - :annotation: = 186 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN1 - :annotation: = 156 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN2 - :annotation: = 160 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN3 - :annotation: = 164 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN4 - :annotation: = 168 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN5 - :annotation: = 340 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN6 - :annotation: = 365 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN_07 - :annotation: = 711 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LIN_08 - :annotation: = 717 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN - :annotation: = 152 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_LSFTCAN2 - :annotation: = 359 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_MSCAN1 - :annotation: = 140 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH1 - :annotation: = 372 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH10 - :annotation: = 480 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH11 - :annotation: = 492 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH12 - :annotation: = 504 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH2 - :annotation: = 384 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH3 - :annotation: = 396 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH4 - :annotation: = 408 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH5 - :annotation: = 420 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH6 - :annotation: = 432 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH7 - :annotation: = 444 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH8 - :annotation: = 456 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_OP_ETH9 - :annotation: = 468 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN - :annotation: = 148 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_SWCAN2 - :annotation: = 310 - - .. py:data:: NEOVI_ERROR_DLL_RED_DRIVER_OVERFLOW_UNKNOWN_NETWORK - :annotation: = 720 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_CLEAR_LIN_SLAVE_DATA - :annotation: = 250 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_ENTER_BL - :annotation: = 117 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_SAVE_EEPROM - :annotation: = 124 - - .. py:data:: NEOVI_ERROR_DLL_RED_FAILED_TO_UPDATE_WAVEFORM_CHANNEL - :annotation: = 125 - - .. py:data:: NEOVI_ERROR_DLL_RED_INVALID_BAUD_SPECIFIED - :annotation: = 122 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET - :annotation: = 629 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET2 - :annotation: = 630 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET3 - :annotation: = 640 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_ETHERNET_DAQ - :annotation: = 631 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH1 - :annotation: = 617 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH10 - :annotation: = 626 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH11 - :annotation: = 627 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH12 - :annotation: = 628 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH2 - :annotation: = 618 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH3 - :annotation: = 619 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH4 - :annotation: = 620 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH5 - :annotation: = 621 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH6 - :annotation: = 622 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH7 - :annotation: = 623 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH8 - :annotation: = 624 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_OP_ETH9 - :annotation: = 625 - - .. py:data:: NEOVI_ERROR_DLL_RED_JUMBO_FRAMES_NOT_SUPPORTED_UNKNOWN_NETWORK - :annotation: = 724 - - .. py:data:: NEOVI_ERROR_DLL_RED_NOT_SUPPORTED - :annotation: = 105 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET - :annotation: = 653 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET2 - :annotation: = 654 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET3 - :annotation: = 656 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_ETHERNET_DAQ - :annotation: = 658 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH1 - :annotation: = 537 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH10 - :annotation: = 546 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH11 - :annotation: = 547 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH12 - :annotation: = 548 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH2 - :annotation: = 538 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH3 - :annotation: = 539 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH4 - :annotation: = 540 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH5 - :annotation: = 541 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH6 - :annotation: = 542 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH7 - :annotation: = 543 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH8 - :annotation: = 544 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_OP_ETH9 - :annotation: = 545 - - .. py:data:: NEOVI_ERROR_DLL_RED_PREEMPTION_NOT_ENABLED_UNKNOWN_NETWORK - :annotation: = 722 - - .. py:data:: NEOVI_ERROR_DLL_RED_READ_BAUD_COMM_FAILURE - :annotation: = 123 - - .. py:data:: NEOVI_ERROR_DLL_RED_REQ_SERIAL_NUMBER - :annotation: = 118 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B1 - :annotation: = 577 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_A2B2 - :annotation: = 585 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_CGI - :annotation: = 206 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_09 - :annotation: = 660 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_10 - :annotation: = 666 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_11 - :annotation: = 672 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_12 - :annotation: = 678 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_13 - :annotation: = 684 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_14 - :annotation: = 690 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_15 - :annotation: = 696 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_DWCAN_16 - :annotation: = 702 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET - :annotation: = 513 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET2 - :annotation: = 597 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET3 - :annotation: = 633 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ETHERNET_DAQ - :annotation: = 525 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_FR1A - :annotation: = 332 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN1 - :annotation: = 129 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN2 - :annotation: = 133 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN3 - :annotation: = 141 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN4 - :annotation: = 295 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN5 - :annotation: = 301 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN6 - :annotation: = 344 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_HSCAN7 - :annotation: = 350 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C1 - :annotation: = 549 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C2 - :annotation: = 556 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C3 - :annotation: = 563 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_I2C4 - :annotation: = 570 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO - :annotation: = 222 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO2 - :annotation: = 235 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO3 - :annotation: = 240 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_ISO4 - :annotation: = 245 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_JVPW - :annotation: = 183 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN1 - :annotation: = 153 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN2 - :annotation: = 157 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN3 - :annotation: = 161 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN4 - :annotation: = 165 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN5 - :annotation: = 337 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN6 - :annotation: = 362 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN_07 - :annotation: = 708 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LIN_08 - :annotation: = 714 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN - :annotation: = 149 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_LSFTCAN2 - :annotation: = 356 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_MSCAN1 - :annotation: = 137 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH1 - :annotation: = 369 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH10 - :annotation: = 477 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH11 - :annotation: = 489 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH12 - :annotation: = 501 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH2 - :annotation: = 381 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH3 - :annotation: = 393 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH4 - :annotation: = 405 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH5 - :annotation: = 417 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH6 - :annotation: = 429 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH7 - :annotation: = 441 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH8 - :annotation: = 453 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_OP_ETH9 - :annotation: = 465 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN - :annotation: = 145 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_SWCAN2 - :annotation: = 307 - - .. py:data:: NEOVI_ERROR_DLL_RED_RX_MSG_FULL_UNKNOWN_NETWORK - :annotation: = 126 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B1 - :annotation: = 581 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_A2B2 - :annotation: = 589 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_CGI - :annotation: = 210 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_09 - :annotation: = 664 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_10 - :annotation: = 670 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_11 - :annotation: = 676 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_12 - :annotation: = 682 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_13 - :annotation: = 688 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_14 - :annotation: = 694 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_15 - :annotation: = 700 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_DWCAN_16 - :annotation: = 706 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET - :annotation: = 518 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET2 - :annotation: = 602 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET3 - :annotation: = 638 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ETHERNET_DAQ - :annotation: = 530 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN1 - :annotation: = 172 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN2 - :annotation: = 173 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN3 - :annotation: = 174 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN4 - :annotation: = 300 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN5 - :annotation: = 306 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN6 - :annotation: = 349 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_HSCAN7 - :annotation: = 355 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C1 - :annotation: = 553 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C2 - :annotation: = 560 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C3 - :annotation: = 567 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_I2C4 - :annotation: = 574 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO1 - :annotation: = 255 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO2 - :annotation: = 239 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO3 - :annotation: = 244 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_ISO4 - :annotation: = 249 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_JVPW - :annotation: = 212 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN1 - :annotation: = 178 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN2 - :annotation: = 179 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN3 - :annotation: = 180 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN4 - :annotation: = 181 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN5 - :annotation: = 342 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN6 - :annotation: = 367 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN_07 - :annotation: = 712 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LIN_08 - :annotation: = 718 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN - :annotation: = 177 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_LSFTCAN2 - :annotation: = 361 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_MSCAN - :annotation: = 175 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH1 - :annotation: = 374 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH10 - :annotation: = 482 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH11 - :annotation: = 494 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH12 - :annotation: = 506 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH2 - :annotation: = 386 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH3 - :annotation: = 398 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH4 - :annotation: = 410 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH5 - :annotation: = 422 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH6 - :annotation: = 434 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH7 - :annotation: = 446 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH8 - :annotation: = 458 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_OP_ETH9 - :annotation: = 470 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN - :annotation: = 176 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_SWCAN2 - :annotation: = 312 - - .. py:data:: NEOVI_ERROR_DLL_RED_SETTINGS_NOT_SET_UNKNOWN_NETWORK - :annotation: = 182 - - .. py:data:: NEOVI_ERROR_DLL_RED_SET_BAUD_COMM_FAILURE - :annotation: = 121 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B1 - :annotation: = 578 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_A2B2 - :annotation: = 586 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_CGI - :annotation: = 207 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_09 - :annotation: = 661 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_10 - :annotation: = 667 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_11 - :annotation: = 673 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_12 - :annotation: = 679 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_13 - :annotation: = 685 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_14 - :annotation: = 691 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_15 - :annotation: = 697 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_DWCAN_16 - :annotation: = 703 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET - :annotation: = 514 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET2 - :annotation: = 598 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET3 - :annotation: = 634 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ETHERNET_DAQ - :annotation: = 526 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN1 - :annotation: = 130 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN2 - :annotation: = 134 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN3 - :annotation: = 142 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN4 - :annotation: = 296 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN5 - :annotation: = 302 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN6 - :annotation: = 345 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_HSCAN7 - :annotation: = 351 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C1 - :annotation: = 550 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C2 - :annotation: = 557 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C3 - :annotation: = 564 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_I2C4 - :annotation: = 571 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO1 - :annotation: = 253 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO2 - :annotation: = 236 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO3 - :annotation: = 241 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_ISO4 - :annotation: = 246 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_JVPW - :annotation: = 184 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN1 - :annotation: = 154 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN2 - :annotation: = 158 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN3 - :annotation: = 162 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN4 - :annotation: = 166 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN5 - :annotation: = 338 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN6 - :annotation: = 363 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN_07 - :annotation: = 709 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LIN_08 - :annotation: = 715 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN - :annotation: = 150 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_LSFTCAN2 - :annotation: = 357 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_MSCAN1 - :annotation: = 138 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH1 - :annotation: = 370 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH10 - :annotation: = 478 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH11 - :annotation: = 490 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH12 - :annotation: = 502 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH2 - :annotation: = 382 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH3 - :annotation: = 394 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH4 - :annotation: = 406 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH5 - :annotation: = 418 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH6 - :annotation: = 430 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH7 - :annotation: = 442 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH8 - :annotation: = 454 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_OP_ETH9 - :annotation: = 466 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN - :annotation: = 146 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_SWCAN2 - :annotation: = 308 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_MSG_FULL_UNKNOWN_NETWORK - :annotation: = 127 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET - :annotation: = 616 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET2 - :annotation: = 655 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET3 - :annotation: = 657 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_ETHERNET_DAQ - :annotation: = 659 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH1 - :annotation: = 604 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH10 - :annotation: = 613 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH11 - :annotation: = 614 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH12 - :annotation: = 615 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH2 - :annotation: = 605 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH3 - :annotation: = 606 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH4 - :annotation: = 607 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH5 - :annotation: = 608 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH6 - :annotation: = 609 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH7 - :annotation: = 610 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH8 - :annotation: = 611 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_NOT_POSSIBLE_IN_TAP_LOW_LATENCY_OP_ETH9 - :annotation: = 612 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B1 - :annotation: = 579 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_A2B2 - :annotation: = 587 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_CGI - :annotation: = 208 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_09 - :annotation: = 662 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_10 - :annotation: = 668 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_11 - :annotation: = 674 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_12 - :annotation: = 680 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_13 - :annotation: = 686 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_14 - :annotation: = 692 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_15 - :annotation: = 698 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_DWCAN_16 - :annotation: = 704 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET - :annotation: = 515 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET2 - :annotation: = 599 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET3 - :annotation: = 635 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ETHERNET_DAQ - :annotation: = 527 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN1 - :annotation: = 131 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN2 - :annotation: = 135 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN3 - :annotation: = 143 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN4 - :annotation: = 297 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN5 - :annotation: = 303 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN6 - :annotation: = 346 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_HSCAN7 - :annotation: = 352 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C1 - :annotation: = 551 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C2 - :annotation: = 558 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C3 - :annotation: = 565 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_I2C4 - :annotation: = 572 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO1 - :annotation: = 254 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO2 - :annotation: = 237 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO3 - :annotation: = 242 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_ISO4 - :annotation: = 247 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_JVPW - :annotation: = 185 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN1 - :annotation: = 155 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN2 - :annotation: = 159 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN3 - :annotation: = 163 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN4 - :annotation: = 167 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN5 - :annotation: = 339 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN6 - :annotation: = 364 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN_07 - :annotation: = 710 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LIN_08 - :annotation: = 716 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN - :annotation: = 151 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_LSFTCAN2 - :annotation: = 358 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_MSCAN1 - :annotation: = 139 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH1 - :annotation: = 371 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH10 - :annotation: = 479 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH11 - :annotation: = 491 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH12 - :annotation: = 503 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH2 - :annotation: = 383 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH3 - :annotation: = 395 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH4 - :annotation: = 407 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH5 - :annotation: = 419 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH6 - :annotation: = 431 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH7 - :annotation: = 443 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH8 - :annotation: = 455 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_OP_ETH9 - :annotation: = 467 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN - :annotation: = 147 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_SWCAN2 - :annotation: = 309 - - .. py:data:: NEOVI_ERROR_DLL_RED_TX_REPORT_MSG_FULL_UNKNOWN_NETWORK - :annotation: = 128 - - .. py:data:: NEOVI_ERROR_DLL_RESET_STATUS_CHANGED - :annotation: = 47 - - .. py:data:: NEOVI_ERROR_DLL_RS232_BUFFER_ALLOC - :annotation: = 18 - - .. py:data:: NEOVI_ERROR_DLL_RS232_CREATE_FILE - :annotation: = 33 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_BREAK - :annotation: = 26 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_FRAME - :annotation: = 27 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_IOE - :annotation: = 28 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_OVERRUN - :annotation: = 29 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_PARITY - :annotation: = 30 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READ - :annotation: = 17 - - .. py:data:: NEOVI_ERROR_DLL_RS232_ERR_READCOMERR - :annotation: = 16 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_BUFFER_ALLOC - :annotation: = 22 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_CLEARCOMM - :annotation: = 23 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_READCOMM - :annotation: = 24 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_TIMEOUT - :annotation: = 25 - - .. py:data:: NEOVI_ERROR_DLL_RS232_FIND_WRITE - :annotation: = 21 - - .. py:data:: NEOVI_ERROR_DLL_RS232_GET_COMM_STATE - :annotation: = 34 - - .. py:data:: NEOVI_ERROR_DLL_RS232_MISC_ERROR - :annotation: = 20 - - .. py:data:: NEOVI_ERROR_DLL_RS232_RX_BUFFER_OVERFLOW - :annotation: = 15 - - .. py:data:: NEOVI_ERROR_DLL_RS232_SET_COMM_STATE - :annotation: = 35 - - .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_RX_THREAD - :annotation: = 36 - - .. py:data:: NEOVI_ERROR_DLL_RS232_START_COMM_TX_THREAD - :annotation: = 37 - - .. py:data:: NEOVI_ERROR_DLL_RS232_TXBUFFER_ALLOC - :annotation: = 31 - - .. py:data:: NEOVI_ERROR_DLL_RS232_TX_BUFFER_OVERFLOW - :annotation: = 19 - - .. py:data:: NEOVI_ERROR_DLL_RX_BUFFER_ALMOST_FULL - :annotation: = 651 - - .. py:data:: NEOVI_ERROR_DLL_RX_CMD_BUFFER_OVERFLOW - :annotation: = 14 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_BUFFER_OVERFLOW - :annotation: = 6 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_CHK_SUM_ERR - :annotation: = 41 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FIFO_OVER - :annotation: = 40 - - .. py:data:: NEOVI_ERROR_DLL_RX_MSG_FRAME_ERR - :annotation: = 39 - - .. py:data:: NEOVI_ERROR_DLL_RX_SOCKET_FIFO_OVER - :annotation: = 76 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_CLEARING_SCRIPT - :annotation: = 221 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_ERROR_DOWNLOADING_SCRIPT - :annotation: = 220 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_APPSIG_INDEX - :annotation: = 225 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_FUNCBLOCK_INDEX - :annotation: = 219 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_INVALID_MSG_INDEX - :annotation: = 224 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_NO_SCRIPT_RUNNING - :annotation: = 226 - - .. py:data:: NEOVI_ERROR_DLL_SCRIPT_START_ERROR - :annotation: = 218 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_FORMATTED - :annotation: = 215 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_NOT_INSERTED - :annotation: = 214 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_READ_ERROR - :annotation: = 217 - - .. py:data:: NEOVI_ERROR_DLL_SDCARD_WRITE_ERROR - :annotation: = 216 - - .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_ERROR - :annotation: = 229 - - .. py:data:: NEOVI_ERROR_DLL_SEND_DEVICE_CONFIG_NOTPOSSIBLE - :annotation: = 287 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_RD_BUFFER_ALLOC - :annotation: = 86 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_CL_TX_BUFFER_ALLOC - :annotation: = 87 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_RX_BUFFER_ALLOC - :annotation: = 88 - - .. py:data:: NEOVI_ERROR_DLL_SOCK_SRVR_TX_BUFFER_ALLOC - :annotation: = 89 - - .. py:data:: NEOVI_ERROR_DLL_STOP_ISO_STREAM - :annotation: = 7 - - .. py:data:: NEOVI_ERROR_DLL_SYNC_COUNT_ERR - :annotation: = 38 - - .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX - :annotation: = 81 - - .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_RX_SOCK - :annotation: = 82 - - .. py:data:: NEOVI_ERROR_DLL_TCP_CLIENT_TX - :annotation: = 80 - - .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_PERIODICS - :annotation: = 101 - - .. py:data:: NEOVI_ERROR_DLL_TOO_MANY_TXRXPAIRS - :annotation: = 291 - - .. py:data:: NEOVI_ERROR_DLL_TXRXPAIRS_NOT_SUPPORTED_FOR_DEVICE - :annotation: = 292 - - .. py:data:: NEOVI_ERROR_DLL_TX_BUFFER_OVERFLOW - :annotation: = 0 - - .. py:data:: NEOVI_ERROR_DLL_TX_COM_FIFO_OVERFLOW - :annotation: = 97 - - .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B1 - :annotation: = 584 - - .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_A2B2 - :annotation: = 592 - - .. py:data:: NEOVI_ERROR_DLL_TX_MSG_UNDERRUN_UNKNOWN_NETWORK - :annotation: = 725 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B1 - :annotation: = 583 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_A2B2 - :annotation: = 591 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET - :annotation: = 524 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET2 - :annotation: = 603 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET3 - :annotation: = 639 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_ETHERNET_DAQ - :annotation: = 536 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C1 - :annotation: = 555 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C2 - :annotation: = 562 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C3 - :annotation: = 569 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_I2C4 - :annotation: = 576 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH1 - :annotation: = 380 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH10 - :annotation: = 488 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH11 - :annotation: = 500 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH12 - :annotation: = 512 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH2 - :annotation: = 392 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH3 - :annotation: = 404 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH4 - :annotation: = 416 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH5 - :annotation: = 428 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH6 - :annotation: = 440 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH7 - :annotation: = 452 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH8 - :annotation: = 464 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_OP_ETH9 - :annotation: = 476 - - .. py:data:: NEOVI_ERROR_DLL_TX_NOT_SUPPORTED_IN_MODE_UNKNOWN_NETWORK - :annotation: = 723 - - .. py:data:: NEOVI_ERROR_DLL_UNABLE_CONNECT_TO_SRVR - :annotation: = 83 - - .. py:data:: NEOVI_ERROR_DLL_UNABLE_CREATE_CLIENT_SOCK - :annotation: = 84 - - .. py:data:: NEOVI_ERROR_DLL_UNABLE_WSASTARTUP - :annotation: = 85 - - .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_APP_ERROR - :annotation: = 596 - - .. py:data:: NEOVI_ERROR_DLL_UNKNOWN_NEOVI_TYPE - :annotation: = 231 - - .. py:data:: NEOVI_ERROR_DLL_USB_PORT_ALREADY_OPEN - :annotation: = 67 - - .. py:data:: NEOVI_ERROR_DLL_USB_PURGE_FAILED - :annotation: = 169 - - .. py:data:: NEOVI_ERROR_DLL_USB_SEND_DATA_ERROR - :annotation: = 2 - - .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_BCOUNT - :annotation: = 99 - - .. py:data:: NEOVI_ERROR_DLL_USB_TX_RS232_ERROR - :annotation: = 32 - - .. py:data:: NEOVI_ERROR_DLL_WRITE_ENTIRE_DEEPROM_ERROR - :annotation: = 66 - - .. py:data:: NEOVI_ERROR_ETHERNET_IP_FRAGMENT_DATA_LOSS - :annotation: = 632 - - .. py:data:: NEOVI_ERROR_FAILED_TO_SET_RTC - :annotation: = 331 - - .. py:data:: NEOVI_ERROR_FIRE_CGI_COMM_BAD_PACKET - :annotation: = 171 - - .. py:data:: NEOVI_ERROR_FIRE_COMM_BAD_PACKET - :annotation: = 170 + .. py:data:: LINUX_BOOT_ALLOWED + :annotation: = 1 - .. py:data:: NEOVI_ERROR_J1708_COMM_BAD_PACKET - :annotation: = 258 + .. py:data:: LINUX_CONFIG_PORT_ETH_01 + :annotation: = 1 - .. py:data:: NEOVI_ERROR_NEOVISERVER_GENERAL_ERROR - :annotation: = 289 + .. py:data:: LINUX_CONFIG_PORT_ETH_02 + :annotation: = 2 - .. py:data:: NEOVI_ERROR_PLASMA_CORE_RESTARTED - :annotation: = 280 + .. py:data:: LINUX_CONFIG_PORT_NONE + :annotation: = 0 - .. py:data:: NEOVI_ERROR_REQ_VBATT_FAILED - :annotation: = 281 + .. py:data:: LIN_SETTINGS_SIZE + :annotation: = 10 - .. py:data:: NEOVI_ERROR_RX_FILTER_MATCH_COUNT_EXCEEDED - :annotation: = 316 + .. py:data:: LISTEN_ALL + :annotation: = 7 - .. py:data:: NEOVI_ERROR_TXRX_PAIRS_BUSY - :annotation: = 283 + .. py:data:: LISTEN_ONLY + :annotation: = 3 - .. py:data:: NEOVI_ERROR_TXRX_PAIRS_FAILED - :annotation: = 293 + .. py:data:: LOGGER_SETTINGS_SIZE + :annotation: = 4 - .. py:data:: NEOVI_ERROR_TXRX_PAIRS_TIMEOUT - :annotation: = 282 + .. py:data:: LOOPBACK + :annotation: = 2 - .. py:data:: NEOVI_ERROR_TX_INTERFACE_NOT_IMPLEMENTED - :annotation: = 314 + .. py:data:: MAIN_VNET + :annotation: = 1 - .. py:data:: NEOVI_ERROR_TX_MESSAGES_COMM_ENABLE_IS_OFF - :annotation: = 315 + .. py:data:: MAX_NUMBYTES_PHYSETTINGS + :annotation: = 512 - .. py:data:: NEOVI_ERROR_TX_MESSAGE_INDEX_OUT_OF_RANGE - :annotation: = 728 + .. py:data:: MAX_PHY_REG_PKT_ENTRIES + :annotation: = 128 - .. py:data:: NEOVI_ETHER_BADGE_PROD_ID - :annotation: = 38 + .. py:data:: MAX_PHY_SETTINGS_STRUCT + :annotation: = 128 - .. py:data:: NEOVI_FIRE2_CYAN_BLECHIP_ID - :annotation: = 42 + .. py:data:: MAX_REPORTED_VERSIONS + :annotation: = 16 - .. py:data:: NEOVI_FIRE2_CYAN_CCHIP_ID - :annotation: = 40 + .. py:data:: MAX_VL_FORWARDING_ENTRIES + :annotation: = 1024 - .. py:data:: NEOVI_FIRE2_CYAN_CORE_ID - :annotation: = 41 + .. py:data:: MAX_VL_POLICING_ENTRIES + :annotation: = 1024 - .. py:data:: NEOVI_FIRE2_CYAN_CORE_SG4_ID - :annotation: = 105 + .. py:data:: NEODEVICE_ANY_ION + :annotation: = 262144 - .. py:data:: NEOVI_FIRE2_CYAN_MCHIP_ID - :annotation: = 39 + .. py:data:: NEODEVICE_ANY_PLASMA + :annotation: = 4096 - .. py:data:: NEOVI_FIRE2_CYAN_PROD_ID - :annotation: = 18 + .. py:data:: NEODEVICE_BLUE + :annotation: = 1 - .. py:data:: NEOVI_FIRE2_CYAN_SECURITYCHIP_ID - :annotation: = 44 + .. py:data:: NEODEVICE_CMPROBE + :annotation: = 8388608 - .. py:data:: NEOVI_FIRE2_CYAN_ZYNQ_ID - :annotation: = 43 + .. py:data:: NEODEVICE_CT_OBD + :annotation: = 32768 - .. py:data:: NEOVI_FIRE3_PROD_ID - :annotation: = 33 + .. py:data:: NEODEVICE_DONT_REUSE0 + :annotation: = 8192 - .. py:data:: NEOVI_FIRE_JCHIP_ID - :annotation: = 3 + .. py:data:: NEODEVICE_DONT_REUSE1 + :annotation: = 65536 - .. py:data:: NEOVI_FIRE_LCHIP_ID - :annotation: = 1 + .. py:data:: NEODEVICE_DONT_REUSE2 + :annotation: = 131072 - .. py:data:: NEOVI_FIRE_MCHIP_ID - :annotation: = 0 + .. py:data:: NEODEVICE_DONT_REUSE3 + :annotation: = 1048576 - .. py:data:: NEOVI_FIRE_PROD_ID - :annotation: = 1 + .. py:data:: NEODEVICE_DW_VCAN + :annotation: = 4 - .. py:data:: NEOVI_FIRE_UCHIP_ID - :annotation: = 2 + .. py:data:: NEODEVICE_ECU + :annotation: = 128 - .. py:data:: NEOVI_IEVB_MPIC_ID - :annotation: = 7 + .. py:data:: NEODEVICE_ECU22 + :annotation: = 27 - .. py:data:: NEOVI_IEVB_PROD_ID - :annotation: = 5 + .. py:data:: NEODEVICE_ECUCHIP_UART + :annotation: = 2048 - .. py:data:: NEOVI_ION_CORE_ID - :annotation: = 19 + .. py:data:: NEODEVICE_ECU_AVB + :annotation: = 2 - .. py:data:: NEOVI_ION_CORE_LOADER_ID - :annotation: = 21 + .. py:data:: NEODEVICE_EEVB + :annotation: = 16777216 - .. py:data:: NEOVI_ION_FPGA_BIT_ID - :annotation: = 23 + .. py:data:: NEODEVICE_ETHER_BADGE + :annotation: = 22 - .. py:data:: NEOVI_ION_HID_ID - :annotation: = 20 + .. py:data:: NEODEVICE_FIRE + :annotation: = 8 - .. py:data:: NEOVI_ION_HID_LOADER_ID - :annotation: = 22 + .. py:data:: NEODEVICE_FIRE2 + :annotation: = 67108864 - .. py:data:: NEOVI_ION_PROD_ID - :annotation: = 11 + .. py:data:: NEODEVICE_FIRE2_REDLINE + :annotation: = 21 - .. py:data:: NEOVI_MOST150_MCHIP - :annotation: = 29 + .. py:data:: NEODEVICE_FIRE3 + :annotation: = 15 - .. py:data:: NEOVI_MOST25_MCHIP - :annotation: = 27 + .. py:data:: NEODEVICE_FLEX + :annotation: = 134217728 - .. py:data:: NEOVI_MOST50_MCHIP - :annotation: = 28 + .. py:data:: NEODEVICE_GIGASTAR + :annotation: = 19 - .. py:data:: NEOVI_NEOANALOG_PROD_ID - :annotation: = 7 + .. py:data:: NEODEVICE_IEVB + :annotation: = 256 - .. py:data:: NEOVI_NEOECU12_PROD_ID - :annotation: = 8 + .. py:data:: NEODEVICE_ION + :annotation: = 262144 - .. py:data:: NEOVI_OBD2_SIM_MCHIP_ID - :annotation: = 53 + .. py:data:: NEODEVICE_NEOANALOG + :annotation: = 16384 - .. py:data:: NEOVI_PENDANT_MPIC_ID - :annotation: = 8 + .. py:data:: NEODEVICE_NEOECU12 + :annotation: = 12 - .. py:data:: NEOVI_PENDANT_PROD_ID - :annotation: = 6 + .. py:data:: NEODEVICE_NEOECUCHIP + :annotation: = 256 - .. py:data:: NEOVI_PLASMA_ANALOG_CORE_ID - :annotation: = 14 + .. py:data:: NEODEVICE_NEW_DEVICE_58 + :annotation: = 31 - .. py:data:: NEOVI_PLASMA_CORE_ID - :annotation: = 11 + .. py:data:: NEODEVICE_NEW_DEVICE_59 + :annotation: = 33 - .. py:data:: NEOVI_PLASMA_CORE_ID_1_12 - :annotation: = 16 + .. py:data:: NEODEVICE_NEW_DEVICE_FF + :annotation: = 37 - .. py:data:: NEOVI_PLASMA_FLEXRAY_CORE_ID - :annotation: = 15 + .. py:data:: NEODEVICE_OBD2_DEV + :annotation: = 26 - .. py:data:: NEOVI_PLASMA_HID_ID - :annotation: = 12 + .. py:data:: NEODEVICE_OBD2_LC + :annotation: = 13 - .. py:data:: NEOVI_PLASMA_PROD_ID - :annotation: = 10 + .. py:data:: NEODEVICE_OBD2_PRO + :annotation: = 1024 - .. py:data:: NEOVI_PLASMA_SLAVE_B_ANALOG_CORE_ID - :annotation: = 247 + .. py:data:: NEODEVICE_OBD2_SIM + :annotation: = -2147483648 - .. py:data:: NEOVI_PLASMA_SLAVE_B_FLEXRAY_CORE_ID - :annotation: = 248 + .. py:data:: NEODEVICE_OBD2_SIM_DOIP + :annotation: = 25 - .. py:data:: NEOVI_RADGALAXY_FFG_ZYNQ_ID - :annotation: = 112 + .. py:data:: NEODEVICE_PENDANT + :annotation: = 512 - .. py:data:: NEOVI_RADGALAXY_PROD_ID - :annotation: = 19 + .. py:data:: NEODEVICE_PLASMA + :annotation: = 4096 - .. py:data:: NEOVI_RADGALAXY_ZYNQ_ID - :annotation: = 45 + .. py:data:: NEODEVICE_RADCOMET + :annotation: = 36 - .. py:data:: NEOVI_RADGIGALOG3_ZYNQ_ID - :annotation: = 87 + .. py:data:: NEODEVICE_RADEPSILON + :annotation: = 24 - .. py:data:: NEOVI_RADGIGALOG_PROD_ID + .. py:data:: NEODEVICE_RADEPSILON_EXPRESS :annotation: = 29 - .. py:data:: NEOVI_RADGIGALOG_ZYNQ_ID - :annotation: = 75 + .. py:data:: NEODEVICE_RADEPSILON_T + :annotation: = 28 - .. py:data:: NEOVI_RADJUPITER_PROD_ID - :annotation: = 34 + .. py:data:: NEODEVICE_RADGALAXY + :annotation: = 268435456 - .. py:data:: NEOVI_RADMOON2_PROD_ID - :annotation: = 27 + .. py:data:: NEODEVICE_RADGIGALOG + :annotation: = 6 - .. py:data:: NEOVI_RADMOON2_Z7010_ZYNQ_ID - :annotation: = 104 + .. py:data:: NEODEVICE_RADIO_CANHUB + :annotation: = 11 - .. py:data:: NEOVI_RADMOON2_ZYNQ_ID - :annotation: = 71 + .. py:data:: NEODEVICE_RADJUPITER + :annotation: = 17 - .. py:data:: NEOVI_RADPLUTO_PROD_ID - :annotation: = 28 + .. py:data:: NEODEVICE_RADMOON2 + :annotation: = 5 - .. py:data:: NEOVI_RADSTAR2_PROD_ID - :annotation: = 20 + .. py:data:: NEODEVICE_RADMOON3 + :annotation: = 35 - .. py:data:: NEOVI_RADSTAR2_ZYNQ_ID - :annotation: = 51 + .. py:data:: NEODEVICE_RADPLUTO + :annotation: = 9 - .. py:data:: NEOVI_RADSTAR_MCHIP_ID - :annotation: = 37 + .. py:data:: NEODEVICE_RADPROXIMA + :annotation: = 30 - .. py:data:: NEOVI_RADSTAR_PROD_ID - :annotation: = 16 + .. py:data:: NEODEVICE_RADSTAR + :annotation: = 524288 - .. py:data:: NEOVI_RADSUPERMOON_PROD_ID - :annotation: = 26 + .. py:data:: NEODEVICE_RADSTAR2 + :annotation: = 536870912 - .. py:data:: NEOVI_RADSUPERMOON_ZYNQ_ID - :annotation: = 70 + .. py:data:: NEODEVICE_RADSUPERMOON + :annotation: = 3 - .. py:data:: NEOVI_RED_PROD_ID - :annotation: = 0 + .. py:data:: NEODEVICE_RAD_A2B + :annotation: = 23 - .. py:data:: NEOVI_RED_TIMESTAMP_1_10NS - :annotation: = 1e-08 + .. py:data:: NEODEVICE_RAD_BMS + :annotation: = 34 - .. py:data:: NEOVI_RED_TIMESTAMP_1_25NS - :annotation: = 2.5e-08 + .. py:data:: NEODEVICE_RAD_MOON_DUO + :annotation: = 14 - .. py:data:: NEOVI_RED_TIMESTAMP_2_10NS - :annotation: = 429.4967296 + .. py:data:: NEODEVICE_RED + :annotation: = 64 - .. py:data:: NEOVI_RED_TIMESTAMP_2_25NS - :annotation: = 107.3741824 + .. py:data:: NEODEVICE_RED2 + :annotation: = 20 - .. py:data:: NEOVI_SLAVE_B_AOUT_MCHIP - :annotation: = 252 + .. py:data:: NEODEVICE_UNKNOWN + :annotation: = 0 - .. py:data:: NEOVI_SLAVE_B_MOST150_MCHIP - :annotation: = 251 + .. py:data:: NEODEVICE_VCAN3 + :annotation: = 16 - .. py:data:: NEOVI_SLAVE_B_MOST25_MCHIP - :annotation: = 249 + .. py:data:: NEODEVICE_VCAN41 + :annotation: = 7 - .. py:data:: NEOVI_SLAVE_B_MOST50_MCHIP - :annotation: = 250 + .. py:data:: NEODEVICE_VCAN42 + :annotation: = 4194304 - .. py:data:: NEOVI_SLAVE_B_VNETFIRE_LCHIP_ID - :annotation: = 246 + .. py:data:: NEODEVICE_VCAN42_EL + :annotation: = 10 - .. py:data:: NEOVI_SLAVE_B_VNETFIRE_MCHIP_ID - :annotation: = 245 + .. py:data:: NEODEVICE_VCAN44 + :annotation: = 2097152 - .. py:data:: NEOVI_SLAVE_VNETFIRE_LCHIP_ID + .. py:data:: NEODEVICE_VCAN4_IND :annotation: = 18 - .. py:data:: NEOVI_SLAVE_VNETFIRE_MCHIP_ID - :annotation: = 17 - - .. py:data:: NEOVI_TIMESTAMP_1 - :annotation: = 1.6e-06 - - .. py:data:: NEOVI_TIMESTAMP_2 - :annotation: = 0.1048576 + .. py:data:: NEODEVICE_VCANRF + :annotation: = 33554432 - .. py:data:: NEOVI_VCAN3_MCHIP_ID - :annotation: = 4 + .. py:data:: NEODEVICE_VIVIDCAN + :annotation: = 1073741824 - .. py:data:: NEOVI_VCAN3_PROD_ID - :annotation: = 2 + .. py:data:: NEOVI6_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 - .. py:data:: NEOVI_VCANRF_MCHIP_ID - :annotation: = 38 + .. py:data:: NEOVI6_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 - .. py:data:: NEOVI_VCANRF_PROD_ID - :annotation: = 17 + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_1 + :annotation: = 1e-06 - .. py:data:: NEOVI_VIVIDCAN_EXT_FLASH_ID - :annotation: = 58 + .. py:data:: NEOVIPRO_VCAN_TIMESTAMP_2 + :annotation: = 0.065536 - .. py:data:: NEOVI_VIVIDCAN_MCHIP_ID - :annotation: = 52 + .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE + :annotation: = 942 - .. py:data:: NEOVI_VIVIDCAN_NRF52_ID - :annotation: = 59 + .. py:data:: NEOVI_COMMTYPE_FIRE_USB + :annotation: = 5 - .. py:data:: NEOVI_VIVIDCAN_PROD_ID - :annotation: = 21 + .. py:data:: NEOVI_COMMTYPE_RS232 + :annotation: = 0 - .. py:data:: NEOVI_VIVIDCAN_PRO_PROD_ID + .. py:data:: NEOVI_COMMTYPE_TCPIP :annotation: = 3 - .. py:data:: NEOVI_VNETFIRE_EP_LCHIP_ID - :annotation: = 25 - - .. py:data:: NEOVI_VNETFIRE_EP_MCHIP_ID - :annotation: = 24 + .. py:data:: NEOVI_COMMTYPE_USB_BULK + :annotation: = 1 - .. py:data:: NEOVI_VNETFIRE_LCHIP_ID - :annotation: = 10 + .. py:data:: NEOVI_RED_TIMESTAMP_1_10NS + :annotation: = 1e-08 - .. py:data:: NEOVI_VNETFIRE_MCHIP_ID - :annotation: = 9 + .. py:data:: NEOVI_RED_TIMESTAMP_1_25NS + :annotation: = 2.5e-08 - .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_LCHIP_ID - :annotation: = 254 + .. py:data:: NEOVI_RED_TIMESTAMP_2_10NS + :annotation: = 429.4967296 - .. py:data:: NEOVI_VNETFIRE_SLAVE_B_EP_MCHIP_ID - :annotation: = 253 + .. py:data:: NEOVI_RED_TIMESTAMP_2_25NS + :annotation: = 107.3741824 - .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_LCHIP_ID - :annotation: = 36 + .. py:data:: NEOVI_TIMESTAMP_1 + :annotation: = 1.6e-06 - .. py:data:: NEOVI_VNETFIRE_SLAVE_EP_MCHIP_ID - :annotation: = 35 + .. py:data:: NEOVI_TIMESTAMP_2 + :annotation: = 0.1048576 .. py:data:: NEO_CFG_MPIC_HS_CAN_CNF1 :annotation: = 522 @@ -4606,39 +1616,9 @@ Module Variables .. py:data:: NEO_CFG_MPIC_SW_CAN_CNF3 :annotation: = 544 - .. py:data:: NEO_OBD2_DEV_MCHIP_ID - :annotation: = 94 - - .. py:data:: NEO_OBD2_DEV_SCHIP_ID - :annotation: = 95 - - .. py:data:: NEO_OBD2_LC_MCHIP_ID - :annotation: = 79 - - .. py:data:: NEO_OBD2_LC_SCHIP_ID - :annotation: = 80 - - .. py:data:: NEO_OBD2_PRO_CORE_ID - :annotation: = 69 - - .. py:data:: NEO_OBD2_PRO_MCHIP_ID - :annotation: = 61 - - .. py:data:: NEO_OBD2_PRO_SCHIP_ID - :annotation: = 65 - - .. py:data:: NEO_OBD2_SIM_DOIP_MCHIP_ID - :annotation: = 96 - - .. py:data:: NEO_VCAN412_PROD_ID - :annotation: = 24 - .. py:data:: NETID_3G_APP_SIGNAL_STATUS :annotation: = 56 - .. py:data:: NETID_3G_CAN_ERRBITS - :annotation: = 24 - .. py:data:: NETID_3G_FB_STATUS :annotation: = 55 @@ -4684,30 +1664,6 @@ Module Variables .. py:data:: NETID_DEVICE_STATUS :annotation: = 513 - .. py:data:: NETID_DWCAN_09 - :annotation: = 534 - - .. py:data:: NETID_DWCAN_10 - :annotation: = 535 - - .. py:data:: NETID_DWCAN_11 - :annotation: = 536 - - .. py:data:: NETID_DWCAN_12 - :annotation: = 537 - - .. py:data:: NETID_DWCAN_13 - :annotation: = 538 - - .. py:data:: NETID_DWCAN_14 - :annotation: = 539 - - .. py:data:: NETID_DWCAN_15 - :annotation: = 540 - - .. py:data:: NETID_DWCAN_16 - :annotation: = 541 - .. py:data:: NETID_ETHERNET :annotation: = 93 @@ -4723,27 +1679,6 @@ Module Variables .. py:data:: NETID_ETHERNET_TX_WRAP :annotation: = 521 - .. py:data:: NETID_FIRE_CGI - :annotation: = 53 - - .. py:data:: NETID_FIRE_HSCAN2 - :annotation: = 42 - - .. py:data:: NETID_FIRE_HSCAN3 - :annotation: = 44 - - .. py:data:: NETID_FIRE_LIN2 - :annotation: = 48 - - .. py:data:: NETID_FIRE_LIN3 - :annotation: = 49 - - .. py:data:: NETID_FIRE_LIN4 - :annotation: = 50 - - .. py:data:: NETID_FIRE_MSCAN2 - :annotation: = 44 - .. py:data:: NETID_FLEXRAY :annotation: = 85 @@ -4855,12 +1790,6 @@ Module Variables .. py:data:: NETID_LIN6 :annotation: = 98 - .. py:data:: NETID_LIN_07 - :annotation: = 542 - - .. py:data:: NETID_LIN_08 - :annotation: = 543 - .. py:data:: NETID_LSFTCAN :annotation: = 4 @@ -4930,66 +1859,9 @@ Module Variables .. py:data:: NETID_RED_APP_ERROR :annotation: = 52 - .. py:data:: NETID_RED_DFLASH_READ - :annotation: = 22 - - .. py:data:: NETID_RED_DFLASH_WRITE_DONE - :annotation: = 25 - - .. py:data:: NETID_RED_EXT_MEMORYREAD - :annotation: = 20 - - .. py:data:: NETID_RED_GET_RTC - :annotation: = 40 - - .. py:data:: NETID_RED_HARDWARE_EXCEP - :annotation: = 39 - - .. py:data:: NETID_RED_INT_MEMORYREAD - :annotation: = 21 - - .. py:data:: NETID_RED_NEOVI_NETWORK - :annotation: = 35 - - .. py:data:: NETID_RED_OLDFORMAT - :annotation: = 37 - - .. py:data:: NETID_RED_READ_BAUD_SETTINGS - :annotation: = 36 - - .. py:data:: NETID_RED_SCOPE_CAPTURE - :annotation: = 38 - - .. py:data:: NETID_RED_SDCARD_READ - :annotation: = 23 - .. py:data:: NETID_RED_VBAT :annotation: = 74 - .. py:data:: NETID_RED_WAVE_CAN1_LOGICAL - :annotation: = 26 - - .. py:data:: NETID_RED_WAVE_CAN2_LOGICAL - :annotation: = 27 - - .. py:data:: NETID_RED_WAVE_LIN1_ANALOG - :annotation: = 30 - - .. py:data:: NETID_RED_WAVE_LIN1_LOGICAL - :annotation: = 28 - - .. py:data:: NETID_RED_WAVE_LIN2_ANALOG - :annotation: = 31 - - .. py:data:: NETID_RED_WAVE_LIN2_LOGICAL - :annotation: = 29 - - .. py:data:: NETID_RED_WAVE_MISCDIO2_LOGICAL - :annotation: = 33 - - .. py:data:: NETID_RED_WAVE_MISC_ANALOG - :annotation: = 32 - .. py:data:: NETID_RS232 :annotation: = 63 @@ -4999,9 +1871,6 @@ Module Variables .. py:data:: NETID_SPI1 :annotation: = 72 - .. py:data:: NETID_SPI2 - :annotation: = 544 - .. py:data:: NETID_SWCAN :annotation: = 3 @@ -5032,27 +1901,6 @@ Module Variables .. py:data:: NETID_WBMS :annotation: = 532 - .. py:data:: NETID_WBMS2 - :annotation: = 533 - - .. py:data:: NEW_DEVICE_57_PROD_ID - :annotation: = 45 - - .. py:data:: NEW_DEVICE_57_ZCHIP_ID - :annotation: = 101 - - .. py:data:: NEW_DEVICE_58_PROD_ID - :annotation: = 46 - - .. py:data:: NEW_DEVICE_58_ZCHIP_ID - :annotation: = 102 - - .. py:data:: NEW_DEVICE_59_MCHIP_ID - :annotation: = 103 - - .. py:data:: NEW_DEVICE_59_PROD_ID - :annotation: = 47 - .. py:data:: NORMAL :annotation: = 0 @@ -5185,114 +2033,21 @@ Module Variables .. py:data:: PLUTO_NUM_PRIORITY :annotation: = 8 - .. py:data:: RADCOMET_PROD_ID - :annotation: = 50 - - .. py:data:: RADCOMET_ZCHIP_ID - :annotation: = 114 - - .. py:data:: RADEPSILON_EXPRESS_MCHIP_ID - :annotation: = 99 - - .. py:data:: RADEPSILON_EXPRESS_PROD_ID - :annotation: = 43 - .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 - .. py:data:: RADEPSILON_MCHIP_ID - :annotation: = 92 - - .. py:data:: RADEPSILON_PROD_ID - :annotation: = 39 - - .. py:data:: RADEPSILON_T_MCHIP_ID - :annotation: = 98 - - .. py:data:: RADEPSILON_T_PROD_ID - :annotation: = 42 - - .. py:data:: RADGIGASTAR_FFG_ZYNQ_ID - :annotation: = 117 - - .. py:data:: RADGIGASTAR_USBZ_Z7007S_ZYNQ_ID - :annotation: = 110 - - .. py:data:: RADGIGASTAR_USBZ_Z7010_ZYNQ_ID - :annotation: = 108 - - .. py:data:: RADGIGASTAR_USBZ_ZYNQ_ID - :annotation: = 88 - - .. py:data:: RADGIGASTAR_ZYNQ_ID - :annotation: = 89 - - .. py:data:: RADIO_CANHUB_MCHIP_ID - :annotation: = 77 - - .. py:data:: RADIO_CANHUB_PROD_ID - :annotation: = 30 - - .. py:data:: RADJUPITER_MCHIP_ID - :annotation: = 84 - .. py:data:: RADJUPITER_NUM_PORTS :annotation: = 8 - .. py:data:: RADMOON2_ZL_MCHIP_ID - :annotation: = 107 - - .. py:data:: RADMOON3_MCHIP_ID - :annotation: = 113 - - .. py:data:: RADMOON3_PROD_ID - :annotation: = 49 - .. py:data:: RADMOONDUO_CONVERTER_SETTINGS_SIZE :annotation: = 16 - .. py:data:: RADPLUTO_MCHIP_ID - :annotation: = 74 - - .. py:data:: RADPROXIMA_MCHIP_ID - :annotation: = 100 - - .. py:data:: RADPROXIMA_PROD_ID - :annotation: = 44 - - .. py:data:: RAD_4G_MCHIP_ID - :annotation: = 90 - - .. py:data:: RAD_A2B_PROD_ID - :annotation: = 40 - - .. py:data:: RAD_A2B_REVB_ZCHIP_ID - :annotation: = 116 - - .. py:data:: RAD_A2B_ZCHIP_ID - :annotation: = 93 - - .. py:data:: RAD_BMS_MCHIP_ID - :annotation: = 106 - - .. py:data:: RAD_BMS_PROD_ID - :annotation: = 48 - - .. py:data:: RAD_GIGASTAR_PROD_ID - :annotation: = 36 - .. py:data:: RAD_GPTP_AND_TAP_SETTINGS_SIZE :annotation: = 40 .. py:data:: RAD_GPTP_SETTINGS_SIZE :annotation: = 36 - .. py:data:: RAD_MOON_DUO_MCHIP_ID - :annotation: = 81 - - .. py:data:: RAD_MOON_DUO_PROD_ID - :annotation: = 32 - .. py:data:: RAD_REPORTING_SETTINGS_FLAG_AIN1 :annotation: = 256 @@ -5377,12 +2132,6 @@ Module Variables .. py:data:: REPORT_ON_PERIODIC :annotation: = 0 - .. py:data:: RESERVED_CHIP_ID_119 - :annotation: = 119 - - .. py:data:: RESERVED_CHIP_ID_120 - :annotation: = 120 - .. py:data:: RESISTOR_OFF :annotation: = 1 @@ -5752,36 +2501,6 @@ Module Variables .. py:data:: SERDESPOC_SETTINGS_SIZE :annotation: = 10 - .. py:data:: SFP_MODULE_MCHIP_ID - :annotation: = 97 - - .. py:data:: SFP_MODULE_PROD_ID - :annotation: = 41 - - .. py:data:: SLAVE_A_FIRE2_VNETZ_MCHIP_ID - :annotation: = 56 - - .. py:data:: SLAVE_A_FIRE2_VNETZ_ZYNQ_ID - :annotation: = 57 - - .. py:data:: SLAVE_A_FIRE2_VNET_CCHIP_ID - :annotation: = 48 - - .. py:data:: SLAVE_A_FIRE2_VNET_MCHIP_ID - :annotation: = 47 - - .. py:data:: SLAVE_B_FIRE2_VNETZ_MCHIP_ID - :annotation: = 242 - - .. py:data:: SLAVE_B_FIRE2_VNETZ_ZYNQ_ID - :annotation: = 241 - - .. py:data:: SLAVE_B_FIRE2_VNET_CCHIP_ID - :annotation: = 244 - - .. py:data:: SLAVE_B_FIRE2_VNET_MCHIP_ID - :annotation: = 243 - .. py:data:: SLAVE_VNET_A :annotation: = 2 @@ -5794,36 +2513,12 @@ Module Variables .. py:data:: SLOW_MODE :annotation: = 1 - .. py:data:: SPI_MODE_MASTER - :annotation: = 0 - - .. py:data:: SPI_MODE_PMS_EMULATION - :annotation: = 2 - - .. py:data:: SPI_MODE_SLAVE - :annotation: = 1 - .. py:data:: SPI_PORT_EXTERNAL :annotation: = 1 .. py:data:: SPI_PORT_ONBOARD :annotation: = 0 - .. py:data:: SPI_TYPE_RAW - :annotation: = 1 - - .. py:data:: SPI_TYPE_WIL - :annotation: = 0 - - .. py:data:: SPY_GPS_ALTITUDE - :annotation: = 2 - - .. py:data:: SPY_GPS_LOCATION - :annotation: = 0 - - .. py:data:: SPY_GPS_SPEED - :annotation: = 1 - .. py:data:: SPY_PROTOCOL_A2B :annotation: = 35 @@ -6241,9 +2936,6 @@ Module Variables .. py:data:: SPY_STATUS_XTD_FRAME :annotation: = 4 - .. py:data:: SWCAN2 - :annotation: = 2 - .. py:data:: SWCAN_AUTOSWITCH_DISABLED :annotation: = 0 @@ -6259,15 +2951,6 @@ Module Variables .. py:data:: SWCAN_SETTINGS_SIZE :annotation: = 14 - .. py:data:: SYSTEM_TIMESTAMP_ID_NONE - :annotation: = 0 - - .. py:data:: SYSTEM_TIMESTAMP_ID_TIMEGETTIME_API - :annotation: = 1 - - .. py:data:: TCP_SUPPORTED - :annotation: = 32 - .. py:data:: TIMESYNC_ICSHARDWARE_SETTINGS_SIZE :annotation: = 4 @@ -6277,90 +2960,12 @@ Module Variables .. py:data:: USE_TQ :annotation: = 1 - .. py:data:: VCAN41_MCHIP_ID - :annotation: = 62 - - .. py:data:: VCAN42_MCHIP_ID - :annotation: = 63 - - .. py:data:: VCAN44_CORE_ID - :annotation: = 64 - - .. py:data:: VCAN44_MCHIP_ID - :annotation: = 30 - - .. py:data:: VCAN44_PROD_ID - :annotation: = 12 - - .. py:data:: VCAN44_SCHIP_ID - :annotation: = 31 - - .. py:data:: VCAN4EL_MCHIP_ID - :annotation: = 67 - - .. py:data:: VCAN4_IND_MCHIP_ID - :annotation: = 85 - - .. py:data:: VCAN4_IND_PROD_ID - :annotation: = 35 - - .. py:data:: VEM_01_8DW_ZCHIP_ID - :annotation: = 111 - - .. py:data:: VEM_02_FR_FCHIP_ID - :annotation: = 118 - - .. py:data:: VEM_02_FR_ZCHIP_ID - :annotation: = 115 - - .. py:data:: VIVIDCAN_PRO_EXT_FLASH_ID - :annotation: = 73 - - .. py:data:: VIVIDCAN_PRO_MCHIP_ID - :annotation: = 72 - - .. py:data:: VIVIDCAN_PRO_PROD_ID - :annotation: = 37 - .. py:data:: VNETBITS_FEATURE_ANDROID_MSGS :annotation: = 1 .. py:data:: VNETBITS_FEATURE_DISABLE_USB_CHECK :annotation: = 2 - .. py:data:: VNET_ID_AIN - :annotation: = 5 - - .. py:data:: VNET_ID_FIRE - :annotation: = 1 - - .. py:data:: VNET_ID_FIRE2 - :annotation: = 7 - - .. py:data:: VNET_ID_FIRE2Z - :annotation: = 9 - - .. py:data:: VNET_ID_FIRE_EP - :annotation: = 2 - - .. py:data:: VNET_ID_FLEXRAY - :annotation: = 6 - - .. py:data:: VNET_ID_FLEXZ - :annotation: = 11 - - .. py:data:: VNET_ID_SLAVEFIRE - :annotation: = 3 - - .. py:data:: VNET_ID_SLAVEFIRE2 - :annotation: = 8 - - .. py:data:: VNET_ID_SLAVEFIRE2Z - :annotation: = 10 - - .. py:data:: VNET_ID_SLAVEFIRE_EP - :annotation: = 4 - .. py:data:: WIFI_ANTENNA_EXTERNAL :annotation: = 1 diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index 35daf00c6..335ffd155 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -55,6 +55,7 @@ "ics.structures.system_identity", "ics.structures.priority_vector", "ics.structures.gptp_status", + "ics.structures.manufacturing_operation", "ics.structures.s_ext_sub_cmd_comm", "ics.structures.serdescam_settings", "ics.structures.serdespoc_settings", @@ -115,7 +116,9 @@ "ics.structures.srad_jupiter_switch_settings", "ics.structures.srad_jupiter_settings", "ics.structures.fire3_linux_settings", + "ics.structures.s_red2_settings", "ics.structures.s_fire3_settings", + "ics.structures.s_fire3_flexray_settings", "ics.structures.s_rad_moon_duo_settings", "ics.structures.s_ether_badge_settings", "ics.structures.srad_epsilon_switch_settings", @@ -123,6 +126,7 @@ "ics.structures.s_wil_fault_servicing_settings", "ics.structures.s_wil_network_data_capture_settings", "ics.structures.s_wil_connection_settings", + "ics.structures.s_spi_port_setting", "ics.structures.s_spi_port_settings", "ics.structures.s_wil_bridge_config", "ics.structures.sradbms_settings", diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index cbff13289..3d605d14b 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -55,6 +55,7 @@ "system_identity", "priority_vector", "gptp_status", + "manufacturing_operation", "s_ext_sub_cmd_comm", "serdescam_settings", "serdespoc_settings", @@ -115,7 +116,9 @@ "srad_jupiter_switch_settings", "srad_jupiter_settings", "fire3_linux_settings", + "s_red2_settings", "s_fire3_settings", + "s_fire3_flexray_settings", "s_rad_moon_duo_settings", "s_ether_badge_settings", "srad_epsilon_switch_settings", @@ -123,6 +126,7 @@ "s_wil_fault_servicing_settings", "s_wil_network_data_capture_settings", "s_wil_connection_settings", + "s_spi_port_setting", "s_spi_port_settings", "s_wil_bridge_config", "sradbms_settings", diff --git a/ics/structures/e_device_settings_type.py b/ics/structures/e_device_settings_type.py index 9b170da7c..e94581f0f 100644 --- a/ics/structures/e_device_settings_type.py +++ b/ics/structures/e_device_settings_type.py @@ -38,7 +38,7 @@ def from_param(cls, obj): DeviceRADPlutoSwitchSettingsType = enum.auto() DeviceRADGigastarSettingsType = enum.auto() DeviceRADJupiterSettingsType = enum.auto() - DeviceFire3SettingsType = enum.auto() + DeviceRed2SettingsType = enum.auto() DeviceRadMoonDuoSettingsType = enum.auto() DeviceEtherBadgeSettingsType = enum.auto() DeviceRADA2BSettingsType = enum.auto() @@ -46,6 +46,8 @@ def from_param(cls, obj): DeviceOBD2LCSettingsType = enum.auto() DeviceRADBMSSettingsType = enum.auto() DeviceRADMoon3SettingsType = enum.auto() + DeviceFire3SettingsType = enum.auto() + DeviceFire3FlexraySettingsType = enum.auto() DeviceSettingsTypeMax = enum.auto() DeviceSettingsNone = 4294967295 diff --git a/ics/structures/global_settings.py b/ics/structures/global_settings.py index 609c2febb..79c0f9f86 100644 --- a/ics/structures/global_settings.py +++ b/ics/structures/global_settings.py @@ -5,6 +5,7 @@ from ics.structures.s_cm_probe_settings import * from ics.structures.s_cyan_settings import * from ics.structures.s_ether_badge_settings import * +from ics.structures.s_fire3_flexray_settings import * from ics.structures.s_fire3_settings import * from ics.structures.s_fire_settings import * from ics.structures.s_fire_vnet_settings import * @@ -12,6 +13,7 @@ from ics.structures.s_neo_ecu12_settings import * from ics.structures.s_pendant_settings import * from ics.structures.s_rad_moon_duo_settings import * +from ics.structures.s_red2_settings import * from ics.structures.s_red_settings import * from ics.structures.s_vivid_can_settings import * from ics.structures.scan_hub_settings import * @@ -41,7 +43,7 @@ from ics.structures.svcanrf_settings import * -class Nameless46561(ctypes.Union): +class Nameless32656(ctypes.Union): _pack_ = 2 _fields_ = [ ('red', SRedSettings), @@ -72,14 +74,16 @@ class Nameless46561(ctypes.Union): ('flexvnetz', SFlexVnetzSettings), ('vividcan', SVividCANSettings), ('vcan4_ind', SVCAN4IndSettings), + ('obd2lc', SOBD2LCSettings), ('radgigastar', SRADGigastarSettings), ('jupiter', SRADJupiterSettings), + ('red2', SRed2Settings), ('fire3', SFire3Settings), + ('fire3fr', SFire3FlexraySettings), ('radmoonduo', SRadMoonDuoSettings), ('etherBadge', SEtherBadgeSettings), ('rad_a2b', SRADA2BSettings), ('epsilon', SRADEpsilonSettings), - ('obd2lc', SOBD2LCSettings), ('rad_bms', SRADBMSSettings), ('radmoon3', SRADMoon3Settings), ] @@ -88,12 +92,12 @@ class Nameless46561(ctypes.Union): class global_settings(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless46561',) + _anonymous_ = ('Nameless32656',) _fields_ = [ ('version', ctypes.c_uint16), ('len', ctypes.c_uint16), ('chksum', ctypes.c_uint16), - ('Nameless46561', Nameless46561), + ('Nameless32656', Nameless32656), ] diff --git a/ics/structures/ics_fire3_device_status.py b/ics/structures/ics_fire3_device_status.py index 4a81fc4a7..fc366e278 100644 --- a/ics/structures/ics_fire3_device_status.py +++ b/ics/structures/ics_fire3_device_status.py @@ -8,8 +8,8 @@ class ics_fire3_device_status(ctypes.Structure): _fields_ = [ ('ethernetActivationLineEnabled', ctypes.c_uint8), - ('ethernetStatus', ethernetNetworkStatus_t), - ('unused', ctypes.c_uint8), + ('ethernetStatus', ethernetNetworkStatus_t * 3), + ('ethernetActivationLineEnabled_2', ctypes.c_uint8), ] diff --git a/ics/structures/ics_spy_message_flex_ray.py b/ics/structures/ics_spy_message_flex_ray.py index 021389b14..15237c558 100644 --- a/ics/structures/ics_spy_message_flex_ray.py +++ b/ics/structures/ics_spy_message_flex_ray.py @@ -4,7 +4,7 @@ -class Nameless18844(ctypes.Structure): +class Nameless49459(ctypes.Structure): _fields_ = [ ('id', ctypes.c_uint32, 12), ('res1', ctypes.c_uint32, 4), @@ -21,16 +21,16 @@ class Nameless18844(ctypes.Structure): -class Nameless61974(ctypes.Union): - _anonymous_ = ('Nameless18844',) +class Nameless21903(ctypes.Union): + _anonymous_ = ('Nameless49459',) _fields_ = [ ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless18844', Nameless18844), + ('Nameless49459', Nameless49459), ] -class Nameless49459(ctypes.Structure): +class Nameless7100(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -38,7 +38,7 @@ class Nameless49459(ctypes.Structure): -class Nameless21903(ctypes.Structure): +class Nameless9992(ctypes.Structure): _fields_ = [ ('hcrc_msbs', ctypes.c_uint32, 3), ('res2', ctypes.c_uint32, 5), @@ -52,18 +52,18 @@ class Nameless21903(ctypes.Structure): -class Nameless7100(ctypes.Union): - _anonymous_ = ('Nameless49459', 'Nameless21903') +class Nameless65087(ctypes.Union): + _anonymous_ = ('Nameless7100', 'Nameless9992') _fields_ = [ - ('Nameless49459', Nameless49459), + ('Nameless7100', Nameless7100), ('AckBytes', ctypes.c_uint8 * 8), - ('Nameless21903', Nameless21903), + ('Nameless9992', Nameless9992), ] class ics_spy_message_flex_ray(ctypes.Structure): - _anonymous_ = ('Nameless61974', 'Nameless7100') + _anonymous_ = ('Nameless21903', 'Nameless65087') _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -82,9 +82,9 @@ class ics_spy_message_flex_ray(ctypes.Structure): ('NumberBytesData', ctypes.c_uint8), ('NetworkID2', ctypes.c_uint8), ('DescriptionID', ctypes.c_uint16), - ('Nameless61974', Nameless61974), + ('Nameless21903', Nameless21903), ('Data', ctypes.c_uint8 * 8), - ('Nameless7100', Nameless7100), + ('Nameless65087', Nameless65087), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/ics_spy_message_long.py b/ics/structures/ics_spy_message_long.py index e5935aa85..6a1599d02 100644 --- a/ics/structures/ics_spy_message_long.py +++ b/ics/structures/ics_spy_message_long.py @@ -4,7 +4,7 @@ -class Nameless9992(ctypes.Structure): +class Nameless21496(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless9992(ctypes.Structure): -class Nameless65087(ctypes.Union): - _anonymous_ = ('Nameless9992',) +class Nameless9872(ctypes.Union): + _anonymous_ = ('Nameless21496',) _fields_ = [ - ('Nameless9992', Nameless9992), + ('Nameless21496', Nameless21496), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_long(ctypes.Structure): - _anonymous_ = ('Nameless65087',) + _anonymous_ = ('Nameless9872',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -44,7 +44,7 @@ class ics_spy_message_long(ctypes.Structure): ('ArbIDOrHeader', ctypes.c_uint32), ('DataMsb', ctypes.c_uint32), ('DataLsb', ctypes.c_uint32), - ('Nameless65087', Nameless65087), + ('Nameless9872', Nameless9872), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/ics_spy_message_vsb.py b/ics/structures/ics_spy_message_vsb.py index d7fe4b0bc..a2c975d21 100644 --- a/ics/structures/ics_spy_message_vsb.py +++ b/ics/structures/ics_spy_message_vsb.py @@ -4,7 +4,7 @@ -class Nameless28192(ctypes.Structure): +class Nameless3555(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless28192(ctypes.Structure): -class Nameless18906(ctypes.Union): - _anonymous_ = ('Nameless28192',) +class Nameless45381(ctypes.Union): + _anonymous_ = ('Nameless3555',) _fields_ = [ - ('Nameless28192', Nameless28192), + ('Nameless3555', Nameless3555), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_vsb(ctypes.Structure): - _anonymous_ = ('Nameless18906',) + _anonymous_ = ('Nameless45381',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -43,7 +43,7 @@ class ics_spy_message_vsb(ctypes.Structure): ('DescriptionID', ctypes.c_int16), ('ArbIDOrHeader', ctypes.c_uint32), ('Data', ctypes.c_uint8 * 8), - ('Nameless18906', Nameless18906), + ('Nameless45381', Nameless45381), ('ExtraDataPtr', ctypes.c_uint32), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/iso15765_2015_tx_message.py b/ics/structures/iso15765_2015_tx_message.py index 008706e2f..0bdaf13c7 100644 --- a/ics/structures/iso15765_2015_tx_message.py +++ b/ics/structures/iso15765_2015_tx_message.py @@ -4,7 +4,7 @@ -class Nameless26218(ctypes.Structure): +class Nameless2529(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint16, 1), @@ -21,11 +21,11 @@ class Nameless26218(ctypes.Structure): -class Nameless59426(ctypes.Union): +class Nameless9252(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless26218',) + _anonymous_ = ('Nameless2529',) _fields_ = [ - ('Nameless26218', Nameless26218), + ('Nameless2529', Nameless2529), ('flags', ctypes.c_uint16), ] @@ -33,7 +33,7 @@ class Nameless59426(ctypes.Union): class iso15765_2015_tx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless59426',) + _anonymous_ = ('Nameless9252',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -50,7 +50,7 @@ class iso15765_2015_tx_message(ctypes.Structure): ('data', ctypes.POINTER(ctypes.c_uint8)), ('num_bytes', ctypes.c_uint32), ('tx_dl', ctypes.c_uint8), - ('Nameless59426', Nameless59426), + ('Nameless9252', Nameless9252), ] diff --git a/ics/structures/manufacturing_operation.py b/ics/structures/manufacturing_operation.py new file mode 100644 index 000000000..d7e23fe8c --- /dev/null +++ b/ics/structures/manufacturing_operation.py @@ -0,0 +1,28 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class unlock(ctypes.Structure): + _pack_ = 1 + _fields_ = [ + ('apiVersion', ctypes.c_uint32), + ('code', ctypes.c_uint32), + ] + + + +class manufacturing_operation(ctypes.Union): + _pack_ = 1 + _fields_ = [ + ('rtcCalEnable', ctypes.c_uint32), + ('rtcCalValue', ctypes.c_int), + ('unlock', unlock), + ('bytes', ctypes.c_uint8 * 256), + ] + + +ManufacturingOperation = manufacturing_operation +ManufacturingOperation = manufacturing_operation + diff --git a/ics/structures/s_device_settings.py b/ics/structures/s_device_settings.py index 05e6ce9d8..332cdfed3 100644 --- a/ics/structures/s_device_settings.py +++ b/ics/structures/s_device_settings.py @@ -6,6 +6,7 @@ from ics.structures.s_cm_probe_settings import * from ics.structures.s_cyan_settings import * from ics.structures.s_ether_badge_settings import * +from ics.structures.s_fire3_flexray_settings import * from ics.structures.s_fire3_settings import * from ics.structures.s_fire_settings import * from ics.structures.s_fire_vnet_settings import * @@ -14,6 +15,7 @@ from ics.structures.s_pendant_settings import * from ics.structures.s_pluto_switch_settings_s import * from ics.structures.s_rad_moon_duo_settings import * +from ics.structures.s_red2_settings import * from ics.structures.s_red_settings import * from ics.structures.s_vivid_can_settings import * from ics.structures.scan_hub_settings import * @@ -79,12 +81,14 @@ class Settings(ctypes.Union): ('radgigastar', SRADGigastarSettings), ('jupiter', SRADJupiterSettings), ('fire3', SFire3Settings), + ('red2', SRed2Settings), ('radmoon_duo', SRadMoonDuoSettings), ('etherBadge', SEtherBadgeSettings), ('rad_a2b', SRADA2BSettings), ('epsilon', SRADEpsilonSettings), ('rad_bms', SRADBMSSettings), ('radmoon3', SRADMoon3Settings), + ('fire3Flexray', SFire3FlexraySettings), ] diff --git a/ics/structures/s_ext_sub_cmd_comm.py b/ics/structures/s_ext_sub_cmd_comm.py index fd0517d5c..5a9bb02f1 100644 --- a/ics/structures/s_ext_sub_cmd_comm.py +++ b/ics/structures/s_ext_sub_cmd_comm.py @@ -10,6 +10,7 @@ from ics.structures.get_component_versions_response import * from ics.structures.get_supported_features_response import * from ics.structures.gptp_status import * +from ics.structures.manufacturing_operation import * from ics.structures.s_disk_details import * from ics.structures.s_disk_format_progress import * from ics.structures.s_disk_structure import * @@ -46,6 +47,7 @@ class extension(ctypes.Union): ('uartData', UartPortData), ('uartBytesLen', UartPortPortBytes), ('uartConfig', UartPortConfig), + ('mfgOperation', ManufacturingOperation), ] diff --git a/ics/structures/s_fire3_flexray_settings.py b/ics/structures/s_fire3_flexray_settings.py new file mode 100644 index 000000000..eeb0f807f --- /dev/null +++ b/ics/structures/s_fire3_flexray_settings.py @@ -0,0 +1,119 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.can_settings import * +from ics.structures.canfd_settings import * +from ics.structures.disk_settings import * +from ics.structures.ethernet_settings import * +from ics.structures.ethernet_settings2 import * +from ics.structures.fire3_linux_settings import * +from ics.structures.iso9141_keyword2000_settings import * +from ics.structures.lin_settings import * +from ics.structures.s_text_api_settings import * +from ics.structures.srad_gptp_settings_s import * +from ics.structures.timesync_icshardware_settings import * + + +class flags(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), + ('enableLatencyTest', ctypes.c_uint32, 1), + ('busMessagesToAndroid', ctypes.c_uint32, 1), + ('reserved1', ctypes.c_uint32, 1), + ('enableDefaultLogger', ctypes.c_uint32, 1), + ('enableDefaultUpload', ctypes.c_uint32, 1), + ('reserved', ctypes.c_uint32, 26), + ] + + + +class s_fire3_flexray_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('perf_en', ctypes.c_uint16), + ('network_enabled_on_boot', ctypes.c_uint16), + ('misc_io_on_report_events', ctypes.c_uint16), + ('pwr_man_enable', ctypes.c_uint16), + ('iso15765_separation_time_offset', ctypes.c_int16), + ('slaveVnetA', ctypes.c_uint16), + ('reserved', ctypes.c_uint32), + ('termination_enables_1', ctypes.c_uint64), + ('network_enables', ctypes.c_uint64), + ('pwr_man_timeout', ctypes.c_uint32), + ('can1', CAN_SETTINGS), + ('canfd1', CANFD_SETTINGS), + ('can2', CAN_SETTINGS), + ('canfd2', CANFD_SETTINGS), + ('can3', CAN_SETTINGS), + ('canfd3', CANFD_SETTINGS), + ('can4', CAN_SETTINGS), + ('canfd4', CANFD_SETTINGS), + ('can5', CAN_SETTINGS), + ('canfd5', CANFD_SETTINGS), + ('can6', CAN_SETTINGS), + ('canfd6', CANFD_SETTINGS), + ('can7', CAN_SETTINGS), + ('canfd7', CANFD_SETTINGS), + ('can8', CAN_SETTINGS), + ('canfd8', CANFD_SETTINGS), + ('lin1', LIN_SETTINGS), + ('lin2', LIN_SETTINGS), + ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_1', ctypes.c_uint16), + ('iso_msg_termination_1', ctypes.c_uint16), + ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_2', ctypes.c_uint16), + ('iso_msg_termination_2', ctypes.c_uint16), + ('ethernet_1', ETHERNET_SETTINGS), + ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), + ('text_api', STextAPISettings), + ('flags', flags), + ('disk', DISK_SETTINGS), + ('misc_io_report_period', ctypes.c_uint16), + ('ain_threshold', ctypes.c_uint16), + ('misc_io_analog_enable', ctypes.c_uint16), + ('digitalIoThresholdTicks', ctypes.c_uint16), + ('digitalIoThresholdEnable', ctypes.c_uint16), + ('misc_io_initial_ddr', ctypes.c_uint16), + ('misc_io_initial_latch', ctypes.c_uint16), + ('ethernet2_1', ETHERNET_SETTINGS2), + ('ethernet_2', ETHERNET_SETTINGS), + ('ethernet2_2', ETHERNET_SETTINGS2), + ('os_settings', Fire3LinuxSettings), + ('gPTP', RAD_GPTP_SETTINGS), + ('can9', CAN_SETTINGS), + ('canfd9', CANFD_SETTINGS), + ('can10', CAN_SETTINGS), + ('canfd10', CANFD_SETTINGS), + ('can11', CAN_SETTINGS), + ('canfd11', CANFD_SETTINGS), + ('can12', CAN_SETTINGS), + ('canfd12', CANFD_SETTINGS), + ('can13', CAN_SETTINGS), + ('canfd13', CANFD_SETTINGS), + ('can14', CAN_SETTINGS), + ('canfd14', CANFD_SETTINGS), + ('can15', CAN_SETTINGS), + ('canfd15', CANFD_SETTINGS), + ('ethernet_3', ETHERNET_SETTINGS), + ('ethernet2_3', ETHERNET_SETTINGS2), + ('lin3', LIN_SETTINGS), + ('lin4', LIN_SETTINGS), + ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_3', ctypes.c_uint16), + ('iso_msg_termination_3', ctypes.c_uint16), + ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_4', ctypes.c_uint16), + ('iso_msg_termination_4', ctypes.c_uint16), + ('network_enables_2', ctypes.c_uint64), + ('termination_enables_2', ctypes.c_uint64), + ('flex_mode', ctypes.c_uint16), + ('flex_termination', ctypes.c_uint16), + ] + + +_SFire3FlexraySettings = s_fire3_flexray_settings +SFire3FlexraySettings = s_fire3_flexray_settings + diff --git a/ics/structures/s_fire3_settings.py b/ics/structures/s_fire3_settings.py index 0683e7f33..9b63799dd 100644 --- a/ics/structures/s_fire3_settings.py +++ b/ics/structures/s_fire3_settings.py @@ -12,30 +12,10 @@ from ics.structures.lin_settings import * from ics.structures.s_text_api_settings import * from ics.structures.srad_gptp_settings_s import * +from ics.structures.swcan_settings import * from ics.structures.timesync_icshardware_settings import * -class Nameless39639(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('network_enables_4', ctypes.c_uint16), - ] - - - -class network_enables(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless39639',) - _fields_ = [ - ('word', ctypes.c_uint64), - ('Nameless39639', Nameless39639), - ] - - - class flags(ctypes.Structure): _pack_ = 2 _fields_ = [ @@ -60,8 +40,8 @@ class s_fire3_settings(ctypes.Structure): ('iso15765_separation_time_offset', ctypes.c_int16), ('slaveVnetA', ctypes.c_uint16), ('reserved', ctypes.c_uint32), - ('termination_enables', ctypes.c_uint64), - ('network_enables', network_enables), + ('termination_enables_1', ctypes.c_uint64), + ('network_enables', ctypes.c_uint64), ('pwr_man_timeout', ctypes.c_uint32), ('can1', CAN_SETTINGS), ('canfd1', CANFD_SETTINGS), @@ -104,6 +84,50 @@ class s_fire3_settings(ctypes.Structure): ('ethernet2_2', ETHERNET_SETTINGS2), ('os_settings', Fire3LinuxSettings), ('gPTP', RAD_GPTP_SETTINGS), + ('can9', CAN_SETTINGS), + ('canfd9', CANFD_SETTINGS), + ('can10', CAN_SETTINGS), + ('canfd10', CANFD_SETTINGS), + ('can11', CAN_SETTINGS), + ('canfd11', CANFD_SETTINGS), + ('can12', CAN_SETTINGS), + ('canfd12', CANFD_SETTINGS), + ('can13', CAN_SETTINGS), + ('canfd13', CANFD_SETTINGS), + ('can14', CAN_SETTINGS), + ('canfd14', CANFD_SETTINGS), + ('can15', CAN_SETTINGS), + ('canfd15', CANFD_SETTINGS), + ('can16', CAN_SETTINGS), + ('canfd16', CANFD_SETTINGS), + ('swcan1', SWCAN_SETTINGS), + ('swcan2', SWCAN_SETTINGS), + ('lsftcan1', CAN_SETTINGS), + ('lsftcan2', CAN_SETTINGS), + ('ethernet_3', ETHERNET_SETTINGS), + ('ethernet2_3', ETHERNET_SETTINGS2), + ('lin3', LIN_SETTINGS), + ('lin4', LIN_SETTINGS), + ('lin5', LIN_SETTINGS), + ('lin6', LIN_SETTINGS), + ('lin7', LIN_SETTINGS), + ('lin8', LIN_SETTINGS), + ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_3', ctypes.c_uint16), + ('iso_msg_termination_3', ctypes.c_uint16), + ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_4', ctypes.c_uint16), + ('iso_msg_termination_4', ctypes.c_uint16), + ('iso9141_kwp_settings_5', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_5', ctypes.c_uint16), + ('iso_msg_termination_5', ctypes.c_uint16), + ('iso9141_kwp_settings_6', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_6', ctypes.c_uint16), + ('iso_msg_termination_6', ctypes.c_uint16), + ('selectable_network_1', ctypes.c_uint16), + ('selectable_network_2', ctypes.c_uint16), + ('network_enables_2', ctypes.c_uint64), + ('termination_enables_2', ctypes.c_uint64), ] diff --git a/ics/structures/s_phy_reg_pkt.py b/ics/structures/s_phy_reg_pkt.py index b33906bb1..bf22fdb05 100644 --- a/ics/structures/s_phy_reg_pkt.py +++ b/ics/structures/s_phy_reg_pkt.py @@ -6,7 +6,7 @@ from ics.structures.s_phy_reg_pkt_clause45_mess import * -class Nameless3555(ctypes.Structure): +class Nameless14534(ctypes.Structure): _fields_ = [ ('Enabled', ctypes.c_uint16, 1), ('WriteEnable', ctypes.c_uint16, 1), @@ -19,16 +19,16 @@ class Nameless3555(ctypes.Structure): -class Nameless45381(ctypes.Union): - _anonymous_ = ('Nameless3555',) +class Nameless18511(ctypes.Union): + _anonymous_ = ('Nameless14534',) _fields_ = [ - ('Nameless3555', Nameless3555), + ('Nameless14534', Nameless14534), ('flags', ctypes.c_uint16), ] -class Nameless14534(ctypes.Union): +class Nameless40028(ctypes.Union): _fields_ = [ ('clause22', PhyRegPktClause22Mess_t), ('clause45', PhyRegPktClause45Mess_t), @@ -37,10 +37,10 @@ class Nameless14534(ctypes.Union): class s_phy_reg_pkt(ctypes.Structure): - _anonymous_ = ('Nameless45381', 'Nameless14534') + _anonymous_ = ('Nameless18511', 'Nameless40028') _fields_ = [ - ('Nameless45381', Nameless45381), - ('Nameless14534', Nameless14534), + ('Nameless18511', Nameless18511), + ('Nameless40028', Nameless40028), ] diff --git a/ics/structures/s_red2_settings.py b/ics/structures/s_red2_settings.py new file mode 100644 index 000000000..293d24ce2 --- /dev/null +++ b/ics/structures/s_red2_settings.py @@ -0,0 +1,112 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.can_settings import * +from ics.structures.canfd_settings import * +from ics.structures.disk_settings import * +from ics.structures.ethernet_settings import * +from ics.structures.ethernet_settings2 import * +from ics.structures.fire3_linux_settings import * +from ics.structures.iso9141_keyword2000_settings import * +from ics.structures.lin_settings import * +from ics.structures.s_text_api_settings import * +from ics.structures.srad_gptp_settings_s import * +from ics.structures.timesync_icshardware_settings import * + + +class Nameless39639(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('network_enables', ctypes.c_uint16), + ('network_enables_2', ctypes.c_uint16), + ('network_enables_3', ctypes.c_uint16), + ('network_enables_4', ctypes.c_uint16), + ] + + + +class network_enables(ctypes.Union): + _pack_ = 2 + _anonymous_ = ('Nameless39639',) + _fields_ = [ + ('word', ctypes.c_uint64), + ('Nameless39639', Nameless39639), + ] + + + +class flags(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), + ('enableLatencyTest', ctypes.c_uint32, 1), + ('busMessagesToAndroid', ctypes.c_uint32, 1), + ('enablePcEthernetComm', ctypes.c_uint32, 1), + ('enableDefaultLogger', ctypes.c_uint32, 1), + ('enableDefaultUpload', ctypes.c_uint32, 1), + ('reserved', ctypes.c_uint32, 26), + ] + + + +class s_red2_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('perf_en', ctypes.c_uint16), + ('network_enabled_on_boot', ctypes.c_uint16), + ('misc_io_on_report_events', ctypes.c_uint16), + ('pwr_man_enable', ctypes.c_uint16), + ('iso15765_separation_time_offset', ctypes.c_int16), + ('slaveVnetA', ctypes.c_uint16), + ('reserved', ctypes.c_uint32), + ('termination_enables', ctypes.c_uint64), + ('network_enables', network_enables), + ('pwr_man_timeout', ctypes.c_uint32), + ('can1', CAN_SETTINGS), + ('canfd1', CANFD_SETTINGS), + ('can2', CAN_SETTINGS), + ('canfd2', CANFD_SETTINGS), + ('can3', CAN_SETTINGS), + ('canfd3', CANFD_SETTINGS), + ('can4', CAN_SETTINGS), + ('canfd4', CANFD_SETTINGS), + ('can5', CAN_SETTINGS), + ('canfd5', CANFD_SETTINGS), + ('can6', CAN_SETTINGS), + ('canfd6', CANFD_SETTINGS), + ('can7', CAN_SETTINGS), + ('canfd7', CANFD_SETTINGS), + ('can8', CAN_SETTINGS), + ('canfd8', CANFD_SETTINGS), + ('lin1', LIN_SETTINGS), + ('lin2', LIN_SETTINGS), + ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_1', ctypes.c_uint16), + ('iso_msg_termination_1', ctypes.c_uint16), + ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_2', ctypes.c_uint16), + ('iso_msg_termination_2', ctypes.c_uint16), + ('ethernet_1', ETHERNET_SETTINGS), + ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), + ('text_api', STextAPISettings), + ('flags', flags), + ('disk', DISK_SETTINGS), + ('misc_io_report_period', ctypes.c_uint16), + ('ain_threshold', ctypes.c_uint16), + ('misc_io_analog_enable', ctypes.c_uint16), + ('digitalIoThresholdTicks', ctypes.c_uint16), + ('digitalIoThresholdEnable', ctypes.c_uint16), + ('misc_io_initial_ddr', ctypes.c_uint16), + ('misc_io_initial_latch', ctypes.c_uint16), + ('ethernet2_1', ETHERNET_SETTINGS2), + ('ethernet_2', ETHERNET_SETTINGS), + ('ethernet2_2', ETHERNET_SETTINGS2), + ('os_settings', Fire3LinuxSettings), + ('gPTP', RAD_GPTP_SETTINGS), + ] + + +_SRed2Settings = s_red2_settings +SRed2Settings = s_red2_settings + diff --git a/ics/structures/s_spi_port_setting.py b/ics/structures/s_spi_port_setting.py new file mode 100644 index 000000000..5b90113cd --- /dev/null +++ b/ics/structures/s_spi_port_setting.py @@ -0,0 +1,27 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class config(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('onboard_external', ctypes.c_uint8, 1), + ('type', ctypes.c_uint8, 1), + ('mode', ctypes.c_uint8, 3), + ('reserved', ctypes.c_uint8, 3), + ] + + + +class s_spi_port_setting(ctypes.Union): + _pack_ = 2 + _fields_ = [ + ('byte', ctypes.c_uint8), + ('config', config), + ] + + +sSPI_PORT_SETTING = s_spi_port_setting + diff --git a/ics/structures/s_spi_port_settings.py b/ics/structures/s_spi_port_settings.py index 4f98f8527..3b8baa938 100644 --- a/ics/structures/s_spi_port_settings.py +++ b/ics/structures/s_spi_port_settings.py @@ -2,16 +2,16 @@ import ctypes import enum +from ics.structures.s_spi_port_setting import * class s_spi_port_settings(ctypes.Structure): _pack_ = 2 _fields_ = [ - ('port_a_onbaord_external', ctypes.c_uint8), - ('port_b_onbaord_external', ctypes.c_uint8), + ('port_a', sSPI_PORT_SETTING), + ('port_b', sSPI_PORT_SETTING), ] -_sSPI_PORT_SETTINGS = s_spi_port_settings sSPI_PORT_SETTINGS = s_spi_port_settings diff --git a/ics/structures/srada2_b_settings.py b/ics/structures/srada2_b_settings.py index 140babfbd..296a57843 100644 --- a/ics/structures/srada2_b_settings.py +++ b/ics/structures/srada2_b_settings.py @@ -19,7 +19,8 @@ class flags(ctypes.Structure): _pack_ = 2 _fields_ = [ ('hwComLatencyTestEn', ctypes.c_uint16, 1), - ('', ctypes.c_uint16, 15), + ('disableUsbCheckOnBoot', ctypes.c_uint16, 1), + ('', ctypes.c_uint16, 14), ] diff --git a/ics/structures/sradbms_settings.py b/ics/structures/sradbms_settings.py index 272e77d9b..bf841d3c0 100644 --- a/ics/structures/sradbms_settings.py +++ b/ics/structures/sradbms_settings.py @@ -45,6 +45,8 @@ class sradbms_settings(ctypes.Structure): ('spi_config', sSPI_PORT_SETTINGS), ('wbms_wil_1', sWIL_CONNECTION_SETTINGS), ('wbms_wil_2', sWIL_CONNECTION_SETTINGS), + ('wil1_nwk_metadata_buff_count', ctypes.c_uint16), + ('wil2_nwk_metadata_buff_count', ctypes.c_uint16), ] diff --git a/ics/structures/st_chip_versions.py b/ics/structures/st_chip_versions.py index beae6aa15..d04e281f6 100644 --- a/ics/structures/st_chip_versions.py +++ b/ics/structures/st_chip_versions.py @@ -233,6 +233,17 @@ class jupiter_versions(ctypes.Structure): +class red2_versions(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('zchip_major', ctypes.c_uint8), + ('zchip_minor', ctypes.c_uint8), + ('schip_major', ctypes.c_uint8), + ('schip_minor', ctypes.c_uint8), + ] + + + class fire3_versions(ctypes.Structure): _pack_ = 2 _fields_ = [ @@ -240,6 +251,23 @@ class fire3_versions(ctypes.Structure): ('zchip_minor', ctypes.c_uint8), ('schip_major', ctypes.c_uint8), ('schip_minor', ctypes.c_uint8), + ('vem_z_major', ctypes.c_uint8), + ('vem_z_minor', ctypes.c_uint8), + ] + + + +class fire3_flexray_versions(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('zchip_major', ctypes.c_uint8), + ('zchip_minor', ctypes.c_uint8), + ('schip_major', ctypes.c_uint8), + ('schip_minor', ctypes.c_uint8), + ('vem_z_major', ctypes.c_uint8), + ('vem_z_minor', ctypes.c_uint8), + ('vem_f_major', ctypes.c_uint8), + ('vem_f_minor', ctypes.c_uint8), ] @@ -317,7 +345,9 @@ class st_chip_versions(ctypes.Union): ('radgigastar_usbz_versions', radgigastar_usbz_versions), ('obd2lc_versions', obd2lc_versions), ('jupiter_versions', jupiter_versions), + ('red2_versions', red2_versions), ('fire3_versions', fire3_versions), + ('fire3_flexray_versions', fire3_flexray_versions), ('rad_moon_duo_versions', rad_moon_duo_versions), ('obd2dev_versions', obd2dev_versions), ('ether_badge_versions', ether_badge_versions), diff --git a/ics/structures/st_cm_iso157652_rx_message.py b/ics/structures/st_cm_iso157652_rx_message.py index 0fc447af6..771cf9702 100644 --- a/ics/structures/st_cm_iso157652_rx_message.py +++ b/ics/structures/st_cm_iso157652_rx_message.py @@ -4,7 +4,7 @@ -class Nameless2529(ctypes.Structure): +class Nameless757(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint, 1), @@ -19,11 +19,11 @@ class Nameless2529(ctypes.Structure): -class Nameless9252(ctypes.Union): +class Nameless43713(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless2529',) + _anonymous_ = ('Nameless757',) _fields_ = [ - ('Nameless2529', Nameless2529), + ('Nameless757', Nameless757), ('flags', ctypes.c_uint32), ] @@ -31,7 +31,7 @@ class Nameless9252(ctypes.Union): class st_cm_iso157652_rx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless9252',) + _anonymous_ = ('Nameless43713',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -43,7 +43,7 @@ class st_cm_iso157652_rx_message(ctypes.Structure): ('blockSize', ctypes.c_uint8), ('stMin', ctypes.c_uint8), ('cf_timeout', ctypes.c_uint16), - ('Nameless9252', Nameless9252), + ('Nameless43713', Nameless43713), ('reserved', ctypes.c_uint8 * 16), ] diff --git a/ics/structures/st_cm_iso157652_tx_message.py b/ics/structures/st_cm_iso157652_tx_message.py index 510a857cd..173c58d31 100644 --- a/ics/structures/st_cm_iso157652_tx_message.py +++ b/ics/structures/st_cm_iso157652_tx_message.py @@ -4,7 +4,7 @@ -class Nameless34924(ctypes.Structure): +class Nameless26218(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint, 1), @@ -22,11 +22,11 @@ class Nameless34924(ctypes.Structure): -class Nameless32656(ctypes.Union): +class Nameless59426(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless34924',) + _anonymous_ = ('Nameless26218',) _fields_ = [ - ('Nameless34924', Nameless34924), + ('Nameless26218', Nameless26218), ('flags', ctypes.c_uint32), ] @@ -34,7 +34,7 @@ class Nameless32656(ctypes.Union): class st_cm_iso157652_tx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless32656',) + _anonymous_ = ('Nameless59426',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -50,7 +50,7 @@ class st_cm_iso157652_tx_message(ctypes.Structure): ('fs_wait', ctypes.c_uint16), ('data', ctypes.c_uint8 * 4096), ('num_bytes', ctypes.c_uint32), - ('Nameless32656', Nameless32656), + ('Nameless59426', Nameless59426), ] diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index a4d5f3091..aafdffe3d 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -722,52 +722,76 @@ "is_anonymous": true, "members": [ { - "name": "swUpdateWrite", + "name": "swUpdateWrite ", "data_type": "int", "array_length": 0, "bitfield_size": 0, "is_enum": false, - "enum_value": null + "enum_value": 0 }, { - "name": "swUpdateErase", + "name": "swUpdateErase ", "data_type": "int", "array_length": 0, "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "is_enum": true, + "enum_value": 1 }, { - "name": "swUpdateGetProgress", + "name": "swUpdateGetProgress ", "data_type": "int", "array_length": 0, "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "is_enum": true, + "enum_value": 2 }, { - "name": "swUpdateValidateAll", + "name": "swUpdateValidateAll ", "data_type": "int", "array_length": 0, "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "is_enum": true, + "enum_value": 3 }, { - "name": "swUpdateGetBufferSize", + "name": "swUpdateGetBufferSize ", "data_type": "int", "array_length": 0, "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "is_enum": true, + "enum_value": 4 }, { - "name": "swUpdateCheckVersion", + "name": "swUpdateCheckHostVersion ", "data_type": "int", "array_length": 0, "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "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 } ] }, @@ -2142,6 +2166,62 @@ } ] }, + { + "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", @@ -2376,7 +2456,7 @@ "enum_value": null }, { - "name": "DeviceFire3SettingsType", + "name": "DeviceRed2SettingsType", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2439,6 +2519,22 @@ "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": "DeviceSettingsTypeMax", "data_type": "int", @@ -2922,7 +3018,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4828 ", + "name": "assert_line_5140 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2938,7 +3034,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4829 ", + "name": "assert_line_5141 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2954,7 +3050,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4830 ", + "name": "assert_line_5142 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2970,7 +3066,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4831 ", + "name": "assert_line_5143 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -2986,7 +3082,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4832 ", + "name": "assert_line_5144 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3002,7 +3098,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4833 ", + "name": "assert_line_5145 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3018,7 +3114,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4834 ", + "name": "assert_line_5146 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3034,7 +3130,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4835 ", + "name": "assert_line_5147 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3050,7 +3146,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4836 ", + "name": "assert_line_5148 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3066,7 +3162,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4837 ", + "name": "assert_line_5149 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3082,7 +3178,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4838 ", + "name": "assert_line_5150 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3098,7 +3194,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4839 ", + "name": "assert_line_5151 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3114,7 +3210,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4840 ", + "name": "assert_line_5152 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3130,7 +3226,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4841 ", + "name": "assert_line_5153 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3146,7 +3242,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4842 ", + "name": "assert_line_5154 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3162,7 +3258,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4843 ", + "name": "assert_line_5155 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3178,7 +3274,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4844 ", + "name": "assert_line_5156 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3194,7 +3290,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4845 ", + "name": "assert_line_5157 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3210,7 +3306,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4846 ", + "name": "assert_line_5158 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3226,7 +3322,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4847 ", + "name": "assert_line_5159 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3242,7 +3338,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4848 ", + "name": "assert_line_5160 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3258,7 +3354,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4849 ", + "name": "assert_line_5161 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3274,7 +3370,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4850 ", + "name": "assert_line_5162 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3290,7 +3386,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4851 ", + "name": "assert_line_5163 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3306,7 +3402,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4852 ", + "name": "assert_line_5164 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3322,7 +3418,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4853 ", + "name": "assert_line_5165 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3338,7 +3434,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4854 ", + "name": "assert_line_5166 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3354,7 +3450,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4855 ", + "name": "assert_line_5167 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3370,7 +3466,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4856 ", + "name": "assert_line_5168 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3386,7 +3482,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4857 ", + "name": "assert_line_5169 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3402,7 +3498,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4858 ", + "name": "assert_line_5170 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3418,7 +3514,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4859 ", + "name": "assert_line_5171 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3434,7 +3530,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4860 ", + "name": "assert_line_5172 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3450,7 +3546,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4861 ", + "name": "assert_line_5173 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3466,7 +3562,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4862 ", + "name": "assert_line_5174 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3482,7 +3578,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4863 ", + "name": "assert_line_5175 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3498,7 +3594,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4864 ", + "name": "assert_line_5176 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3514,7 +3610,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4865 ", + "name": "assert_line_5177 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3530,7 +3626,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4866 ", + "name": "assert_line_5178 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3546,7 +3642,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4867 ", + "name": "assert_line_5179 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3562,7 +3658,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4868 ", + "name": "assert_line_5180 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3578,7 +3674,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4869 ", + "name": "assert_line_5181 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3594,7 +3690,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4870 ", + "name": "assert_line_5182 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3610,7 +3706,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4871 ", + "name": "assert_line_5183 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3626,7 +3722,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4872 ", + "name": "assert_line_5184 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3642,7 +3738,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4873 ", + "name": "assert_line_5185 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3658,7 +3754,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4874 ", + "name": "assert_line_5186 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3674,7 +3770,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4875 ", + "name": "assert_line_5187 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3690,7 +3786,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4876 ", + "name": "assert_line_5188 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3706,7 +3802,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4877 ", + "name": "assert_line_5189 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3722,7 +3818,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4878 ", + "name": "assert_line_5190 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3738,7 +3834,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4879 ", + "name": "assert_line_5191 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3754,7 +3850,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4880 ", + "name": "assert_line_5192 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3770,7 +3866,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4881 ", + "name": "assert_line_5193 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3786,7 +3882,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4882 ", + "name": "assert_line_5194 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3802,7 +3898,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4883 ", + "name": "assert_line_5195 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3818,7 +3914,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4884 ", + "name": "assert_line_5196 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3834,7 +3930,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4885 ", + "name": "assert_line_5197 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3850,7 +3946,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4886 ", + "name": "assert_line_5198 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3866,7 +3962,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4887 ", + "name": "assert_line_5199 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3882,7 +3978,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4888 ", + "name": "assert_line_5200 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3898,7 +3994,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4889 ", + "name": "assert_line_5201 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3914,7 +4010,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4890 ", + "name": "assert_line_5202 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3930,7 +4026,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4891 ", + "name": "assert_line_5203 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3946,7 +4042,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4892 ", + "name": "assert_line_5204 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3962,7 +4058,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4893 ", + "name": "assert_line_5205 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3978,7 +4074,23 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4894 ", + "name": "assert_line_5206 ", + "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_5207 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3994,7 +4106,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4895 ", + "name": "assert_line_5208 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4010,7 +4122,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4896 ", + "name": "assert_line_5209 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4026,7 +4138,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4897 ", + "name": "assert_line_5210 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4042,7 +4154,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4898 ", + "name": "assert_line_5211 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4058,7 +4170,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4899 ", + "name": "assert_line_5212 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4074,7 +4186,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_4900 ", + "name": "assert_line_5213 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4082,5 +4194,37 @@ "enum_value": "1/(int)(!!(sizeof(SRADMoon3Settings)" } ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_5214 ", + "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_5215 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(CANHubSettings)" + } + ] } ] \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json index e0aea947d..d12397679 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -182,9 +182,33 @@ "enum_value": null }, { - "name": "Reserved", + "name": "tcpIpAddress", "data_type": "uint32_t", - "array_length": 6, + "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 @@ -2177,6 +2201,48 @@ } ] }, + { + "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" @@ -2216,6 +2282,96 @@ "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 } ] }, @@ -4146,6 +4302,67 @@ } ] }, + { + "names": [ + "ManufacturingOperation", + "ManufacturingOperation" + ], + "data_type": "Union", + "packing": 1, + "is_anonymous": false, + "members": [ + { + "name": "rtcCalEnable", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "rtcCalValue", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "names": [ + "unlock" + ], + "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": "code", + "data_type": "uint32_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "name": "bytes", + "data_type": "uint8_t", + "array_length": 256, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [ "_SExtSubCmdComm", @@ -4322,6 +4539,14 @@ "bitfield_size": 0, "is_enum": false, "enum_value": null + }, + { + "name": "mfgOperation", + "data_type": "ManufacturingOperation", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] } @@ -8652,11 +8877,19 @@ "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": 15, + "bitfield_size": 14, "is_enum": false, "enum_value": null } @@ -14555,8 +14788,8 @@ }, { "names": [ - "_SFire3Settings", - "SFire3Settings" + "_SRed2Settings", + "SRed2Settings" ], "data_type": "Struct", "packing": 2, @@ -15082,8 +15315,8 @@ }, { "names": [ - "RadMoonDuoSettings", - "SRadMoonDuoSettings" + "_SFire3Settings", + "SFire3Settings" ], "data_type": "Struct", "packing": 2, @@ -15106,8 +15339,8 @@ "enum_value": null }, { - "name": "pwr_man_timeout", - "data_type": "uint32_t", + "name": "misc_io_on_report_events", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -15122,8 +15355,32 @@ "enum_value": null }, { - "name": "converter", - "data_type": "RadMoonDuoConverterSettings", + "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, @@ -15138,9 +15395,1515 @@ "enum_value": null }, { - "names": [ - "flags" - ], + "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 + } + ] + }, + { + "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 + } + ] + }, + { + "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, @@ -15875,7 +17638,66 @@ }, { "names": [ - "_sSPI_PORT_SETTINGS", + "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", @@ -15883,16 +17705,16 @@ "is_anonymous": false, "members": [ { - "name": "port_a_onbaord_external", - "data_type": "uint8_t", + "name": "port_a", + "data_type": "sSPI_PORT_SETTING", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "port_b_onbaord_external", - "data_type": "uint8_t", + "name": "port_b", + "data_type": "sSPI_PORT_SETTING", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -16162,6 +17984,22 @@ "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 } ] }, @@ -16428,6 +18266,14 @@ "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", @@ -16444,6 +18290,14 @@ "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", @@ -16452,6 +18306,14 @@ "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", @@ -16484,14 +18346,6 @@ "is_enum": false, "enum_value": null }, - { - "name": "obd2lc", - "data_type": "SOBD2LCSettings", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, { "name": "rad_bms", "data_type": "SRADBMSSettings", @@ -16801,6 +18655,14 @@ "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", @@ -16848,6 +18710,14 @@ "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 } ] } @@ -19220,13 +21090,13 @@ { "name": "ethernetStatus", "data_type": "ethernetNetworkStatus_t", - "array_length": 0, + "array_length": 3, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "unused", + "name": "ethernetActivationLineEnabled_2", "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index f08c9282a..4206c8756 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -78,7 +78,10 @@ typedef struct _NeoDeviceEx uint8_t MACAddress[6]; uint16_t hardwareRev; uint16_t revReserved; - uint32_t Reserved[6]; + uint32_t tcpIpAddress[4]; + uint16_t tcpPort; + uint16_t Reserved0; + uint32_t Reserved1; } NeoDeviceEx; typedef union tagOptionsOpenNeoEx { @@ -497,8 +500,28 @@ typedef union _stChipVersions 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; @@ -810,12 +833,15 @@ typedef struct _ExtendedGetVersionsResponse } GetComponentVersionsResponse; enum { - swUpdateWrite, - swUpdateErase, - swUpdateGetProgress, - swUpdateValidateAll, - swUpdateGetBufferSize, - swUpdateCheckVersion, + swUpdateWrite = 0, + swUpdateErase = 1, + swUpdateGetProgress = 2, + swUpdateValidateAll = 3, + swUpdateGetBufferSize = 4, + swUpdateCheckHostVersion = 5, + swUpdateValidateComponent = 6, + swUpdateFinalize = 7, + swUpdateGetCommunicationVersion = 8, }; typedef struct { @@ -876,6 +902,17 @@ typedef struct _GPTPStatus uint8_t is_syntonized; uint8_t reserved[8]; } GPTPStatus; +typedef union ManufacturingOperation +{ + uint32_t rtcCalEnable; + int rtcCalValue; + struct + { + uint32_t apiVersion; + uint32_t code; + } unlock; + uint8_t bytes[(256)]; +} ManufacturingOperation; #pragma pack(pop) typedef struct _SExtSubCmdComm { @@ -901,6 +938,7 @@ typedef struct _SExtSubCmdComm UartPortData uartData; UartPortPortBytes uartBytesLen; UartPortConfig uartConfig; + ManufacturingOperation mfgOperation; } extension; } SExtSubCmdComm; enum @@ -1660,7 +1698,8 @@ typedef struct _SRADA2BSettings struct { uint16_t hwComLatencyTestEn : 1; - uint16_t : 15; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t : 14; } flags; uint16_t network_enabled_on_boot; CAN_SETTINGS can1; @@ -2513,7 +2552,7 @@ typedef struct uint8_t ethConfigurationPort; uint8_t reserved[5]; } Fire3LinuxSettings; -typedef struct _SFire3Settings +typedef struct _SRed2Settings { uint16_t perf_en; uint16_t network_enabled_on_boot; @@ -2585,7 +2624,205 @@ typedef struct _SFire3Settings ETHERNET_SETTINGS2 ethernet2_2; Fire3LinuxSettings os_settings; RAD_GPTP_SETTINGS gPTP; +} SRed2Settings; +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; } SFire3Settings; +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; +} SFire3FlexraySettings; typedef struct { uint16_t perf_en; @@ -2707,10 +2944,32 @@ enum SPI_PORT_ONBOARD = 0, SPI_PORT_EXTERNAL, }; -typedef struct _sSPI_PORT_SETTINGS +enum +{ + SPI_TYPE_WIL = 0, + SPI_TYPE_RAW, +}; +enum +{ + SPI_MODE_MASTER, + SPI_MODE_SLAVE, + SPI_MODE_PMS_EMULATION, +}; +typedef union { - uint8_t port_a_onbaord_external; - uint8_t port_b_onbaord_external; + 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; + sSPI_PORT_SETTING port_b; } sSPI_PORT_SETTINGS; typedef union { @@ -2751,6 +3010,8 @@ typedef struct _SRADBMSSettings sSPI_PORT_SETTINGS spi_config; sWIL_CONNECTION_SETTINGS wbms_wil_1; sWIL_CONNECTION_SETTINGS wbms_wil_2; + uint16_t wil1_nwk_metadata_buff_count; + uint16_t wil2_nwk_metadata_buff_count; } SRADBMSSettings; typedef struct _GLOBAL_SETTINGS { @@ -2787,14 +3048,16 @@ typedef struct _GLOBAL_SETTINGS SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; SVCAN4IndSettings vcan4_ind; + SOBD2LCSettings obd2lc; SRADGigastarSettings radgigastar; SRADJupiterSettings jupiter; + SRed2Settings red2; SFire3Settings fire3; + SFire3FlexraySettings fire3fr; SRadMoonDuoSettings radmoonduo; SEtherBadgeSettings etherBadge; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; - SOBD2LCSettings obd2lc; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; }; @@ -2829,7 +3092,7 @@ typedef enum _EDeviceSettingsType DeviceRADPlutoSwitchSettingsType, DeviceRADGigastarSettingsType, DeviceRADJupiterSettingsType, - DeviceFire3SettingsType, + DeviceRed2SettingsType, DeviceRadMoonDuoSettingsType, DeviceEtherBadgeSettingsType, DeviceRADA2BSettingsType, @@ -2837,6 +3100,8 @@ typedef enum _EDeviceSettingsType DeviceOBD2LCSettingsType, DeviceRADBMSSettingsType, DeviceRADMoon3SettingsType, + DeviceFire3SettingsType, + DeviceFire3FlexraySettingsType, DeviceSettingsTypeMax, DeviceSettingsNone = 0xFFFFFFFF } EDeviceSettingsType; @@ -2878,12 +3143,14 @@ typedef struct _SDeviceSettings SRADGigastarSettings radgigastar; SRADJupiterSettings jupiter; SFire3Settings fire3; + SRed2Settings red2; SRadMoonDuoSettings radmoon_duo; SEtherBadgeSettings etherBadge; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SFire3FlexraySettings fire3Flexray; } Settings; } SDeviceSettings; typedef enum _EPlasmaIonVnetChannel_t @@ -3282,8 +3549,8 @@ typedef struct typedef struct { uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; + ethernetNetworkStatus_t ethernetStatus[3]; + uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; typedef struct { @@ -3422,365 +3689,380 @@ typedef enum } DeviceFeature; enum { - assert_line_4828 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_5140 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_4829 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_5141 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_4830 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_5142 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_4831 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_5143 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_4832 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_5144 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_4833 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_5145 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_4834 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_5146 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_4835 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_5147 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_4836 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_5148 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_4837 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_5149 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_4838 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_5150 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_4839 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_5151 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_4840 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_5152 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_4841 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_5153 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_4842 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_5154 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_4843 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_5155 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_4844 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_5156 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_4845 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_5157 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_4846 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_5158 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_4847 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_5159 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_4848 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_5160 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_4849 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_5161 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_4850 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_5162 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_4851 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_5163 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_4852 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_5164 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_4853 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_5165 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_4854 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_5166 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_4855 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_5167 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_4856 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_5168 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_4857 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_5169 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_4858 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_5170 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_4859 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_5171 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_4860 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_5172 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_4861 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_5173 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_4862 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) + assert_line_5174 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) }; ; enum { - assert_line_4863 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) + assert_line_5175 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) }; ; enum { - assert_line_4864 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_5176 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_4865 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_5177 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) +}; +; +enum +{ + assert_line_5178 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1472) + 6))) +}; +; +enum +{ + assert_line_5179 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) +}; +; +enum +{ + assert_line_5180 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_4866 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == (936 + 6))) + assert_line_5181 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_4867 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_5182 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_4868 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_5183 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_4869 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_5184 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_4870 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_5185 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_4871 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_5186 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_4872 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_5187 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_4873 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_5188 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_4874 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_5189 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) }; ; enum { - assert_line_4875 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_5190 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) }; ; enum { - assert_line_4876 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_5191 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) }; ; enum { - assert_line_4877 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) + assert_line_5192 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) }; ; enum { - assert_line_4878 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) + assert_line_5193 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_4879 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) + assert_line_5194 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_4880 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) + assert_line_5195 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_4881 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_5196 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_4882 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_5197 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 522)) }; ; enum { - assert_line_4883 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_5198 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_4884 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_5199 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_4885 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 522)) + assert_line_5200 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_4886 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_5201 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_4887 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5202 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_4888 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_5203 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_4889 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_5204 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_4890 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_5205 = 1 / (int)(!!(sizeof(SFire3Settings) == (1472))) }; ; enum { - assert_line_4891 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_5206 = 1 / (int)(!!(sizeof(SRed2Settings) == (668))) }; ; enum { - assert_line_4892 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_5207 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_4893 = 1 / (int)(!!(sizeof(SFire3Settings) == (668))) + assert_line_5208 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 332)) }; ; enum { - assert_line_4894 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_5209 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_4895 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 332)) + assert_line_5210 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) }; ; enum { - assert_line_4896 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_5211 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_4897 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) + assert_line_5212 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 130)) }; ; enum { - assert_line_4898 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_5213 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 60)) }; ; enum { - assert_line_4899 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 126)) + assert_line_5214 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1122))) }; ; enum { - assert_line_4900 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 60)) + assert_line_5215 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 3cfea6c5b..dcf816dc5 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -153,8 +153,20 @@ typedef unsigned __int64 uint64_t; #define NETID_ETHERNET3 524 #define NETID_ISM_LOGGER 525 #define NETID_CAN_SWITCH 526 -#define NETID_WBMS 532 +#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 /* Upper boundry of Network IDs */ #define NETID_MAX 100 #define NETID_INVALID 0xffff @@ -202,7 +214,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RAD_BMS (0x00000022) #define NEODEVICE_RADMOON3 (0x00000023) #define NEODEVICE_RADCOMET (0x00000024) -#define NEODEVICE_NEW_DEVICE_FF (0x00000025) +#define NEODEVICE_FIRE3_FLEXRAY (0x00000025) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -234,7 +246,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB //clang-format on -#define DEVICECOUNT_FOR_EXPLORER 43 //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER 44 //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -478,6 +490,19 @@ typedef unsigned __int64 uint64_t; #define HARDWARE_TIMESTAMP_ID_NEORED_25NS (unsigned char)9 #define HARDWARE_TIMESTAMP_ID_NEORED_10NS (unsigned char)10 +#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; @@ -512,6 +537,11 @@ typedef struct _NeoDeviceEx #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; @@ -522,7 +552,10 @@ typedef struct _NeoDeviceEx uint8_t MACAddress[6]; uint16_t hardwareRev; uint16_t revReserved; - uint32_t Reserved[6];// may be expanded in future revisions + uint32_t tcpIpAddress[4]; + uint16_t tcpPort; + uint16_t Reserved0; + uint32_t Reserved1; } NeoDeviceEx; @@ -1009,7 +1042,27 @@ typedef union _stChipVersions { 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 { @@ -1461,12 +1514,15 @@ typedef struct _ExtendedGetVersionsResponse enum { - swUpdateWrite, - swUpdateErase, - swUpdateGetProgress, - swUpdateValidateAll, - swUpdateGetBufferSize, - swUpdateCheckVersion, + swUpdateWrite = 0, + swUpdateErase = 1, + swUpdateGetProgress = 2, + swUpdateValidateAll = 3, + swUpdateGetBufferSize = 4, + swUpdateCheckHostVersion = 5, + swUpdateValidateComponent = 6, + swUpdateFinalize = 7, + swUpdateGetCommunicationVersion = 8, }; typedef struct @@ -1537,6 +1593,26 @@ typedef struct _GPTPStatus uint8_t reserved[8]; } GPTPStatus; +#define MANUFACTURING_OPERATION_MAX_SIZE (256) +typedef union ManufacturingOperation +{ + // Enable RTC Calibration (0 = disable, 1 = enable) + uint32_t rtcCalEnable; + // RTC Calibration (each step represents 4.068 PPM) + int rtcCalValue; + struct + { + // set to ManufacturingOperationAPIVersion + uint32_t apiVersion; + // Unlock code, internal use. + uint32_t code; + } unlock; + // Reserved - Max acceptable size firmware will accept + uint8_t bytes[MANUFACTURING_OPERATION_MAX_SIZE]; +} ManufacturingOperation; +// Whenever ManufacturingOperation needs to change, increment this version +// This is for firmware ABI backwards compatibility. +#define ManufacturingOperationAPIVersion (1) #pragma pack(pop) typedef struct _SExtSubCmdComm @@ -1562,6 +1638,7 @@ typedef struct _SExtSubCmdComm UartPortData uartData; UartPortPortBytes uartBytesLen; UartPortConfig uartConfig; + ManufacturingOperation mfgOperation; // Add additional extension commands to this union as needed. } extension; } SExtSubCmdComm; @@ -2625,7 +2702,8 @@ typedef struct _SRADA2BSettings struct { uint16_t hwComLatencyTestEn : 1; - uint16_t : 15; + uint16_t disableUsbCheckOnBoot : 1; + uint16_t : 14; } flags; uint16_t network_enabled_on_boot; CAN_SETTINGS can1; @@ -2636,7 +2714,7 @@ typedef struct _SRADA2BSettings 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; uint64_t termination_enables; TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; RAD_REPORTING_SETTINGS reporting; @@ -3719,7 +3797,7 @@ typedef struct uint8_t reserved[5]; } Fire3LinuxSettings; -typedef struct _SFire3Settings +typedef struct _SRed2Settings { uint16_t perf_en; uint16_t network_enabled_on_boot; @@ -3789,10 +3867,211 @@ typedef struct _SFire3Settings ETHERNET_SETTINGS ethernet_2; ETHERNET_SETTINGS2 ethernet2_2; Fire3LinuxSettings os_settings; + RAD_GPTP_SETTINGS gPTP; +} SRed2Settings; +#define SRed2Settings_SIZE (668) +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; +} SFire3Settings; +#define SFire3Settings_SIZE (1472) + +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; -}SFire3Settings; -#define SFire3Settings_SIZE (668) + 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; +} SFire3FlexraySettings; +#define SFire3FlexraySettings_SIZE (1122) typedef struct { @@ -3927,12 +4206,12 @@ typedef struct { uint8_t wBMSDeviceID; uint8_t enabled; -} sWIL_FAULT_SERVICING_SETTINGS; +} sWIL_FAULT_SERVICING_SETTINGS; //2 -typedef struct +typedef struct { uint8_t enabled; -} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; +} sWIL_NETWORK_DATA_CAPTURE_SETTINGS; //1 typedef struct _sWIL_CONNECTION_SETTINGS { @@ -3941,7 +4220,7 @@ typedef struct _sWIL_CONNECTION_SETTINGS 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 + uint16_t sensor_buffer_size; //2 } sWIL_CONNECTION_SETTINGS; enum @@ -3950,10 +4229,35 @@ enum SPI_PORT_EXTERNAL, }; -typedef struct _sSPI_PORT_SETTINGS +enum +{ + SPI_TYPE_WIL = 0, + SPI_TYPE_RAW, +}; + +enum +{ + SPI_MODE_MASTER, + SPI_MODE_SLAVE, + SPI_MODE_PMS_EMULATION, +}; + +typedef union { - uint8_t port_a_onbaord_external; - uint8_t port_b_onbaord_external; + 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; typedef union @@ -3966,7 +4270,7 @@ typedef union uint16_t tcp_port; unsigned reserved : 18; } config; -} sWILBridgeConfig; +} sWILBridgeConfig; //8 typedef struct _SRADBMSSettings { @@ -4011,8 +4315,10 @@ typedef struct _SRADBMSSettings 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; }SRADBMSSettings; -#define SRADBMSSettings_SIZE 126 +#define SRADBMSSettings_SIZE 130 #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS @@ -4049,20 +4355,22 @@ typedef struct _GLOBAL_SETTINGS SFlexVnetzSettings flexvnetz; SVividCANSettings vividcan; SVCAN4IndSettings vcan4_ind; + SOBD2LCSettings obd2lc; SRADGigastarSettings radgigastar; SRADJupiterSettings jupiter; + SRed2Settings red2; SFire3Settings fire3; + SFire3FlexraySettings fire3fr; SRadMoonDuoSettings radmoonduo; SEtherBadgeSettings etherBadge; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; - SOBD2LCSettings obd2lc; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; -#define GLOBAL_SETTINGS_SIZE (SCyanSettings_SIZE + 6) +#define GLOBAL_SETTINGS_SIZE (SFire3Settings_SIZE + 6) #define NEOVI_3G_MAX_SETTINGS_SIZE sizeof(GLOBAL_SETTINGS) @@ -4096,7 +4404,7 @@ typedef enum _EDeviceSettingsType DeviceRADPlutoSwitchSettingsType, DeviceRADGigastarSettingsType, DeviceRADJupiterSettingsType, - DeviceFire3SettingsType, + DeviceRed2SettingsType, DeviceRadMoonDuoSettingsType, DeviceEtherBadgeSettingsType, DeviceRADA2BSettingsType, @@ -4104,6 +4412,8 @@ typedef enum _EDeviceSettingsType DeviceOBD2LCSettingsType, DeviceRADBMSSettingsType, DeviceRADMoon3SettingsType, + DeviceFire3SettingsType, + DeviceFire3FlexraySettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -4147,12 +4457,14 @@ typedef struct _SDeviceSettings SRADGigastarSettings radgigastar; SRADJupiterSettings jupiter; SFire3Settings fire3; + SRed2Settings red2; SRadMoonDuoSettings radmoon_duo; SEtherBadgeSettings etherBadge; SRADA2BSettings rad_a2b; SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SFire3FlexraySettings fire3Flexray; // Make sure GLOBAL_SETTINGS matches this // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; @@ -4640,8 +4952,8 @@ typedef struct typedef struct { uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; + ethernetNetworkStatus_t ethernetStatus[3]; + uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; typedef struct @@ -4891,6 +5203,7 @@ 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); @@ -4898,6 +5211,8 @@ 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); #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/setup.py b/setup.py index 9a52e16d4..4b2c99a3d 100644 --- a/setup.py +++ b/setup.py @@ -8,9 +8,9 @@ import unittest import shutil -MAJOR_VERSION = 911 -MINOR_VERSION = 12 -POST_VERSION = 1 +MAJOR_VERSION = 912 +MINOR_VERSION = 4 +POST_VERSION = None if POST_VERSION: VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index cdbf7f52d..5af601da4 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -109,6 +109,18 @@ int setup_module_auto_defines(PyObject * module) 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_MAX); result += PyModule_AddIntMacro(module, NETID_INVALID); result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); @@ -147,7 +159,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, NEODEVICE_RAD_BMS); result += PyModule_AddIntMacro(module, NEODEVICE_RADMOON3); result += PyModule_AddIntMacro(module, NEODEVICE_RADCOMET); - result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_FF); + result += PyModule_AddIntMacro(module, NEODEVICE_FIRE3_FLEXRAY); result += PyModule_AddIntMacro(module, NEODEVICE_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -375,6 +387,18 @@ int setup_module_auto_defines(PyObject * module) 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, 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); @@ -382,6 +406,11 @@ int setup_module_auto_defines(PyObject * module) 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); // enum result += PyModule_AddIntMacro(module, AUTO); result += PyModule_AddIntMacro(module, USE_TQ); @@ -560,10 +589,15 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, swUpdateGetProgress); result += PyModule_AddIntMacro(module, swUpdateValidateAll); result += PyModule_AddIntMacro(module, swUpdateGetBufferSize); - result += PyModule_AddIntMacro(module, swUpdateCheckVersion); + result += PyModule_AddIntMacro(module, swUpdateCheckHostVersion); + result += PyModule_AddIntMacro(module, swUpdateValidateComponent); + result += PyModule_AddIntMacro(module, swUpdateFinalize); + result += PyModule_AddIntMacro(module, swUpdateGetCommunicationVersion); // end of enum - }; result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); + result += PyModule_AddIntMacro(module, MANUFACTURING_OPERATION_MAX_SIZE); + result += PyModule_AddIntMacro(module, ManufacturingOperationAPIVersion); result += PyModule_AddIntMacro(module, SExtSubCmdComm_SIZE); result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_ENABLE); result += PyModule_AddIntMacro(module, SERDESCAM_SETTINGS_FLAG_RTSP_ENABLE); @@ -846,7 +880,9 @@ 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, 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_MAX_PHY); @@ -856,6 +892,17 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, SPI_TYPE_WIL); + result += PyModule_AddIntMacro(module, SPI_TYPE_RAW); + // end of enum - }; + + // enum + result += PyModule_AddIntMacro(module, SPI_MODE_MASTER); + result += PyModule_AddIntMacro(module, SPI_MODE_SLAVE); + result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); + // end of enum - }; + result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); result += PyModule_AddIntMacro(module, GS_VERSION); result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); @@ -889,7 +936,7 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, DeviceRADPlutoSwitchSettingsType); result += PyModule_AddIntMacro(module, DeviceRADGigastarSettingsType); result += PyModule_AddIntMacro(module, DeviceRADJupiterSettingsType); - result += PyModule_AddIntMacro(module, DeviceFire3SettingsType); + result += PyModule_AddIntMacro(module, DeviceRed2SettingsType); result += PyModule_AddIntMacro(module, DeviceRadMoonDuoSettingsType); result += PyModule_AddIntMacro(module, DeviceEtherBadgeSettingsType); result += PyModule_AddIntMacro(module, DeviceRADA2BSettingsType); @@ -897,6 +944,8 @@ int setup_module_auto_defines(PyObject * module) 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, DeviceSettingsTypeMax); result += PyModule_AddIntMacro(module, DeviceSettingsNone); // end of enum - } EDeviceSettingsType; From 9a56f557267754dfcca3d32d3572d1c90191bcb8 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 5 Apr 2023 12:07:45 -0400 Subject: [PATCH 091/201] updated formatting and formatted files --- .clang-format | 64 +- include/defines.h | 6 +- include/dll.h | 19 +- include/exceptions.h | 14 +- include/methods.h | 4088 +++++++++++++++------------ include/object_neo_device.h | 65 +- include/object_spy_message.h | 306 +- include/setup_module_auto_defines.h | 2 +- src/dll.cpp | 20 +- src/exceptions.cpp | 16 +- src/main.cpp | 118 +- src/methods.cpp | 2546 ++++++++--------- src/object_neo_device.cpp | 73 +- src/object_spy_message.cpp | 144 +- src/setup_module_auto_defines.cpp | 1987 +++++++------ 15 files changed, 5041 insertions(+), 4427 deletions(-) diff --git a/.clang-format b/.clang-format index 2ff7a5b4d..31db2a719 100644 --- a/.clang-format +++ b/.clang-format @@ -1,55 +1,15 @@ -AccessModifierOffset: -4 -AlignAfterOpenBracket: DontAlign -AlignConsecutiveAssignments: false -AlignConsecutiveDeclarations: false -AlignEscapedNewlinesLeft: true -AlignOperands: false -AlignTrailingComments: false -AllowAllParametersOfDeclarationOnNextLine: false -AllowShortBlocksOnASingleLine: false -AllowShortCaseLabelsOnASingleLine: false -AllowShortFunctionsOnASingleLine: Inline -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false +BasedOnStyle: Mozilla +AlwaysBreakAfterDefinitionReturnType: None AlwaysBreakAfterReturnType: None -AlwaysBreakBeforeMultilineStrings: false -AlwaysBreakTemplateDeclarations: true -BinPackParameters: false -BreakBeforeBinaryOperators: None -BreakBeforeBraces: Allman -BreakBeforeTernaryOperators: false -BreakConstructorInitializersBeforeComma: false -BreakStringLiterals: false -ColumnLimit: 140 -ConstructorInitializerAllOnOneLineOrOnePerLine: false +ColumnLimit: '120' +SpaceAfterCStyleCast: 'false' +SpaceAfterTemplateKeyword: 'false' +SpaceBeforeAssignmentOperators: 'true' +SpaceBeforeCpp11BracedList: 'true' +TabWidth: 4 +IndentWidth: 4 ConstructorInitializerIndentWidth: 4 ContinuationIndentWidth: 4 -Cpp11BracedListStyle: false -DerivePointerBinding: false -IndentCaseLabels: true -IndentFunctionDeclarationAfterType: false -IndentWidth: 4 -KeepEmptyLinesAtTheStartOfBlocks: false -Language: Cpp -MaxEmptyLinesToKeep: 2 -NamespaceIndentation: None -PenaltyBreakBeforeFirstCallParameter: 100 -PenaltyBreakFirstLessLess: 0 -PenaltyBreakString: 100 -PenaltyExcessCharacter: 100 -PenaltyReturnTypeOnItsOwnLine: 20 -PointerAlignment: Left -ReflowComments: false -SortIncludes: false -SpaceAfterCStyleCast: false -SpaceBeforeAssignmentOperators: true -SpaceBeforeParens: ControlStatements -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 0 -SpacesInAngles: false -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -SpacesInSquareBrackets: false -Standard: Cpp03 -TabWidth: 4 -UseTab: Always +UseTab: Never +MaxEmptyLinesToKeep: 1 +SortIncludes: false \ No newline at end of file diff --git a/include/defines.h b/include/defines.h index f15dc95b3..d44ef7be6 100644 --- a/include/defines.h +++ b/include/defines.h @@ -6,7 +6,6 @@ #define MODULE_DESCRIPTION "Copyright Intrepid Control Systems, Inc." #define VSPY3_BUILD_VERSION 901 - // https://bugs.python.org/issue28769 // 2.x = char* PyString_AsString(return_value); // 3.0-3.6 = char* PyUnicode_AsUTF8(value); @@ -22,10 +21,11 @@ #endif #ifdef _cplusplus -extern "C" { +extern "C" +{ #endif -int setup_module_defines(PyObject* module); + int setup_module_defines(PyObject* module); #ifdef _cplusplus } diff --git a/include/dll.h b/include/dll.h index 8e536698f..b48f5a0e7 100644 --- a/include/dll.h +++ b/include/dll.h @@ -2,7 +2,7 @@ #define _DLL_H_ #ifdef _MSC_VER -#pragma warning( disable : 4290 ) +#pragma warning(disable : 4290) #endif #include "ice/ice_library.h" @@ -10,19 +10,20 @@ #include "ice/ice_function.h" #ifdef _MSC_VER -#pragma warning( default : 4290 ) +#pragma warning(default : 4290) #endif #ifdef _cplusplus -extern "C" { +extern "C" +{ #endif -bool dll_initialize(char* name=NULL); -bool dll_is_initialized(void); -void dll_uninitialize(void); -bool dll_reinitialize(char* name=NULL); -char* dll_get_error(char* error_msg); -ice::Library* dll_get_library(void); + bool dll_initialize(char* name = NULL); + bool dll_is_initialized(void); + void dll_uninitialize(void); + bool dll_reinitialize(char* name = NULL); + char* dll_get_error(char* error_msg); + ice::Library* dll_get_library(void); #ifdef _cplusplus } diff --git a/include/exceptions.h b/include/exceptions.h index 36660fdfc..ca8f5d7b3 100644 --- a/include/exceptions.h +++ b/include/exceptions.h @@ -3,18 +3,18 @@ #include #ifdef _cplusplus -extern "C" { +extern "C" +{ #endif -int initialize_exceptions(PyObject* module); -PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_name); + int initialize_exceptions(PyObject* module); + PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_name); #define set_ics_exception(exception, msg) _set_ics_exception(exception, msg, __FUNCTION__); -PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, const char* func_name); + PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, const char* func_name); #define set_ics_exception_dev(exception, obj, msg) _set_ics_exception_dev(exception, obj, msg, __FUNCTION__); -PyObject* exception_argument_error(void); -PyObject* exception_runtime_error(void); - + PyObject* exception_argument_error(void); + PyObject* exception_runtime_error(void); #ifdef _cplusplus } diff --git a/include/methods.h b/include/methods.h index 3842a56a4..339e59fbc 100644 --- a/include/methods.h +++ b/include/methods.h @@ -6,1816 +6,2368 @@ #include "setup_module_auto_defines.h" #ifdef _cplusplus -extern "C" { +extern "C" +{ #endif -PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords); -PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords); -PyObject* meth_close_device(PyObject* self, PyObject* args); -PyObject* meth_get_rtc(PyObject* self, PyObject* args); -PyObject* meth_set_rtc(PyObject* self, PyObject* args); -PyObject* meth_coremini_load(PyObject* self, PyObject* args); -PyObject* meth_coremini_start(PyObject* self, PyObject* args); -PyObject* meth_coremini_stop(PyObject* self, PyObject* args); -PyObject* meth_coremini_clear(PyObject* self, PyObject* args); -PyObject* meth_coremini_get_status(PyObject* self, PyObject* args); -PyObject* meth_transmit_messages(PyObject* self, PyObject* args); -PyObject* meth_get_messages(PyObject* self, PyObject* args); -PyObject* meth_get_script_status(PyObject* self, PyObject* args); -PyObject* meth_get_error_messages(PyObject* self, PyObject* args); + PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords); + PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords); + PyObject* meth_close_device(PyObject* self, PyObject* args); + PyObject* meth_get_rtc(PyObject* self, PyObject* args); + PyObject* meth_set_rtc(PyObject* self, PyObject* args); + PyObject* meth_coremini_load(PyObject* self, PyObject* args); + PyObject* meth_coremini_start(PyObject* self, PyObject* args); + PyObject* meth_coremini_stop(PyObject* self, PyObject* args); + PyObject* meth_coremini_clear(PyObject* self, PyObject* args); + PyObject* meth_coremini_get_status(PyObject* self, PyObject* args); + PyObject* meth_transmit_messages(PyObject* self, PyObject* args); + PyObject* meth_get_messages(PyObject* self, PyObject* args); + PyObject* meth_get_script_status(PyObject* self, PyObject* args); + PyObject* meth_get_error_messages(PyObject* self, PyObject* args); #ifdef _USE_INTERNAL_HEADER_ -PyObject* meth_flash_devices(PyObject* self, PyObject* args); + PyObject* meth_flash_devices(PyObject* self, PyObject* args); #endif // _USE_INTERNAL_HEADER_ -PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args); -PyObject* meth_get_device_settings(PyObject* self, PyObject* args); -PyObject* meth_set_device_settings(PyObject* self, PyObject* args); -PyObject* meth_load_default_settings(PyObject* self, PyObject* args); // icsneoLoadDefaultSettings -//PyObject* meth_spy_message_to_j1850(PyObject* self, PyObject* args); -PyObject* meth_read_sdcard(PyObject* self, PyObject* args); -PyObject* meth_write_sdcard(PyObject* self, PyObject* args); -PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObject* keywords); -PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args); //ScriptStartFBlock -PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args); //ScriptStopFBlock -PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args); //ScriptGetFBlockStatus -PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args); //ScriptReadAppSignal -PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args); //ScriptWriteAppSignal -PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args); //ScriptReadTxMessage -PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args); //ScriptReadRxMessage -PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args); //ScriptWriteTxMessage -PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args); //ScriptWriteRxMessage -PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args); -PyObject* meth_validate_hobject(PyObject* self, PyObject* args); -PyObject* meth_get_last_api_error(PyObject* self, PyObject* args); -PyObject* meth_get_dll_version(PyObject* self, PyObject* args); -PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args); -PyObject* meth_base36enc(PyObject* self, PyObject* args); -PyObject* meth_get_serial_number(PyObject* self, PyObject* args); -PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args); -PyObject* meth_set_context(PyObject* self, PyObject* args); -PyObject* meth_force_firmware_update(PyObject* self, PyObject* args); -PyObject* meth_firmware_update_required(PyObject* self, PyObject* args); -PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args); -PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args); -PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args); -PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args); -PyObject* meth_load_readbin(PyObject* self, PyObject* args); -PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args); // icsneoISO15765_TransmitMessage -PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args); // icsneoISO15765_ReceiveMessageMessage -PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args); // icsneoISO15765_EnableNetworks -PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args); // icsneoISO15765_DisableNetworks -PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args); -PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args); -PyObject* meth_override_library_name(PyObject* self, PyObject* args); -PyObject* meth_get_library_path(PyObject* self); -PyObject* meth_set_bit_rate(PyObject* self, PyObject* args); -PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args); -PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args); -PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args); -PyObject* meth_get_device_status(PyObject* self, PyObject* args); -PyObject* meth_enable_network_com(PyObject* self, PyObject* args); //icsneoEnableNetworkCom -PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args); -PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args); -PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args); -PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args); -PyObject* meth_get_disk_details(PyObject* self, PyObject* args); -PyObject* meth_disk_format(PyObject* self, PyObject* args); -PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args); -PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args); -PyObject* meth_enable_doip_line(PyObject* self, PyObject* args); //icsneoEnableDOIPLine -PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args); // icsneoIsDeviceFeatureSupported -PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args); -PyObject* meth_set_led_property(PyObject* self, PyObject* args); -PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); -PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); -PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); -PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); -PyObject* meth_uart_write(PyObject* self, PyObject* args); -PyObject* meth_uart_read(PyObject* self, PyObject* args); -PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); -PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); -PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); -PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); -PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); -PyObject* meth_get_gptp_status(PyObject* self, PyObject* args); // icsneoGetGPTPStatus -PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args); // icsneoGetAllChipVersions + PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args); + PyObject* meth_get_device_settings(PyObject* self, PyObject* args); + PyObject* meth_set_device_settings(PyObject* self, PyObject* args); + PyObject* meth_load_default_settings(PyObject* self, PyObject* args); // icsneoLoadDefaultSettings + // PyObject* meth_spy_message_to_j1850(PyObject* self, PyObject* args); + PyObject* meth_read_sdcard(PyObject* self, PyObject* args); + PyObject* meth_write_sdcard(PyObject* self, PyObject* args); + PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObject* keywords); + PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args); // ScriptStartFBlock + PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args); // ScriptStopFBlock + PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args); // ScriptGetFBlockStatus + PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args); // ScriptReadAppSignal + PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args); // ScriptWriteAppSignal + PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args); // ScriptReadTxMessage + PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args); // ScriptReadRxMessage + PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args); // ScriptWriteTxMessage + PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args); // ScriptWriteRxMessage + PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args); + PyObject* meth_validate_hobject(PyObject* self, PyObject* args); + PyObject* meth_get_last_api_error(PyObject* self, PyObject* args); + PyObject* meth_get_dll_version(PyObject* self, PyObject* args); + PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args); + PyObject* meth_base36enc(PyObject* self, PyObject* args); + PyObject* meth_get_serial_number(PyObject* self, PyObject* args); + PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args); + PyObject* meth_set_context(PyObject* self, PyObject* args); + PyObject* meth_force_firmware_update(PyObject* self, PyObject* args); + PyObject* meth_firmware_update_required(PyObject* self, PyObject* args); + PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args); + PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args); + PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args); + PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args); + PyObject* meth_load_readbin(PyObject* self, PyObject* args); + PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args); // icsneoISO15765_TransmitMessage + PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args); // icsneoISO15765_ReceiveMessageMessage + PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args); // icsneoISO15765_EnableNetworks + PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args); // icsneoISO15765_DisableNetworks + PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args); + PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args); + PyObject* meth_override_library_name(PyObject* self, PyObject* args); + PyObject* meth_get_library_path(PyObject* self); + PyObject* meth_set_bit_rate(PyObject* self, PyObject* args); + PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args); + PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args); + PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args); + PyObject* meth_get_device_status(PyObject* self, PyObject* args); + PyObject* meth_enable_network_com(PyObject* self, PyObject* args); // icsneoEnableNetworkCom + PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args); + PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args); + PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args); + PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args); + PyObject* meth_get_disk_details(PyObject* self, PyObject* args); + PyObject* meth_disk_format(PyObject* self, PyObject* args); + PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args); + PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args); + PyObject* meth_enable_doip_line(PyObject* self, PyObject* args); // icsneoEnableDOIPLine + PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args); // icsneoIsDeviceFeatureSupported + PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args); + PyObject* meth_set_led_property(PyObject* self, PyObject* args); + PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args); + PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args); + PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args); + PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args); + PyObject* meth_uart_write(PyObject* self, PyObject* args); + PyObject* meth_uart_read(PyObject* self, PyObject* args); + PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args); + PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args); + PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args); + PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args); + PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); + PyObject* meth_get_gptp_status(PyObject* self, PyObject* args); // icsneoGetGPTPStatus + PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args); // icsneoGetAllChipVersions #ifdef _cplusplus } #endif -#define _EZ_ICS_STRUCT_METHOD(name, icsname, icsname_no_icsneo, meth, flags, doc) \ - {name, (PyCFunction)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 _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" \ - "Finds all connected devices and returns a tuple of :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` for use in :func:`" MODULE_NAME ".open_device`\n" \ - "\n" \ - "Args:\n" \ - "\tdevice_type (int): Accepts " MODULE_NAME ".NEODEVICE_* Macros\n\n" \ - "\t*New in 3.0 (803):*\n\n" \ - "\tdevice_types (List/Tuple): Accepts a Container of " MODULE_NAME ".NEODEVICE_* Macros\n\n" \ - "\tnetwork_id (int): OptionsFindNeoEx.CANOptions.iNetworkID. Usually ics.NETID_CAN, if needed\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tTuple of :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` 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" \ - "\t...\n" \ - "\tneoVI FIRE 59886\n" \ - "\n*New in 3.0 (803):*\n" \ - "\t>>> for device in ics.find_devices([ics.NEODEVICE_FIRE, ics.NEODEVICE_VCAN3]):\n" \ - "\t... print(device.Name, device.SerialNumber)\n" \ - "\t...\n" \ - "\tneoVI FIRE 59886\n" - - -#define _DOC_OPEN_DEVICES \ - MODULE_NAME ".open_device(device)\n" \ - "\n" \ - "Opens the device. `device` can be omitted to return a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` of the\n" \ - "first free availible device, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`, or a serial number of the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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 network. This allows you to assign a custom network ID to each network. Normally, you will assign consecutive IDs to each of the networks. See NetworkIDList for a list of current network ID's. You may also set this parameter to NULL (zero) and the default network ID's will be used.\n\n" \ - "\tconfig_read (int): Specifies whether the DLL should read the neoVI's device configuration before enabling the device. It is recommended that this value be set to 1.\n\n" \ - "\toptions (int): DEVICE_OPTION_* defines\n\n" \ - "\tnetwork_id (int): OptionsFindNeoEx.CANOptions.iNetworkID. Usually ics.NETID_CAN, if needed\n\n" \ - "\tuse_server (int): Defaults to False, Setting to True allows opening the same device more than once.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tIf :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` is passed as a parameter, None. \n" \ - "\tIf serial number is passed as a parameter, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` will be returned. \n" \ - "\tIf `device` parameter is omitted, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` 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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` will automatically close the device when it goes out of scope.\n\n" - -#define _DOC_CLOSE_DEVICES \ - MODULE_NAME ".close_device(device)\n" \ - "\n" \ - "Closes the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tError Count (int)\n" \ - "\n" \ - "\t>>> for device in ics.find_devices():\n" \ - "\t... ics.open_device(device)\n" \ - "\t... # Do something with the device...\n" \ - "\t... ics.close_device(device)\n" \ - "\t...\n" \ - "\n" \ - ".. note::\n\t:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` will automatically close the device when it goes out of scope.\n\n" \ - -#define _DOC_GET_RTC \ - MODULE_NAME ".get_rtc(device)\n" \ - "\n" \ - "Gets the Real-Time Clock of the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tTuple: (datetime.datetime object, offset in seconds)\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.get_rtc(device)\n" \ - "\t(datetime.datetime(2014, 9, 10, 17, 45, 45), 3)\n" - -#define _DOC_SET_RTC \ - MODULE_NAME ".set_rtc(device[, time])\n" \ - "\n" \ - "Sets the Real-Time Clock of the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\ttime (:class:`datetime.datetime`): Optional. Sets to current time, if omitted.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.set_rtc(device)\n" - -#define _DOC_COREMINI_LOAD \ - MODULE_NAME ".coremini_load(device, coremini, location)\n" \ - "\n" \ - "Loads the CoreMini into the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_load(device, 'cmvspy.vs3cmb', ics.SCRIPT_LOCATION_SDCARD)\n" - -#define _DOC_COREMINI_START \ - MODULE_NAME ".coremini_start(device, location)\n" \ - "\n" \ - "Starts the CoreMini into the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_start(device, ics.SCRIPT_LOCATION_SDCARD)\n" - -#define _DOC_COREMINI_STOP \ - MODULE_NAME ".coremini_stop(device)\n" \ - "\n" \ - "Stops the CoreMini into the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_stop(device)\n" - -#define _DOC_COREMINI_CLEAR \ - MODULE_NAME ".coremini_clear(device, location)\n" \ - "\n" \ - "Clears the CoreMini into the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_clear(device, ics.SCRIPT_LOCATION_SDCARD)\n" - -#define _DOC_COREMINI_GET_STATUS \ - MODULE_NAME ".coremini_get_status(device)\n" \ - "\n" \ - "Gets the status of the CoreMini in the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tTrue if running, otherwise False.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_get_status(device)\n" \ - "\t>>>\n" - -#define _DOC_TRANSMIT_MESSAGES \ - MODULE_NAME ".transmit_messages(device, messages)\n" \ - "\n" \ - "Transmits message(s) on the device. `messages` can be a tuple of :class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tmessages (:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`): :class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> msg = ics.SpyMessage()\n" \ - "\t>>> msg.ArbIDOrHeader = 0xFF\n" \ - "\t>>> msg.NetworkID = ics.NETID_HSCAN\n" \ - "\t>>> msg.Data = (0,1,2,3,4,5,6,7)\n" \ - "\t>>> ics.transmit_messages(device, msg)\n" \ - "\t>>>\n" - -#define _DOC_GET_MESSAGES \ - MODULE_NAME ".get_messages(device[, j1850, timeout])\n" \ - "\n" \ - "Gets the message(s) on the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t:class:`tuple` of two items. First item is a :class:`tuple` of :class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "` and second is the error count.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> messages, errors = ics.get_messages(device)\n" \ - "\t>>> len(messages)\n" \ - "\t14\n" \ - "\t>>> hex(messages[0].ArbIDOrHeader)\n" \ - "\t'0x160'\n" \ - "\t>>> messages[0].Data\n" \ - "\t(36, 11, 11, 177, 37, 3, 11, 199)\n" \ - "\t>>> errors\n" \ - "\t0\n" +#define _EZ_ICS_STRUCT_METHOD(name, icsname, icsname_no_icsneo, meth, flags, doc) \ + { name, (PyCFunction)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 _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" \ + "Finds all connected devices and returns a tuple of :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` for use in :func:`" MODULE_NAME ".open_device`\n" \ + "\n" \ + "Args:\n" \ + "\tdevice_type (int): Accepts " MODULE_NAME ".NEODEVICE_* Macros\n\n" \ + "\t*New in 3.0 (803):*\n\n" \ + "\tdevice_types (List/Tuple): Accepts a Container of " MODULE_NAME ".NEODEVICE_* Macros\n\n" \ + "\tnetwork_id (int): OptionsFindNeoEx.CANOptions.iNetworkID. Usually ics.NETID_CAN, if needed\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tTuple of :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` 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" \ + "\t...\n" \ + "\tneoVI FIRE 59886\n" \ + "\n*New in 3.0 (803):*\n" \ + "\t>>> for device in ics.find_devices([ics.NEODEVICE_FIRE, ics.NEODEVICE_VCAN3]):\n" \ + "\t... print(device.Name, device.SerialNumber)\n" \ + "\t...\n" \ + "\tneoVI FIRE 59886\n" + +#define _DOC_OPEN_DEVICES \ + MODULE_NAME \ + ".open_device(device)\n" \ + "\n" \ + "Opens the device. `device` can be omitted to return a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` of the\n" \ + "first free availible device, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "`, or a serial number of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "`\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 " \ + "network. This allows you to assign a custom network ID to each network. Normally, you will assign consecutive " \ + "IDs to each of the networks. See NetworkIDList for a list of current network ID's. You may also set this " \ + "parameter to NULL (zero) and the default network ID's will be used.\n\n" \ + "\tconfig_read (int): Specifies whether the DLL should read the neoVI's device configuration before enabling the " \ + "device. It is recommended that this value be set to 1.\n\n" \ + "\toptions (int): DEVICE_OPTION_* defines\n\n" \ + "\tnetwork_id (int): OptionsFindNeoEx.CANOptions.iNetworkID. Usually ics.NETID_CAN, if needed\n\n" \ + "\tuse_server (int): Defaults to False, Setting to True allows opening the same device more than once.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tIf :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` is passed as a parameter, None. \n" \ + "\tIf serial number is passed as a parameter, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` will be returned. \n" \ + "\tIf `device` parameter is omitted, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` 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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` will automatically close the device when it goes out of scope.\n\n" + +#define _DOC_CLOSE_DEVICES \ + MODULE_NAME ".close_device(device)\n" \ + "\n" \ + "Closes the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tError Count (int)\n" \ + "\n" \ + "\t>>> for device in ics.find_devices():\n" \ + "\t... ics.open_device(device)\n" \ + "\t... # Do something with the device...\n" \ + "\t... ics.close_device(device)\n" \ + "\t...\n" \ + "\n" \ + ".. note::\n\t:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` will automatically close the device when it goes out of scope.\n\n" + +#define _DOC_GET_RTC \ + MODULE_NAME ".get_rtc(device)\n" \ + "\n" \ + "Gets the Real-Time Clock of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tTuple: (datetime.datetime object, offset in seconds)\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.get_rtc(device)\n" \ + "\t(datetime.datetime(2014, 9, 10, 17, 45, 45), 3)\n" + +#define _DOC_SET_RTC \ + MODULE_NAME ".set_rtc(device[, time])\n" \ + "\n" \ + "Sets the Real-Time Clock of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\ttime (:class:`datetime.datetime`): Optional. Sets to current time, if omitted.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.set_rtc(device)\n" + +#define _DOC_COREMINI_LOAD \ + MODULE_NAME ".coremini_load(device, coremini, location)\n" \ + "\n" \ + "Loads the CoreMini into the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_load(device, 'cmvspy.vs3cmb', ics.SCRIPT_LOCATION_SDCARD)\n" + +#define _DOC_COREMINI_START \ + MODULE_NAME ".coremini_start(device, location)\n" \ + "\n" \ + "Starts the CoreMini into the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_start(device, ics.SCRIPT_LOCATION_SDCARD)\n" + +#define _DOC_COREMINI_STOP \ + MODULE_NAME ".coremini_stop(device)\n" \ + "\n" \ + "Stops the CoreMini into the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_stop(device)\n" + +#define _DOC_COREMINI_CLEAR \ + MODULE_NAME ".coremini_clear(device, location)\n" \ + "\n" \ + "Clears the CoreMini into the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_clear(device, ics.SCRIPT_LOCATION_SDCARD)\n" + +#define _DOC_COREMINI_GET_STATUS \ + MODULE_NAME ".coremini_get_status(device)\n" \ + "\n" \ + "Gets the status of the CoreMini in the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tTrue if running, otherwise False.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_get_status(device)\n" \ + "\t>>>\n" + +#define _DOC_TRANSMIT_MESSAGES \ + MODULE_NAME ".transmit_messages(device, messages)\n" \ + "\n" \ + "Transmits message(s) on the device. `messages` can be a tuple of :class:`" MODULE_NAME \ + "." SPY_MESSAGE_OBJECT_NAME "`\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tmessages (:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." SPY_MESSAGE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> msg = ics.SpyMessage()\n" \ + "\t>>> msg.ArbIDOrHeader = 0xFF\n" \ + "\t>>> msg.NetworkID = ics.NETID_HSCAN\n" \ + "\t>>> msg.Data = (0,1,2,3,4,5,6,7)\n" \ + "\t>>> ics.transmit_messages(device, msg)\n" \ + "\t>>>\n" + +#define _DOC_GET_MESSAGES \ + MODULE_NAME ".get_messages(device[, j1850, timeout])\n" \ + "\n" \ + "Gets the message(s) on the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t:class:`tuple` of two items. First item is a :class:`tuple` of :class:`" MODULE_NAME \ + "." SPY_MESSAGE_OBJECT_NAME "` and second is the error count.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> messages, errors = ics.get_messages(device)\n" \ + "\t>>> len(messages)\n" \ + "\t14\n" \ + "\t>>> hex(messages[0].ArbIDOrHeader)\n" \ + "\t'0x160'\n" \ + "\t>>> messages[0].Data\n" \ + "\t(36, 11, 11, 177, 37, 3, 11, 199)\n" \ + "\t>>> errors\n" \ + "\t0\n" //"Accepts a " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ", exception on error. Returns a list of (error #, string)" -#define _DOC_GET_ERROR_MESSAGES \ - MODULE_NAME ".get_error_messages(device[, j1850, timeout])\n" \ - "\n" \ - "Gets the error message(s) on the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t:class:`list` of :class:`tuple`s. :class:`tuple` contents: (error_number, description_short, description_long, severity, restart_needed)\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> errors = ics.get_error_messages(device)\n" - +#define _DOC_GET_ERROR_MESSAGES \ + MODULE_NAME ".get_error_messages(device[, j1850, timeout])\n" \ + "\n" \ + "Gets the error message(s) on the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t:class:`list` of :class:`tuple`s. :class:`tuple` contents: (error_number, description_short, " \ + "description_long, severity, restart_needed)\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> errors = ics.get_error_messages(device)\n" //_DOC_SET_REFLASH_DISPLAY_CALLBACKS), "icsneoSetReflashCallback(), pass a python function func(msg, progress)" -#define _DOC_SET_REFLASH_CALLBACK \ - MODULE_NAME ".set_reflash_callback(callback)\n" \ - "\n" \ - "Sets the reflash display callback.\n" \ - "\n" \ - "Args:\n" \ - "\tcallback (:class:`function`): Must be a callable Python function (`def callback(msg, progress)`)\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> def callback(msg, progress):\n" \ - "\t... print(msg, progress)\n" \ - "\t...\n" \ - "\t>>> ics.set_reflash_callback(callback)\n" \ - "\t>>> \n" - -#define _DOC_GET_DEVICE_SETTINGS \ - MODULE_NAME ".get_device_settings(device, device_type, vnet_slot)\n" \ - "\n" \ - "Gets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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 PLASMA/ION Devices.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t:class:`" MODULE_NAME ".""device_settings""`\n" \ - "\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> d.Name\n" \ - "\t'neoVI ION'\n" \ - "\t>>> d.SerialNumber\n" \ - "\t404444\n" \ - "\t>>> s = ics.get_device_settings(d)\n" \ - "\t>>> s.DeviceSettingType\n" \ - "\t2\n" \ - "\t>>> s.cyan\n" \ - "\t\n" \ - "\t>>> s.cyan.canfd1.FDMode\n" \ - "\t4\n" \ - "\t>>> s2.cyan\n" \ - "\t\n" \ - "\t>>> s2 = ics.get_device_settings(d, -1, ics.PlasmaIonVnetChannelA)\n" \ - "\t>>> s2.DeviceSettingType\n" \ - "\t2\n" \ - "\t>>> s2.cyan.canfd1.FDMode\n" \ +#define _DOC_SET_REFLASH_CALLBACK \ + MODULE_NAME \ + ".set_reflash_callback(callback)\n" \ + "\n" \ + "Sets the reflash display callback.\n" \ + "\n" \ + "Args:\n" \ + "\tcallback (:class:`function`): Must be a callable Python function (`def callback(msg, progress)`)\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> def callback(msg, progress):\n" \ + "\t... print(msg, progress)\n" \ + "\t...\n" \ + "\t>>> ics.set_reflash_callback(callback)\n" \ + "\t>>> \n" + +#define _DOC_GET_DEVICE_SETTINGS \ + MODULE_NAME \ + ".get_device_settings(device, device_type, vnet_slot)\n" \ + "\n" \ + "Gets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "`\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 " \ + "PLASMA/ION Devices.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t:class:`" MODULE_NAME "." \ + "device_settings" \ + "`\n" \ + "\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> d.Name\n" \ + "\t'neoVI ION'\n" \ + "\t>>> d.SerialNumber\n" \ + "\t404444\n" \ + "\t>>> s = ics.get_device_settings(d)\n" \ + "\t>>> s.DeviceSettingType\n" \ + "\t2\n" \ + "\t>>> s.cyan\n" \ + "\t\n" \ + "\t>>> s.cyan.canfd1.FDMode\n" \ + "\t4\n" \ + "\t>>> s2.cyan\n" \ + "\t\n" \ + "\t>>> s2 = ics.get_device_settings(d, -1, ics.PlasmaIonVnetChannelA)\n" \ + "\t>>> s2.DeviceSettingType\n" \ + "\t2\n" \ + "\t>>> s2.cyan.canfd1.FDMode\n" \ "\t4\n" - -#define _DOC_SET_DEVICE_SETTINGS \ - MODULE_NAME ".set_device_settings(device, settings, save_to_eeprom, vnet_slot)\n" \ - "\n" \ - "Sets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tsettings (:class:`" MODULE_NAME ".""device_settings""`): :class:`" MODULE_NAME ".""device_settings""`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> d.Name\n" \ - "\t'neoVI ION'\n" \ - "\t>>> d.SerialNumber\n" \ - "\t404444\n" \ - "\t>>> s = ics.get_device_settings(d, ics.PlasmaIonVnetChannelA) # Get Slave settings, channel selection not needed if not a Plasma/Ion\n" \ - "\t>>> s.DeviceSettingType\n" \ - "\t2\n" \ - "\t>>> s.cyan.can_switch_mode\n" \ - "\t1\n" \ - "\t>>> s.cyan.can_switch_mode = 2\n" \ - "\t>>> ics.set_device_settings(d, s, True, ics.PlasmaIonVnetChannelA)\n" \ - "\t>>> \n" +#define _DOC_SET_DEVICE_SETTINGS \ + MODULE_NAME ".set_device_settings(device, settings, save_to_eeprom, vnet_slot)\n" \ + "\n" \ + "Sets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tsettings (:class:`" MODULE_NAME "." \ + "device_settings" \ + "`): :class:`" MODULE_NAME "." \ + "device_settings" \ + "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> d.Name\n" \ + "\t'neoVI ION'\n" \ + "\t>>> d.SerialNumber\n" \ + "\t404444\n" \ + "\t>>> s = ics.get_device_settings(d, ics.PlasmaIonVnetChannelA) # Get Slave settings, channel " \ + "selection not needed if not a Plasma/Ion\n" \ + "\t>>> s.DeviceSettingType\n" \ + "\t2\n" \ + "\t>>> s.cyan.can_switch_mode\n" \ + "\t1\n" \ + "\t>>> s.cyan.can_switch_mode = 2\n" \ + "\t>>> ics.set_device_settings(d, s, True, ics.PlasmaIonVnetChannelA)\n" \ + "\t>>> \n" //"Accepts a " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ", exception on error." -#define _DOC_LOAD_DEFAULT_SETTINGS \ - MODULE_NAME ".load_default_settings(device)\n" \ - "\n" \ - "Load the default settings in the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.load_default_settings(device)\n" \ - "\t>>> \n" - -#define _DOC_CREATE_NEOVI_RADIO_MESSAGE \ - MODULE_NAME ".create_neovi_radio_message(Relay1, Relay2, Relay3, Relay4, Relay5, LED6, LED5, MSB_report_rate, LSB_report_rate, analog_change_report_rate, relay_timeout)\n\n" \ - "Python API only. Generates data bytes for use with neoVI RADI/O CAN Messages\n\n" \ - "Kwargs:\n" \ - "\tRelay1 (boolean): Enable/Disable Relay1\n\n" \ - "\tRelay2 (boolean): Enable/Disable Relay2\n\n" \ - "\tRelay3 (boolean): Enable/Disable Relay3\n\n" \ - "\tRelay4 (boolean): Enable/Disable Relay4\n\n" \ - "\tRelay5 (boolean): Enable/Disable Relay5\n\n" \ - "\tLED5 (boolean): Enable/Disable LED5\n\n" \ - "\tLED6 (boolean): Enable/Disable LED6\n\n" \ - "\tMSB_report_rate (int): MSB Report Rate in ms (0-255)\n\n" \ - "\tLSB_report_rate (int): LSB Report Rate in ms (0-255)\n\n" \ - "\tanalog_change_report_rate (int): Analog change report rate\n\n" \ - "\trelay_timeout (int): Relay Timeout (0-255)*255ms\n\n" \ - "\n" \ - "Returns:\n" \ - "\n" \ - "\tTuple of data bytes for use with :class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "\t>>> msg = ics.SpyMessage()\n" \ - "\t>>> msg.Data = ics.create_neovi_radio_message(Relay1=True, Relay4=False, LED6=True, MSB_report_rate=10)\n" \ - "\t>>> msg.Data\n" \ +#define _DOC_LOAD_DEFAULT_SETTINGS \ + MODULE_NAME ".load_default_settings(device)\n" \ + "\n" \ + "Load the default settings in the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.load_default_settings(device)\n" \ + "\t>>> \n" + +#define _DOC_CREATE_NEOVI_RADIO_MESSAGE \ + MODULE_NAME \ + ".create_neovi_radio_message(Relay1, Relay2, Relay3, Relay4, Relay5, LED6, LED5, MSB_report_rate, " \ + "LSB_report_rate, analog_change_report_rate, relay_timeout)\n\n" \ + "Python API only. Generates data bytes for use with neoVI RADI/O CAN Messages\n\n" \ + "Kwargs:\n" \ + "\tRelay1 (boolean): Enable/Disable Relay1\n\n" \ + "\tRelay2 (boolean): Enable/Disable Relay2\n\n" \ + "\tRelay3 (boolean): Enable/Disable Relay3\n\n" \ + "\tRelay4 (boolean): Enable/Disable Relay4\n\n" \ + "\tRelay5 (boolean): Enable/Disable Relay5\n\n" \ + "\tLED5 (boolean): Enable/Disable LED5\n\n" \ + "\tLED6 (boolean): Enable/Disable LED6\n\n" \ + "\tMSB_report_rate (int): MSB Report Rate in ms (0-255)\n\n" \ + "\tLSB_report_rate (int): LSB Report Rate in ms (0-255)\n\n" \ + "\tanalog_change_report_rate (int): Analog change report rate\n\n" \ + "\trelay_timeout (int): Relay Timeout (0-255)*255ms\n\n" \ + "\n" \ + "Returns:\n" \ + "\n" \ + "\tTuple of data bytes for use with :class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "\t>>> msg = ics.SpyMessage()\n" \ + "\t>>> msg.Data = ics.create_neovi_radio_message(Relay1=True, Relay4=False, LED6=True, MSB_report_rate=10)\n" \ + "\t>>> msg.Data\n" \ "\t(65, 10, 0, 0, 0)\n" -#define _DOC_COREMINI_START_FBLOCK \ - MODULE_NAME ".coremini_start_fblock(device, index)\n" \ - "\n" \ - "Starts a Coremini Function Block at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tindex (int): Index of the function block.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone on Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_start_fblock(device, 1)\n" - -#define _DOC_COREMINI_STOP_FBLOCK \ - MODULE_NAME ".coremini_stop_fblock(device, index)\n" \ - "\n" \ - "Stops a Coremini Function Block at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tindex (int): Index of the function block.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone on Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_stop_fblock(device, 1)\n" - -#define _DOC_COREMINI_GET_FBLOCK_STATUS \ - MODULE_NAME ".coremini_get_fblock_status(device, index)\n" \ - "\n" \ - "Gets the status of a Coremini Function Block at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tindex (int): Index of the function block.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone on Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_get_fblock_status(device, 1)\n" \ - "\tTrue\n" - -#define _DOC_COREMINI_READ_APP_SIGNAL \ - MODULE_NAME ".coremini_read_app_signal(device, index)\n" \ - "\n" \ - "Gets the value of a Coremini application signal at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tindex (int): Index of the application signal.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tfloat on Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_read_app_signal(device, 1)\n" \ - "\t52\n" - -#define _DOC_COREMINI_WRITE_APP_SIGNAL \ - MODULE_NAME ".coremini_write_app_signal(device, index, value)\n" \ - "\n" \ - "Sets the value of a Coremini application signal at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tindex (int): Index of the application signal.\n\n" \ - "\tvalue (float): New value of the application signal.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone on Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.coremini_write_app_signal(device, 1, 52)\n" \ - "\t>>>\n" - -#define _DOC_COREMINI_READ_TX_MESSAGE \ - MODULE_NAME ".coremini_read_tx_message(device, index, j1850=False)\n" \ - "\n" \ - "Gets the value of a Coremini Message at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "` Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> msg = ics.coremini_read_tx_message(device, 0)\n" - -#define _DOC_COREMINI_READ_RX_MESSAGE \ - MODULE_NAME ".coremini_read_rx_message(device, index, j1850=False)\n" \ - "\n" \ - "Gets the value of a Coremini Message at `index` on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "` Success.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> msg = ics.coremini_read_tx_message(device, 0)\n" - -#define _DOC_COREMINI_WRITE_TX_MESSAGE \ - MODULE_NAME ".coremini_write_tx_message(device, index, msg)\n" \ - "TODO" - -#define _DOC_COREMINI_WRITE_RX_MESSAGE \ - MODULE_NAME ".coremini_write_rx_message(device, index, TODO)\n" \ - "TODO" - -#define _DOC_GET_PERFORMANCE_PARAMETERS \ - MODULE_NAME ".get_performance_parameters(device)\n" \ - "\n" \ - "Gets the Performance Parameters on `device`.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tTuple on Success: (buffer count, buffer max, overflow count, reserved, reserved, reserved, reserved, reserved)\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.get_performance_parameters(device)\n" \ - "\t(0, 24576, 0, 0, 0, 0, 0, 0)\n" - -#define _DOC_VALIDATE_HOBJECT \ - MODULE_NAME ".validate_hobject(device)\n" \ - "\n" \ - "Validates the handle is valid for a `device`. Handles are only valid when the device is open.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tor:\n\n" \ - "\tdevice (int): c style integer handle to the device.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True if valid, false otherwise.\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> ics.validate_hobject(device)\n" \ - "\t1\n" \ - "\t>>> ics.validate_hobject(device._Handle)\n" \ - "\t1\n" - -#define _DOC_GET_LAST_API_ERROR \ - MODULE_NAME ".get_last_api_error(device)\n" \ - "\n" \ - "Gets the error message from the last API call.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tTuple: (error, description short, description long, severity, restart needed)\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> try:\n" \ - "\t... msg = ics.coremini_read_tx_message(device, 0)\n" \ - "\t... except ics.RuntimeError as ex:\n" \ - "\t... print(ex)\n" \ - "\t... print(ics.get_last_api_error(device))\n" \ - "\t...\n" \ - "\tError: coremini_read_tx_message(): icsneoScriptReadTxMessage() Failed\n" \ - "\t(224, 'Invalid Message Index for script.', 'Invalid Message Index for script.', 16, 0)\n" - -#define _DOC_GET_DLL_VERSION \ - MODULE_NAME ".get_dll_version(device)\n" \ - "\n" \ - "Gets the DLL version.\n" \ - "\n" \ - "Args:\n" \ - "\tNone\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: DLL Version\n" \ - "\n" \ - "\t>>> ics.get_dll_version()\n" \ - "\t700\n" - -#define _DOC_BASE36ENC \ - MODULE_NAME ".base36enc(serial)\n" \ - "\n" \ - "Converts a decimal serial number to base36.\n" \ - "\n" \ - "Args:\n" \ - "\tserial (int): serial number.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tStr: Serial Number\n" \ - "\n" \ - "\t>>> ics.base36enc(device.SerialNumber)\n" \ - "\tCY0024\n" - -#define _DOC_GET_SERIAL_NUMBER \ - MODULE_NAME ".get_serial_number(device)\n" \ - "\n" \ - "Gets the serial number out of the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: Serial Number Version\n" \ - "\n" \ - "\t>>> ics.get_serial_number(device)\n" \ - "\t53123\n" - -#define _DOC_REQUEST_ENTER_SLEEP_MODE \ - MODULE_NAME ".request_enter_sleep_mode(device, timeout_ms, mode, reserved_zero)\n" \ - "\n" \ - "Signal neoVI to immediete go to sleep. Currently only supported by FIREVNET/PLASMA.\n" \ - "If using over USB this will likely return true but never cause PLASMA to sleep\n" \ - "since USB insertion keeps it alive.\n" \ - "This API allows Android/Linux applications to invoke power management.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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 " \ - "will stay whatever it was set to in explorer/coremini.\n\n" \ - "\n" \ - "\tmode (int): 16bit word for power mode to enter. " \ - "If caller does not want to change it pass in 65535 (0xFFFF) and it " \ - "will stay whatever it was set to in explorer/coremini. " \ - "If it is zero then neoVI will do 'normal sleep'. " \ - "0 - power mode off but calling this function will do 'normal sleep'. " \ - "1 - normal sleep. " \ - "2 - instant sleep. " \ - "3 - comatose sleep.\n\n" \ - "\n" \ - "\treserved_zero (int): Reserved, Keep as zero.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" \ - "\t>>> ics.request_enter_sleep_mode(device, 1, 0)\n" \ - "\tTrue\n" - - -#define _DOC_SET_CONTEXT \ - MODULE_NAME ".set_context(device)\n" \ - "\n" \ - "Sets the \"context\" of how icsneoFindNeoDevices(Ex) and icsneoOpenNeoDevice(Ex)\n" \ - "function. If the context is 0 (null) than icsneoFindNeoDevices(Ex) will be system\n" \ - "wide, searching USB and other supported computer interfaces. icsneoFindNeoDevices can\n" \ - "then be used to connect to devices found in this manner. If the context is a handle\n" \ - "to connected CAN tool than icsneoFindNeoDevices(Ex) will search a specific CAN bus\n" \ - "for supported IntrepidCS CAN Nodes. Again icsneoOpenNeoDevice(Ex) would be used\n" \ - "create logical connections to found CAN Nodes.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" \ - "\t>>> ics.set_context(device)\n" \ - "\tTrue\n" - -#define _DOC_FORCE_FIRMWARE_UPDATE \ - MODULE_NAME ".force_firmware_update(device)\n" \ - "\n" \ - "Forces the device to flash firmware.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" \ - "\t>>> ics.force_firmware_update(device)\n" \ - "\tTrue\n" - -#define _DOC_FIRMWARE_UPDATE_REQUIRED \ - MODULE_NAME ".firmware_update_required(device)\n" \ - "\n" \ - "Determines if the device firmware needs flashing.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" \ - "\t>>> ics.force_firmware_update(device)\n" \ - "\tTrue\n" - -#define _DOC_GET_DLL_FIRMWARE_INFO \ - MODULE_NAME ".get_dll_firmware_info(device)\n" \ - "\n" \ - "Returns the DLL firmware info for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t(:class:`" MODULE_NAME "." "st_api_firmware_info" "`)\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> info = ics.get_dll_firmware_info(device)\n" \ - "\t>>> info.iAppMajor\n" \ - "\t7\n" \ - "\t>>> info.iAppMinor\n" \ - "\t55\n" \ - "\t>>>\n" - -#define _DOC_GET_HW_FIRMWARE_INFO \ - MODULE_NAME ".get_hw_firmware_info(device)\n" \ - "\n" \ - "Returns the device firmware info for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t(:class:`" MODULE_NAME "." "st_api_firmware_info" "`)\n" \ - "\n" \ - "\t>>> device = ics.open_device()\n" \ - "\t>>> info = ics.get_hw_firmware_info(device)\n" \ - "\t>>> info.iAppMajor\n" \ - "\t7\n" \ - "\t>>> info.iAppMinor\n" \ - "\t55\n" \ - "\t>>>\n" - -#define _DOC_GET_BACKUP_POWER_ENABLED \ - MODULE_NAME ".get_backup_power_enabled(device)\n" \ - "\n" \ - "Returns the device backup power enabled for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" - -#define _DOC_SET_BACKUP_POWER_ENABLED \ - MODULE_NAME ".set_backup_power_enabled(device, enable)\n" \ - "\n" \ - "Sets the device backup power enabled for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" - -#define _DOC_GET_BACKUP_POWER_READY \ - MODULE_NAME ".get_backup_power_ready(device)\n" \ - "\n" \ - "Returns the device backup power is ready for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" - -#define _DOC_LOAD_READBIN \ - "Internal Use only\n" +#define _DOC_COREMINI_START_FBLOCK \ + MODULE_NAME ".coremini_start_fblock(device, index)\n" \ + "\n" \ + "Starts a Coremini Function Block at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tindex (int): Index of the function block.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone on Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_start_fblock(device, 1)\n" + +#define _DOC_COREMINI_STOP_FBLOCK \ + MODULE_NAME ".coremini_stop_fblock(device, index)\n" \ + "\n" \ + "Stops a Coremini Function Block at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tindex (int): Index of the function block.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone on Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_stop_fblock(device, 1)\n" + +#define _DOC_COREMINI_GET_FBLOCK_STATUS \ + MODULE_NAME ".coremini_get_fblock_status(device, index)\n" \ + "\n" \ + "Gets the status of a Coremini Function Block at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tindex (int): Index of the function block.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone on Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_get_fblock_status(device, 1)\n" \ + "\tTrue\n" + +#define _DOC_COREMINI_READ_APP_SIGNAL \ + MODULE_NAME ".coremini_read_app_signal(device, index)\n" \ + "\n" \ + "Gets the value of a Coremini application signal at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tindex (int): Index of the application signal.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tfloat on Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_read_app_signal(device, 1)\n" \ + "\t52\n" + +#define _DOC_COREMINI_WRITE_APP_SIGNAL \ + MODULE_NAME ".coremini_write_app_signal(device, index, value)\n" \ + "\n" \ + "Sets the value of a Coremini application signal at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tindex (int): Index of the application signal.\n\n" \ + "\tvalue (float): New value of the application signal.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone on Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.coremini_write_app_signal(device, 1, 52)\n" \ + "\t>>>\n" + +#define _DOC_COREMINI_READ_TX_MESSAGE \ + MODULE_NAME ".coremini_read_tx_message(device, index, j1850=False)\n" \ + "\n" \ + "Gets the value of a Coremini Message at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "` Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> msg = ics.coremini_read_tx_message(device, 0)\n" + +#define _DOC_COREMINI_READ_RX_MESSAGE \ + MODULE_NAME ".coremini_read_rx_message(device, index, j1850=False)\n" \ + "\n" \ + "Gets the value of a Coremini Message at `index` on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "` Success.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> msg = ics.coremini_read_tx_message(device, 0)\n" + +#define _DOC_COREMINI_WRITE_TX_MESSAGE \ + MODULE_NAME ".coremini_write_tx_message(device, index, msg)\n" \ + "TODO" + +#define _DOC_COREMINI_WRITE_RX_MESSAGE \ + MODULE_NAME ".coremini_write_rx_message(device, index, TODO)\n" \ + "TODO" + +#define _DOC_GET_PERFORMANCE_PARAMETERS \ + MODULE_NAME ".get_performance_parameters(device)\n" \ + "\n" \ + "Gets the Performance Parameters on `device`.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tTuple on Success: (buffer count, buffer max, overflow count, reserved, reserved, reserved, " \ + "reserved, reserved)\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.get_performance_parameters(device)\n" \ + "\t(0, 24576, 0, 0, 0, 0, 0, 0)\n" + +#define _DOC_VALIDATE_HOBJECT \ + MODULE_NAME ".validate_hobject(device)\n" \ + "\n" \ + "Validates the handle is valid for a `device`. Handles are only valid when the device is open.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tor:\n\n" \ + "\tdevice (int): c style integer handle to the device.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True if valid, false otherwise.\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> ics.validate_hobject(device)\n" \ + "\t1\n" \ + "\t>>> ics.validate_hobject(device._Handle)\n" \ + "\t1\n" + +#define _DOC_GET_LAST_API_ERROR \ + MODULE_NAME ".get_last_api_error(device)\n" \ + "\n" \ + "Gets the error message from the last API call.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tTuple: (error, description short, description long, severity, restart needed)\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> try:\n" \ + "\t... msg = ics.coremini_read_tx_message(device, 0)\n" \ + "\t... except ics.RuntimeError as ex:\n" \ + "\t... print(ex)\n" \ + "\t... print(ics.get_last_api_error(device))\n" \ + "\t...\n" \ + "\tError: coremini_read_tx_message(): icsneoScriptReadTxMessage() Failed\n" \ + "\t(224, 'Invalid Message Index for script.', 'Invalid Message Index for script.', 16, 0)\n" + +#define _DOC_GET_DLL_VERSION \ + MODULE_NAME ".get_dll_version(device)\n" \ + "\n" \ + "Gets the DLL version.\n" \ + "\n" \ + "Args:\n" \ + "\tNone\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: DLL Version\n" \ + "\n" \ + "\t>>> ics.get_dll_version()\n" \ + "\t700\n" + +#define _DOC_BASE36ENC \ + MODULE_NAME ".base36enc(serial)\n" \ + "\n" \ + "Converts a decimal serial number to base36.\n" \ + "\n" \ + "Args:\n" \ + "\tserial (int): serial number.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tStr: Serial Number\n" \ + "\n" \ + "\t>>> ics.base36enc(device.SerialNumber)\n" \ + "\tCY0024\n" + +#define _DOC_GET_SERIAL_NUMBER \ + MODULE_NAME ".get_serial_number(device)\n" \ + "\n" \ + "Gets the serial number out of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: Serial Number Version\n" \ + "\n" \ + "\t>>> ics.get_serial_number(device)\n" \ + "\t53123\n" + +#define _DOC_REQUEST_ENTER_SLEEP_MODE \ + MODULE_NAME ".request_enter_sleep_mode(device, timeout_ms, mode, reserved_zero)\n" \ + "\n" \ + "Signal neoVI to immediete go to sleep. Currently only supported by FIREVNET/PLASMA.\n" \ + "If using over USB this will likely return true but never cause PLASMA to sleep\n" \ + "since USB insertion keeps it alive.\n" \ + "This API allows Android/Linux applications to invoke power management.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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 " \ + "will stay whatever it was set to in explorer/coremini.\n\n" \ + "\n" \ + "\tmode (int): 16bit word for power mode to enter. " \ + "If caller does not want to change it pass in 65535 (0xFFFF) and it " \ + "will stay whatever it was set to in explorer/coremini. " \ + "If it is zero then neoVI will do 'normal sleep'. " \ + "0 - power mode off but calling this function will do 'normal sleep'. " \ + "1 - normal sleep. " \ + "2 - instant sleep. " \ + "3 - comatose sleep.\n\n" \ + "\n" \ + "\treserved_zero (int): Reserved, Keep as zero.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" \ + "\t>>> ics.request_enter_sleep_mode(device, 1, 0)\n" \ + "\tTrue\n" + +#define _DOC_SET_CONTEXT \ + MODULE_NAME ".set_context(device)\n" \ + "\n" \ + "Sets the \"context\" of how icsneoFindNeoDevices(Ex) and icsneoOpenNeoDevice(Ex)\n" \ + "function. If the context is 0 (null) than icsneoFindNeoDevices(Ex) will be system\n" \ + "wide, searching USB and other supported computer interfaces. icsneoFindNeoDevices can\n" \ + "then be used to connect to devices found in this manner. If the context is a handle\n" \ + "to connected CAN tool than icsneoFindNeoDevices(Ex) will search a specific CAN bus\n" \ + "for supported IntrepidCS CAN Nodes. Again icsneoOpenNeoDevice(Ex) would be used\n" \ + "create logical connections to found CAN Nodes.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" \ + "\t>>> ics.set_context(device)\n" \ + "\tTrue\n" + +#define _DOC_FORCE_FIRMWARE_UPDATE \ + MODULE_NAME ".force_firmware_update(device)\n" \ + "\n" \ + "Forces the device to flash firmware.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" \ + "\t>>> ics.force_firmware_update(device)\n" \ + "\tTrue\n" + +#define _DOC_FIRMWARE_UPDATE_REQUIRED \ + MODULE_NAME ".firmware_update_required(device)\n" \ + "\n" \ + "Determines if the device firmware needs flashing.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" \ + "\t>>> ics.force_firmware_update(device)\n" \ + "\tTrue\n" + +#define _DOC_GET_DLL_FIRMWARE_INFO \ + MODULE_NAME ".get_dll_firmware_info(device)\n" \ + "\n" \ + "Returns the DLL firmware info for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`" MODULE_NAME "." \ + "st_api_firmware_info" \ + "`)\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> info = ics.get_dll_firmware_info(device)\n" \ + "\t>>> info.iAppMajor\n" \ + "\t7\n" \ + "\t>>> info.iAppMinor\n" \ + "\t55\n" \ + "\t>>>\n" + +#define _DOC_GET_HW_FIRMWARE_INFO \ + MODULE_NAME ".get_hw_firmware_info(device)\n" \ + "\n" \ + "Returns the device firmware info for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`" MODULE_NAME "." \ + "st_api_firmware_info" \ + "`)\n" \ + "\n" \ + "\t>>> device = ics.open_device()\n" \ + "\t>>> info = ics.get_hw_firmware_info(device)\n" \ + "\t>>> info.iAppMajor\n" \ + "\t7\n" \ + "\t>>> info.iAppMinor\n" \ + "\t55\n" \ + "\t>>>\n" + +#define _DOC_GET_BACKUP_POWER_ENABLED \ + MODULE_NAME ".get_backup_power_enabled(device)\n" \ + "\n" \ + "Returns the device backup power enabled for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" + +#define _DOC_SET_BACKUP_POWER_ENABLED \ + MODULE_NAME ".set_backup_power_enabled(device, enable)\n" \ + "\n" \ + "Sets the device backup power enabled for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" + +#define _DOC_GET_BACKUP_POWER_READY \ + MODULE_NAME ".get_backup_power_ready(device)\n" \ + "\n" \ + "Returns the device backup power is ready for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" + +#define _DOC_LOAD_READBIN "Internal Use only\n" // void* hObject, unsigned long ulNetworkID, stCM_ISO157652_TxMessage *pMsg, unsigned long ulBlockingTimeout -#define _DOC_ISO15765_TRANSMIT_MESSAGE \ - MODULE_NAME ".iso15765_transmit_message(device, ulNetworkID, pMsg, ulBlockingTimeout)\n" \ - "\n" \ - "Transmits an ISO15765 Message.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tpMsg (:class:`" MODULE_NAME "." "st_cm_iso157652_tx_message" "`): :class:`" MODULE_NAME "." "st_cm_iso157652_tx_message" "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" +#define _DOC_ISO15765_TRANSMIT_MESSAGE \ + MODULE_NAME ".iso15765_transmit_message(device, ulNetworkID, pMsg, ulBlockingTimeout)\n" \ + "\n" \ + "Transmits an ISO15765 Message.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tpMsg (:class:`" MODULE_NAME "." \ + "st_cm_iso157652_tx_message" \ + "`): :class:`" MODULE_NAME "." \ + "st_cm_iso157652_tx_message" \ + "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" // (void* hObject, unsigned int iIndex, const stCM_ISO157652_RxMessage * pRxMessage) -#define _DOC_ISO15765_RECEIVE_MESSAGE \ - MODULE_NAME ".iso15765_receive_message(device, netid, rx_msg)\n" \ - "\n" \ - "Setup rx ISO15765 Message.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tprx_msg (:class:`" MODULE_NAME "." "st_cm_iso157652_rx_message" "`): :class:`" MODULE_NAME "." "st_cm_iso157652_rx_message" "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" - -#define _DOC_ISO15765_ENABLE_NETWORKS \ - MODULE_NAME ".iso15765_enable_networks(device, networks)\n" \ - "\n" \ - "Enables ISO15765 networks.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone\n" \ - "\n" - -#define _DOC_ISO15765_DISABLE_NETWORKS \ - MODULE_NAME ".iso15765_disable_networks(device)\n" \ - "\n" \ - "Disables ISO15765 networks.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone\n" \ - "\n" - -#define _DOC_GET_ACTIVE_VNET_CHANNEL \ - MODULE_NAME ".get_active_vnet_channel(device)\n" \ - "\n" \ - "Gets active vnet channel for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: Returns active vnet channel.\n" \ - "\n" - -#define _DOC_SET_ACTIVE_VNET_CHANNEL \ - MODULE_NAME ".set_active_vnet_channel(device, channel)\n" \ - "\n" \ - "Sets active vnet channel for the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tBoolean: True on success, False on failure.\n" \ - "\n" - -#define _DOC_OVERRIDE_LIBRARY_NAME \ - MODULE_NAME ".override_library_name(new_name)\n" \ - "\n" \ - "Overrides the default search for loading the icsneo40 library\n" \ - "\n" \ - "Args:\n" \ - "\tname: Absolute path or relative path including filename.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> ics.find_devices()\n" \ - "\tTraceback (most recent call last):\n" \ - "\t File \"\", line 1, in \n" \ - "\tics.RuntimeError: Error: find_devices(): Failed to open library: 'icsneo40.dll' with error code: #126\n" \ - "\t>>> ics.override_library_name(r\"C:\\Windows\\SysWOW64\\icsneo40-different.dll\")\n" \ - "\t>>> ics.find_devices()\n" \ +#define _DOC_ISO15765_RECEIVE_MESSAGE \ + MODULE_NAME ".iso15765_receive_message(device, netid, rx_msg)\n" \ + "\n" \ + "Setup rx ISO15765 Message.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tprx_msg (:class:`" MODULE_NAME "." \ + "st_cm_iso157652_rx_message" \ + "`): :class:`" MODULE_NAME "." \ + "st_cm_iso157652_rx_message" \ + "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" + +#define _DOC_ISO15765_ENABLE_NETWORKS \ + MODULE_NAME ".iso15765_enable_networks(device, networks)\n" \ + "\n" \ + "Enables ISO15765 networks.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + +#define _DOC_ISO15765_DISABLE_NETWORKS \ + MODULE_NAME ".iso15765_disable_networks(device)\n" \ + "\n" \ + "Disables ISO15765 networks.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + +#define _DOC_GET_ACTIVE_VNET_CHANNEL \ + MODULE_NAME ".get_active_vnet_channel(device)\n" \ + "\n" \ + "Gets active vnet channel for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: Returns active vnet channel.\n" \ + "\n" + +#define _DOC_SET_ACTIVE_VNET_CHANNEL \ + MODULE_NAME ".set_active_vnet_channel(device, channel)\n" \ + "\n" \ + "Sets active vnet channel for the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tBoolean: True on success, False on failure.\n" \ + "\n" + +#define _DOC_OVERRIDE_LIBRARY_NAME \ + MODULE_NAME \ + ".override_library_name(new_name)\n" \ + "\n" \ + "Overrides the default search for loading the icsneo40 library\n" \ + "\n" \ + "Args:\n" \ + "\tname: Absolute path or relative path including filename.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> ics.find_devices()\n" \ + "\tTraceback (most recent call last):\n" \ + "\t File \"\", line 1, in \n" \ + "\tics.RuntimeError: Error: find_devices(): Failed to open library: 'icsneo40.dll' with error code: #126\n" \ + "\t>>> ics.override_library_name(r\"C:\\Windows\\SysWOW64\\icsneo40-different.dll\")\n" \ + "\t>>> ics.find_devices()\n" \ "\t(, )\n" -#define _DOC_SET_BIT_RATE \ - MODULE_NAME ".set_bit_rate(device, BitRate, NetworkID)\n" \ - "\n" \ - "Specifies bit rate setting. Valid values depend on the network specified.\n" \ - "\n" \ - "For the networks NETID_HSCAN, NETID_MSCAN, NETID_SWCAN, NETID_FIRE_HSCAN2, NETID_HSCAN3, NETID_LSFTCAN,\n" \ - "valid bit rates are 2000, 33333, 50000, 62500, 83333, 100000, 125000, 250000, 500000, 800000, 1000000\n" \ - "\n" \ - "For the networks NETID_LIN, NETID_ISO2, NETID_FIRE_LIN2, NETID_FIRE_LIN3, NETID_FIRE_LIN4,\n" \ - "valid bit rates are\n" \ - "\n" \ - "For the network NETID_FIRE_CGI valid bit rates are 625000 and 115200\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: None.\n" \ - "\n" - -#define _DOC_SET_FD_BIT_RATE \ - MODULE_NAME ".set_fd_bit_rate(device, BitRate, NetworkID)\n" \ - "\n" \ - "Sets the FD bitrate for a given Network ID on the device..\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: None.\n" \ - "\n" - -#define _DOC_SET_BIT_RATE_EX \ - MODULE_NAME ".set_bit_rate_ex(device, BitRate, NetworkID, iOptions)\n" \ - "\n" \ - "Sets the bitrate for a given Network ID on the device with extended options.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: None.\n" \ +#define _DOC_SET_BIT_RATE \ + MODULE_NAME \ + ".set_bit_rate(device, BitRate, NetworkID)\n" \ + "\n" \ + "Specifies bit rate setting. Valid values depend on the network specified.\n" \ + "\n" \ + "For the networks NETID_HSCAN, NETID_MSCAN, NETID_SWCAN, NETID_FIRE_HSCAN2, NETID_HSCAN3, NETID_LSFTCAN,\n" \ + "valid bit rates are 2000, 33333, 50000, 62500, 83333, 100000, 125000, 250000, 500000, 800000, 1000000\n" \ + "\n" \ + "For the networks NETID_LIN, NETID_ISO2, NETID_FIRE_LIN2, NETID_FIRE_LIN3, NETID_FIRE_LIN4,\n" \ + "valid bit rates are\n" \ + "\n" \ + "For the network NETID_FIRE_CGI valid bit rates are 625000 and 115200\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: None.\n" \ "\n" -#define _DOC_GET_TIMESTAMP_FOR_MSG \ - MODULE_NAME ".get_timestamp_for_msg(device, msg)\n" \ - "\n" \ - "Calculates the timestamp for a message.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tmsg (:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`): :class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tFloat: Timestamp for the message.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> msgs, error_count = ics.get_messages(d)\n" \ - "\t>>> ics.get_timestamp_for_msg(d, msgs[0])\n" \ - "\t354577568.9145524\n" \ - -#define _DOC_GET_DEVICE_STATUS \ - MODULE_NAME ".get_device_status(device)\n" \ - "\n" \ - "Returns the device status.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t(:class:`" MODULE_NAME "." "ics_device_status" "`).\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> status = ics.get_device_status(d)\n" \ - "\t>>> status.fire2Status.ethernetActivationLineEnabled\n" \ - "\t0\n" \ - -#define _DOC_ENABLE_NETWORK_COM \ - MODULE_NAME ".enable_network_com(device, enable, net_id)\n" \ - "\n" \ - "Enable or disable network communication.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tenable (:class:`bool`): :class:`bool`\n\n" \ - "\n" \ - "\tnet_id (:class:`int`): :class:`int`: Optional. If left blank, disables/enables all networks.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> status = ics.enable_network_com(d, True)\n" \ - "\t>>> \n" - -#define _DOC_ENABLE_BUS_VOLTAGE_MONITOR \ - MODULE_NAME ".enable_bus_voltage_monitor(device, enable, reserved)\n" \ - "\n" \ - "Enable or disable bus voltage monitoring.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tenable (:class:`bool`): :class:`int`\n\n" \ - "\n" \ - "\treserved (:class:`int`): :class:`int`: Optional. Should be set to zero. Don't set, if unsure.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> status = ics.enable_bus_voltage_monitor(d, 1)\n" \ - "\t>>> \n" - -#define _DOC_GET_BUS_VOLTAGE \ - MODULE_NAME ".get_bus_voltage(device, reserved)\n" \ - "\n" \ - "Reads bus voltage. (:class:`" MODULE_NAME ".enable_bus_voltage_monitor`) needs to be called first.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\treserved (:class:`int`): :class:`int`: Optional. Should be set to zero. Don't set, if unsure.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tInt: value returned is in mV.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> status = ics.enable_bus_voltage_monitor(d, 1)\n" \ - "\t>>> ics.get_bus_voltage(d)\n" \ - "\t12000\n" \ - "\t>>> \n" - -#define _DOC_READ_JUPITER_FIRMWARE \ - MODULE_NAME ".read_jupiter_firmware(device, size, [vnetChannel])\n" \ - "\n" \ - "Reads firmware binary from a RAD-Jupiter. If not sure, don't use this method\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tsize (:class:`int`): :class:`int`: size of the bytes to read of the firmware binary.\n\n" \ - "\n" \ - "\tvnetChannel (:class:`int`): :class:`int`: Optional. Don't set, if unsure.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone\n" \ - "\n" \ - -#define _DOC_WRITE_JUPITER_FIRMWARE \ - MODULE_NAME ".write_jupiter_firmware(device, bytes, [vnetChannel])\n" \ - "\n" \ - "Writes firmware binary to a RAD-Jupiter. If not sure, don't use this method\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tbytes (:class:`bytes`): :class:`bytes`: bytes of the firmware binary.\n\n" \ - "\n" \ - "\tvnetChannel (:class:`int`): :class:`int`: Optional. Don't set, if unsure.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone\n" \ - "\n" \ - -#define _DOC_GET_DISK_DETAILS \ - MODULE_NAME ".get_disk_details(device)\n" \ - "\n" \ - "Returns the device disk details.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t(:class:`" MODULE_NAME "." "srad_gigalog_disk_details" "`).\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> details = ics.get_disk_details(d)\n" \ - "\t>>> details.structure.options\n" \ - "\t>>> \n" - -#define _DOC_DISK_FORMAT \ - MODULE_NAME ".disk_format(device)\n" \ - "\n" \ - "Starts disk formatting on the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> details = ics.get_disk_details(d)\n" \ - "\t>>> details. = ics.get_disk_details(d)\n" \ - "\t>>> ics.disk_format(d, details)\n" \ - "\t>>> \n" - -#define _DOC_DISK_FORMAT_CANCEL \ - MODULE_NAME ".disk_format_cancel(device)\n" \ - "\n" \ - "Cancel in progress disk formatting on the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.disk_format(d, details)\n" \ - "\t>>> ics.disk_format_cancel(d)\n" \ - "\t>>> \n" - -#define _DOC_DISK_FORMAT_PROGRESS \ - MODULE_NAME ".get_disk_format_progress(device)\n" \ - "\n" \ - "Returns the device disk formatting progress.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t(:class:`" MODULE_NAME "." "srad_gigalog_disk_format_progress" "`).\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> d = ics.disk_format(d, details)\n" \ - "\t>>> progress = ics.get_disk_format_progress(d)\n" \ - "\t>>> progress.sectorsRemaining\n" \ - "\t>>> \n" - -#define _DOC_ENABLE_DOIP_LINE \ - MODULE_NAME ".enable_doip_line(device, enable)\n" \ - "\n" \ - "Activate or De-activate DOIP Line.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tenable (:class:`bool`): :class:`bool`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> status = ics.enable_doip_line(d, True)\n" \ - "\t>>> \n" - -#define _DOC_IS_DEVICE_FEATURE_SUPPORTED \ - MODULE_NAME ".is_device_feature_supported(device, feature)\n" \ - "\n" \ - "Polls firmware in device to see if the feature is supported. As of 908 only ValueCAN4-2EL, ValueCAN4-4 and ValueCAN4-Industrial are supported.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "\tenable (:class:`DeviceFeature`): :class:`DeviceFeature`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.device_feature import DeviceFeature\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> supported = ics.is_device_feature_supported(d, DeviceFeature.networkTerminationDWCAN01)\n" \ - "\t>>> \n" - - -#define _DOC_GET_PCB_SERIAL_NUMBER \ - MODULE_NAME ".get_pcb_serial_number(device)\n" \ - "\n" \ - "Gets the unique PCB serial number of the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\t(:class:`str`): PCB Serial Number\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> pcb_sn = ics.get_pcb_serial_number(d)\n" \ - "\t>>> \n" - -#define _DOC_SET_LED_PROPERTY \ - MODULE_NAME ".set_led_property(device, led, prop, value)\n" \ - "\n" \ - "Sets the LED property on the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.set_led_property(d, TODO, TODO, TODO)\n" \ - "\t>>> \n" - -#define _DOC_START_DHCP_SERVER \ - MODULE_NAME ".start_dhcp_server(device, network_id, device_ip_address, subnet_mask, gateway, start_address, end_address, overwrite_dhcp_settings, lease_time, reserved)\n" \ - "\n" \ - "Starts a DHCP Server.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\tgateway (:class:`str`): Gateway\n\n" \ - "\tstart_address (:class:`str`): Start Address\n\n" \ - "\tend_address (:class:`str`): End Address\n\n" \ - "\toverwrite_dhcp_settings (:class:`bool`): Overwrite DHCP Settings\n\n" \ - "\tlease_time (:class:`int`): Lease time\n\n" \ - "\treserved (:class:`int`): (Optional) Reserved, set to 0\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.start_dhcp_server(d, TODO)\n" \ - "\t>>> \n" - -#define _DOC_STOP_DHCP_SERVER \ - MODULE_NAME ".stop_dhcp_server(device, network_id)\n" \ - "\n" \ - "Stops the DHCP Server\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tnetwork_id (:class:`int`): NetworkID\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.stop_dhcp_server(d, TODO)\n" \ - "\t>>> \n" - -#define _DOC_WBMS_MANAGER_WRITE_LOCK \ - MODULE_NAME ".wbms_manager_write_lock(device, manager, lock_state)\n" \ - "\n" \ - "Sets the lock state on the manager\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\tlock_state (:class:`" MODULE_NAME ".structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t`): :class:`" MODULE_NAME ".structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.ew_bms_manager_port_t import ew_bms_manager_port_t\n" \ - "\t>>> from ics.structures.ew_bms_manager_lock_state_t import ew_bms_manager_lock_state_t\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.wbms_manager_write_lock(d, ew_bms_manager_port_t.eManagerPortA.value, ew_bms_manager_lock_state_t.eLockManager.value)\n" \ - "\t>>> \n" - -#define _DOC_WBMS_MANAGER_RESET \ - MODULE_NAME ".wbms_manager_reset(device, manager)\n" \ - "\n" \ - "Resets the manager\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.ew_bms_manager_port_t import ew_bms_manager_port_t\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.wbms_manager_reset(d, ew_bms_manager_port_t.eManagerPortA.value)\n" \ - "\t>>> \n" - -#define _DOC_UART_WRITE \ - MODULE_NAME ".uart_write(device, port, data, flags)\n" \ - "\n" \ - "Writes UART on the given port\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.uart_write(d, e_uart_port_t.eUART0, b'my uart data goes here')\n" \ - "\t>>> \n" - -#define _DOC_UART_READ \ - MODULE_NAME ".uart_read(device, port, bytes_to_read, flags)\n" \ - "\n" \ - "Reads UART on the given port. \n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\tflags (:class:`int`): Optional. Flags to be used. Don't use if unsure.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> data = ics.uart_read(d, e_uart_port_t.eUART0)\n" \ - "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ - "\t>>> \n" - -#define _DOC_UART_SET_BAUDRATE \ - MODULE_NAME ".uart_set_baudrate(device, port, baudrate)\n" \ - "\n" \ - "Sets the UART baudrate on the given port. \n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> ics.uart_set_baudrate(d, e_uart_port_t.eUART0, 115200)\n" \ - "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ - "\t>>> \n" - -#define _DOC_UART_GET_BAUDRATE \ - MODULE_NAME ".uart_get_baudrate(device, port)\n" \ - "\n" \ - "Gets the UART baudrate on the given port. \n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> import ics\n" \ - "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ - "\t>>> d = ics.open_device()\n" \ - "\t>>> baudrate = ics.uart_set_baudrate(d, e_uart_port_t.eUART0)\n" \ - "\t>>> \n" - -#define _DOC_GENERIC_API_SEND_COMMAND \ - MODULE_NAME ".generic_api_send_command(device, api_index, instance_index, function_index, data)\n" \ - "\n" \ - "Sends a command in a generic way.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\tdata (:class:`bytes`): Data to be passed in.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tfunctionError (:class:`int`): functionError.\n\n" \ - "\n" +#define _DOC_SET_FD_BIT_RATE \ + MODULE_NAME ".set_fd_bit_rate(device, BitRate, NetworkID)\n" \ + "\n" \ + "Sets the FD bitrate for a given Network ID on the device..\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: None.\n" \ + "\n" + +#define _DOC_SET_BIT_RATE_EX \ + MODULE_NAME ".set_bit_rate_ex(device, BitRate, NetworkID, iOptions)\n" \ + "\n" \ + "Sets the bitrate for a given Network ID on the device with extended options.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: None.\n" \ + "\n" + +#define _DOC_GET_TIMESTAMP_FOR_MSG \ + MODULE_NAME ".get_timestamp_for_msg(device, msg)\n" \ + "\n" \ + "Calculates the timestamp for a message.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tmsg (:class:`" MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." SPY_MESSAGE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tFloat: Timestamp for the message.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> msgs, error_count = ics.get_messages(d)\n" \ + "\t>>> ics.get_timestamp_for_msg(d, msgs[0])\n" \ + "\t354577568.9145524\n" + +#define _DOC_GET_DEVICE_STATUS \ + MODULE_NAME ".get_device_status(device)\n" \ + "\n" \ + "Returns the device status.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`" MODULE_NAME "." \ + "ics_device_status" \ + "`).\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> status = ics.get_device_status(d)\n" \ + "\t>>> status.fire2Status.ethernetActivationLineEnabled\n" \ + "\t0\n" + +#define _DOC_ENABLE_NETWORK_COM \ + MODULE_NAME ".enable_network_com(device, enable, net_id)\n" \ + "\n" \ + "Enable or disable network communication.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tenable (:class:`bool`): :class:`bool`\n\n" \ + "\n" \ + "\tnet_id (:class:`int`): :class:`int`: Optional. If left blank, disables/enables all networks.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> status = ics.enable_network_com(d, True)\n" \ + "\t>>> \n" + +#define _DOC_ENABLE_BUS_VOLTAGE_MONITOR \ + MODULE_NAME ".enable_bus_voltage_monitor(device, enable, reserved)\n" \ + "\n" \ + "Enable or disable bus voltage monitoring.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tenable (:class:`bool`): :class:`int`\n\n" \ + "\n" \ + "\treserved (:class:`int`): :class:`int`: Optional. Should be set to zero. Don't set, if unsure.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> status = ics.enable_bus_voltage_monitor(d, 1)\n" \ + "\t>>> \n" + +#define _DOC_GET_BUS_VOLTAGE \ + MODULE_NAME ".get_bus_voltage(device, reserved)\n" \ + "\n" \ + "Reads bus voltage. (:class:`" MODULE_NAME ".enable_bus_voltage_monitor`) needs to be called first.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\treserved (:class:`int`): :class:`int`: Optional. Should be set to zero. Don't set, if unsure.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tInt: value returned is in mV.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> status = ics.enable_bus_voltage_monitor(d, 1)\n" \ + "\t>>> ics.get_bus_voltage(d)\n" \ + "\t12000\n" \ + "\t>>> \n" + +#define _DOC_READ_JUPITER_FIRMWARE \ + MODULE_NAME ".read_jupiter_firmware(device, size, [vnetChannel])\n" \ + "\n" \ + "Reads firmware binary from a RAD-Jupiter. If not sure, don't use this method\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tsize (:class:`int`): :class:`int`: size of the bytes to read of the firmware binary.\n\n" \ + "\n" \ + "\tvnetChannel (:class:`int`): :class:`int`: Optional. Don't set, if unsure.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + +#define _DOC_WRITE_JUPITER_FIRMWARE \ + MODULE_NAME ".write_jupiter_firmware(device, bytes, [vnetChannel])\n" \ + "\n" \ + "Writes firmware binary to a RAD-Jupiter. If not sure, don't use this method\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tbytes (:class:`bytes`): :class:`bytes`: bytes of the firmware binary.\n\n" \ + "\n" \ + "\tvnetChannel (:class:`int`): :class:`int`: Optional. Don't set, if unsure.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + +#define _DOC_GET_DISK_DETAILS \ + MODULE_NAME ".get_disk_details(device)\n" \ + "\n" \ + "Returns the device disk details.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`" MODULE_NAME "." \ + "srad_gigalog_disk_details" \ + "`).\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> details = ics.get_disk_details(d)\n" \ + "\t>>> details.structure.options\n" \ + "\t>>> \n" + +#define _DOC_DISK_FORMAT \ + MODULE_NAME ".disk_format(device)\n" \ + "\n" \ + "Starts disk formatting on the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> details = ics.get_disk_details(d)\n" \ + "\t>>> details. = ics.get_disk_details(d)\n" \ + "\t>>> ics.disk_format(d, details)\n" \ + "\t>>> \n" + +#define _DOC_DISK_FORMAT_CANCEL \ + MODULE_NAME ".disk_format_cancel(device)\n" \ + "\n" \ + "Cancel in progress disk formatting on the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.disk_format(d, details)\n" \ + "\t>>> ics.disk_format_cancel(d)\n" \ + "\t>>> \n" + +#define _DOC_DISK_FORMAT_PROGRESS \ + MODULE_NAME ".get_disk_format_progress(device)\n" \ + "\n" \ + "Returns the device disk formatting progress.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`" MODULE_NAME "." \ + "srad_gigalog_disk_format_progress" \ + "`).\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> d = ics.disk_format(d, details)\n" \ + "\t>>> progress = ics.get_disk_format_progress(d)\n" \ + "\t>>> progress.sectorsRemaining\n" \ + "\t>>> \n" + +#define _DOC_ENABLE_DOIP_LINE \ + MODULE_NAME ".enable_doip_line(device, enable)\n" \ + "\n" \ + "Activate or De-activate DOIP Line.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tenable (:class:`bool`): :class:`bool`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> status = ics.enable_doip_line(d, True)\n" \ + "\t>>> \n" + +#define _DOC_IS_DEVICE_FEATURE_SUPPORTED \ + MODULE_NAME ".is_device_feature_supported(device, feature)\n" \ + "\n" \ + "Polls firmware in device to see if the feature is supported. As of 908 only ValueCAN4-2EL, " \ + "ValueCAN4-4 and ValueCAN4-Industrial are supported.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tenable (:class:`DeviceFeature`): :class:`DeviceFeature`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.device_feature import DeviceFeature\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> supported = ics.is_device_feature_supported(d, DeviceFeature.networkTerminationDWCAN01)\n" \ + "\t>>> \n" + +#define _DOC_GET_PCB_SERIAL_NUMBER \ + MODULE_NAME ".get_pcb_serial_number(device)\n" \ + "\n" \ + "Gets the unique PCB serial number of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\t(:class:`str`): PCB Serial Number\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> pcb_sn = ics.get_pcb_serial_number(d)\n" \ + "\t>>> \n" + +#define _DOC_SET_LED_PROPERTY \ + MODULE_NAME ".set_led_property(device, led, prop, value)\n" \ + "\n" \ + "Sets the LED property on the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.set_led_property(d, TODO, TODO, TODO)\n" \ + "\t>>> \n" + +#define _DOC_START_DHCP_SERVER \ + MODULE_NAME ".start_dhcp_server(device, network_id, device_ip_address, subnet_mask, gateway, start_address, " \ + "end_address, overwrite_dhcp_settings, lease_time, reserved)\n" \ + "\n" \ + "Starts a DHCP Server.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tgateway (:class:`str`): Gateway\n\n" \ + "\tstart_address (:class:`str`): Start Address\n\n" \ + "\tend_address (:class:`str`): End Address\n\n" \ + "\toverwrite_dhcp_settings (:class:`bool`): Overwrite DHCP Settings\n\n" \ + "\tlease_time (:class:`int`): Lease time\n\n" \ + "\treserved (:class:`int`): (Optional) Reserved, set to 0\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.start_dhcp_server(d, TODO)\n" \ + "\t>>> \n" + +#define _DOC_STOP_DHCP_SERVER \ + MODULE_NAME ".stop_dhcp_server(device, network_id)\n" \ + "\n" \ + "Stops the DHCP Server\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tnetwork_id (:class:`int`): NetworkID\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.stop_dhcp_server(d, TODO)\n" \ + "\t>>> \n" + +#define _DOC_WBMS_MANAGER_WRITE_LOCK \ + MODULE_NAME ".wbms_manager_write_lock(device, manager, lock_state)\n" \ + "\n" \ + "Sets the lock state on the manager\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tlock_state (:class:`" MODULE_NAME \ + ".structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t`): :class:`" MODULE_NAME \ + ".structures.ew_bms_manager_lock_state_t.ew_bms_manager_lock_state_t`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.ew_bms_manager_port_t import ew_bms_manager_port_t\n" \ + "\t>>> from ics.structures.ew_bms_manager_lock_state_t import ew_bms_manager_lock_state_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.wbms_manager_write_lock(d, ew_bms_manager_port_t.eManagerPortA.value, " \ + "ew_bms_manager_lock_state_t.eLockManager.value)\n" \ + "\t>>> \n" + +#define _DOC_WBMS_MANAGER_RESET \ + MODULE_NAME ".wbms_manager_reset(device, manager)\n" \ + "\n" \ + "Resets the manager\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.ew_bms_manager_port_t import ew_bms_manager_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.wbms_manager_reset(d, ew_bms_manager_port_t.eManagerPortA.value)\n" \ + "\t>>> \n" + +#define _DOC_UART_WRITE \ + MODULE_NAME ".uart_write(device, port, data, flags)\n" \ + "\n" \ + "Writes UART on the given port\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.uart_write(d, e_uart_port_t.eUART0, b'my uart data goes here')\n" \ + "\t>>> \n" + +#define _DOC_UART_READ \ + MODULE_NAME ".uart_read(device, port, bytes_to_read, flags)\n" \ + "\n" \ + "Reads UART on the given port. \n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tflags (:class:`int`): Optional. Flags to be used. Don't use if unsure.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> data = ics.uart_read(d, e_uart_port_t.eUART0)\n" \ + "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ + "\t>>> \n" + +#define _DOC_UART_SET_BAUDRATE \ + MODULE_NAME ".uart_set_baudrate(device, port, baudrate)\n" \ + "\n" \ + "Sets the UART baudrate on the given port. \n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> ics.uart_set_baudrate(d, e_uart_port_t.eUART0, 115200)\n" \ + "\t>>> print(f\"Read {len(data)} bytes: {data}\")\n" \ + "\t>>> \n" + +#define _DOC_UART_GET_BAUDRATE \ + MODULE_NAME ".uart_get_baudrate(device, port)\n" \ + "\n" \ + "Gets the UART baudrate on the given port. \n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> import ics\n" \ + "\t>>> from ics.structures.e_uart_port_t import e_uart_port_t\n" \ + "\t>>> d = ics.open_device()\n" \ + "\t>>> baudrate = ics.uart_set_baudrate(d, e_uart_port_t.eUART0)\n" \ + "\t>>> \n" + +#define _DOC_GENERIC_API_SEND_COMMAND \ + MODULE_NAME ".generic_api_send_command(device, api_index, instance_index, function_index, data)\n" \ + "\n" \ + "Sends a command in a generic way.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\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" \ + "\tdata (:class:`bytes`): Data to be passed in.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tfunctionError (:class:`int`): functionError.\n\n" \ + "\n" // if (!PyArg_ParseTuple(args, arg_parse("ObbI:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &length)) { -#define _DOC_GENERIC_API_READ_DATA \ - MODULE_NAME ".generic_api_read_data(device, api_index, instance_index, [length])\n" \ - "\n" \ - "Reads data in a generic way.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\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" \ - "\tlength (:class:`int`): (optional) Length of the data to read. defaults to `GENERIC_API_DATA_BUFFER_SIZE`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\ttuple of (functionIndex, data) \n\n" \ +#define _DOC_GENERIC_API_READ_DATA \ + MODULE_NAME \ + ".generic_api_read_data(device, api_index, instance_index, [length])\n" \ + "\n" \ + "Reads data in a generic way.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "`\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" \ + "\tlength (:class:`int`): (optional) Length of the data to read. defaults to `GENERIC_API_DATA_BUFFER_SIZE`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\ttuple of (functionIndex, data) \n\n" \ "\n" // if (!PyArg_ParseTuple(args, arg_parse("Obb:", __FUNCTION__), &obj, &apiIndex, &instanceIndex)) { -#define _DOC_GENERIC_API_GET_STATUS \ - MODULE_NAME ".generic_api_get_status(device, api_index, instance_index)\n" \ - "\n" \ - "Reads data in a generic way.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\tapi_index (:class:`int`): api_index.\n\n" \ - "\tinstance_index (:class:`int`): instance_index.\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\ttuple of (:class:`int`): (functionIndex, callbackError, finishedProcessing) \n\n" \ - "\n" - -#define _DOC_GET_GPTP_STATUS \ - MODULE_NAME ".get_gptp_status(device)\n" \ - "\n" \ - "Gets the gPTP Status from the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tics.structures.gptp_status.gptp_status (:class:`ics.structures.gptp_status.gptp_status`)\n\n" \ - "\n" - -#define _DOC_GET_ALL_CHIP_VERSIONS \ - MODULE_NAME ".get_all_chip_versions(device, api_index, instance_index)\n" \ - "\n" \ - "Get all the chip (firmware) versions of the device.\n" \ - "\n" \ - "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tics.structures.st_chip_versions.st_chip_versions (:class:`ics.structures.st_chip_versions.st_chip_versions`)\n\n" \ - "\n" +#define _DOC_GENERIC_API_GET_STATUS \ + MODULE_NAME ".generic_api_get_status(device, api_index, instance_index)\n" \ + "\n" \ + "Reads data in a generic way.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tapi_index (:class:`int`): api_index.\n\n" \ + "\tinstance_index (:class:`int`): instance_index.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\ttuple of (:class:`int`): (functionIndex, callbackError, finishedProcessing) \n\n" \ + "\n" + +#define _DOC_GET_GPTP_STATUS \ + MODULE_NAME ".get_gptp_status(device)\n" \ + "\n" \ + "Gets the gPTP Status from the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tics.structures.gptp_status.gptp_status (:class:`ics.structures.gptp_status.gptp_status`)\n\n" \ + "\n" + +#define _DOC_GET_ALL_CHIP_VERSIONS \ + MODULE_NAME ".get_all_chip_versions(device, api_index, instance_index)\n" \ + "\n" \ + "Get all the chip (firmware) versions of the device.\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tics.structures.st_chip_versions.st_chip_versions " \ + "(:class:`ics.structures.st_chip_versions.st_chip_versions`)\n\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("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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ", 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), + _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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME + ", 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()"), + _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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " 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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ", 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), + _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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME + " 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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME + ", 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), + _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("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), - - {"override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME}, - {"get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, ""}, + _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), + + { "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 } }; diff --git a/include/object_neo_device.h b/include/object_neo_device.h index 921574ccf..31ca505d5 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -1,23 +1,22 @@ #ifndef _OBJECT_NEO_DEVICE_H_ #define _OBJECT_NEO_DEVICE_H_ -//http://docs.python.org/3/extending/newtypes.html +// http://docs.python.org/3/extending/newtypes.html #include #include #if (defined(_WIN32) || defined(__WIN32__)) - #ifndef USING_STUDIO_8 - #define USING_STUDIO_8 1 - #endif - #include +#ifndef USING_STUDIO_8 +#define USING_STUDIO_8 1 +#endif +#include #else - #include +#include #endif #include "defines.h" #include "exceptions.h" #include "dll.h" - // Linux specific fixes #if !(defined(_WIN32) || defined(__WIN32__)) @@ -33,11 +32,9 @@ #include #define Sleep(i) sleep(i) - #endif #endif - #define NEO_DEVICE_OBJECT_NAME "NeoDevice" #if ICS_LEGACY_SUPPORT @@ -48,9 +45,9 @@ #define ICS_HANDLE_PY_TYPE T_INT #endif -typedef struct { - PyObject_HEAD - NeoDevice dev; +typedef struct +{ + PyObject_HEAD NeoDevice dev; PyObject* name; char auto_cleanup; ICS_HANDLE handle; @@ -58,15 +55,31 @@ typedef struct { } neo_device_object; static PyMemberDef neo_device_object_members[] = { - { "Name", T_OBJECT_EX, offsetof(neo_device_object, name), 0, "String describing DeviceType, extension to Python api only." }, + { "Name", + T_OBJECT_EX, + offsetof(neo_device_object, name), + 0, + "String describing DeviceType, extension to Python api only." }, { "DeviceType", T_UINT, offsetof(neo_device_object, dev.DeviceType), 0, "" }, { "Handle", T_INT, offsetof(neo_device_object, dev.Handle), 0, "" }, { "NumberOfClients", T_INT, offsetof(neo_device_object, dev.NumberOfClients), 0, "" }, { "SerialNumber", T_INT, offsetof(neo_device_object, dev.SerialNumber), 0, "" }, { "MaxAllowedClients", T_INT, offsetof(neo_device_object, dev.MaxAllowedClients), 0, "" }, - { "AutoHandleClose", T_BOOL, offsetof(neo_device_object, dev.MaxAllowedClients), 0, "When " NEO_DEVICE_OBJECT_NAME " is freed the handle will automatically be closed, if true." }, - { "_Handle", ICS_HANDLE_PY_TYPE, offsetof(neo_device_object, handle), 0, "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, - { "IsOpen", T_BOOL, offsetof(neo_device_object, handle), 0, "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, + { "AutoHandleClose", + T_BOOL, + offsetof(neo_device_object, dev.MaxAllowedClients), + 0, + "When " NEO_DEVICE_OBJECT_NAME " is freed the handle will automatically be closed, if true." }, + { "_Handle", + ICS_HANDLE_PY_TYPE, + offsetof(neo_device_object, handle), + 0, + "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, + { "IsOpen", + T_BOOL, + offsetof(neo_device_object, handle), + 0, + "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, { NULL, 0, 0, 0, 0 }, }; @@ -82,34 +95,31 @@ static int neo_device_object_alloc(neo_device_object* self, PyObject* args, PyOb static void neo_device_object_dealloc(neo_device_object* self) { if (self->auto_cleanup && self->handle) { - try - { + try { // Auto clean up device handle if NeoDevice object is going out of scope. ice::Library* lib = dll_get_library(); if (lib) { - ice::Function icsneoClosePort(lib, "icsneoClosePort"); - ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); + ice::Function icsneoClosePort(lib, "icsneoClosePort"); + ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); int error_count = 0; if (icsneoClosePort(self->handle, &error_count)) { icsneoFreeObject(self->handle); } } - } - catch (...) - { - //return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } catch (...) { + // return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } } Py_XDECREF(self->name); Py_TYPE(self)->tp_free((PyObject*)self); } -static PyObject* neo_device_object_getattr(PyObject *o, PyObject *attr_name) +static PyObject* neo_device_object_getattr(PyObject* o, PyObject* attr_name) { return PyObject_GenericGetAttr(o, attr_name); } -static int neo_device_object_setattr(PyObject *o, PyObject *name, PyObject *value) +static int neo_device_object_setattr(PyObject* o, PyObject* name, PyObject* value) { return PyObject_GenericSetAttr(o, name, value); } @@ -145,8 +155,7 @@ static PyObject* neo_device_object_tp_repr(PyObject* o) extern PyTypeObject neo_device_object_type; // Copied from tupleobject.h -#define PyNeoDevice_Check(op) \ - PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BASETYPE) +#define PyNeoDevice_Check(op) PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BASETYPE) #define PyNeoDevice_CheckExact(op) (Py_TYPE(PyNeoDevice_GetNeoDevice(op)) == &neo_device_object_type) #define PyNeoDevice_GetNeoDevice(nd) ((neo_device_object*)nd) diff --git a/include/object_spy_message.h b/include/object_spy_message.h index ad4fe2514..3e3f11190 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -1,16 +1,16 @@ #ifndef _OBJECT_SPY_MESSAGE_H_ #define _OBJECT_SPY_MESSAGE_H_ -//http://docs.python.org/3/extending/newtypes.html +// http://docs.python.org/3/extending/newtypes.html #include #include #if (defined(_WIN32) || defined(__WIN32__)) - #ifndef USING_STUDIO_8 - #define USING_STUDIO_8 1 - #endif - #include +#ifndef USING_STUDIO_8 +#define USING_STUDIO_8 1 +#endif +#include #else - #include +#include #endif #include @@ -34,35 +34,82 @@ int PyUnicode_CompareWithASCIIString(PyObject *uni, const char *string) */ #endif -typedef struct { - PyObject_HEAD - icsSpyMessage msg; +typedef struct +{ + PyObject_HEAD icsSpyMessage msg; bool noExtraDataPtrCleanup; } spy_message_object; -typedef struct { - PyObject_HEAD - icsSpyMessageJ1850 msg; +typedef struct +{ + PyObject_HEAD icsSpyMessageJ1850 msg; bool noExtraDataPtrCleanup; } spy_message_j1850_object; 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." }, + { "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." }, + { "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." }, + { "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, "" }, @@ -71,27 +118,78 @@ static PyMemberDef spy_message_object_members[] = { { "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." }, + { "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." }, + { "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." }, + { "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." }, + { "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, "" }, @@ -100,11 +198,14 @@ static PyMemberDef spy_message_j1850_object_members[] = { { "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." }, + { "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)); @@ -114,8 +215,9 @@ static int spy_message_object_alloc(spy_message_object* self, PyObject* args, Py 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)) { + 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[] self->msg.ExtraDataPtr; @@ -125,66 +227,57 @@ static void spy_message_object_dealloc(spy_message_object* self) Py_TYPE(self)->tp_free((PyObject*)self); } -static PyObject* spy_message_object_getattr(PyObject *o, PyObject *attr_name) +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); + PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", attr_name->ob_type->tp_name); return NULL; - } - else { + } 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]); + 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) { + } 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) { + 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* 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) { + } 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; + 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.ExtraDataPtr != NULL) { @@ -194,38 +287,37 @@ static PyObject* spy_message_object_getattr(PyObject *o, PyObject *attr_name) // 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) { actual_size = (obj->msg.NumberBytesHeader << 8) | obj->msg.NumberBytesData; - } - else { + } 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) { + 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 { + } else { return PyObject_GenericGetAttr(o, attr_name); } } -static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *value) +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); + "'%.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) { + 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; @@ -235,17 +327,17 @@ static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *val } obj->msg.NumberBytesData = PyObject_Length(value); return 0; - } - else if (PyUnicode_CompareWithASCIIString(name, "AckBytes") == 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); + "'%.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) { + 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; @@ -254,17 +346,17 @@ static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *val } } return 0; - } - else if (PyUnicode_CompareWithASCIIString(name, "Header") == 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); + "'%.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) { + 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; @@ -274,19 +366,18 @@ static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *val obj->msg.NumberBytesHeader = PyObject_Length(value); } return 0; - } - else if (PyUnicode_CompareWithASCIIString(name, "Protocol") == 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) { + } 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); + "'%.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. @@ -301,8 +392,8 @@ static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *val 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) { + 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; @@ -311,22 +402,18 @@ static int spy_message_object_setattr(PyObject *o, PyObject *name, PyObject *val } } return 0; - } - else if (PyUnicode_CompareWithASCIIString(name, "ExtraDataPtrEnabled") == 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[] obj->msg.ExtraDataPtr; - } - else if (PyLong_AsLong(value) != 0 && obj->msg.Protocol == SPY_PROTOCOL_ETHERNET) - { + } 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 { + } else { return PyObject_GenericSetAttr(o, name, value); } } @@ -335,8 +422,7 @@ extern PyTypeObject spy_message_object_type; extern PyTypeObject spy_message_j1850_object_type; // Copied from tupleobject.h -#define PySpyMessage_Check(op) \ - PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BASETYPE) +#define PySpyMessage_Check(op) PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BASETYPE) #define PySpyMessage_CheckExact(op) (Py_TYPE(op) == &spy_message_object_type) #define PySpyMessageJ1850_CheckExact(op) (Py_TYPE(op) == &spy_message_j1850_object_type) diff --git a/include/setup_module_auto_defines.h b/include/setup_module_auto_defines.h index cfd6fb958..9911bece4 100644 --- a/include/setup_module_auto_defines.h +++ b/include/setup_module_auto_defines.h @@ -2,6 +2,6 @@ #define __SETUP_MODULE_AUTO_DEFINES_H__ #include -int setup_module_auto_defines(PyObject * module); +int setup_module_auto_defines(PyObject* module); #endif // __SETUP_MODULE_AUTO_DEFINES_H__ diff --git a/src/dll.cpp b/src/dll.cpp index 61c47cc8c..fc7a0ccda 100644 --- a/src/dll.cpp +++ b/src/dll.cpp @@ -9,11 +9,9 @@ bool __initialize(char* name) if (dll_is_initialized()) { return true; } - try - { - memset(ERROR_MESSAGE, '\0', sizeof(ERROR_MESSAGE)/sizeof(ERROR_MESSAGE[0])); - if (!name) - { + try { + memset(ERROR_MESSAGE, '\0', sizeof(ERROR_MESSAGE) / sizeof(ERROR_MESSAGE[0])); + if (!name) { #if (defined(_WIN32) || defined(__WIN32__)) LIBRARY = new ice::Library("icsneo40.dll"); #elif (defined(__APPLE__)) @@ -21,16 +19,12 @@ bool __initialize(char* name) #else LIBRARY = new ice::Library("${ORIGIN}/libicsneolegacy.so"); #endif - } - else - { + } else { LIBRARY = new ice::Library(name); } - } - catch (ice::Exception& ex) - { - strncpy(ERROR_MESSAGE, ex.whatString().c_str(), sizeof(ERROR_MESSAGE)/sizeof(ERROR_MESSAGE[0])); - ERROR_MESSAGE[sizeof(ERROR_MESSAGE)/sizeof(ERROR_MESSAGE[0]) - 1] = '\0'; + } catch (ice::Exception& ex) { + strncpy(ERROR_MESSAGE, ex.whatString().c_str(), sizeof(ERROR_MESSAGE) / sizeof(ERROR_MESSAGE[0])); + ERROR_MESSAGE[sizeof(ERROR_MESSAGE) / sizeof(ERROR_MESSAGE[0]) - 1] = '\0'; return false; } return true; diff --git a/src/exceptions.cpp b/src/exceptions.cpp index f550f3183..50ce57adb 100644 --- a/src/exceptions.cpp +++ b/src/exceptions.cpp @@ -7,19 +7,19 @@ static PyObject* IcsArgumentError = NULL; static PyObject* IcsRuntimeError = NULL; -char *pyics_base36enc(int sn) +char* pyics_base36enc(int sn) { - char *result = NULL; + char* result = NULL; #if PY_MAJOR_VERSION >= 3 - PyObject *name = PyUnicode_FromString("ics.ics"); + PyObject* name = PyUnicode_FromString("ics.ics"); #else - PyObject *name = PyString_FromString("ics.ics"); + PyObject* name = PyString_FromString("ics.ics"); #endif - PyObject *module = PyImport_Import(name); - PyObject *dict = PyModule_GetDict(module); - PyObject *base36enc = PyDict_GetItemString(dict, "base36enc"); + 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); + PyObject* return_value = PyObject_CallFunction(base36enc, "i", sn); if (return_value == NULL) { // We failed for some reason... PyErr_Print(); diff --git a/src/main.cpp b/src/main.cpp index 6a52a1ac9..ef6efbf7e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,97 +8,93 @@ #include "object_spy_message.h" #include "object_neo_device.h" -#define _DOC_ICS_MODULE \ - "Python C Code module for interfacing to the icsneo40 dynamic library. Code tries\n" \ - "to respect PEP 8 (http://python.org/dev/peps/pep-0008). Function naming convention does\n" \ - "not follow the tradition c style icsneo40 naming convention as pyics module\n" \ - "name acts as the namespace (icsneo portion of the function) and function names\n" \ - "are suppose to be lowercase with underscores instead of mixedCase like icsneo API.\n" \ - "\n" \ - "C API can be mimiced almost identically by doing the following:\n" \ - "\t>>> import ics as icsneo\n" \ - "\t>>> devices = icsneo.FindNeoDevices()\n" \ - "\t>>> for device in devices:\n" \ - "\t... print(device.Name, device.SerialNumber)\n" \ - "\t...\n" \ - "\tneoVI FIRE 59886\n" \ - "\n" \ - "Recommended `Python` way by doing the following:\n" \ - "\t>>> import ics\n" \ - "\t>>> devices = ics.find_devices()\n" \ - "\t>>> for device in devices:\n" \ - "\t... print(device.Name, device.SerialNumber)\n" \ - "\t...\n" \ - "\tneoVI FIRE 59886\n" \ - "\n" \ - "It should be noted that :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` is used a little bit differently than the C API.\n" \ - ":class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` contains two extra members:\n" \ - ":class:`" MODULE_NAME"." NEO_DEVICE_OBJECT_NAME ".AutoHandleClose` and :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "._Handle`\n\n" \ - "The handle normally returned from `icsneoOpenNeoDevice()` is stored inside _Handle and setting AutoHandleClose to True (Default)\n" \ - "will automatically close the handle when the :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` goes out of scope.\n" \ - "\n" \ - "\n" \ - "Installation:\n" \ - "\n" \ - "\tpip install python_ics\n" \ - "\n" \ +#define _DOC_ICS_MODULE \ + "Python C Code module for interfacing to the icsneo40 dynamic library. Code tries\n" \ + "to respect PEP 8 (http://python.org/dev/peps/pep-0008). Function naming convention does\n" \ + "not follow the tradition c style icsneo40 naming convention as pyics module\n" \ + "name acts as the namespace (icsneo portion of the function) and function names\n" \ + "are suppose to be lowercase with underscores instead of mixedCase like icsneo API.\n" \ + "\n" \ + "C API can be mimiced almost identically by doing the following:\n" \ + "\t>>> import ics as icsneo\n" \ + "\t>>> devices = icsneo.FindNeoDevices()\n" \ + "\t>>> for device in devices:\n" \ + "\t... print(device.Name, device.SerialNumber)\n" \ + "\t...\n" \ + "\tneoVI FIRE 59886\n" \ + "\n" \ + "Recommended `Python` way by doing the following:\n" \ + "\t>>> import ics\n" \ + "\t>>> devices = ics.find_devices()\n" \ + "\t>>> for device in devices:\n" \ + "\t... print(device.Name, device.SerialNumber)\n" \ + "\t...\n" \ + "\tneoVI FIRE 59886\n" \ + "\n" \ + "It should be noted that :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` is used a little bit differently than the C API.\n" \ + ":class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` contains two extra members:\n" \ + ":class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ".AutoHandleClose` and :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "._Handle`\n\n" \ + "The handle normally returned from `icsneoOpenNeoDevice()` is stored inside _Handle and setting AutoHandleClose " \ + "to True (Default)\n" \ + "will automatically close the handle when the :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "` goes out of scope.\n" \ + "\n" \ + "\n" \ + "Installation:\n" \ + "\n" \ + "\tpip install python_ics\n" \ + "\n" \ "https://pypi.python.org/pypi/python-ics\n" - #if PY_MAJOR_VERSION >= 3 static PyModuleDef IcsModule = { - PyModuleDef_HEAD_INIT, - MODULE_NAME, - _DOC_ICS_MODULE, - -1, - IcsMethods, - NULL, - NULL, - NULL, - NULL + PyModuleDef_HEAD_INIT, MODULE_NAME, _DOC_ICS_MODULE, -1, IcsMethods, NULL, NULL, NULL, NULL }; #endif #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif #if PY_MAJOR_VERSION >= 3 -PyMODINIT_FUNC PyInit_ics(void) + PyMODINIT_FUNC PyInit_ics(void) #else void initics(void) #endif -{ + { #if PY_MAJOR_VERSION >= 3 - PyObject* module = PyModule_Create(&IcsModule); + PyObject* module = PyModule_Create(&IcsModule); #else PyObject* module = Py_InitModule3(MODULE_NAME, IcsMethods, _DOC_ICS_MODULE); #endif - if (!module) { + if (!module) { #if PY_MAJOR_VERSION >= 3 - return module; + return module; #else return; #endif - } - PyDateTime_IMPORT; + } + PyDateTime_IMPORT; - // Add build constant variables - setup_module_defines(module); - setup_module_auto_defines(module); + // Add build constant variables + setup_module_defines(module); + setup_module_auto_defines(module); - initialize_exceptions(module); + initialize_exceptions(module); - // These were a WIP, as you get towards the bottom the code structure is simplier. - setup_neo_device_object(module); - setup_spy_message_object(module); + // These were a WIP, as you get towards the bottom the code structure is simplier. + setup_neo_device_object(module); + setup_spy_message_object(module); #if PY_MAJOR_VERSION >= 3 - return module; + return module; #else return; #endif -} + } #ifdef __cplusplus } diff --git a/src/methods.cpp b/src/methods.cpp index 0bbde0b59..049330c6c 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3,7 +3,7 @@ #include "dll.h" #include "defines.h" #ifndef USING_STUDIO_8 - #define USING_STUDIO_8 1 +#define USING_STUDIO_8 1 #endif #include #ifdef _USE_INTERNAL_HEADER_ @@ -20,12 +20,12 @@ 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... #ifdef _MSC_VER -#define arg_parse(a,f) a f +#define arg_parse(a, f) a f #else const char* arg_parse(const char* args, const char* func) { static char buffer[128]; - memset(buffer, '\0', sizeof(buffer)/sizeof(buffer[0])); + memset(buffer, '\0', sizeof(buffer) / sizeof(buffer[0])); strcpy(buffer, args); strcat(buffer, func); return (const char*)buffer; @@ -33,14 +33,14 @@ const char* arg_parse(const char* args, const char* func) #endif #ifndef _USE_INTERNAL_HEADER_ -typedef struct +typedef struct { - unsigned char sec; // --- Seconds (00-59) - unsigned char min; // --- (00-59) - unsigned char hour; // --- (00-23) - unsigned char day; // --- (01-31) - unsigned char month; // --- (01-12) - unsigned char year; // --- (00-99) + unsigned char sec; // --- Seconds (00-59) + unsigned char min; // --- (00-59) + unsigned char hour; // --- (00-23) + unsigned char day; // --- (01-31) + unsigned char month; // --- (01-12) + unsigned char year; // --- (00-99) } icsSpyTime; #endif @@ -62,87 +62,134 @@ typedef struct char* neodevice_to_string(unsigned long type) { 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_ETHER_BADGE: return "EtherBADGE"; - case NEODEVICE_RAD_A2B: return "RAD-A2B"; - case NEODEVICE_RADEPSILON: return "RAD-Epsilon"; - case NEODEVICE_OBD2_SIM_DOIP: 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_RED: return "neoVI RED"; - case NEODEVICE_ECU: return "neoECU"; - case NEODEVICE_IEVB: return "IEVB"; - case NEODEVICE_PENDANT: return "Pendant"; - case NEODEVICE_OBD2_PRO: return "neoOBD2 PRO"; - case NEODEVICE_ECUCHIP_UART: return "ECUCHIP"; - case NEODEVICE_PLASMA: return "neoVI PLASMA"; - case NEODEVICE_NEOANALOG: return "neoAnalog"; - case NEODEVICE_CT_OBD: return "neoOBD CT"; - case NEODEVICE_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_VCANRF: return "ValueCAN.rf"; - 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_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_ETHER_BADGE: + return "EtherBADGE"; + case NEODEVICE_RAD_A2B: + return "RAD-A2B"; + case NEODEVICE_RADEPSILON: + return "RAD-Epsilon"; + case NEODEVICE_OBD2_SIM_DOIP: + 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_RED: + return "neoVI RED"; + case NEODEVICE_ECU: + return "neoECU"; + case NEODEVICE_IEVB: + return "IEVB"; + case NEODEVICE_PENDANT: + return "Pendant"; + case NEODEVICE_OBD2_PRO: + return "neoOBD2 PRO"; + case NEODEVICE_ECUCHIP_UART: + return "ECUCHIP"; + case NEODEVICE_PLASMA: + return "neoVI PLASMA"; + case NEODEVICE_NEOANALOG: + return "neoAnalog"; + case NEODEVICE_CT_OBD: + return "neoOBD CT"; + case NEODEVICE_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_VCANRF: + return "ValueCAN.rf"; + 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"; }; return "Intrepid Device"; } bool _convertListOrTupleToArray(PyObject* obj, std::vector* results) { - if (!obj || !results) - { + if (!obj || !results) { set_ics_exception(exception_runtime_error(), "_convertListOrTupleToArray() was passed invalid arguments"); return false; } results->clear(); - if (PyList_CheckExact(obj)) - { + if (PyList_CheckExact(obj)) { Py_ssize_t length = PyList_Size(obj); - for (Py_ssize_t i=0; i < length; ++i) + for (Py_ssize_t i = 0; i < length; ++i) results->push_back(PyList_GetItem(obj, i)); return true; - } - else if (PyTuple_CheckExact(obj)) - { + } else if (PyTuple_CheckExact(obj)) { Py_ssize_t length = PyTuple_Size(obj); - for (Py_ssize_t i=0; i < length; ++i) + for (Py_ssize_t i = 0; i < length; ++i) results->push_back(PyTuple_GetItem(obj, i)); return true; - } - else - { + } else { set_ics_exception(exception_runtime_error(), "_convertListOrTupleToArray() was passed neither a list or tuple"); return false; } @@ -155,27 +202,26 @@ PyObject* _getPythonModuleObject(const char* module_name, const char* module_obj { // Before we do anything, we need to grab the python s_device_settings ctype.Structure. PyObject* module = PyImport_ImportModule(module_name); - if (!module) - { + if (!module) { return set_ics_exception(exception_runtime_error(), "_getPythonModuleObject(): Failed to import module"); } // Grab the module Dictionary PyObject* module_dict = PyModule_GetDict(module); - if (!module_dict) - { - return set_ics_exception(exception_runtime_error(), "_getPythonModuleObject(): Failed to grab module dict from module"); + if (!module_dict) { + return set_ics_exception(exception_runtime_error(), + "_getPythonModuleObject(): Failed to grab module dict from module"); } // Grab the actual object PyObject* module_object = PyDict_GetItemString(module_dict, module_object_name); - if (!module_object) - { - return set_ics_exception(exception_runtime_error(), "_getPythonModuleObject(): Failed to grab object s_device_settings from module"); + if (!module_object) { + return set_ics_exception(exception_runtime_error(), + "_getPythonModuleObject(): Failed to grab object s_device_settings from module"); } // Call the object so we have our own reference - we are going to return this PyObject* object = PyObject_CallObject(module_object, NULL); - if (!object) - { - return set_ics_exception(exception_runtime_error(), "_getPythonModuleObject(): Failed to call object from module"); + if (!object) { + return set_ics_exception(exception_runtime_error(), + "_getPythonModuleObject(): Failed to call object from module"); } return object; } @@ -185,23 +231,22 @@ int _isPythonModuleObject_IsInstance(PyObject* object, const char* module_name, { // Before we do anything, we need to grab the python s_device_settings ctype.Structure. PyObject* module = PyImport_ImportModule(module_name); - if (!module) - { + if (!module) { set_ics_exception(exception_runtime_error(), "_isPythonModuleObjectInstanceOf(): Failed to import module"); return -1; } // Grab the module Dictionary PyObject* module_dict = PyModule_GetDict(module); - if (!module_dict) - { - set_ics_exception(exception_runtime_error(), "_isPythonModuleObjectInstanceOf(): Failed to grab module dict from module"); + if (!module_dict) { + set_ics_exception(exception_runtime_error(), + "_isPythonModuleObjectInstanceOf(): Failed to grab module dict from module"); return -1; } // Grab the actual object PyObject* module_object = PyDict_GetItemString(module_dict, module_object_name); - if (!module_object) - { - set_ics_exception(exception_runtime_error(), "_isPythonModuleObjectInstanceOf(): Failed to grab object s_device_settings from module"); + if (!module_object) { + set_ics_exception(exception_runtime_error(), + "_isPythonModuleObjectInstanceOf(): Failed to grab object s_device_settings from module"); return -1; } return PyObject_IsInstance(object, module_object); @@ -212,14 +257,14 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) PyObject* device_types = NULL; int network_id = -1; char* kwords[] = { "device_types", "network_id", NULL }; - if (!PyArg_ParseTupleAndKeywords(args, keywords, arg_parse("|Oi:", __FUNCTION__), - kwords, &device_types, &network_id)) { + if (!PyArg_ParseTupleAndKeywords( + args, keywords, arg_parse("|Oi:", __FUNCTION__), kwords, &device_types, &network_id)) { return NULL; } // Grab the library before we start doing anything... ice::Library* lib = dll_get_library(); - if (!lib) { + if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } @@ -227,19 +272,17 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) // Create a vector from the device_types python container std::unique_ptr device_types_list; unsigned int device_types_list_size = 0; - if (device_types && device_types != Py_None) - { + if (device_types && device_types != Py_None) { std::vector device_type_vector; if (!_convertListOrTupleToArray(device_types, &device_type_vector)) return NULL; device_types_list_size = 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) + for (unsigned int i = 0; i < device_types_list_size; ++i) device_types_list[i] = (unsigned int)PyLong_AsLong(device_type_vector[i]); } // Lets finally call the icsneo40 function - try - { + try { /* int _stdcall icsneoFindDevices(NeoDeviceEx* pNeoDeviceEx, int* pNumDevices, @@ -248,34 +291,40 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) POptionsFindNeoEx* pOptionsFindNeoEx, unsigned long reserved​) */ - ice::Function icsneoFindDevices(lib, "icsneoFindDevices"); - NeoDeviceEx devices[255] = { 0 }; + ice::Function + icsneoFindDevices(lib, "icsneoFindDevices"); + NeoDeviceEx devices[255] = { 0 }; int count = 255; - // - OptionsFindNeoEx opts = {0}; + // + OptionsFindNeoEx opts = { 0 }; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) popts = &opts; - Py_BEGIN_ALLOW_THREADS - if (!icsneoFindDevices(devices, &count, device_types_list.get(), device_types_list_size, (network_id != -1) ? &popts : NULL, 0)) { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoFindDevices(devices, + &count, + device_types_list.get(), + device_types_list_size, + (network_id != -1) ? &popts : NULL, + 0)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoFindDevices() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyObject* tuple = PyTuple_New(count); if (!tuple) { return NULL; } - for (int i=0; i < count; ++i) { + for (int i = 0; i < count; ++i) { PyObject* obj = PyObject_CallObject((PyObject*)&neo_device_object_type, NULL); 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 " NEO_DEVICE_OBJECT_NAME); + // This should only happen if we run out of memory (malloc failure)? + PyErr_Print(); + return set_ics_exception(exception_runtime_error(), "Failed to allocate " NEO_DEVICE_OBJECT_NAME); } // Copy the NeoDevice struct into our python NeoDevice object neo_device_object* neo_device = (neo_device_object*)obj; @@ -284,9 +333,7 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) PyTuple_SetItem(tuple, i, obj); } return tuple; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -303,14 +350,22 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) bool use_neovi_server = false; bool device_need_ref_inc = false; char* kwords[] = { "device", "network_ids", "config_read", "options", "network_id", "use_server", NULL }; - if (!PyArg_ParseTupleAndKeywords(args, keywords, arg_parse("|OOiiib:", __FUNCTION__), - kwords, &device, &network_ids, &config_read, &options, &network_id, &use_neovi_server)) { + if (!PyArg_ParseTupleAndKeywords(args, + keywords, + arg_parse("|OOiiib:", __FUNCTION__), + kwords, + &device, + &network_ids, + &config_read, + &options, + &network_id, + &use_neovi_server)) { return NULL; } // Grab the library before we start doing anything... ice::Library* lib = dll_get_library(); - if (!lib) { + if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } @@ -319,62 +374,48 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) std::unique_ptr network_ids_list; unsigned int network_ids_list_size = 0; bool use_network_ids = false; - if (network_ids && network_ids != Py_None) - { + if (network_ids && network_ids != Py_None) { std::vector network_ids_vector; if (!_convertListOrTupleToArray(network_ids, &network_ids_vector)) return NULL; network_ids_list_size = 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]); use_network_ids = true; } // Verify device type - if (device && PyLong_CheckExact(device)) - { + if (device && PyLong_CheckExact(device)) { // Device is a serial number in integer format serial_number = PyLong_AsLong(device); - } - else if (device && PyUnicode_CheckExact(device)) - { + } else if (device && PyUnicode_CheckExact(device)) { // Lets convert the base36 string into an integer PyObject* module_name = PyUnicode_FromString("builtins"); PyObject* builtins_module = PyImport_Import(module_name); - if (!builtins_module) - { - return set_ics_exception(exception_runtime_error(),"Failed to import __builtins__ module"); + if (!builtins_module) { + return set_ics_exception(exception_runtime_error(), "Failed to import __builtins__ module"); } PyObject* builtin_dict = PyModule_GetDict(builtins_module); - PyObject *builtin_int = PyDict_GetItemString(builtin_dict, "int"); - if (PyCallable_Check(builtin_int)) - { - PyObject *return_value = PyObject_CallFunction(builtin_int, "Oi", device, 36); + PyObject* builtin_int = PyDict_GetItemString(builtin_dict, "int"); + if (PyCallable_Check(builtin_int)) { + PyObject* return_value = PyObject_CallFunction(builtin_int, "Oi", device, 36); Py_DECREF(builtins_module); - if (return_value == NULL) - { + if (return_value == NULL) { // We failed for some reason... PyErr_Print(); return NULL; - } - else - { + } else { serial_number = PyLong_AsLong(return_value); } + } else { + return set_ics_exception(exception_runtime_error(), "Failed to convert serial number string to integer."); } - else - { - return set_ics_exception(exception_runtime_error(),"Failed to convert serial number string to integer."); - } - } - else if (device && !PyNeoDevice_CheckExact(device)) - { - return set_ics_exception(exception_runtime_error(),"Invalid 'device' parameter object type passed to open_device()."); - } - else if (device && PyNeoDevice_CheckExact(device)) - { - // If the user passed in a NeoDevice device we need to increment + } else if (device && !PyNeoDevice_CheckExact(device)) { + return set_ics_exception(exception_runtime_error(), + "Invalid 'device' parameter object type passed to open_device()."); + } else if (device && PyNeoDevice_CheckExact(device)) { + // If the user passed in a NeoDevice device we need to increment // the reference counter when we return it since device is a borrowed // reference. // devs = ics.find_devices() @@ -383,60 +424,54 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) device_need_ref_inc = true; } - if ((device && !PyNeoDevice_CheckExact(device)) || !device) - { + if ((device && !PyNeoDevice_CheckExact(device)) || !device) { // We don't have a device parameter so lets find the first one - try - { - ice::Function icsneoFindDevices(lib, "icsneoFindDevices"); + try { + ice::Function + icsneoFindDevices(lib, "icsneoFindDevices"); NeoDeviceEx devices[255]; int count = 255; - OptionsFindNeoEx opts = {0}; + OptionsFindNeoEx opts = { 0 }; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) popts = &opts; - Py_BEGIN_ALLOW_THREADS - if (!icsneoFindDevices(devices, &count, NULL, 0, (network_id != -1) ? &popts : NULL, 0)) - { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoFindDevices(devices, &count, NULL, 0, (network_id != -1) ? &popts : NULL, 0)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoFindDevices() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; // Find the first free device - for (int i=0; i < count; ++i) - { + for (int i = 0; i < count; ++i) { // If we are looking for a serial number, check here if (serial_number && devices[i].neoDevice.SerialNumber != serial_number) continue; // If we aren't using neoVI Server and already have a connection we can't proceed. - if (!use_neovi_server && devices[i].neoDevice.NumberOfClients != 0) - { + if (!use_neovi_server && devices[i].neoDevice.NumberOfClients != 0) { continue; - //return set_ics_exception(exception_runtime_error(), "Found device, but its already open!"); + // return set_ics_exception(exception_runtime_error(), "Found device, but its already open!"); } // We matched a neoDevice, lets allocate it here. device = PyObject_CallObject((PyObject*)&neo_device_object_type, NULL); PyNeoDevice_GetNeoDevice(device)->dev = devices[i].neoDevice; - PyNeoDevice_GetNeoDevice(device)->name = PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)); + PyNeoDevice_GetNeoDevice(device)->name = + PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)); break; } - if (!device || !PyNeoDevice_CheckExact(device)) - { + if (!device || !PyNeoDevice_CheckExact(device)) { return set_ics_exception(exception_runtime_error(), "Failed to find a device to open."); } - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } } // We should finally have our device allocated at this point! - try - { + try { /* int _stdcall icsneoOpenDevice(NeoDeviceEx* pNeoDeviceEx, void** hObject, @@ -446,31 +481,34 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) OptionsOpenNeoEx* stOptionsOpenNeoEx, unsigned long reserved) */ - ice::Function icsneoOpenDevice(lib, "icsneoOpenDevice"); + ice::Function + icsneoOpenDevice(lib, "icsneoOpenDevice"); NeoDeviceEx neo_device_ex = {}; neo_device_ex.neoDevice = PyNeoDevice_GetNeoDevice(device)->dev; - OptionsFindNeoEx opts = {0}; + OptionsFindNeoEx opts = { 0 }; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) popts = &opts; - Py_BEGIN_ALLOW_THREADS - if (!icsneoOpenDevice(&neo_device_ex, &PyNeoDevice_GetNeoDevice(device)->handle, use_network_ids ? network_ids_list.get() : NULL, config_read, options, (network_id != -1) ? popts : NULL, 0)) - { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoOpenDevice(&neo_device_ex, + &PyNeoDevice_GetNeoDevice(device)->handle, + use_network_ids ? network_ids_list.get() : NULL, + config_read, + options, + (network_id != -1) ? popts : NULL, + 0)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoOpenDevice() Failed"); } - Py_END_ALLOW_THREADS - - if (device_need_ref_inc) - { + Py_END_ALLOW_THREADS; + + if (device_need_ref_inc) { Py_INCREF(device); } return device; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -483,36 +521,34 @@ PyObject* meth_close_device(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoClosePort(lib, "icsneoClosePort"); - ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); + ice::Function icsneoClosePort(lib, "icsneoClosePort"); + ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); int error_count = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoClosePort(PyNeoDevice_GetNeoDevice(obj)->handle, &error_count)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoClosePort() Failed"); } icsneoFreeObject(PyNeoDevice_GetNeoDevice(obj)->handle); - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyNeoDevice_GetNeoDevice(obj)->handle = 0; return Py_BuildValue("i", error_count); - } - catch (ice::Exception& ex) - { + } 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!"); } -/* +/* * Converts tm structure to second resolution. * Returns seconds elapsed since the beginning of the month. */ @@ -521,9 +557,9 @@ __int64 _tm_secs(tm* t) __int64 result = -1; if (!t) return result; - result = t->tm_mday*86400; - result += t->tm_hour*3600; - result += t->tm_min*60; + result = t->tm_mday * 86400; + result += t->tm_hour * 3600; + result += t->tm_min * 60; result += t->tm_sec; return result; @@ -543,8 +579,7 @@ __int64 _tm_secs_offset(tm* t1, tm* t2) __int64 r2 = _tm_secs(t2); if (r1 == -1 || r2 == -1) return result; - if (t1->tm_year != t2->tm_year || - t1->tm_mon != t1->tm_mon) + if (t1->tm_year != t2->tm_year || t1->tm_mon != t1->tm_mon) return -2; if ((result = r1 - r2) < 0) result *= -1; @@ -558,33 +593,33 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); icsSpyTime ics_time; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetRTC(lib, "icsneoGetRTC"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoGetRTC(lib, "icsneoGetRTC"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetRTC(handle, &ics_time)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetRTC() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; time_t current_time = time(0); // Bug #6600 - icsneoSetRTC is utc, icsneoGetRTC is local - //tm* current_utc_time = gmtime(¤t_time); // UTC + // tm* current_utc_time = gmtime(¤t_time); // UTC tm* current_utc_time = localtime(¤t_time); // Local tm device_utc_time; device_utc_time.tm_hour = ics_time.hour; device_utc_time.tm_min = ics_time.min; device_utc_time.tm_sec = ics_time.sec; - device_utc_time.tm_mon = ics_time.month-1; + device_utc_time.tm_mon = ics_time.month - 1; device_utc_time.tm_mday = ics_time.day; device_utc_time.tm_year = ics_time.year; device_utc_time.tm_isdst = -1; @@ -594,17 +629,15 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) if (!PyDateTimeAPI) { return set_ics_exception(exception_runtime_error(), "Failed to initialize PyDateTime"); } - PyObject* datetime = PyDateTime_FromDateAndTime(device_utc_time.tm_year+1900, - device_utc_time.tm_mon+1, - device_utc_time.tm_mday, - device_utc_time.tm_hour, - device_utc_time.tm_min, - device_utc_time.tm_sec, - 0); + PyObject* datetime = PyDateTime_FromDateAndTime(device_utc_time.tm_year + 1900, + device_utc_time.tm_mon + 1, + device_utc_time.tm_mday, + device_utc_time.tm_hour, + device_utc_time.tm_min, + device_utc_time.tm_sec, + 0); return Py_BuildValue("(O,i)", datetime, offset); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -618,7 +651,8 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; PyDateTime_IMPORT; @@ -629,13 +663,13 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) // We didn't get a valid Python DateTime Object, use current UTC Time time_t current_time = time(0); tm* current_utc_time = gmtime(¤t_time); - datetime_object = PyDateTime_FromDateAndTime(current_utc_time->tm_year+1900, - current_utc_time->tm_mon+1, - current_utc_time->tm_mday, - current_utc_time->tm_hour, - current_utc_time->tm_min, - current_utc_time->tm_sec, - 0); + datetime_object = PyDateTime_FromDateAndTime(current_utc_time->tm_year + 1900, + current_utc_time->tm_mon + 1, + current_utc_time->tm_mday, + current_utc_time->tm_hour, + current_utc_time->tm_min, + current_utc_time->tm_sec, + 0); } // Convert Python DateTime object to icsSpyTime icsSpyTime ics_time; @@ -645,24 +679,21 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) 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; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetRTC(lib, "icsneoSetRTC"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetRTC(lib, "icsneoSetRTC"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetRTC(handle, &ics_time)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetRTC() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -678,9 +709,10 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; + ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; long fsize; unsigned char* data = NULL; int data_size = 0; @@ -696,7 +728,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } FILE* f; f = fopen(file_name, "rb"); - if (!f) { + if (!f) { std::stringstream ss; ss << "Failed to open CoreMini script file: '" << file_name << "'. Please make sure path exists"; return set_ics_exception_dev(exception_runtime_error(), obj, (char*)ss.str().c_str()); @@ -704,7 +736,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) fseek(f, 0, SEEK_END); fsize = ftell(f); rewind(f); - data = (unsigned char*) malloc(sizeof(char)*fsize); + data = (unsigned char*)malloc(sizeof(char) * fsize); data_size = (int)fread(data, 1, fsize, f); fclose(f); if (fsize != data_size) { @@ -712,12 +744,13 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } } else if (PyTuple_CheckExact(arg_data)) { Py_ssize_t tuple_size = PyTuple_Size(arg_data); - data = (unsigned char*) malloc(sizeof(char)*tuple_size); + data = (unsigned char*)malloc(sizeof(char) * tuple_size); // Move tuple data into array - for (int i=0; i < tuple_size; ++i) { + for (int i = 0; i < tuple_size; ++i) { PyObject* value = PyTuple_GET_ITEM(arg_data, i); if (!PyLong_CheckExact(value)) { - return set_ics_exception_dev(exception_runtime_error(), obj, "Failed to convert tuple data. Tuple data must be integer type"); + return set_ics_exception_dev( + exception_runtime_error(), obj, "Failed to convert tuple data. Tuple data must be integer type"); } data[i] = (unsigned char)PyLong_AsLong(PyTuple_GET_ITEM(arg_data, i)); } @@ -726,24 +759,22 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } else { return set_ics_exception_dev(exception_runtime_error(), obj, "Argument must be filepath or tuple"); } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptLoad(lib, "icsneoScriptLoad"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptLoad( + lib, "icsneoScriptLoad"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptLoad(handle, data, data_size, location)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptLoad() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -757,27 +788,25 @@ PyObject* meth_coremini_start(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStart(lib, "icsneoScriptStart"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptStart(lib, "icsneoScriptStart"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStart(handle, location)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptStart() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -790,27 +819,25 @@ PyObject* meth_coremini_stop(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStop(lib, "icsneoScriptStop"); - Py_BEGIN_ALLOW_THREADS - if (! icsneoScriptStop(handle)) { - Py_BLOCK_THREADS + ice::Function icsneoScriptStop(lib, "icsneoScriptStop"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoScriptStop(handle)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptStop() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -824,34 +851,31 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptClear(lib, "icsneoScriptClear"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptClear(lib, "icsneoScriptClear"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptClear(handle, location)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptClear() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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) { PyObject* obj = NULL; @@ -859,29 +883,27 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptGetScriptStatus(lib, "icsneoScriptGetScriptStatus"); + ice::Function icsneoScriptGetScriptStatus(lib, "icsneoScriptGetScriptStatus"); int status = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptGetScriptStatus(handle, &status)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptClear() Failed"); } - Py_END_ALLOW_THREADS - return Py_BuildValue("b", status==1); - } - catch (ice::Exception& ex) - { + Py_END_ALLOW_THREADS; + return Py_BuildValue("b", status == 1); + } 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!"); @@ -896,7 +918,8 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); PyObject* tuple = temp; @@ -910,31 +933,31 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) if (!PyTuple_CheckExact(tuple)) { return set_ics_exception(exception_argument_error(), "Second argument must be of tuple type!"); } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoTxMessages(lib, "icsneoTxMessages"); + ice::Function icsneoTxMessages(lib, "icsneoTxMessages"); const Py_ssize_t TUPLE_COUNT = PyTuple_Size(tuple); icsSpyMessage** msgs = new icsSpyMessage*[TUPLE_COUNT](); - for (int i=0; i < TUPLE_COUNT; ++i) { + for (int i = 0; i < TUPLE_COUNT; ++i) { spy_message_object* obj = (spy_message_object*)PyTuple_GetItem(tuple, i); if (!obj) { if (created_tuple) { Py_XDECREF(tuple); } delete[] msgs; - return set_ics_exception(exception_runtime_error(), "Tuple item must be of " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Tuple item must be of " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); } msgs[i] = &(obj->msg); } - Py_BEGIN_ALLOW_THREADS - for (int i=0; i < TUPLE_COUNT; ++i) { + Py_BEGIN_ALLOW_THREADS; + for (int i = 0; i < TUPLE_COUNT; ++i) { if (!icsneoTxMessages(handle, msgs[i], (msgs[i]->NetworkID2 << 8) | msgs[i]->NetworkID, 1)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; if (created_tuple) { Py_XDECREF(tuple); } @@ -946,18 +969,16 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) delete msgs[i]->ExtraDataPtr; msgs[i]->ExtraDataPtr = NULL; msgs[i]->ExtraDataPtrEnabled = 0; - } + } */ } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; if (created_tuple) { Py_XDECREF(tuple); } delete[] msgs; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -965,7 +986,7 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) PyObject* meth_get_messages(PyObject* self, PyObject* args) { - //Py_RETURN_NONE; + // Py_RETURN_NONE; double timeout = 0.1; int use_j1850 = 0; PyObject* obj = NULL; @@ -973,45 +994,48 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); // Convert timeout to ms timeout *= 1000; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoWaitForRxMessagesWithTimeOut(lib, "icsneoWaitForRxMessagesWithTimeOut"); - ice::Function icsneoGetMessages(lib, "icsneoGetMessages"); + ice::Function icsneoWaitForRxMessagesWithTimeOut( + lib, "icsneoWaitForRxMessagesWithTimeOut"); + ice::Function icsneoGetMessages(lib, + "icsneoGetMessages"); int count = 20000; int errors = 0; - union SpyMessage { + union SpyMessage + { icsSpyMessageJ1850 msg_j1850; icsSpyMessage msg; }; - SpyMessage *msgs = PyMem_New(SpyMessage, count); + SpyMessage* msgs = PyMem_New(SpyMessage, count); if (!msgs) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); return set_ics_exception_dev(exception_runtime_error(), obj, "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (timeout == 0 || icsneoWaitForRxMessagesWithTimeOut(handle, (unsigned int)timeout)) { if (!icsneoGetMessages(handle, (icsSpyMessage*)msgs, &count, &errors)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyMem_Free(msgs); return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoGetMessages() Failed"); } } else { count = 0; } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyObject* tuple = PyTuple_New(count); - for (int i=0; i < count; ++i) { + for (int i = 0; i < count; ++i) { PyObject* obj = NULL; if (use_j1850) { obj = PyObject_CallObject((PyObject*)&spy_message_j1850_object_type, NULL); @@ -1021,7 +1045,8 @@ 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_dev(exception_runtime_error(), obj, "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception_dev( + exception_runtime_error(), obj, "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } if (use_j1850) { spy_message_j1850_object* msg = (spy_message_j1850_object*)obj; @@ -1042,9 +1067,7 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) Py_XDECREF(tuple); PyMem_Del(msgs); return result; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { return set_ics_exception_dev(exception_runtime_error(), obj, (char*)ex.what()); } return set_ics_exception_dev(exception_runtime_error(), obj, "This is a bug!"); @@ -1057,33 +1080,33 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); - } + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - unsigned long parameters[255] = {0}; + unsigned long parameters[255] = { 0 }; unsigned long parameters_count = 0; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptGetScriptStatusEx(lib, "icsneoScriptGetScriptStatusEx"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoScriptGetScriptStatusEx(handle, parameters, sizeof(parameters)/sizeof(¶meters[0]), parameters_count)) { - Py_BLOCK_THREADS + ice::Function + icsneoScriptGetScriptStatusEx(lib, "icsneoScriptGetScriptStatusEx"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoScriptGetScriptStatusEx( + handle, parameters, sizeof(parameters) / sizeof(¶meters[0]), parameters_count)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptGetScriptStatusEx() Failed"); } - Py_END_ALLOW_THREADS - } - catch (ice::Exception& ex) - { + Py_END_ALLOW_THREADS; + } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } PyObject* list_object = PyList_New(0); - for (unsigned long i=0; i < parameters_count; ++i) { + for (unsigned long i = 0; i < parameters_count; ++i) { PyObject* obj = Py_BuildValue("i", parameters[i]); PyList_Append(list_object, obj); } @@ -1092,57 +1115,62 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) PyObject* meth_get_error_messages(PyObject* self, PyObject* args) { - //return PyList_New(0); + // return PyList_New(0); PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - int errors[600] = {0}; + int errors[600] = { 0 }; int error_count = 600; - - try - { + + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetErrorMessages(lib, "icsneoGetErrorMessages"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoGetErrorMessages(lib, "icsneoGetErrorMessages"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetErrorMessages(handle, errors, &error_count)) { - Py_UNBLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoScriptGetScriptStatusEx() Failed"); + Py_UNBLOCK_THREADS return set_ics_exception(exception_runtime_error(), + "icsneoScriptGetScriptStatusEx() Failed"); } - Py_END_ALLOW_THREADS - ice::Function icsneoGetErrorInfo(lib, "icsneoGetErrorInfo"); + Py_END_ALLOW_THREADS; + ice::Function icsneoGetErrorInfo( + lib, "icsneoGetErrorInfo"); PyObject* list = PyList_New(0); - for (int i=0; i < error_count; ++i) { - char description_short[255] = {0}; - char description_long[255] = {0}; + for (int i = 0; i < error_count; ++i) { + char description_short[255] = { 0 }; + char description_long[255] = { 0 }; int description_short_length = 255; int description_long_length = 255; int severity = 0, restart_needed = 0; - Py_BEGIN_ALLOW_THREADS - if (!icsneoGetErrorInfo(errors[i], description_short, description_long, - &description_short_length, &description_long_length, &severity, &restart_needed)) { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGetErrorInfo(errors[i], + description_short, + description_long, + &description_short_length, + &description_long_length, + &severity, + &restart_needed)) { + Py_BLOCK_THREADS; Py_XDECREF(list); return set_ics_exception(exception_runtime_error(), "icsneoGetErrorInfo() Failed"); } - Py_END_ALLOW_THREADS - PyObject* tuple = Py_BuildValue("i, s, s, i, i", errors[i], description_short, description_long, severity, restart_needed); - + Py_END_ALLOW_THREADS; + PyObject* tuple = Py_BuildValue( + "i, s, s, i, i", errors[i], description_short, description_long, severity, restart_needed); + PyList_Append(list, tuple); Py_XDECREF(tuple); } return list; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1174,7 +1202,8 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) return NULL; } if (obj && !PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "First argument must be of " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " type"); + return set_ics_exception(exception_runtime_error(), + "First argument must be of " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " type"); } neo_device_object* neo_device = (neo_device_object*)obj; if (PyCallable_Check(callback) || PyObject_HasAttrString(callback, "message_callback")) { @@ -1186,10 +1215,10 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "Third argument must be of dictionary type"); } // Populate rc array from the python dictionary - SReflashChip_t rc[16] = {0}; + SReflashChip_t rc[16] = { 0 }; unsigned long reflash_count = 0; Py_ssize_t pos = 0; - PyObject* key, * value; + PyObject *key, *value; while (PyDict_Next(dict, &pos, &key, &value)) { unsigned long id = PyLong_AsUnsignedLong(key); char* path = PyUniStr_AsStrOrUTF8(value); @@ -1207,24 +1236,29 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) strcpy(rc[reflash_count].path, path); reflash_count++; } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function FlashDevice2(lib, "FlashDevice2"); - Py_BEGIN_ALLOW_THREADS + ice::Function + FlashDevice2(lib, "FlashDevice2"); + Py_BEGIN_ALLOW_THREADS; if (!FlashDevice2(0x3835C256, &(neo_device->dev), rc, reflash_count, 0, 0, 0, &message_callback)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "FlashDevice2() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1259,31 +1293,29 @@ PyObject* meth_set_reflash_callback(PyObject* self, PyObject* args) } else { msg_reflash_callback = callback; } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetReflashCallback(lib, "icsneoSetReflashCallback"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetReflashCallback( + lib, "icsneoSetReflashCallback"); + Py_BEGIN_ALLOW_THREADS; if (callback == Py_None) { if (!icsneoSetReflashCallback(NULL)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetReflashCallback() Failed"); } } else { if (!icsneoSetReflashCallback(&message_reflash_callback)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetReflashCallback() Failed"); } } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1300,8 +1332,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) // 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"); - if (!settings) - { + if (!settings) { return NULL; } // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&settings_buffer) when done. @@ -1312,11 +1343,11 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) if (!PyNeoDevice_CheckExact(obj)) { PyBuffer_Release(&settings_buffer); Py_DECREF(settings); - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { PyBuffer_Release(&settings_buffer); @@ -1325,35 +1356,34 @@ 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 + Py_BEGIN_ALLOW_THREADS; EDeviceSettingsType* setting_type = &((SDeviceSettings*)settings_buffer.buf)->DeviceSettingType; - if (device_type_override == -1) - { - // int _stdcall icsneoGetDeviceSettingsType(void* hObject, EPlasmaIonVnetChannel_t vnetSlot, EDeviceSettingsType* pDeviceSettingsType) - ice::Function icsneoGetDeviceSettingsType(lib, "icsneoGetDeviceSettingsType"); - if (!icsneoGetDeviceSettingsType(handle, vnet_slot, setting_type)) - { - Py_BLOCK_THREADS + if (device_type_override == -1) { + // int _stdcall icsneoGetDeviceSettingsType(void* hObject, EPlasmaIonVnetChannel_t vnetSlot, + // EDeviceSettingsType* pDeviceSettingsType) + ice::Function + icsneoGetDeviceSettingsType(lib, "icsneoGetDeviceSettingsType"); + if (!icsneoGetDeviceSettingsType(handle, vnet_slot, setting_type)) { + Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); Py_DECREF(settings); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceSettingsType() Failed"); } } - // int _stdcall icsneoGetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int iNumBytes, EPlasmaIonVnetChannel_t vnetSlot) - ice::Function icsneoGetDeviceSettings(lib, "icsneoGetDeviceSettings"); - if (!icsneoGetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, vnet_slot)) - { - Py_BLOCK_THREADS + // int _stdcall icsneoGetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int iNumBytes, + // EPlasmaIonVnetChannel_t vnetSlot) + ice::Function + icsneoGetDeviceSettings(lib, "icsneoGetDeviceSettings"); + if (!icsneoGetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, vnet_slot)) { + Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); Py_DECREF(settings); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceSettings() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&settings_buffer); return settings; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { PyBuffer_Release(&settings_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -1370,34 +1400,35 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoSetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int bSaveToEEPROM, EPlasmaIonVnetChannel_t vnetSlot) - // int _stdcall icsneoSetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int iNumBytes, int bSaveToEEPROM, EPlasmaIonVnetChannel_t vnetSlot) - ice::Function icsneoSetDeviceSettings(lib, "icsneoSetDeviceSettings"); + // int _stdcall icsneoSetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int bSaveToEEPROM, + // EPlasmaIonVnetChannel_t vnetSlot) int _stdcall icsneoSetDeviceSettings(void* hObject, SDeviceSettings* + // pSettings, int iNumBytes, int bSaveToEEPROM, EPlasmaIonVnetChannel_t vnetSlot) + ice::Function + icsneoSetDeviceSettings(lib, "icsneoSetDeviceSettings"); Py_buffer settings_buffer = {}; PyObject_GetBuffer(settings, &settings_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); - Py_BEGIN_ALLOW_THREADS - if (!icsneoSetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, save_to_eeprom, vnet_slot)) { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoSetDeviceSettings( + handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, save_to_eeprom, vnet_slot)) { + Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoSetDeviceSettings() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&settings_buffer); Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1410,36 +1441,36 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - int errors[600] = {0}; + int errors[600] = { 0 }; int error_count = 600; PyObject* list = PyList_New(0); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoLoadDefaultSettings(PyNeoDevice_GetNeoDevice(obj)->handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoLoadDefaultSettings() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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) +PyObject* meth_read_sdcard(PyObject* self, + PyObject* args) // icsneoReadSDCard(int hObject,unsigned long iSectorIndex,unsigned char + // *data, unsigned long *bytesRead) { PyObject* obj = NULL; unsigned long index = 0; @@ -1448,43 +1479,44 @@ PyObject* meth_read_sdcard(PyObject* self, PyObject* args) // icsneoReadSDCard(i return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } // We only read 512 bytes internally, x4 for future compatibility? - unsigned char data[2048] = {0}; - try - { + unsigned char data[2048] = { 0 }; + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoReadSDCard(lib, "icsneoReadSDCard"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoReadSDCard( + lib, "icsneoReadSDCard"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoReadSDCard(PyNeoDevice_GetNeoDevice(obj)->handle, index, data, &size)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoReadSDCard() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyObject* tuple = PyTuple_New(size); if (!tuple) { return NULL; } - for (unsigned long i=0; i < size; ++i) { + for (unsigned long i = 0; i < size; ++i) { PyTuple_SetItem(tuple, i, PyLong_FromLong(data[i])); } PyObject* byte_array = PyByteArray_FromObject(tuple); Py_DECREF(tuple); return byte_array; - } - catch (ice::Exception& ex) - { + } 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) +PyObject* meth_write_sdcard( + PyObject* self, + PyObject* args) // icsneoWriteSDCard(int hObject,unsigned long iSectorIndex,const unsigned char *data) { PyObject* obj = NULL; unsigned long index = 0; @@ -1493,7 +1525,8 @@ PyObject* meth_write_sdcard(PyObject* self, PyObject* args) // icsneoWriteSDCard return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } if (!PyByteArray_CheckExact(ba_obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be a bytearray"); @@ -1502,24 +1535,23 @@ PyObject* meth_write_sdcard(PyObject* self, PyObject* args) // icsneoWriteSDCard return set_ics_exception(exception_runtime_error(), "bytearray must be 512 in length"); } // We only read 512 bytes internally, x4 for future compatibility? - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoWriteSDCard(lib, "icsneoWriteSDCard"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoWriteSDCard(PyNeoDevice_GetNeoDevice(obj)->handle, index, (unsigned char*)PyByteArray_AsString(ba_obj))) { - Py_BLOCK_THREADS + ice::Function icsneoWriteSDCard(lib, + "icsneoWriteSDCard"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoWriteSDCard( + PyNeoDevice_GetNeoDevice(obj)->handle, index, (unsigned char*)PyByteArray_AsString(ba_obj))) { + Py_BLOCK_THREADS; return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoWriteSDCard() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1527,7 +1559,7 @@ PyObject* meth_write_sdcard(PyObject* self, PyObject* args) // icsneoWriteSDCard PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObject* keywords) { - //int PyArg_ParseTupleAndKeywords(PyObject *args, PyObject *kw, const char *format, char *keywords[], ...) + // int PyArg_ParseTupleAndKeywords(PyObject *args, PyObject *kw, const char *format, char *keywords[], ...) PyObject* obj = NULL; int relay1 = 0; int relay2 = 0; @@ -1539,23 +1571,37 @@ PyObject* meth_create_neovi_radio_message(PyObject* self, PyObject* args, PyObje int msb = 0; int lsb = 0; int analog = 0; - int relay_timeout=0; - 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), + int relay_timeout = 0; + 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, keywords, arg_parse("|bbbbbbbiiii:", __FUNCTION__), kwords, &relay1, &relay2, - &relay3, &relay4, &relay5, &led5, &led6, &msb, &lsb, &analog, &relay_timeout)) { + if (!PyArg_ParseTupleAndKeywords(args, + keywords, + arg_parse("|bbbbbbbiiii:", __FUNCTION__), + kwords, + &relay1, + &relay2, + &relay3, + &relay4, + &relay5, + &led5, + &led6, + &msb, + &lsb, + &analog, + &relay_timeout)) { return NULL; } int byte1 = 0; - byte1 |= (relay1 ? 1:0) << 6; - byte1 |= (relay2 ? 1:0) << 5; - byte1 |= (relay3 ? 1:0) << 4; - byte1 |= (relay4 ? 1:0) << 3; - byte1 |= (relay5 ? 1:0) << 2; - byte1 |= (led5 ? 1:0) << 1; - byte1 |= (led6 ? 1:0) << 0; + byte1 |= (relay1 ? 1 : 0) << 6; + byte1 |= (relay2 ? 1 : 0) << 5; + byte1 |= (relay3 ? 1 : 0) << 4; + byte1 |= (relay4 ? 1 : 0) << 3; + byte1 |= (relay5 ? 1 : 0) << 2; + byte1 |= (led5 ? 1 : 0) << 1; + byte1 |= (led6 ? 1 : 0) << 0; int byte2 = msb & 0xFF; int byte3 = lsb & 0xFF; int byte4 = analog & 0xFF; @@ -1571,27 +1617,25 @@ PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStartFBlock(lib, "icsneoScriptStartFBlock"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptStartFBlock(lib, "icsneoScriptStartFBlock"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStartFBlock(handle, index)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptStartFBlock() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1605,27 +1649,25 @@ PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStopFBlock(lib, "icsneoScriptStopFBlock"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptStopFBlock(lib, "icsneoScriptStopFBlock"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStopFBlock(handle, index)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptStopFBlock() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1639,34 +1681,33 @@ PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptGetFBlockStatus(lib, "icsneoScriptGetFBlockStatus"); + ice::Function icsneoScriptGetFBlockStatus( + lib, "icsneoScriptGetFBlockStatus"); int status = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptGetFBlockStatus(handle, index, &status)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptGetFBlockStatus() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", status == 1); - } - catch (ice::Exception& ex) - { + } 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 +PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // ScriptReadAppSignal { int index; PyObject* obj = NULL; @@ -1674,34 +1715,33 @@ PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) //Script return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptReadAppSignal(lib, "icsneoScriptReadAppSignal"); + ice::Function icsneoScriptReadAppSignal( + lib, "icsneoScriptReadAppSignal"); double value = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptReadAppSignal(handle, index, &value)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptReadAppSignal() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("d", value); - } - catch (ice::Exception& ex) - { + } 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 +PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // ScriptWriteAppSignal { int index; PyObject* obj = NULL; @@ -1710,33 +1750,32 @@ PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) //Scrip return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptWriteAppSignal(lib, "icsneoScriptWriteAppSignal"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptWriteAppSignal( + lib, "icsneoScriptWriteAppSignal"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptWriteAppSignal(handle, index, value)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptWriteAppSignal() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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 +PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // ScriptReadTxMessage { int index; PyObject* obj = NULL; @@ -1745,55 +1784,55 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) //Script return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { 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); 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_J1850_OBJECT_NAME); + // 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_J1850_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptReadTxMessage(handle, index, &PySpyMessageJ1850_GetObject(msg)->msg)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptReadTxMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; } else { PyObject* 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); + // 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); } - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptReadTxMessage(handle, index, &PySpyMessage_GetObject(msg)->msg)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptReadTxMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; } return msg; - } - catch (ice::Exception& ex) - { + } 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 +PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // ScriptReadRxMessage { int index; PyObject* obj = NULL; @@ -1802,68 +1841,73 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) //Script return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptReadRxMessage(lib, "icsneoScriptReadRxMessage"); + ice::Function icsneoScriptReadRxMessage( + lib, "icsneoScriptReadRxMessage"); PyObject* msg = NULL; PyObject* msg_mask = NULL; if (j1850) { msg = PyObject_CallObject((PyObject*)&spy_message_j1850_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_J1850_OBJECT_NAME); + // 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_J1850_OBJECT_NAME); } msg_mask = PyObject_CallObject((PyObject*)&spy_message_j1850_object_type, NULL); if (!msg_mask) { - // 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_J1850_OBJECT_NAME); + // 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_J1850_OBJECT_NAME); } - Py_BEGIN_ALLOW_THREADS - if (!icsneoScriptReadRxMessage(handle, index, &PySpyMessageJ1850_GetObject(msg_mask)->msg, &PySpyMessageJ1850_GetObject(msg_mask)->msg)) { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoScriptReadRxMessage(handle, + index, + &PySpyMessageJ1850_GetObject(msg_mask)->msg, + &PySpyMessageJ1850_GetObject(msg_mask)->msg)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptReadRxMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; } else { PyObject* 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); + // 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); if (!msg_mask) { - // 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); + // 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); } - Py_BEGIN_ALLOW_THREADS - if (!icsneoScriptReadRxMessage(handle, index, &PySpyMessage_GetObject(msg)->msg, &PySpyMessage_GetObject(msg_mask)->msg)) { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoScriptReadRxMessage( + handle, index, &PySpyMessage_GetObject(msg)->msg, &PySpyMessage_GetObject(msg_mask)->msg)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptReadRxMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; } return Py_BuildValue("(O,O)", msg, msg_mask); - } - catch (ice::Exception& ex) - { + } 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 +PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsneoScriptWriteTxMessage { int index; PyObject* obj = NULL; @@ -1873,7 +1917,8 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) //icsne return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; void* msg = NULL; @@ -1881,40 +1926,40 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) //icsne if (j1850) { // We are going to use icsSpyMessageJ1850 objects here. if (!PySpyMessageJ1850_CheckExact(msg_obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME); } msg = (void*)&PySpyMessageJ1850_GetObject(msg_obj)->msg; } else { // We are going to use icsSpyMessage objects here. if (!PySpyMessage_CheckExact(msg_obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); } msg = (void*)&PySpyMessage_GetObject(msg_obj)->msg; } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptWriteTxMessage(lib, "icsneoScriptWriteTxMessage"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptWriteTxMessage( + lib, "icsneoScriptWriteTxMessage"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptWriteTxMessage(handle, index, msg)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptWriteTxMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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 +PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsneoScriptWriteRxMessage { int index; PyObject* obj = NULL; @@ -1925,7 +1970,8 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) //icsne return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; void* msg = NULL; @@ -1933,7 +1979,8 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) //icsne if (j1850) { // We are going to use icsSpyMessageJ1850 objects here. if (!PySpyMessageJ1850_CheckExact(msg_obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME); } msg = (void*)&PySpyMessageJ1850_GetObject(msg_obj)->msg; if (!PySpyMessageJ1850_CheckExact(msg_mask_obj)) { @@ -1945,7 +1992,8 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) //icsne } else { // We are going to use icsSpyMessage objects here. if (!PySpyMessage_CheckExact(msg_obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); } msg = (void*)&PySpyMessage_GetObject(msg_obj)->msg; if (!PySpyMessage_CheckExact(msg_mask_obj)) { @@ -1955,21 +2003,19 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) //icsne msg_mask = (void*)&PySpyMessage_GetObject(msg_mask_obj)->msg; } } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptWriteRxMessage(lib, "icsneoScriptWriteRxMessage"); + ice::Function icsneoScriptWriteRxMessage( + lib, "icsneoScriptWriteRxMessage"); if (!icsneoScriptWriteRxMessage(handle, index, msg, msg_mask)) { return set_ics_exception(exception_runtime_error(), "icsneoScriptWriteRxMessage() Failed"); } Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -1982,17 +2028,18 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetPerformanceParameters(lib, "icsneoGetPerformanceParameters"); + ice::Function + icsneoGetPerformanceParameters(lib, "icsneoGetPerformanceParameters"); int buffer_count = 0; int buffer_max = 0; int overflow_count = 0; @@ -2001,16 +2048,30 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) int reserved3 = 0; int reserved4 = 0; int reserved5 = 0; - Py_BEGIN_ALLOW_THREADS - if (!icsneoGetPerformanceParameters(handle, &buffer_count, &buffer_max, &overflow_count, &reserved1, &reserved2, &reserved3, &reserved4, &reserved5)) { - Py_BLOCK_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGetPerformanceParameters(handle, + &buffer_count, + &buffer_max, + &overflow_count, + &reserved1, + &reserved2, + &reserved3, + &reserved4, + &reserved5)) { + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetPerformanceParameters() Failed"); } - Py_END_ALLOW_THREADS - return Py_BuildValue("(i,i,i,i,i,i,i,i)", buffer_count, buffer_max, overflow_count, reserved1, reserved2, reserved3, reserved4, reserved5); - } - catch (ice::Exception& ex) - { + Py_END_ALLOW_THREADS; + return Py_BuildValue("(i,i,i,i,i,i,i,i)", + buffer_count, + buffer_max, + overflow_count, + reserved1, + reserved2, + reserved3, + reserved4, + reserved5); + } 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!"); @@ -2023,27 +2084,25 @@ PyObject* meth_validate_hobject(PyObject* self, PyObject* args) return NULL; } if (!PyLong_CheckExact(obj) && !PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " or Integer"); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " or Integer"); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoValidateHObject(lib, "icsneoValidateHObject"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoValidateHObject(lib, "icsneoValidateHObject"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoValidateHObject(handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return Py_BuildValue("b", false); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", true); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2056,38 +2115,42 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); - ice::Function icsneoGetErrorInfo(lib, "icsneoGetErrorInfo"); + ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); + ice::Function icsneoGetErrorInfo( + lib, "icsneoGetErrorInfo"); int error = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetLastAPIError(handle, &error)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetLastAPIError() Failed"); } - Py_END_ALLOW_THREADS - char description_short[255] = {0}; - char description_long[255] = {0}; + Py_END_ALLOW_THREADS; + char description_short[255] = { 0 }; + char description_long[255] = { 0 }; int description_short_length = 255; int description_long_length = 255; int severity = 0, restart_needed = 0; - if (!icsneoGetErrorInfo(error, description_short, description_long, - &description_short_length, &description_long_length, &severity, &restart_needed)) { + if (!icsneoGetErrorInfo(error, + description_short, + description_long, + &description_short_length, + &description_long_length, + &severity, + &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); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2095,28 +2158,24 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) PyObject* meth_get_dll_version(PyObject* self, PyObject* args) { - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetDLLVersion(lib, "icsneoGetDLLVersion"); + ice::Function icsneoGetDLLVersion(lib, "icsneoGetDLLVersion"); int result = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; result = icsneoGetDLLVersion(); - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("i", result); - } - catch (ice::Exception& ex) - { + } 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) { PyObject* obj = NULL; @@ -2124,28 +2183,26 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetSerialNumber(lib, "icsneoGetSerialNumber"); + ice::Function icsneoGetSerialNumber(lib, "icsneoGetSerialNumber"); unsigned int serial = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetSerialNumber(handle, &serial)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetSerialNumber() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("i", serial); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2158,37 +2215,34 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { 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) - { + if (!info) { return NULL; } Py_buffer info_buffer = {}; PyObject_GetBuffer(info, &info_buffer, PyBUF_SIMPLE); - - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetHWFirmwareInfo(handle, (stAPIFirmwareInfo*)info_buffer.buf)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&info_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetHWFirmwareInfo() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return info; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2212,7 +2266,6 @@ PyObject* meth_base36enc(PyObject* self, PyObject* args) return Py_BuildValue("s", &buffer[offset]); } - PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) { PyObject* obj = NULL; @@ -2223,27 +2276,26 @@ PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestEnterSleepMode(lib, "icsneoRequestEnterSleepMode"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoRequestEnterSleepMode( + lib, "icsneoRequestEnterSleepMode"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestEnterSleepMode(handle, timeout_ms, mode, reserved)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoRequestEnterSleepMode() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", true); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2256,29 +2308,27 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj) && !PyLong_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = 0; if (PyNeoDevice_CheckExact(obj)) handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetContext(lib, "icsneoSetContext"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetContext(lib, "icsneoSetContext"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetContext(handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetContext() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", true); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2291,64 +2341,60 @@ PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj) && !PyLong_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = 0; if (PyNeoDevice_CheckExact(obj)) handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoForceFirmwareUpdate(lib, "icsneoForceFirmwareUpdate"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoForceFirmwareUpdate(lib, "icsneoForceFirmwareUpdate"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoForceFirmwareUpdate(handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return Py_BuildValue("b", false); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", true); - } - catch (ice::Exception& ex) - { + } 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) -{ +{ PyObject* obj = NULL; if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } if (!PyNeoDevice_CheckExact(obj) && !PyLong_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = 0; if (PyNeoDevice_CheckExact(obj)) handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoFirmwareUpdateRequired(lib, "icsneoFirmwareUpdateRequired"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoFirmwareUpdateRequired(lib, "icsneoFirmwareUpdateRequired"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoFirmwareUpdateRequired(handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return Py_BuildValue("b", false); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", true); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2361,34 +2407,32 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { 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) - { + if (!info) { return NULL; } Py_buffer info_buffer = {}; PyObject_GetBuffer(info, &info_buffer, PyBUF_SIMPLE); - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetDLLFirmwareInfo(handle, (stAPIFirmwareInfo*)info_buffer.buf)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetDLLFirmwareInfo() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return info; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2402,27 +2446,26 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetBackupPowerEnabled(lib, "icsneoGetBackupPowerEnabled"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoGetBackupPowerEnabled( + lib, "icsneoGetBackupPowerEnabled"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBackupPowerEnabled(handle, enabled)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetBackupPowerEnabled() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", enabled); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2436,27 +2479,26 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBackupPowerEnabled(lib, "icsneoSetBackupPowerEnabled"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetBackupPowerEnabled( + lib, "icsneoSetBackupPowerEnabled"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBackupPowerEnabled(handle, enabled)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetBackupPowerEnabled() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", enabled); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2470,33 +2512,32 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetBackupPowerReady(lib, "icsneoGetBackupPowerReady"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoGetBackupPowerReady(lib, + "icsneoGetBackupPowerReady"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBackupPowerReady(handle, enabled)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetBackupPowerReady() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("b", enabled); - } - catch (ice::Exception& ex) - { + } 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 +// icsneoScriptLoadReadBin PyObject* meth_load_readbin(PyObject* self, PyObject* args) { PyObject* arg_data = NULL; @@ -2507,9 +2548,10 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; + ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; long fsize; unsigned char* data = NULL; int data_size = 0; @@ -2525,7 +2567,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } FILE* f; f = fopen(file_name, "rb"); - if (!f) { + if (!f) { std::stringstream ss; ss << "Failed to open Readbin: '" << file_name << "'. Please make sure path exists"; return set_ics_exception_dev(exception_runtime_error(), obj, (char*)ss.str().c_str()); @@ -2533,7 +2575,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) fseek(f, 0, SEEK_END); fsize = ftell(f); rewind(f); - data = (unsigned char*) malloc(sizeof(char)*fsize); + data = (unsigned char*)malloc(sizeof(char) * fsize); data_size = (int)fread(data, 1, fsize, f); fclose(f); if (fsize != data_size) { @@ -2541,12 +2583,13 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } } else if (PyTuple_CheckExact(arg_data)) { Py_ssize_t tuple_size = PyTuple_Size(arg_data); - data = (unsigned char*) malloc(sizeof(char)*tuple_size); + data = (unsigned char*)malloc(sizeof(char) * tuple_size); // Move tuple data into array - for (int i=0; i < tuple_size; ++i) { + for (int i = 0; i < tuple_size; ++i) { PyObject* value = PyTuple_GET_ITEM(arg_data, i); if (!PyLong_CheckExact(value)) { - return set_ics_exception_dev(exception_runtime_error(), obj, "Failed to convert tuple data. Tuple data must be integer type"); + return set_ics_exception_dev( + exception_runtime_error(), obj, "Failed to convert tuple data. Tuple data must be integer type"); } data[i] = (unsigned char)PyLong_AsLong(PyTuple_GET_ITEM(arg_data, i)); } @@ -2555,70 +2598,69 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } else { return set_ics_exception_dev(exception_runtime_error(), obj, "Argument must be filepath or tuple"); } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptLoadReadBin(lib, "icsneoScriptLoadReadBin"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoScriptLoadReadBin( + lib, "icsneoScriptLoadReadBin"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptLoadReadBin(handle, data, data_size, location)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoScriptLoadReadBin() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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) +// void* hObject, unsigned long ulNetworkID, stCM_ISO157652_TxMessage *pMsg, unsigned long ulBlockingTimeout) PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) { PyObject* obj = NULL; unsigned long ulNetworkID = 0; PyObject* obj_tx_msg = NULL; unsigned long ulBlockingTimeout = 0; - if (!PyArg_ParseTuple(args, arg_parse("OkOk:", __FUNCTION__), &obj, &ulNetworkID, &obj_tx_msg, &ulBlockingTimeout)) { + if (!PyArg_ParseTuple( + args, arg_parse("OkOk:", __FUNCTION__), &obj, &ulNetworkID, &obj_tx_msg, &ulBlockingTimeout)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } - if (_isPythonModuleObject_IsInstance(obj_tx_msg, "ics.structures.st_cm_iso157652_tx_message", "st_cm_iso157652_tx_message") != 1) - { + if (_isPythonModuleObject_IsInstance( + obj_tx_msg, "ics.structures.st_cm_iso157652_tx_message", "st_cm_iso157652_tx_message") != 1) { return NULL; } Py_buffer obj_tx_msg_buffer = {}; PyObject_GetBuffer(obj_tx_msg, &obj_tx_msg_buffer, PyBUF_SIMPLE); ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoISO15765_TransmitMessage(lib, "icsneoISO15765_TransmitMessage"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoISO15765_TransmitMessage(handle, ulNetworkID, (stCM_ISO157652_TxMessage*)obj_tx_msg_buffer.buf, ulBlockingTimeout)) { - Py_BLOCK_THREADS + ice::Function + icsneoISO15765_TransmitMessage(lib, "icsneoISO15765_TransmitMessage"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoISO15765_TransmitMessage( + handle, ulNetworkID, (stCM_ISO157652_TxMessage*)obj_tx_msg_buffer.buf, ulBlockingTimeout)) { + Py_BLOCK_THREADS; PyBuffer_Release(&obj_tx_msg_buffer); return set_ics_exception(exception_runtime_error(), "icsneoISO15765_TransmitMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&obj_tx_msg_buffer); return Py_BuildValue("b", true); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2629,44 +2671,43 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) PyObject* obj = NULL; PyObject* obj_rx_msg = NULL; unsigned int iIndex = 0; - //PyObject* obj_rx_msg = PyObject_CallObject((PyObject*)&cm_iso157652_rx_message_object_type, NULL); + // PyObject* obj_rx_msg = PyObject_CallObject((PyObject*)&cm_iso157652_rx_message_object_type, NULL); if (!PyArg_ParseTuple(args, arg_parse("OiO:", __FUNCTION__), &obj, &iIndex, &obj_rx_msg)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } - if (_isPythonModuleObject_IsInstance(obj_rx_msg, "ics.structures.st_cm_iso157652_rx_message", "st_cm_iso157652_rx_message") != 1) - { + if (_isPythonModuleObject_IsInstance( + obj_rx_msg, "ics.structures.st_cm_iso157652_rx_message", "st_cm_iso157652_rx_message") != 1) { return NULL; } Py_buffer obj_rx_msg_buffer = {}; PyObject_GetBuffer(obj_rx_msg, &obj_rx_msg_buffer, PyBUF_SIMPLE); ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; PyBuffer_Release(&obj_rx_msg_buffer); return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - //stCM_ISO157652_RxMessage rx_msg_temp = {0}; - //memcpy(&rx_msg_temp, &(temp->s), sizeof(temp->s)); - ice::Function icsneoISO15765_ReceiveMessage(lib, "icsneoISO15765_ReceiveMessage"); - Py_BEGIN_ALLOW_THREADS + // stCM_ISO157652_RxMessage rx_msg_temp = {0}; + // memcpy(&rx_msg_temp, &(temp->s), sizeof(temp->s)); + ice::Function icsneoISO15765_ReceiveMessage( + lib, "icsneoISO15765_ReceiveMessage"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_ReceiveMessage(handle, iIndex, (stCM_ISO157652_RxMessage*)obj_rx_msg_buffer.buf)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&obj_rx_msg_buffer); return set_ics_exception(exception_runtime_error(), "icsneoISO15765_ReceiveMessage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&obj_rx_msg_buffer); Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { PyBuffer_Release(&obj_rx_msg_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -2681,27 +2722,26 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoISO15765_EnableNetworks(lib, "icsneoISO15765_EnableNetworks"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoISO15765_EnableNetworks( + lib, "icsneoISO15765_EnableNetworks"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_EnableNetworks(handle, networks)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoISO15765_EnableNetworks() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2714,27 +2754,25 @@ PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoISO15765_DisableNetworks(lib, "icsneoISO15765_DisableNetworks"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoISO15765_DisableNetworks(lib, "icsneoISO15765_DisableNetworks"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_DisableNetworks(handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoISO15765_DisableNetworks() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2748,27 +2786,26 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetActiveVNETChannel(lib, "icsneoGetActiveVNETChannel"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoGetActiveVNETChannel( + lib, "icsneoGetActiveVNETChannel"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetActiveVNETChannel(handle, &channel)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetActiveVNETChannel() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("i", channel); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2782,27 +2819,26 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetActiveVNETChannel(lib, "icsneoSetActiveVNETChannel"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetActiveVNETChannel( + lib, "icsneoSetActiveVNETChannel"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetActiveVNETChannel(handle, channel)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetActiveVNETChannel() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("i", channel); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2817,27 +2853,25 @@ PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBitRate(lib, "icsneoSetBitRate"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetBitRate(lib, "icsneoSetBitRate"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBitRate(handle, bitrate, net_id)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetBitRate() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2852,27 +2886,25 @@ PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetFDBitRate(lib, "icsneoSetFDBitRate"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetFDBitRate(lib, "icsneoSetFDBitRate"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetFDBitRate(handle, bitrate, net_id)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetFDBitRate() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2888,27 +2920,25 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBitRateEx(handle, bitrate, net_id, options)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoSetBitRateEx() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2922,32 +2952,32 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } if (!PySpyMessage_CheckExact(obj_msg) && !PySpyMessageJ1850_CheckExact(obj_msg)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); icsSpyMessage* msg = &PySpyMessage_GetObject(obj_msg)->msg; - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetTimeStampForMsg(lib, "icsneoGetTimeStampForMsg"); + ice::Function icsneoGetTimeStampForMsg( + lib, "icsneoGetTimeStampForMsg"); double timestamp = 0; - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetTimeStampForMsg(handle, msg, ×tamp)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetTimeStampForMsg() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("d", timestamp); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -2961,47 +2991,43 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } PyObject* device_status = _getPythonModuleObject("ics.structures.ics_device_status", "ics_device_status"); - if (!device_status) - { + if (!device_status) { return NULL; } Py_buffer device_status_buffer = {}; PyObject_GetBuffer(device_status, &device_status_buffer, PyBUF_SIMPLE); 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 + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetDeviceStatus(handle, (icsDeviceStatus*)device_status_buffer.buf, &device_status_size)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&device_status_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceStatus() Failed"); } - if (throw_exception_on_size_mismatch) - { - if (device_status_size != device_status_buffer.len) - { - Py_BLOCK_THREADS + if (throw_exception_on_size_mismatch) { + if (device_status_size != device_status_buffer.len) { + Py_BLOCK_THREADS; PyBuffer_Release(&device_status_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceStatus() API mismatch detected!"); } } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return device_status; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3010,17 +3036,17 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) PyObject* meth_enable_network_com(PyObject* self, PyObject* args) { PyObject* obj = NULL; - bool enable = true; + bool enable = true; long net_id = -1; if (!PyArg_ParseTuple(args, arg_parse("O|bk:", __FUNCTION__), &obj, &enable, &net_id)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; @@ -3028,25 +3054,23 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) } // int _stdcall icsneoEnableNetworkCom(void* hObject, int iEnable) // int _stdcall icsneoEnableNetworkComEx(void* hObject, int iEnable, int iNetId) - ice::Function icsneoEnableNetworkCom(lib, "icsneoEnableNetworkCom"); - ice::Function icsneoEnableNetworkComEx(lib, "icsneoEnableNetworkComEx"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoEnableNetworkCom(lib, "icsneoEnableNetworkCom"); + ice::Function icsneoEnableNetworkComEx(lib, "icsneoEnableNetworkComEx"); + Py_BEGIN_ALLOW_THREADS; if (net_id == -1) { if (!icsneoEnableNetworkCom(handle, enable)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoEnableNetworkCom() Failed"); } } else { if (!icsneoEnableNetworkComEx(handle, enable, net_id)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoEnableNetworkComEx() Failed"); } } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3061,28 +3085,27 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoEnableBusVoltageMonitor(void* hObject, unsigned int enable, unsigned int reserved) - ice::Function icsneoEnableBusVoltageMonitor(lib, "icsneoEnableBusVoltageMonitor"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoEnableBusVoltageMonitor( + lib, "icsneoEnableBusVoltageMonitor"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoEnableBusVoltageMonitor(handle, enable, reserved)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoEnableBusVoltageMonitor() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3096,11 +3119,11 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { unsigned long mV = 0; ice::Library* lib = dll_get_library(); if (!lib) { @@ -3108,17 +3131,16 @@ 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"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoGetBusVoltage( + lib, "icsneoGetBusVoltage"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBusVoltage(handle, &mV, reserved)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGetBusVoltage() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; return Py_BuildValue("i", mV); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3143,36 +3165,36 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) // TODO: Documentation doesn't say what return value is. if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoReadJupiterFirmware(void* hObject, char* fileData, size_t* fileDataSize, EPlasmaIonVnetChannel_t channel) - ice::Function icsneoReadJupiterFirmware(lib, "icsneoReadJupiterFirmware"); + // int __stdcall icsneoReadJupiterFirmware(void* hObject, char* fileData, size_t* fileDataSize, + // EPlasmaIonVnetChannel_t channel) + ice::Function icsneoReadJupiterFirmware( + lib, "icsneoReadJupiterFirmware"); // Grab the ByteArray Buffer Object Py_buffer ba_buffer = {}; PyObject_GetBuffer(ba, &ba_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoReadJupiterFirmware(handle, (char*)ba_buffer.buf, &fileSize, channel)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&ba_buffer); return set_ics_exception(exception_runtime_error(), "icsneoReadJupiterFirmware() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&ba_buffer); return Py_BuildValue("Oi", ba, fileSize); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3190,64 +3212,60 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "Argument must be of Bytes type "); } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoWriteJupiterFirmware(void* hObject, char* fileData, size_t fileDataSize, EPlasmaIonVnetChannel_t channel) - ice::Function icsneoWriteJupiterFirmware(lib, "icsneoWriteJupiterFirmware"); - + // int __stdcall icsneoWriteJupiterFirmware(void* hObject, char* fileData, size_t fileDataSize, + // EPlasmaIonVnetChannel_t channel) + ice::Function icsneoWriteJupiterFirmware( + lib, "icsneoWriteJupiterFirmware"); + // Convert the object to a bytes object PyObject* bytes = PyBytes_FromObject(bytes_obj); // Grab the byte size Py_ssize_t bsize = PyBytes_Size(bytes); // Grab the data out of the bytes char* bytes_str = PyBytes_AsString(bytes); - if (!bytes_str) - { + if (!bytes_str) { return NULL; } - + // Grab the ByteArray Buffer Object - //Py_buffer bytes_buffer = {}; - //PyObject_GetBuffer(bytes, &bytes_buffer, PyBUF_C_CONTIGUOUS); + // Py_buffer bytes_buffer = {}; + // PyObject_GetBuffer(bytes, &bytes_buffer, PyBUF_C_CONTIGUOUS); - Py_BEGIN_ALLOW_THREADS - //if (!icsneoWriteJupiterFirmware(handle, (char*)bytes_buffer.buf, bytes_buffer.len, channel)) { + Py_BEGIN_ALLOW_THREADS; + // if (!icsneoWriteJupiterFirmware(handle, (char*)bytes_buffer.buf, bytes_buffer.len, channel)) { if (!icsneoWriteJupiterFirmware(handle, bytes_str, bsize, channel)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; Py_DECREF(bytes); - //PyBuffer_Release(&bytes_buffer); + // PyBuffer_Release(&bytes_buffer); return set_ics_exception(exception_runtime_error(), "icsneoWriteJupiterFirmware() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_DECREF(bytes); - //PyBuffer_Release(&bytes_buffer); + // PyBuffer_Release(&bytes_buffer); Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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_override_library_name(PyObject* self, PyObject* args) { const char* name = NULL; if (!PyArg_ParseTuple(args, arg_parse("s:", __FUNCTION__), &name)) { return NULL; } - try - { + try { if (!dll_reinitialize((char*)name)) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); @@ -3258,9 +3276,7 @@ PyObject* meth_override_library_name(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3268,17 +3284,14 @@ PyObject* meth_override_library_name(PyObject* self, PyObject* args) PyObject* meth_get_library_path(PyObject* self) { - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } return Py_BuildValue("s", lib->getPath().c_str()); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3287,43 +3300,41 @@ PyObject* meth_get_library_path(PyObject* self) PyObject* meth_get_disk_details(PyObject* self, PyObject* args) { PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { 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) - { + if (!details) { return NULL; } Py_buffer details_buffer = {}; PyObject_GetBuffer(details, &details_buffer, PyBUF_SIMPLE); - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskDetails(handle, (SDiskDetails*)details_buffer.buf)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&details_buffer); Py_DECREF(details); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskDetails() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&details_buffer); return details; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3333,15 +3344,15 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) { PyObject* details = NULL; PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &details)) { + if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &details)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; @@ -3349,20 +3360,18 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) } Py_buffer details_buffer = {}; PyObject_GetBuffer(details, &details_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); - ice::Function icsneoRequestDiskFormat(lib, "icsneoRequestDiskFormat"); + ice::Function icsneoRequestDiskFormat(lib, "icsneoRequestDiskFormat"); - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskFormat(handle, (SDiskDetails*)details_buffer.buf)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&details_buffer); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskFormat() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&details_buffer); Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3371,32 +3380,30 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) { PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestDiskFormatCancel(lib, "icsneoRequestDiskFormatCancel"); + ice::Function icsneoRequestDiskFormatCancel(lib, "icsneoRequestDiskFormatCancel"); - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskFormatCancel(handle)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskFormatCancel() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3405,43 +3412,41 @@ PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) { PyObject* obj = NULL; - if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { + if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestDiskFormatProgress(lib, "icsneoRequestDiskFormatProgress"); + ice::Function icsneoRequestDiskFormatProgress( + lib, "icsneoRequestDiskFormatProgress"); PyObject* progress = _getPythonModuleObject("ics.structures.s_disk_format_progress", "s_disk_format_progress"); - if (!progress) - { + if (!progress) { return NULL; } Py_buffer progress_buffer = {}; PyObject_GetBuffer(progress, &progress_buffer, PyBUF_SIMPLE); - Py_BEGIN_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskFormatProgress(handle, (SDiskFormatProgress*)progress_buffer.buf)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; PyBuffer_Release(&progress_buffer); Py_DECREF(progress); return set_ics_exception(exception_runtime_error(), "icsneoRequestDiskFormatProgress() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&progress_buffer); return progress; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3455,27 +3460,25 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoEnableDOIPLine(lib, "icsneoEnableDOIPLine"); - Py_BEGIN_ALLOW_THREADS + ice::Function icsneoEnableDOIPLine(lib, "icsneoEnableDOIPLine"); + Py_BEGIN_ALLOW_THREADS; if (!icsneoEnableDOIPLine(handle, enable)) { - Py_BLOCK_THREADS + Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoEnableDOIPLine() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3490,28 +3493,27 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } unsigned int supported = 0; - ice::Function icsneoIsDeviceFeatureSupported(lib, "icsneoIsDeviceFeatureSupported"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoIsDeviceFeatureSupported(handle, (DeviceFeature)feature, &supported)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoIsDeviceFeatureSupported() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function icsneoIsDeviceFeatureSupported( + lib, "icsneoIsDeviceFeatureSupported"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoIsDeviceFeatureSupported(handle, (DeviceFeature)feature, &supported)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoIsDeviceFeatureSupported() Failed"); + } + Py_END_ALLOW_THREADS; return Py_BuildValue("I", supported); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3524,29 +3526,28 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - char pcbsn[32] = {0}; + char pcbsn[32] = { 0 }; size_t length = sizeof pcbsn / sizeof pcbsn[0]; - ice::Function icsneoGetPCBSerialNumber(lib, "icsneoGetPCBSerialNumber"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoGetPCBSerialNumber() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function icsneoGetPCBSerialNumber(lib, + "icsneoGetPCBSerialNumber"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoGetPCBSerialNumber() Failed"); + } + Py_END_ALLOW_THREADS; return Py_BuildValue("s", pcbsn); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3562,27 +3563,26 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetLedProperty(lib, "icsneoSetLedProperty"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoSetLedProperty(handle, led, prop, value)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoSetLedProperty() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function icsneoSetLedProperty( + lib, "icsneoSetLedProperty"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoSetLedProperty(handle, led, prop, value)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoSetLedProperty() Failed"); + } + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3600,34 +3600,63 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) bool bOverwriteDHCPSettings = false; uint32_t leaseTime; uint8_t reserved = 0; - if (!PyArg_ParseTuple(args, arg_parse("OIsssssbI|b:", __FUNCTION__), &obj, &NetworkID, &pDeviceIPAddress, &pSubnetmask, &pGateway, &pStartaddress, &pEndaddress, &bOverwriteDHCPSettings, &leaseTime, &reserved)) { + if (!PyArg_ParseTuple(args, + arg_parse("OIsssssbI|b:", __FUNCTION__), + &obj, + &NetworkID, + &pDeviceIPAddress, + &pSubnetmask, + &pGateway, + &pStartaddress, + &pEndaddress, + &bOverwriteDHCPSettings, + &leaseTime, + &reserved)) { return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoStartDHCPServer(void* hObject, unsigned int NetworkID, const char* pDeviceIPAddress,const char* pSubnetmask, - // const char* pGateway,const char* pStartaddress, - // const char* pEndaddress,bool bOverwriteDHCPSettings,uint32_t leaseTime,uint8_t reserved) - ice::Function icsneoStartDHCPServer(lib, "icsneoStartDHCPServer"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoStartDHCPServer(handle, NetworkID, pDeviceIPAddress, pSubnetmask, pGateway, pStartaddress, pEndaddress, bOverwriteDHCPSettings, leaseTime, reserved)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoStartDHCPServer() Failed"); - } - Py_END_ALLOW_THREADS + // int _stdcall icsneoStartDHCPServer(void* hObject, unsigned int NetworkID, const char* pDeviceIPAddress,const + // char* pSubnetmask, + // const char* pGateway,const char* pStartaddress, + // const char* pEndaddress,bool bOverwriteDHCPSettings,uint32_t leaseTime,uint8_t reserved) + ice::Function + icsneoStartDHCPServer(lib, "icsneoStartDHCPServer"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoStartDHCPServer(handle, + NetworkID, + pDeviceIPAddress, + pSubnetmask, + pGateway, + pStartaddress, + pEndaddress, + bOverwriteDHCPSettings, + leaseTime, + reserved)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoStartDHCPServer() Failed"); + } + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3641,27 +3670,25 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoStopDHCPServer(handle, NetworkID)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoStopDHCPServer() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoStopDHCPServer(handle, NetworkID)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoStopDHCPServer() Failed"); + } + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3676,27 +3703,26 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneowBMSManagerWriteLock(lib, "icsneowBMSManagerWriteLock"); - Py_BEGIN_ALLOW_THREADS - if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerWriteLock() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function + icsneowBMSManagerWriteLock(lib, "icsneowBMSManagerWriteLock"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerWriteLock() Failed"); + } + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3710,27 +3736,26 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) return NULL; } if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneowBMSManagerReset(lib, "icsneowBMSManagerReset"); - Py_BEGIN_ALLOW_THREADS - if (!icsneowBMSManagerReset(handle, manager)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerReset() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function icsneowBMSManagerReset( + lib, "icsneowBMSManagerReset"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneowBMSManagerReset(handle, manager)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneowBMSManagerReset() Failed"); + } + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3749,38 +3774,38 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoUartWrite(void* hObject, const EUartPort_t uart, const void* bData, const size_t bytesToSend, size_t* bytesActuallySent, uint8_t* flags) + // int _stdcall icsneoUartWrite(void* hObject, const EUartPort_t uart, const void* bData, const size_t + // bytesToSend, size_t* bytesActuallySent, uint8_t* flags) size_t bytesActuallySent = 0; - ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoUartWrite(handle, port, data.buf, data.len, &bytesActuallySent, &flags)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); - } - Py_END_ALLOW_THREADS + ice::Function + icsneoUartWrite(lib, "icsneoUartWrite"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoUartWrite(handle, port, data.buf, data.len, &bytesActuallySent, &flags)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); + } + Py_END_ALLOW_THREADS; if (check_size && data.len != bytesActuallySent) { - return set_ics_exception(exception_runtime_error(), "Bytes actually sent didn't match bytes to send length"); + return set_ics_exception(exception_runtime_error(), + "Bytes actually sent didn't match bytes to send length"); } return Py_BuildValue("i", bytesActuallySent); - } - catch (ice::Exception& ex) - { + } 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) { PyObject* obj = NULL; @@ -3792,15 +3817,15 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - uint8_t* buffer = (uint8_t*)malloc(bytesToRead*sizeof(uint8_t)); + uint8_t* buffer = (uint8_t*)malloc(bytesToRead * sizeof(uint8_t)); if (!buffer) { return NULL; } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { free(buffer); @@ -3809,24 +3834,24 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) 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, size_t* bytesActuallyRead, uint8_t* flags) - ice::Function icsneoUartRead(lib, "icsneoUartRead"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { - Py_BLOCK_THREADS - free(buffer); - buffer = NULL; - return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); - } - Py_END_ALLOW_THREADS + // 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"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { + Py_BLOCK_THREADS; + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), "icsneoUartRead() Failed"); + } + Py_END_ALLOW_THREADS; PyObject* ba_result = PyByteArray_FromStringAndSize((const char*)buffer, bytesActuallyRead); - //PyObject* value = Py_BuildValue("O", ba_result); + // PyObject* value = Py_BuildValue("O", ba_result); free(buffer); buffer = NULL; return ba_result; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { free(buffer); buffer = NULL; return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -3844,29 +3869,28 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + 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 icsneoUartSetBaudrate(void* hObject, const EUartPort_t uart, const uint32_t baudrate) - ice::Function icsneoUartSetBaudrate(lib, "icsneoUartSetBaudrate"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoUartSetBaudrate(handle, port, baudrate)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoUartSetBaudrate() Failed"); - } - Py_END_ALLOW_THREADS + // int _stdcall icsneoUartSetBaudrate(void* hObject, const EUartPort_t uart, const uint32_t baudrate) + ice::Function icsneoUartSetBaudrate( + lib, "icsneoUartSetBaudrate"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoUartSetBaudrate(handle, port, baudrate)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoUartSetBaudrate() Failed"); + } + Py_END_ALLOW_THREADS; Py_RETURN_NONE; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3881,30 +3905,29 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } uint32_t baudrate = 0; - //int _stdcall icsneoUartGetBaudrate(void* hObject, const EUartPort_t uart, uint32_t* baudrate) - ice::Function icsneoUartGetBaudrate(lib, "icsneoUartGetBaudrate"); - Py_BEGIN_ALLOW_THREADS - if (!icsneoUartGetBaudrate(handle, port, &baudrate)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoUartGetBaudrate() Failed"); - } - Py_END_ALLOW_THREADS + // int _stdcall icsneoUartGetBaudrate(void* hObject, const EUartPort_t uart, uint32_t* baudrate) + ice::Function icsneoUartGetBaudrate( + lib, "icsneoUartGetBaudrate"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoUartGetBaudrate(handle, port, &baudrate)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoUartGetBaudrate() Failed"); + } + Py_END_ALLOW_THREADS; return Py_BuildValue("I", baudrate); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3917,16 +3940,17 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char instanceIndex = 0; unsigned char functionIndex = 0; Py_buffer data = {}; - if (!PyArg_ParseTuple(args, arg_parse("Obbby*:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, &data)) { + if (!PyArg_ParseTuple( + args, arg_parse("Obbby*:", __FUNCTION__), &obj, &apiIndex, &instanceIndex, &functionIndex, &data)) { return NULL; } // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; @@ -3941,19 +3965,20 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned int length, unsigned char* functionError) */ - ice::Function icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); + ice::Function + icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); unsigned char functionError = 0; - Py_BEGIN_ALLOW_THREADS - if (!icsneoGenericAPISendCommand(handle, apiIndex, instanceIndex, functionIndex, (void*)data.buf, data.len, &functionError)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); - } - Py_END_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGenericAPISendCommand( + handle, apiIndex, instanceIndex, functionIndex, (void*)data.buf, data.len, &functionError)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); + } + Py_END_ALLOW_THREADS; return Py_BuildValue("i", functionError); - } - catch (ice::Exception& ex) - { + } 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!"); @@ -3970,15 +3995,15 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - unsigned char* buffer = (unsigned char*)malloc(length*sizeof(unsigned char)); + unsigned char* buffer = (unsigned char*)malloc(length * sizeof(unsigned char)); if (!buffer) { return NULL; } - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { free(buffer); @@ -3994,16 +4019,18 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) unsigned char* bData, unsigned int* length) */ - ice::Function icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); + ice::Function + icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); unsigned char functionIndex = 0; - Py_BEGIN_ALLOW_THREADS - if (!icsneoGenericAPIReadData(handle, apiIndex, instanceIndex, &functionIndex, buffer, &length)) { - Py_BLOCK_THREADS - free(buffer); - buffer = NULL; - return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIReadData() Failed"); - } - Py_END_ALLOW_THREADS + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGenericAPIReadData(handle, apiIndex, instanceIndex, &functionIndex, buffer, &length)) { + Py_BLOCK_THREADS; + free(buffer); + buffer = NULL; + return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIReadData() Failed"); + } + Py_END_ALLOW_THREADS; PyObject* ba = PyByteArray_FromStringAndSize((const char*)buffer, length); PyObject* value = Py_BuildValue("IO", functionIndex, ba); @@ -4011,9 +4038,7 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) free(buffer); buffer = NULL; return value; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { free(buffer); buffer = NULL; return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -4032,11 +4057,11 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) } // Get the device handle if (!PyNeoDevice_CheckExact(obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; @@ -4050,22 +4075,23 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) unsigned char* callbackError, unsigned char* finishedProcessing) */ - ice::Function icsneoGenericAPIGetStatus(lib, "icsneoGenericAPIGetStatus"); + ice::Function + icsneoGenericAPIGetStatus(lib, "icsneoGenericAPIGetStatus"); unsigned char functionIndex = 0; unsigned char callbackError = 0; unsigned char finishedProcessing = 0; - Py_BEGIN_ALLOW_THREADS - if (!icsneoGenericAPIGetStatus(handle, apiIndex, instanceIndex, &functionIndex, &callbackError, &finishedProcessing)) { - Py_BLOCK_THREADS - return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIGetStatus() Failed"); - } - Py_END_ALLOW_THREADS - + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGenericAPIGetStatus( + handle, apiIndex, instanceIndex, &functionIndex, &callbackError, &finishedProcessing)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoGenericAPIGetStatus() Failed"); + } + Py_END_ALLOW_THREADS; + PyObject* value = Py_BuildValue("III", functionIndex, callbackError, finishedProcessing); return value; - } - catch (ice::Exception& ex) - { + } 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!"); @@ -4079,8 +4105,7 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) } // Before we do anything, we need to grab the python gptp_status ctype.Structure. PyObject* status = _getPythonModuleObject("ics.structures.gptp_status", "gptp_status"); - if (!status) - { + if (!status) { return NULL; } // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&status_buffer) when done. @@ -4090,11 +4115,11 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) if (!PyNeoDevice_CheckExact(obj)) { PyBuffer_Release(&status_buffer); Py_DECREF(status); - return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { PyBuffer_Release(&status_buffer); @@ -4103,22 +4128,19 @@ 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 + Py_BEGIN_ALLOW_THREADS; // int _stdcall icsneoGetGPTPStatus(void* hObject, GPTPStatus* gptpStatus) - ice::Function icsneoGetGPTPStatus(lib, "icsneoGetGPTPStatus"); - if (!icsneoGetGPTPStatus(handle, (GPTPStatus*)status_buffer.buf)) - { - Py_BLOCK_THREADS + ice::Function icsneoGetGPTPStatus(lib, "icsneoGetGPTPStatus"); + if (!icsneoGetGPTPStatus(handle, (GPTPStatus*)status_buffer.buf)) { + Py_BLOCK_THREADS; PyBuffer_Release(&status_buffer); Py_DECREF(status); return set_ics_exception(exception_runtime_error(), "icsneoGetGPTPStatus() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&status_buffer); return status; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { PyBuffer_Release(&status_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } @@ -4134,22 +4156,22 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) } // Before we do anything, we need to grab the python ctype.Structure. PyObject* py_struct = _getPythonModuleObject("ics.structures.st_chip_versions", "st_chip_versions"); - if (!py_struct) - { + if (!py_struct) { return NULL; } - // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&py_struct_buffer) when done. + // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&py_struct_buffer) when + // done. Py_buffer py_struct_buffer = {}; PyObject_GetBuffer(py_struct, &py_struct_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); // Verify we have a valid NeoDevice Object - This comes after ctypes struct allocation for testing purposes if (!PyNeoDevice_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 "." NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - try - { + try { ice::Library* lib = dll_get_library(); if (!lib) { PyBuffer_Release(&py_struct_buffer); @@ -4158,22 +4180,20 @@ 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 + 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, py_struct_buffer.len)) - { - Py_BLOCK_THREADS + ice::Function icsneoGetAllChipVersions( + lib, "icsneoGetAllChipVersions"); + if (!icsneoGetAllChipVersions(handle, (stChipVersions*)py_struct_buffer.buf, py_struct_buffer.len)) { + Py_BLOCK_THREADS; PyBuffer_Release(&py_struct_buffer); Py_DECREF(py_struct); return set_ics_exception(exception_runtime_error(), "icsneoGetAllChipVersions() Failed"); } - Py_END_ALLOW_THREADS + Py_END_ALLOW_THREADS; PyBuffer_Release(&py_struct_buffer); return py_struct; - } - catch (ice::Exception& ex) - { + } catch (ice::Exception& ex) { PyBuffer_Release(&py_struct_buffer); return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } diff --git a/src/object_neo_device.cpp b/src/object_neo_device.cpp index 9824e26cf..2f43ff66e 100644 --- a/src/object_neo_device.cpp +++ b/src/object_neo_device.cpp @@ -1,47 +1,46 @@ #include "object_neo_device.h" PyTypeObject neo_device_object_type = { - PyVarObject_HEAD_INIT(NULL, 0) - MODULE_NAME "." NEO_DEVICE_OBJECT_NAME, /* tp_name */ - sizeof(neo_device_object), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)neo_device_object_dealloc,/* tp_dealloc */ - 0, /* tp_print */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_reserved */ - neo_device_object_tp_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - neo_device_object_getattr, /* tp_getattro */ - neo_device_object_setattr, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ - NEO_DEVICE_OBJECT_NAME" object", /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - 0, /* tp_methods */ - neo_device_object_members, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - (initproc)neo_device_object_alloc, /* tp_init */ + PyVarObject_HEAD_INIT(NULL, 0) MODULE_NAME "." NEO_DEVICE_OBJECT_NAME, /* tp_name */ + sizeof(neo_device_object), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)neo_device_object_dealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + neo_device_object_tp_repr, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + neo_device_object_getattr, /* tp_getattro */ + neo_device_object_setattr, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + NEO_DEVICE_OBJECT_NAME " object", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + neo_device_object_members, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + (initproc)neo_device_object_alloc, /* tp_init */ }; bool setup_neo_device_object(PyObject* module) { - //neo_device_object_type.ob_type = &PyType_Type; + // neo_device_object_type.ob_type = &PyType_Type; neo_device_object_type.tp_new = PyType_GenericNew; neo_device_object_type.tp_dictoffset = offsetof(neo_device_object, dict); if (PyType_Ready(&neo_device_object_type) < 0) { diff --git a/src/object_spy_message.cpp b/src/object_spy_message.cpp index 85e23caa6..df556b913 100644 --- a/src/object_spy_message.cpp +++ b/src/object_spy_message.cpp @@ -1,86 +1,84 @@ #include "object_spy_message.h" PyTypeObject spy_message_object_type = { - PyVarObject_HEAD_INIT(NULL, 0) - MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, /* tp_name */ - sizeof(spy_message_object), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)spy_message_object_dealloc,/* tp_dealloc */ - 0, /* tp_print */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_reserved */ - 0, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - spy_message_object_getattr, /* tp_getattro */ - spy_message_object_setattr, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ - SPY_MESSAGE_OBJECT_NAME" object", /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - 0, /* tp_methods */ - spy_message_object_members, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - (initproc)spy_message_object_alloc, /* tp_init */ + PyVarObject_HEAD_INIT(NULL, 0) MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME, /* tp_name */ + sizeof(spy_message_object), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)spy_message_object_dealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + spy_message_object_getattr, /* tp_getattro */ + spy_message_object_setattr, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + SPY_MESSAGE_OBJECT_NAME " object", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + spy_message_object_members, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + (initproc)spy_message_object_alloc, /* tp_init */ }; PyTypeObject spy_message_j1850_object_type = { - PyVarObject_HEAD_INIT(NULL, 0) - MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME, /* tp_name */ - sizeof(spy_message_j1850_object), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)spy_message_object_dealloc,/* tp_dealloc */ - 0, /* tp_print */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_reserved */ - 0, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - spy_message_object_getattr, /* tp_getattro */ - spy_message_object_setattr, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ - SPY_MESSAGE_J1850_OBJECT_NAME" object", /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - 0, /* tp_methods */ - spy_message_j1850_object_members, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - (initproc)spy_message_object_alloc, /* tp_init */ + PyVarObject_HEAD_INIT(NULL, 0) MODULE_NAME "." SPY_MESSAGE_J1850_OBJECT_NAME, /* tp_name */ + sizeof(spy_message_j1850_object), /* tp_basicsize */ + 0, /* tp_itemsize */ + (destructor)spy_message_object_dealloc, /* tp_dealloc */ + 0, /* tp_print */ + 0, /* tp_getattr */ + 0, /* tp_setattr */ + 0, /* tp_reserved */ + 0, /* tp_repr */ + 0, /* tp_as_number */ + 0, /* tp_as_sequence */ + 0, /* tp_as_mapping */ + 0, /* tp_hash */ + 0, /* tp_call */ + 0, /* tp_str */ + spy_message_object_getattr, /* tp_getattro */ + spy_message_object_setattr, /* tp_setattro */ + 0, /* tp_as_buffer */ + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ + SPY_MESSAGE_J1850_OBJECT_NAME " object", /* tp_doc */ + 0, /* tp_traverse */ + 0, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + spy_message_j1850_object_members, /* tp_members */ + 0, /* tp_getset */ + 0, /* tp_base */ + 0, /* tp_dict */ + 0, /* tp_descr_get */ + 0, /* tp_descr_set */ + 0, /* tp_dictoffset */ + (initproc)spy_message_object_alloc, /* tp_init */ }; bool setup_spy_message_object(PyObject* module) { - //spy_message_object_type.ob_type = &PyType_Type; + // spy_message_object_type.ob_type = &PyType_Type; spy_message_object_type.tp_new = PyType_GenericNew; if (PyType_Ready(&spy_message_object_type) < 0) { return false; diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 5af601da4..339d152af 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -8,1039 +8,1038 @@ #include #include "ics/icsnVC40.h" -int setup_module_auto_defines(PyObject * module) +int setup_module_auto_defines(PyObject* module) { - int result = 0; + 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_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_NEW_DEVICE_58); - result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); - 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_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_VCANRF); - 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_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_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_STATUS); - 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_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_NODE_DISCONNECTED); - result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_NODE_FAULT); - 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, 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); - // enum - result += PyModule_AddIntMacro(module, AUTO); - result += PyModule_AddIntMacro(module, USE_TQ); - // end of enum - }; + 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_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_NEW_DEVICE_58); + result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); + 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_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_VCANRF); + 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_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_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_STATUS); + 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_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_NODE_DISCONNECTED); + result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_NODE_FAULT); + 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, 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); + // enum + result += PyModule_AddIntMacro(module, AUTO); + result += PyModule_AddIntMacro(module, 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); - // 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); + // 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); - // 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); + // end of enum - }; - result += PyModule_AddIntMacro(module, 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, 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); + // end of enum - }; - result += PyModule_AddIntMacro(module, 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, 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); + // end of enum - }; - result += PyModule_AddIntMacro(module, 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, RESISTOR_ON); - result += PyModule_AddIntMacro(module, RESISTOR_OFF); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, RESISTOR_ON); + result += PyModule_AddIntMacro(module, 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); - // 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); + // 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); - // 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); - // 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); + // 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); + // 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_AddIntMacro(module, HW_ETH_SETTINGS_SIZE); - // enum - result += PyModule_AddIntMacro(module, OPETH_LINK_AUTO); - result += PyModule_AddIntMacro(module, OPETH_LINK_MASTER); - result += PyModule_AddIntMacro(module, OPETH_LINK_SLAVE); - // end of enum - } opEthLinkMode; + 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); + result += PyModule_AddIntMacro(module, 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); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_DST_ADDR); + result += PyModule_AddIntMacro(module, 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_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_COMM_IN_USE); - result += PyModule_AddIntMacro(module, ETHERNET10G_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); - // enum - result += PyModule_AddIntMacro(module, DiskFormatUnknown); - result += PyModule_AddIntMacro(module, DiskFormatFAT32); - result += PyModule_AddIntMacro(module, DiskFormatexFAT); - // end of enum - } EDiskFormat; + 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_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_COMM_IN_USE); + result += PyModule_AddIntMacro(module, ETHERNET10G_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); + // enum + result += PyModule_AddIntMacro(module, DiskFormatUnknown); + result += PyModule_AddIntMacro(module, DiskFormatFAT32); + result += PyModule_AddIntMacro(module, 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); - // end of enum - } EDiskLayout; + // 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); + // 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); - // 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); - // end of enum - } ExtendedResponseCode; + 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); + // 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); + // 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); - // end of enum - }; + 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); + // end of enum - }; - result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); - result += PyModule_AddIntMacro(module, MANUFACTURING_OPERATION_MAX_SIZE); - result += PyModule_AddIntMacro(module, ManufacturingOperationAPIVersion); - result += PyModule_AddIntMacro(module, SExtSubCmdComm_SIZE); - 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); - // 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); + result += PyModule_AddIntMacro(module, MANUFACTURING_OPERATION_MAX_SIZE); + result += PyModule_AddIntMacro(module, ManufacturingOperationAPIVersion); + result += PyModule_AddIntMacro(module, SExtSubCmdComm_SIZE); + 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); + // 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); + // 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); - // 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); + // 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); - // 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); + // 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); - // 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); - // 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); + // 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); + // 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_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); - // 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_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); + // 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, SVCANRFSettings_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); - // 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); - // 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, SVCANRFSettings_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); + // 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, eRoleDisabled); - result += PyModule_AddIntMacro(module, eRolePassive); - result += PyModule_AddIntMacro(module, eRoleMaster); - result += PyModule_AddIntMacro(module, eRoleSlave); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, eRoleDisabled); + result += PyModule_AddIntMacro(module, eRolePassive); + result += PyModule_AddIntMacro(module, eRoleMaster); + result += PyModule_AddIntMacro(module, eRoleSlave); + // end of enum - }; - result += PyModule_AddIntMacro(module, SRADGalaxySettings_SIZE); - result += PyModule_AddIntMacro(module, SRADStar2Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADSuperMoonSettings_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); - // end of enum - } A2BTDMMode; + result += PyModule_AddIntMacro(module, SRADGalaxySettings_SIZE); + result += PyModule_AddIntMacro(module, SRADStar2Settings_SIZE); + result += PyModule_AddIntMacro(module, SRADSuperMoonSettings_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); + // end of enum - } A2BTDMMode; - // enum - result += PyModule_AddIntMacro(module, a2bNodeTypeMonitor); - result += PyModule_AddIntMacro(module, a2bNodeTypeMaster); - result += PyModule_AddIntMacro(module, a2bNodeTypeSlave); - // end of enum - } A2BNodeType; + // enum + result += PyModule_AddIntMacro(module, a2bNodeTypeMonitor); + result += PyModule_AddIntMacro(module, a2bNodeTypeMaster); + result += PyModule_AddIntMacro(module, 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, 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); - // 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); - // end of enum - } flexVnetMode; + 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, 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); + // 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); + // 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, JUPITER_PTP_ROLE_DISABLED); - result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_MASTER); - result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_SLAVE); - 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_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_MAX_PHY); - result += PyModule_AddIntMacro(module, SRADEpsilonSettings_SIZE); - // enum - result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); - result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); - // end of enum - }; + 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, JUPITER_PTP_ROLE_DISABLED); + result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_MASTER); + result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_SLAVE); + 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_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_MAX_PHY); + result += PyModule_AddIntMacro(module, SRADEpsilonSettings_SIZE); + // enum + result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); + result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, SPI_TYPE_WIL); - result += PyModule_AddIntMacro(module, SPI_TYPE_RAW); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, SPI_TYPE_WIL); + result += PyModule_AddIntMacro(module, SPI_TYPE_RAW); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, SPI_MODE_MASTER); - result += PyModule_AddIntMacro(module, SPI_MODE_SLAVE); - result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, SPI_MODE_MASTER); + result += PyModule_AddIntMacro(module, SPI_MODE_SLAVE); + result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); + // end of enum - }; - result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); - result += PyModule_AddIntMacro(module, GS_VERSION); - result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, 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, DeviceVCANRFSettingsType); - 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, DeviceSettingsTypeMax); - result += PyModule_AddIntMacro(module, DeviceSettingsNone); - // end of enum - } EDeviceSettingsType; + result += PyModule_AddIntMacro(module, SRADBMSSettings_SIZE); + result += PyModule_AddIntMacro(module, GS_VERSION); + result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); + result += PyModule_AddIntMacro(module, 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, DeviceVCANRFSettingsType); + 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, DeviceSettingsTypeMax); + result += PyModule_AddIntMacro(module, 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); - // end of enum - } EPlasmaIonVnetChannel_t; + // 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); + // end of enum - } EPlasmaIonVnetChannel_t; - // enum - result += PyModule_AddIntMacro(module, eManagerPortA); - result += PyModule_AddIntMacro(module, eManagerPortB); - // end of enum - } EwBMSManagerPort_t; + // enum + result += PyModule_AddIntMacro(module, eManagerPortA); + result += PyModule_AddIntMacro(module, eManagerPortB); + // end of enum - } EwBMSManagerPort_t; - // enum - result += PyModule_AddIntMacro(module, eLockManager); - result += PyModule_AddIntMacro(module, eUnlockManager); - // end of enum - } EwBMSManagerLockState_t; + // enum + result += PyModule_AddIntMacro(module, eLockManager); + result += PyModule_AddIntMacro(module, eUnlockManager); + // end of enum - } EwBMSManagerLockState_t; - // enum - result += PyModule_AddIntMacro(module, eUART0); - result += PyModule_AddIntMacro(module, eUART1); - // end of enum - } EUartPort_t; + // enum + result += PyModule_AddIntMacro(module, eUART0); + result += PyModule_AddIntMacro(module, eUART1); + // end of enum - } EUartPort_t; - // enum - result += PyModule_AddIntMacro(module, eGENERIC_API); - result += PyModule_AddIntMacro(module, eADI_WIL_API); - // end of enum - } eGenericAPIOptions; + // enum + result += PyModule_AddIntMacro(module, eGENERIC_API); + result += PyModule_AddIntMacro(module, eADI_WIL_API); + // end of enum - } eGenericAPIOptions; - // enum - result += PyModule_AddIntMacro(module, ewBMSInstance0); - result += PyModule_AddIntMacro(module, ewBMSInstance1); - // end of enum - } EwBMSInstance_t; + // enum + result += PyModule_AddIntMacro(module, ewBMSInstance0); + result += PyModule_AddIntMacro(module, 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); - // 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); - // end of enum - } PhyRegPktStatus_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); + // 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); + // end of enum - } PhyRegPktStatus_t; - // enum - result += PyModule_AddIntMacro(module, PHYREG_READ); - result += PyModule_AddIntMacro(module, PHYREG_WRITE); - result += PyModule_AddIntMacro(module, PHYREG_BOTH); - // end of enum - } PhyRegPktRw_t; + // enum + result += PyModule_AddIntMacro(module, PHYREG_READ); + result += PyModule_AddIntMacro(module, PHYREG_WRITE); + result += PyModule_AddIntMacro(module, 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, NUM_VALID_DEVICE_FEATURES); - result += PyModule_AddIntMacro(module, supportedFeatureMax); - // end of enum - } DeviceFeature; + // 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, NUM_VALID_DEVICE_FEATURES); + result += PyModule_AddIntMacro(module, supportedFeatureMax); + // end of enum - } DeviceFeature; - result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); - // enum - // end of enum - } + result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); + // enum + // end of enum - } - - return result == 0 ? 1 : 0; + return result == 0 ? 1 : 0; } From ed6555b4fc5d0453494f785d0cc091bcb65d094a Mon Sep 17 00:00:00 2001 From: kjohannes-intrepidcs <90792195+kjohannes-intrepidcs@users.noreply.github.com> Date: Mon, 10 Apr 2023 08:57:26 -0400 Subject: [PATCH 092/201] LIN: network support (#146) * LIN: network support * Add LIN LDF communication example --- build_libicsneo.py | 2 +- examples/lin22.ldf | 140 +++++++++++++++++++++++++ examples/transmit_lin_example.py | 89 ++++++++++++++++ examples/transmit_lin_ldf_example.py | 151 +++++++++++++++++++++++++++ 4 files changed, 381 insertions(+), 1 deletion(-) create mode 100644 examples/lin22.ldf create mode 100755 examples/transmit_lin_example.py create mode 100755 examples/transmit_lin_ldf_example.py diff --git a/build_libicsneo.py b/build_libicsneo.py index 5b7d64650..ed9f465c0 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -4,7 +4,7 @@ import shutil import sys -LIBICSNEO_COMMIT = 'bf6a059820e753c7672adbc01b0e8fdc58b2cfea' +LIBICSNEO_COMMIT = '63c81b1c3d13bb96371611d7e2573d6e4adcb6e2' LIBUSB_COMMIT = '4239bc3a50014b8e6a5a2a59df1fff3b7469543b' CPUS = str(multiprocessing.cpu_count()) diff --git a/examples/lin22.ldf b/examples/lin22.ldf new file mode 100644 index 000000000..befbda55d --- /dev/null +++ b/examples/lin22.ldf @@ -0,0 +1,140 @@ +/*******************************************************/ +/* This is the example LDF from LIN 2.2A specification */ +/*******************************************************/ + +// Source: https://lin-cia.org/fileadmin/microsites/lin-cia.org/resources/documents/LIN_2.2A.pdf + +LIN_description_file; +LIN_protocol_version = "2.2"; +LIN_language_version = "2.2"; +LIN_speed = 19.2 kbps; +Channel_name = "DB"; + +Nodes { + Master: CEM, 5 ms, 0.1 ms; + Slaves: LSM, RSM; +} + +Signals { + InternalLightsRequest: 2, 0, CEM, LSM, RSM; + RightIntLightsSwitch: 8, 0, RSM, CEM; + LeftIntLightsSwitch: 8, 0, LSM, CEM; + LSMerror: 1, 0, LSM, CEM; + RSMerror: 1, 0, RSM, CEM; + IntTest: 2, 0, LSM, CEM; +} + +Frames { + CEM_Frm1: 0x01, CEM, 1 { + InternalLightsRequest, 0; + } + LSM_Frm1: 0x02, LSM, 2 { + LeftIntLightsSwitch, 8; + } + LSM_Frm2: 0x03, LSM, 1 { + LSMerror, 0; + IntTest, 1; + } + RSM_Frm1: 0x04, RSM, 2 { + RightIntLightsSwitch, 8; + } + RSM_Frm2: 0x05, RSM, 1 { + RSMerror, 0; + } +} + +Event_triggered_frames { + Node_Status_Event : Collision_resolver, 0x06, RSM_Frm1, LSM_Frm1; +} + +Node_attributes { + RSM { + LIN_protocol = "2.0"; + configured_NAD = 0x20; + product_id = 0x4E4E, 0x4553, 1; + response_error = RSMerror; + P2_min = 150 ms; + ST_min = 50 ms; + configurable_frames { + Node_Status_Event=0x000; CEM_Frm1 = 0x0001; RSM_Frm1 = 0x0002; + RSM_Frm2 = 0x0003; + } + } + LSM { + LIN_protocol = "2.2"; + configured_NAD = 0x21; + initial_NAD = 0x01; + product_id = 0x4A4F, 0x4841; + response_error = LSMerror; + fault_state_signals = IntTest; + P2_min = 150 ms; + ST_min = 50 ms; + configurable_frames { + Node_Status_Event; + CEM_Frm1; + LSM_Frm1; + LSM_Frm2; + } + } +} + +Schedule_tables { + Configuration_Schedule { + AssignNAD {LSM} delay 15 ms; + AssignFrameIdRange {LSM, 0} delay 15 ms; + AssignFrameId {RSM, CEM_Frm1} delay 15 ms; + AssignFrameId {RSM, RSM_Frm1} delay 15 ms; + AssignFrameId {RSM, RSM_Frm2} delay 15 ms; + } + Normal_Schedule { + CEM_Frm1 delay 15 ms; + LSM_Frm2 delay 15 ms; + RSM_Frm2 delay 15 ms; + Node_Status_Event delay 10 ms; + } + MRF_schedule { + MasterReq delay 10 ms; + } + SRF_schedule { + SlaveResp delay 10 ms; + } + Collision_resolver { // Keep timing of other frames if collision + CEM_Frm1 delay 15 ms; + LSM_Frm2 delay 15 ms; + RSM_Frm2 delay 15 ms; + RSM_Frm1 delay 10 ms; // Poll the RSM node + CEM_Frm1 delay 15 ms; + LSM_Frm2 delay 15 ms; + RSM_Frm2 delay 15 ms; + LSM_Frm1 delay 10 ms; // Poll the LSM node + } +} + +Signal_encoding_types { + Dig2Bit { + logical_value, 0, "off"; + logical_value, 1, "on"; + logical_value, 2, "error"; + logical_value, 3, "void"; + } + ErrorEncoding { + logical_value, 0, "OK"; + logical_value, 1, "error"; + } + FaultStateEncoding { + logical_value, 0, "No test result"; + logical_value, 1, "failed"; + logical_value, 2, "passed"; + logical_value, 3, "not used"; + } + LightEncoding { + logical_value, 0, "Off"; + physical_value, 1, 254, 1, 100, "lux"; + logical_value, 255, "error"; + } +} +Signal_representation { + Dig2Bit: InternalLightsRequest; + ErrorEncoding: RSMerror, LSMerror; + LightEncoding: RightIntLightsSwitch, LeftIntLightsSwitch; +} \ No newline at end of file diff --git a/examples/transmit_lin_example.py b/examples/transmit_lin_example.py new file mode 100755 index 000000000..589770fae --- /dev/null +++ b/examples/transmit_lin_example.py @@ -0,0 +1,89 @@ +import ics +import random +import time + +# Tells our custom open_device() function to do special behavior +# with neoVI Server enabled so we can successfully open devices +enable_use_server = True + +def dev_name(device): + # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) + if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + return device.Name + " " + ics.base36enc(device.SerialNumber) + else: + return device.Name + " " + str(device.SerialNumber) + +def open_device(index=0): + device = None + if enable_use_server: + # ics.open_device() won't open a device if we have handles open already + # so we need to find them and specify which ones to connect to. + devices = ics.find_devices() + print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + ics.open_device(devices[index]) + device = devices[index] + else: + print("Opening Device...") + device = ics.open_device() + print("Opened Device %s." % dev_name(device)) + return device + +def calc_checksum(msg): + checksum = 0 + for byte in msg.Header[1:]+msg.Data: + checksum += byte + if (checksum > 255): + checksum -= 255 + msg.Data += tuple([~checksum & 0xFF]) + +def transmit_lin(msg): + calc_checksum(msg) + msg.NumberBytesHeader = len(msg.Header) + msg.NumberBytesData = len(msg.Data) + try: + ics.transmit_messages(device, msg) + except ics.RuntimeError as ex: + print(ex) + raise ex + +def prepare_message(device): + msg = ics.SpyMessageJ1850() + msg.StatusBitField = ics.SPY_STATUS_INIT_MESSAGE + msg.Protocol = ics.SPY_PROTOCOL_LIN + msg.NetworkID = ics.NETID_LIN + msg.Header = (0x11, 0x11, 0x22) + msg.Data = (0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x88) + transmit_lin(msg) + +def receive_lin(device): + msgs, error_count = ics.get_messages(device) + print("Received {} messages with {} errors.".format(len(msgs), error_count)) + netids = { ics.NETID_LIN: "LIN 1", ics.NETID_LIN2: "LIN 2" } + for i, m in enumerate(msgs): + print('\nMessage #{}: '.format(i+1), end='') + netid = netids.get(m.NetworkID) + if netid is not None: + print('{}'.format(netid), end='') + if (m.StatusBitField & ics.SPY_STATUS_INIT_MESSAGE): + print(' | Init', end='') + data_list = [] + for x in m.Header[1:]: + data_list.append(x) + for y in m.Data: + data_list.append(y) + print('\nID: {} | '.format(hex(m.Header[0])), end='') + if len(data_list): + checksum = data_list.pop() + print('Data: {} | '.format([hex(x) for x in data_list]), end='') + print('Checksum: {}'.format(hex(checksum))) + +if __name__ == "__main__": + import time + # Lets figure out how many are connected to the PC and display it + connected_count = len(ics.find_devices()) + print("Found {} connected device(s)...".format(connected_count)) + device = open_device(0) + prepare_message(device) + time.sleep(1) + receive_lin(device) + print("Finished.") diff --git a/examples/transmit_lin_ldf_example.py b/examples/transmit_lin_ldf_example.py new file mode 100755 index 000000000..3e746c9cd --- /dev/null +++ b/examples/transmit_lin_ldf_example.py @@ -0,0 +1,151 @@ +import ics +import random +import time +import os +import ldfparser + +def parse_ldf(): + path = os.path.join(os.path.dirname(__file__), 'lin22.ldf') + return ldfparser.parse_ldf(path) + +def dev_name(device): + # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) + if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + return device.Name + " " + ics.base36enc(device.SerialNumber) + else: + return device.Name + " " + str(device.SerialNumber) + +def open_device(index=0): + device = None + # ics.open_device() won't open a device if we have handles open already + # so we need to find them and specify which ones to connect to. + devices = ics.find_devices() + print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + ics.open_device(devices[index]) + device = devices[index] + print("Opened Device %s." % dev_name(device)) + return device + +def receive_lin(device): + msgs, error_count = ics.get_messages(device) + print("Received {} messages with {} errors.".format(len(msgs), error_count)) + netids = { ics.NETID_LIN: "LIN 1" }#, ics.NETID_LIN2: "LIN 2" } + for i, m in enumerate(msgs): + netid = netids.get(m.NetworkID) + if netid is not None: + #print('\nMessage #{}: '.format(i+1), end='') + print('{}'.format(netid), end='') + if (m.StatusBitField & ics.SPY_STATUS_INIT_MESSAGE): + print(' | Init') + data_list = [] + for x in m.Header[1:]: + data_list.append(x) + for y in m.Data: + data_list.append(y) + try: + frame_name = ldf.get_frame(m.Header[0] & 0x3F).name + if frame_name is not None: + print('{} | '.format(frame_name), end='') + except: + pass + print('ID: {} | '.format(hex(m.Header[0])), end='') + if len(data_list): + checksum = data_list.pop() + print('Data: {} | '.format([hex(x) for x in data_list]), end='') + print('Checksum: {}'.format(hex(checksum))) + print() + return True + +def send_frame(self, baudrate: int, frame_id: int, data: bytearray, netid: int, is_commander: bool): + # set baudrate with device settings? + msg = ics.SpyMessageJ1850() + if(is_commander): + msg.StatusBitField = ics.SPY_STATUS_INIT_MESSAGE + msg.Protocol = ics.SPY_PROTOCOL_LIN + msg.NetworkID = netid + header_bytes = [frame_id] + frame_bytes = [] + if(len(data)): + hdr_len = min(len(data), 2) + data_len = min((len(data) - hdr_len), 6) + checksum = 0 + if(hdr_len > 0): + header_bytes += list(data[0:hdr_len]) + if(data_len > 0): + frame_bytes += list(data[hdr_len:]) + for byte in header_bytes+frame_bytes: + checksum += byte + if (checksum > 255): + checksum -= 255 + if(len(header_bytes) == 2): + header_bytes.append(~checksum & 0xFF) + else: + frame_bytes.append(~checksum & 0xFF) + msg.Header = tuple(header_bytes) + msg.Data = tuple(frame_bytes) + msg.NumberBytesHeader = len(msg.Header) + msg.NumberBytesData = len(msg.Data) + try: + ics.transmit_messages(self.device, msg) + except ics.RuntimeError as ex: + print(ex) + return False + return True + +class LINCommander: + def __init__(self, device): + self.device = device + self.frames = {} + + def send_commander_frame(self, baudrate: int, frame_id: int, data: bytearray): + send_frame(self, baudrate, frame_id, data, ics.NETID_LIN, True) + +class LINResponder: + def __init__(self, device): + self.device = device + self.frames = {} + + def send_responder_frame(self, baudrate: int, frame_id: int, data: bytearray): + send_frame(self, baudrate, frame_id, data, ics.NETID_LIN2, False) + +if __name__ == "__main__": + import time + ldf = parse_ldf() + # Lets figure out how many are connected to the PC and display it + connected_count = len(ics.find_devices()) + print("Found {} connected device(s)...".format(connected_count)) + device = open_device(0) + responder_nodes = ldf.get_slaves() + commander_nodes = ldf.get_master() + lin_cmdr = LINCommander(device) + lin_resp = LINResponder(device) + for resp in responder_nodes: + for each in resp.publishes_frames: + lin_resp.frames.update({each.name: each}) + + for cmdr in commander_nodes.publishes_frames: + lin_cmdr.frames.update({cmdr.name: cmdr}) + + collision_schedule = ldf.get_schedule_table("Collision_resolver") + for entry in collision_schedule.schedule: + if(entry.frame is not None): + if(entry.frame.name in lin_cmdr.frames): + cmdr_data = entry.frame.encode({}) + lin_cmdr.send_commander_frame(ldf.baudrate, entry.frame.frame_id, cmdr_data) + elif(entry.frame.name in lin_resp.frames): + resp_data = entry.frame.encode({}) + lin_resp.send_responder_frame(ldf.baudrate, entry.frame.frame_id, resp_data) + time.sleep(150/1000) + lin_cmdr.send_commander_frame(ldf.baudrate, entry.frame.frame_id, bytearray()) + time.sleep(150/1000) + + #request_frame = ldf.get_unconditional_frame('CEM_Frm1') + #request_data = request_frame.encode({"InternalLightsRequest": 'on'}, ldf.converters) + #lin_cmdr.send_commander_frame(ldf.baudrate, request_frame.frame_id, request_data) + + #responseFrame = ldf.get_unconditional_frame('RSM_Frm1') + #responseData = responseFrame.encode({"RightIntLightsSwitch": 'off'}, ldf.converters) + #lin_resp.send_responder_frame(ldf.baudrate, responseFrame.frame_id, responseData) + receive_lin(device) + time.sleep(1) + print("Finished.") From 203d014ec48ba807fe3301d4778d4aad26b46c8d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 12 Apr 2023 14:15:20 -0400 Subject: [PATCH 093/201] fixed an issue when enum was the start of an enum variable --- generate_icsneo40_structs.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index d6229d07c..0d3f7b22d 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -138,7 +138,7 @@ def is_line_start_of_object(line): for regex in _start_of_obj_blacklist: if bool(regex.search(line)): return False - return bool(re.search('\btypedef struct$|struct$|struct \S*$|enum|union', line)) + return bool(re.search('\btypedef struct$|struct$|struct \S*$|enum$|enum |union$|union ', line)) # This contains all the objects that don't pass convert_to_ctype_object @@ -162,7 +162,6 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): """ start_pos = f.tell() opening_bracket_count = 0 - opening_bracket_count = 0 try: # Read the first line and make sure we have a C Object line = f.readline() @@ -207,6 +206,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): continue opening_bracket_count += line.count('{') opening_bracket_count -= line.count('}') + assert(opening_bracket_count >= 0) # Determine if we are at the end of the struct if opening_bracket_count == 0 and re.match('}.*;', line): extra_names = ''.join(line.split()).strip('};').split(',') From a8ba18c3ab95b5fcd9bf700d3dcd1208795eec42 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 17 Apr 2023 13:17:25 -0400 Subject: [PATCH 094/201] Fixed an issue with generation when called from a script. Signed-off-by: David Rebbe --- generate_icsneo40_structs.py | 65 ++++++++++++------------------------ 1 file changed, 21 insertions(+), 44 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 0d3f7b22d..4a157481e 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -206,7 +206,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): continue opening_bracket_count += line.count('{') opening_bracket_count -= line.count('}') - assert(opening_bracket_count >= 0) + assert (opening_bracket_count >= 0) # Determine if we are at the end of the struct if opening_bracket_count == 0 and re.match('}.*;', line): extra_names = ''.join(line.split()).strip('};').split(',') @@ -271,14 +271,14 @@ def parse_struct_member(buffered_line): # uint8_t data[4 * 1024]; /* The data */ # remove all unneeded whitespace - #print("DEBUG BEFORE:", buffered_line) + # print("DEBUG BEFORE:", buffered_line) # if len(buffered_line.split('\n')): # new_buffered_line = '' # for line in buffered_line.split('\n'): # new_buffered_line += re.sub('{|union|}|;', '', line) + '\n' # buffered_line = new_buffered_line buffered_line = re.sub("\s*\[", "[", ' '.join(buffered_line.split())) - #print("DEBUG AFTER:", buffered_line) + # print("DEBUG AFTER:", buffered_line) # Figure out if we are an array type and get the array length array_subsection = re.search('\[.*\]', buffered_line) @@ -473,7 +473,7 @@ def format_file(filename): processed_fname = os.path.basename(filename) name, ext = os.path.splitext(processed_fname) processed_fname = f'{name}_processed{ext}' - #processed_fname = "icsnVC40_processed.h" + # processed_fname = "icsnVC40_processed.h" # Run it through the preprocessor # clang -E -P .\include\ics\icsnVC40.h -o output.h result = run(["clang", "-DEXTERNAL_PROJECT", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=PIPE) @@ -597,14 +597,14 @@ def generate(filename='include/ics/icsnVC40.h'): except FileNotFoundError: pass ignore_names = [ - '__fsid_t', '__darwin_pthread_handler_rec', + '__fsid_t', '__darwin_pthread_handler_rec', '_mbstate_t', 'mbstate_t_', 'mbstatet_', 'Mbstatet_', '_Mbstatet', '_LONGDOUBLE', 'LONGDOUBLE_', '_opaque_pthread_attr_t', '_opaque_pthread_cond_t', '_opaque_pthread_condattr_t', '_opaque_pthread_mutex_t', '_opaque_pthread_mutexattr_t', '_opaque_pthread_once_t', '_opaque_pthread_rwlock_t', '_opaque_pthread_rwlockattr_t', '_opaque_pthread_t', - 'crt_locale_pointers_', 'crt_locale_data_public_', '__crt_locale_data_public', - 'ldiv_t', 'lldiv_t', 'ldouble_', 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', + 'crt_locale_pointers_', 'crt_locale_data_public_', '__crt_locale_data_public', + 'ldiv_t', 'lldiv_t', 'ldouble_', 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', 'ndis_adapter_information', 'NeoDevice', 'neo_device', 'NeoDeviceEx', 'neo_device_ex', 'icsSpyMessage', 'icsSpyMessageJ1850', 'ics_spy_message', 'ics_spy_message_j1850'] @@ -651,7 +651,7 @@ def generate(filename='include/ics/icsnVC40.h'): fname = re.sub('(\.py)', '', file_name) r = re.compile('(' + fname + ')') if list(filter(r.match, ignore_names)): - #print("IGNORING:", fname) + # print("IGNORING:", fname) continue f.write(' "') f.write(fname) @@ -664,7 +664,7 @@ def generate(filename='include/ics/icsnVC40.h'): fname = re.sub('(\.py)', '', file_name) r = re.compile('(' + fname + ')') if list(filter(r.match, ignore_names)): - #print("IGNORING:", fname) + # print("IGNORING:", fname) continue f.write(f' "ics.structures.{fname}",\n') f.write(']\n\n') @@ -739,7 +739,7 @@ def _write_member(f, member, is_struct_or_union=False): data_type = convert_to_ctype_object(member.data_type) # If we aren't a valid ctypes data type we are probably a struct if not data_type: - #print(f"Warning: Couldn't find a valid ctype type for '{member.data_type}' in '{member.name}'") + # print(f"Warning: Couldn't find a valid ctype type for '{member.data_type}' in '{member.name}'") global NON_CTYPE_OBJ_NAMES NON_CTYPE_OBJ_NAMES.append(member.data_type) data_type = member.data_type @@ -779,8 +779,8 @@ def _write_member(f, member, is_struct_or_union=False): def generate_pyfile(c_object, path): - #name = get_preferred_struct_name(c_object.names) - #c_object.preferred_name = convert_to_snake_case(name) + # name = get_preferred_struct_name(c_object.names) + # c_object.preferred_name = convert_to_snake_case(name) # Make the fname and the path fname = f'{c_object.preferred_name}.py' fname_with_path = os.path.normpath(os.path.join(path, fname)) @@ -844,38 +844,15 @@ def generate_all_files(): import os import pathlib - filename = 'include/ics/icsnVC40.h' - if __name__ == '__main__': - try: - if sys.argv[0] == 'setup.py': - raise IndexError - # Grab the filename from the command line - filename = sys.argv[1] - filename = os.path.normpath(filename) - print(f"Parsing '{filename}'...") - except IndexError as _: - # use our default path if it isn't supplied - filename = 'include/ics/icsnVC40.h' - if not pathlib.Path(filename).exists(): - raise FileNotFoundError(filename) - generate(filename) - - # Internal Header - if __name__ == '__main__': - filename_internal = 'include/ics/icsnVC40Internal.h' - try: - if sys.argv[0] == 'setup.py': - raise IndexError - # Grab the filename from the command line - filename_internal = sys.argv[2] - filename_internal = os.path.normpath(filename_internal) - print(f"Parsing '{filename_internal}'...") - except IndexError as _: - # use our default path if it isn't supplied - filename_internal = 'include/ics/icsnVC40Internal.h' - if pathlib.Path(filename_internal).exists(): - print("WARNING: Generating internal header!") - generate(filename_internal) + filenames = ('icsnVC40.h', 'icsnVC40Internal.h') + for filename in filenames: + path = pathlib.Path('include/ics/') + path = path.joinpath(filename) + if path.exists(): + if 'Internal' in str(filename): + print("WARNING: Generating internal header!") + print(f"Parsing {str(path)}...") + generate(str(path)) if __name__ == '__main__': From 02489b3215b12f8a4a2b5d3f284f2e0102c6f100 Mon Sep 17 00:00:00 2001 From: kjohannes-intrepidcs <90792195+kjohannes-intrepidcs@users.noreply.github.com> Date: Mon, 12 Jun 2023 10:51:25 -0400 Subject: [PATCH 095/201] Methods: Update neodevice_to_string with all devices in icsnVC40 (#148) * Methods: Update neodevice_to_string with all devices in icsnVC40 * WIP: Adding LIN settings update example * Update and rename lin_settings_example.py to lin_settings_fire3_example.py cleaned up example to simplify it. --------- Co-authored-by: David Rebbe --- examples/lin_settings_fire3_example.py | 33 ++++++++++++++++++++++++++ src/methods.cpp | 19 ++++++++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 examples/lin_settings_fire3_example.py diff --git a/examples/lin_settings_fire3_example.py b/examples/lin_settings_fire3_example.py new file mode 100644 index 000000000..dff5d7e3c --- /dev/null +++ b/examples/lin_settings_fire3_example.py @@ -0,0 +1,33 @@ +import ics +import random +import time + +def dev_name(device): + # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) + if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + return device.Name + " " + ics.base36enc(device.SerialNumber) + else: + return device.Name + " " + str(device.SerialNumber) + +def print_settings(settings): + print("LIN 1 Baudrate:" + str(settings.Settings.fire3.lin1.Baudrate)) + print("LIN 1 Master resistor:" + ("OFF" if settings.Settings.fire3.lin1.MasterResistor else "ON")) + print("LIN 2 Baudrate:" + str(settings.Settings.fire3.lin2.Baudrate)) + print("LIN 2 Master resistor:" + ("OFF" if settings.Settings.fire3.lin2.MasterResistor else "ON")) + +if __name__ == "__main__": + try: + # Open the first device + device = ics.open_device() + print("Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})...") + except ics.RuntimeError as ex: + print("Failed to open first device: {ex}") + exit(1) + print("Reading settings...") + settings = ics.get_device_settings(device) + print(settings) + print("Writing settings...") + settings.Settings.fire3.lin1.Baudrate = 19200 + settings.Settings.fire3.lin1.MasterResistor = 0 + ics.set_device_settings(device, settings) + print(settings) diff --git a/src/methods.cpp b/src/methods.cpp index 049330c6c..84a6ce0a1 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -104,6 +104,8 @@ char* neodevice_to_string(unsigned long type) 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: @@ -111,6 +113,7 @@ char* neodevice_to_string(unsigned long type) 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"; @@ -126,11 +129,15 @@ char* neodevice_to_string(unsigned long type) 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_RED: return "neoVI RED"; case NEODEVICE_ECU: return "neoECU"; - case NEODEVICE_IEVB: + case NEODEVICE_IEVB: //also NEODEVICE_NEOECUCHIP return "IEVB"; case NEODEVICE_PENDANT: return "Pendant"; @@ -138,13 +145,13 @@ char* neodevice_to_string(unsigned long type) return "neoOBD2 PRO"; case NEODEVICE_ECUCHIP_UART: return "ECUCHIP"; - case NEODEVICE_PLASMA: + 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: + case NEODEVICE_ION: //also NEODEVICE_ANY_ION return "neoVI ION"; case NEODEVICE_RADSTAR: return "RAD-Star"; @@ -168,6 +175,12 @@ char* neodevice_to_string(unsigned long type) 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: + default: + return "Unknown"; }; return "Intrepid Device"; } From 1d7f2ad66648b34c1ed721515f63f3048c5dceba Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 12 Jun 2023 13:14:12 -0400 Subject: [PATCH 096/201] updated lin settings example --- examples/lin_settings_example.py | 100 +++++++++++++++++++++++++ examples/lin_settings_fire3_example.py | 33 -------- 2 files changed, 100 insertions(+), 33 deletions(-) create mode 100644 examples/lin_settings_example.py delete mode 100644 examples/lin_settings_fire3_example.py diff --git a/examples/lin_settings_example.py b/examples/lin_settings_example.py new file mode 100644 index 000000000..5aa3583c4 --- /dev/null +++ b/examples/lin_settings_example.py @@ -0,0 +1,100 @@ +import ics +from ics.structures.s_device_settings import s_device_settings +from ics.structures.e_device_settings_type import e_device_settings_type + + +def get_device_specific_settings(s: s_device_settings) -> object: + """ + Returns the device specific setting structure for our device in question + """ + setting_map = {} + # We need to map the Union type to the DeviceSettingType + setting_map[e_device_settings_type.DeviceCANHUBSettingsType] = "canhub" + setting_map[e_device_settings_type.DeviceCMProbeSettingsType] = "cmprobe" + setting_map[e_device_settings_type.DeviceECU_AVBSettingsType] = "neoecu_avb" + setting_map[e_device_settings_type.DeviceEEVBSettingsType] = "eevb" + setting_map[e_device_settings_type.DeviceFire2SettingsType] = "cyan" + setting_map[e_device_settings_type.DeviceFireSettingsType] = "fire" + setting_map[e_device_settings_type.DeviceFireVnetSettingsType] = "firevnet" + setting_map[e_device_settings_type.DeviceFlexVnetzSettingsType] = "flexvnetz" + setting_map[e_device_settings_type.DeviceIEVBSettingsType] = "ievb" + setting_map[e_device_settings_type.DeviceNeoECU12SettingsType] = "neoecu12" + setting_map[e_device_settings_type.DeviceOBD2ProSettingsType] = "obd2pro" + setting_map[e_device_settings_type.DeviceRADGalaxySettingsType] = "radgalaxy" + setting_map[e_device_settings_type.DeviceRADGigalogSettingsType] = "radgigalog" + setting_map[e_device_settings_type.DeviceRADGigastarSettingsType] = "radgigastar" + setting_map[e_device_settings_type.DeviceRADMoon2SettingsType] = "radmoon2" + setting_map[e_device_settings_type.DeviceRADPlutoSettingsType] = "pluto" + setting_map[e_device_settings_type.DeviceRADStar2SettingsType] = "radstar2" + setting_map[e_device_settings_type.DeviceRADSuperMoonSettingsType] = "radsupermoon" + setting_map[e_device_settings_type.DeviceRADMoon2SettingsType] = "radmoon2" + setting_map[e_device_settings_type.DeviceRedSettingsType] = "red" + setting_map[e_device_settings_type.DeviceVCAN3SettingsType] = "vcan3" + setting_map[e_device_settings_type.DeviceVCAN412SettingsType] = "vcan412" + setting_map[e_device_settings_type.DeviceVCAN4IndSettingsType] = "vcan4_ind" + setting_map[e_device_settings_type.DeviceVCAN4SettingsType] = "vcan4" + setting_map[e_device_settings_type.DeviceVCANRFSettingsType] = "vcanrf" + setting_map[e_device_settings_type.DeviceVividCANSettingsType] = "vividcan" + setting_map[e_device_settings_type.DeviceRADJupiterSettingsType] = "jupiter" + setting_map[e_device_settings_type.DeviceFire3SettingsType] = "fire3" + setting_map[e_device_settings_type.DeviceFire3FlexraySettingsType] = "fire3Flexray" + setting_map[e_device_settings_type.DeviceRed2SettingsType] = "red2" + setting_map[e_device_settings_type.DeviceRADA2BSettingsType] = "rad_a2b" + setting_map[e_device_settings_type.DeviceOBD2LCSettingsType] = "obd2lc" + + if s.DeviceSettingType not in setting_map: + raise KeyError( + f"Error: {s.DeviceSettingType} is not a known type in setting_map" + ) + return getattr(s.Settings, setting_map[s.DeviceSettingType]) + + +def dev_name(device): + # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) + if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + return device.Name + " " + ics.base36enc(device.SerialNumber) + else: + return device.Name + " " + str(device.SerialNumber) + + +def print_settings(device_specific_settings): + if hasattr(device_specific_settings, "lin1"): + print(f"LIN 1 Baudrate: {settings.Settings.fire3.lin1.Baudrate}") + print(f"LIN 1 Master resistor: {device_specific_settings.lin1.MasterResistor}") + else: + print("This device doesn't have a lin1 structure!") + + +if __name__ == "__main__": + try: + # Open the first device + device = ics.open_device() + print( + f"Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})..." + ) + except ics.RuntimeError as ex: + print(f"Failed to open first device: {ex}") + exit(1) + + print("Loading default settings...") + ics.load_default_settings(device) + + print("Reading settings...") + settings = ics.get_device_settings(device) + device_specific_settings = get_device_specific_settings(settings) + print_settings(device_specific_settings) + + print("Writing settings...") + device_specific_settings = get_device_specific_settings(settings) + if hasattr(device_specific_settings, "lin1"): + device_specific_settings.lin1.Baudrate = 19200 + device_specific_settings.lin1.MasterResistor = 0 + else: + print("This device doesn't have a lin1 structure to change!") + ics.set_device_settings(device, settings) + print_settings(device_specific_settings) + + print("Reading settings...") + settings = ics.get_device_settings(device) + device_specific_settings = get_device_specific_settings(settings) + print_settings(device_specific_settings) diff --git a/examples/lin_settings_fire3_example.py b/examples/lin_settings_fire3_example.py deleted file mode 100644 index dff5d7e3c..000000000 --- a/examples/lin_settings_fire3_example.py +++ /dev/null @@ -1,33 +0,0 @@ -import ics -import random -import time - -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - -def print_settings(settings): - print("LIN 1 Baudrate:" + str(settings.Settings.fire3.lin1.Baudrate)) - print("LIN 1 Master resistor:" + ("OFF" if settings.Settings.fire3.lin1.MasterResistor else "ON")) - print("LIN 2 Baudrate:" + str(settings.Settings.fire3.lin2.Baudrate)) - print("LIN 2 Master resistor:" + ("OFF" if settings.Settings.fire3.lin2.MasterResistor else "ON")) - -if __name__ == "__main__": - try: - # Open the first device - device = ics.open_device() - print("Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})...") - except ics.RuntimeError as ex: - print("Failed to open first device: {ex}") - exit(1) - print("Reading settings...") - settings = ics.get_device_settings(device) - print(settings) - print("Writing settings...") - settings.Settings.fire3.lin1.Baudrate = 19200 - settings.Settings.fire3.lin1.MasterResistor = 0 - ics.set_device_settings(device, settings) - print(settings) From 0a717a2754c0a205cc395323e82999f125fae485 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 28 Jun 2023 15:19:53 -0400 Subject: [PATCH 097/201] updated header to latest 913. Signed-off-by: David Rebbe --- ics/hiddenimports.py | 9 +- ics/structures/__init__.py | 9 +- ics/structures/e_device_settings_type.py | 2 + ics/structures/ethernet10_t1_s_settings.py | 23 + ics/structures/generic_api_data.py | 2 +- ics/structures/generic_api_data_old.py | 19 + ics/structures/generic_binary_status.py | 19 + ics/structures/global_settings.py | 8 +- ics/structures/ics_device_status.py | 2 + .../ics_rad_epsilon_device_status.py | 2 +- ics/structures/ics_spy_message_flex_ray.py | 26 +- ics/structures/ics_spy_message_long.py | 12 +- ics/structures/ics_spy_message_mdio.py | 74 + ics/structures/ics_spy_message_vsb.py | 12 +- ics/structures/iso15765_2015_tx_message.py | 12 +- ics/structures/manufacturing_operation.py | 28 - ics/structures/phy_error_type.py | 29 + ics/structures/s_device_settings.py | 2 + ics/structures/s_ext_sub_cmd_comm.py | 65 - ics/structures/s_phy_reg_pkt.py | 16 +- ics/structures/srad_comet_settings.py | 86 + ics/structures/srad_epsilon_settings.py | 1 + ics/structures/srad_galaxy_settings.py | 1 + ics/structures/srad_gigalog_settings.py | 1 + ics/structures/srad_gigastar_settings.py | 1 + ics/structures/srad_moon2_settings.py | 1 + ics/structures/srad_moon3_settings.py | 1 + ics/structures/srad_star2_settings.py | 1 + ics/structures/srad_super_moon_settings.py | 1 + ics/structures/srada2_b_settings.py | 1 + ics/structures/sradbms_settings.py | 4 + ics/structures/st_chip_versions.py | 10 + ics/structures/st_cm_iso157652_rx_message.py | 12 +- ics/structures/st_cm_iso157652_tx_message.py | 12 +- ics/structures/wbms_gateway_settings.py | 19 + icsnVC40.h.enums.json | 369 +- icsnVC40.h.json | 1617 +++-- icsnVC40_processed.h | 6269 +++++++++-------- include/ics/icsnVC40.h | 975 ++- include/setup_module_auto_defines.h | 2 +- src/setup_module_auto_defines.cpp | 65 +- 41 files changed, 5658 insertions(+), 4162 deletions(-) create mode 100644 ics/structures/ethernet10_t1_s_settings.py create mode 100644 ics/structures/generic_api_data_old.py create mode 100644 ics/structures/generic_binary_status.py create mode 100644 ics/structures/ics_spy_message_mdio.py delete mode 100644 ics/structures/manufacturing_operation.py create mode 100644 ics/structures/phy_error_type.py delete mode 100644 ics/structures/s_ext_sub_cmd_comm.py create mode 100644 ics/structures/srad_comet_settings.py create mode 100644 ics/structures/wbms_gateway_settings.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index 335ffd155..af2f392b0 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -24,6 +24,7 @@ "ics.structures.ethernet_settings", "ics.structures.ethernet_settings2", "ics.structures.ethernet10_g_settings", + "ics.structures.ethernet10_t1_s_settings", "ics.structures.logger_settings", "ics.structures.disk_settings", "ics.structures.canterm_settings", @@ -38,6 +39,7 @@ "ics.structures.generic_api_selector", "ics.structures.generic_api_status", "ics.structures.generic_api_data", + "ics.structures.generic_api_data_old", "ics.structures.w_bms_manager_set_lock", "ics.structures.w_bms_manager_reset", "ics.structures.uart_port_data", @@ -55,8 +57,7 @@ "ics.structures.system_identity", "ics.structures.priority_vector", "ics.structures.gptp_status", - "ics.structures.manufacturing_operation", - "ics.structures.s_ext_sub_cmd_comm", + "ics.structures.generic_binary_status", "ics.structures.serdescam_settings", "ics.structures.serdespoc_settings", "ics.structures.serdesgen_settings", @@ -129,7 +130,9 @@ "ics.structures.s_spi_port_setting", "ics.structures.s_spi_port_settings", "ics.structures.s_wil_bridge_config", + "ics.structures.wbms_gateway_settings", "ics.structures.sradbms_settings", + "ics.structures.srad_comet_settings", "ics.structures.global_settings", "ics.structures.s_device_settings", "ics.structures.st_cm_iso157652_tx_message", @@ -137,6 +140,7 @@ "ics.structures.st_cm_iso157652_rx_message", "ics.structures.spy_filter_long", "ics.structures.ics_spy_message_flex_ray", + "ics.structures.ics_spy_message_mdio", "ics.structures.ics_spy_message_long", "ics.structures.ics_spy_message_vsb", "ics.structures.ethernet_network_status_t", @@ -176,5 +180,6 @@ "ics.structures.s_phy_reg_pkt_status", "ics.structures.s_phy_reg_pkt_rw", "ics.structures.device_feature", + "ics.structures.phy_error_type", ] diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index 3d605d14b..602fd98b7 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -24,6 +24,7 @@ "ethernet_settings", "ethernet_settings2", "ethernet10_g_settings", + "ethernet10_t1_s_settings", "logger_settings", "disk_settings", "canterm_settings", @@ -38,6 +39,7 @@ "generic_api_selector", "generic_api_status", "generic_api_data", + "generic_api_data_old", "w_bms_manager_set_lock", "w_bms_manager_reset", "uart_port_data", @@ -55,8 +57,7 @@ "system_identity", "priority_vector", "gptp_status", - "manufacturing_operation", - "s_ext_sub_cmd_comm", + "generic_binary_status", "serdescam_settings", "serdespoc_settings", "serdesgen_settings", @@ -129,7 +130,9 @@ "s_spi_port_setting", "s_spi_port_settings", "s_wil_bridge_config", + "wbms_gateway_settings", "sradbms_settings", + "srad_comet_settings", "global_settings", "s_device_settings", "st_cm_iso157652_tx_message", @@ -137,6 +140,7 @@ "st_cm_iso157652_rx_message", "spy_filter_long", "ics_spy_message_flex_ray", + "ics_spy_message_mdio", "ics_spy_message_long", "ics_spy_message_vsb", "ethernet_network_status_t", @@ -176,4 +180,5 @@ "s_phy_reg_pkt_status", "s_phy_reg_pkt_rw", "device_feature", + "phy_error_type", ] diff --git a/ics/structures/e_device_settings_type.py b/ics/structures/e_device_settings_type.py index e94581f0f..fa55bd5c4 100644 --- a/ics/structures/e_device_settings_type.py +++ b/ics/structures/e_device_settings_type.py @@ -48,6 +48,8 @@ def from_param(cls, obj): DeviceRADMoon3SettingsType = enum.auto() DeviceFire3SettingsType = enum.auto() DeviceFire3FlexraySettingsType = enum.auto() + DeviceRADCometSettingsType = enum.auto() + DeviceRed2OemSettingsType = enum.auto() DeviceSettingsTypeMax = enum.auto() DeviceSettingsNone = 4294967295 diff --git a/ics/structures/ethernet10_t1_s_settings.py b/ics/structures/ethernet10_t1_s_settings.py new file mode 100644 index 000000000..d79200f87 --- /dev/null +++ b/ics/structures/ethernet10_t1_s_settings.py @@ -0,0 +1,23 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class ethernet10_t1_s_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('max_burst_count', ctypes.c_uint8), + ('burst_timer', ctypes.c_uint8), + ('max_num_nodes', ctypes.c_uint8), + ('local_id', ctypes.c_uint8), + ('to_timer', ctypes.c_uint8), + ('flags', ctypes.c_uint8), + ('local_id_alternate', ctypes.c_uint8), + ('rsvd', ctypes.c_uint8 * 5), + ] + + +ETHERNET10T1S_SETTINGS_t = ethernet10_t1_s_settings +ETHERNET10T1S_SETTINGS = ethernet10_t1_s_settings + diff --git a/ics/structures/generic_api_data.py b/ics/structures/generic_api_data.py index 00eda9c75..fec356b70 100644 --- a/ics/structures/generic_api_data.py +++ b/ics/structures/generic_api_data.py @@ -8,9 +8,9 @@ class generic_api_data(ctypes.Structure): _pack_ = 2 _fields_ = [ + ('length', ctypes.c_uint16), ('api', GenericAPISelector), ('bData', ctypes.c_uint8 * 513), - ('length', ctypes.c_uint16), ] diff --git a/ics/structures/generic_api_data_old.py b/ics/structures/generic_api_data_old.py new file mode 100644 index 000000000..bd17c5345 --- /dev/null +++ b/ics/structures/generic_api_data_old.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.generic_api_selector import * + + +class generic_api_data_old(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('api', GenericAPISelector), + ('bData', ctypes.c_uint8 * 513), + ('length', ctypes.c_uint16), + ] + + +_GenericAPIData_OLD = generic_api_data_old +GenericAPIData_OLD = generic_api_data_old + diff --git a/ics/structures/generic_binary_status.py b/ics/structures/generic_binary_status.py new file mode 100644 index 000000000..1538a7bb9 --- /dev/null +++ b/ics/structures/generic_binary_status.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class generic_binary_status(ctypes.Structure): + _pack_ = 1 + _fields_ = [ + ('size', ctypes.c_uint32), + ('index', ctypes.c_uint16), + ('status', ctypes.c_uint16), + ('reserved', ctypes.c_uint8 * 8), + ] + + +_GenericBinaryStatus = generic_binary_status +GenericBinaryStatus = generic_binary_status + diff --git a/ics/structures/global_settings.py b/ics/structures/global_settings.py index 79c0f9f86..a3c0ab6b4 100644 --- a/ics/structures/global_settings.py +++ b/ics/structures/global_settings.py @@ -24,6 +24,7 @@ from ics.structures.sobd2_lc_settings import * from ics.structures.sobd2_pro_settings import * from ics.structures.sobd2_sim_settings import * +from ics.structures.srad_comet_settings import * from ics.structures.srad_epsilon_settings import * from ics.structures.srad_galaxy_settings import * from ics.structures.srad_gigalog_settings import * @@ -43,7 +44,7 @@ from ics.structures.svcanrf_settings import * -class Nameless32656(ctypes.Union): +class Nameless59426(ctypes.Union): _pack_ = 2 _fields_ = [ ('red', SRedSettings), @@ -86,18 +87,19 @@ class Nameless32656(ctypes.Union): ('epsilon', SRADEpsilonSettings), ('rad_bms', SRADBMSSettings), ('radmoon3', SRADMoon3Settings), + ('radcomet', SRADCometSettings), ] class global_settings(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless32656',) + _anonymous_ = ('Nameless59426',) _fields_ = [ ('version', ctypes.c_uint16), ('len', ctypes.c_uint16), ('chksum', ctypes.c_uint16), - ('Nameless32656', Nameless32656), + ('Nameless59426', Nameless59426), ] diff --git a/ics/structures/ics_device_status.py b/ics/structures/ics_device_status.py index 112c09e96..4196b4422 100644 --- a/ics/structures/ics_device_status.py +++ b/ics/structures/ics_device_status.py @@ -7,6 +7,7 @@ from ics.structures.ics_flex_vnetz_device_status import * from ics.structures.ics_obd2_pro_device_status import * from ics.structures.ics_rad_bms_device_status import * +from ics.structures.ics_rad_epsilon_device_status import * from ics.structures.ics_rad_jupiter_device_status import * from ics.structures.ics_rad_moon_duo_device_status import * from ics.structures.ics_rad_pluto_device_status import * @@ -25,6 +26,7 @@ class ics_device_status(ctypes.Union): ('jupiterStatus', icsRadJupiterDeviceStatus), ('obd2proStatus', icsOBD2ProDeviceStatus), ('plutoStatus', icsRadPlutoDeviceStatus), + ('epsilonStatus', icsRadEpsilonDeviceStatus), ('vcan4indStatus', icsVcan4IndustrialDeviceStatus), ('radBMSStatus', icsRadBMSDeviceStatus), ] diff --git a/ics/structures/ics_rad_epsilon_device_status.py b/ics/structures/ics_rad_epsilon_device_status.py index d350061c1..9e39bf62b 100644 --- a/ics/structures/ics_rad_epsilon_device_status.py +++ b/ics/structures/ics_rad_epsilon_device_status.py @@ -7,7 +7,7 @@ class ics_rad_epsilon_device_status(ctypes.Structure): _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t), + ('ethernetStatus', ethernetNetworkStatus_t * 9), ] diff --git a/ics/structures/ics_spy_message_flex_ray.py b/ics/structures/ics_spy_message_flex_ray.py index 15237c558..aa99063ee 100644 --- a/ics/structures/ics_spy_message_flex_ray.py +++ b/ics/structures/ics_spy_message_flex_ray.py @@ -4,7 +4,7 @@ -class Nameless49459(ctypes.Structure): +class Nameless7100(ctypes.Structure): _fields_ = [ ('id', ctypes.c_uint32, 12), ('res1', ctypes.c_uint32, 4), @@ -21,16 +21,16 @@ class Nameless49459(ctypes.Structure): -class Nameless21903(ctypes.Union): - _anonymous_ = ('Nameless49459',) +class Nameless9992(ctypes.Union): + _anonymous_ = ('Nameless7100',) _fields_ = [ ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless49459', Nameless49459), + ('Nameless7100', Nameless7100), ] -class Nameless7100(ctypes.Structure): +class Nameless65087(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -38,7 +38,7 @@ class Nameless7100(ctypes.Structure): -class Nameless9992(ctypes.Structure): +class Nameless21496(ctypes.Structure): _fields_ = [ ('hcrc_msbs', ctypes.c_uint32, 3), ('res2', ctypes.c_uint32, 5), @@ -52,18 +52,18 @@ class Nameless9992(ctypes.Structure): -class Nameless65087(ctypes.Union): - _anonymous_ = ('Nameless7100', 'Nameless9992') +class Nameless9872(ctypes.Union): + _anonymous_ = ('Nameless65087', 'Nameless21496') _fields_ = [ - ('Nameless7100', Nameless7100), + ('Nameless65087', Nameless65087), ('AckBytes', ctypes.c_uint8 * 8), - ('Nameless9992', Nameless9992), + ('Nameless21496', Nameless21496), ] class ics_spy_message_flex_ray(ctypes.Structure): - _anonymous_ = ('Nameless21903', 'Nameless65087') + _anonymous_ = ('Nameless9992', 'Nameless9872') _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -82,9 +82,9 @@ class ics_spy_message_flex_ray(ctypes.Structure): ('NumberBytesData', ctypes.c_uint8), ('NetworkID2', ctypes.c_uint8), ('DescriptionID', ctypes.c_uint16), - ('Nameless21903', Nameless21903), + ('Nameless9992', Nameless9992), ('Data', ctypes.c_uint8 * 8), - ('Nameless65087', Nameless65087), + ('Nameless9872', Nameless9872), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/ics_spy_message_long.py b/ics/structures/ics_spy_message_long.py index 6a1599d02..b89a7d1d0 100644 --- a/ics/structures/ics_spy_message_long.py +++ b/ics/structures/ics_spy_message_long.py @@ -4,7 +4,7 @@ -class Nameless21496(ctypes.Structure): +class Nameless14534(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless21496(ctypes.Structure): -class Nameless9872(ctypes.Union): - _anonymous_ = ('Nameless21496',) +class Nameless18511(ctypes.Union): + _anonymous_ = ('Nameless14534',) _fields_ = [ - ('Nameless21496', Nameless21496), + ('Nameless14534', Nameless14534), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_long(ctypes.Structure): - _anonymous_ = ('Nameless9872',) + _anonymous_ = ('Nameless18511',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -44,7 +44,7 @@ class ics_spy_message_long(ctypes.Structure): ('ArbIDOrHeader', ctypes.c_uint32), ('DataMsb', ctypes.c_uint32), ('DataLsb', ctypes.c_uint32), - ('Nameless9872', Nameless9872), + ('Nameless18511', Nameless18511), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/ics_spy_message_mdio.py b/ics/structures/ics_spy_message_mdio.py new file mode 100644 index 000000000..c92673bc7 --- /dev/null +++ b/ics/structures/ics_spy_message_mdio.py @@ -0,0 +1,74 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class Nameless28192(ctypes.Structure): + _fields_ = [ + ('RegAddr', ctypes.c_uint32, 16), + ('PhyAddr', ctypes.c_uint32, 5), + ('DevType', ctypes.c_uint32, 5), + ('', ctypes.c_uint32, 6), + ] + + + +class Nameless18906(ctypes.Union): + _anonymous_ = ('Nameless28192',) + _fields_ = [ + ('ArbIDOrHeader', ctypes.c_uint32), + ('Nameless28192', Nameless28192), + ] + + + +class Nameless3555(ctypes.Structure): + _fields_ = [ + ('StatusBitField3', ctypes.c_uint32), + ('StatusBitField4', ctypes.c_uint32), + ] + + + +class Nameless45381(ctypes.Union): + _anonymous_ = ('Nameless3555',) + _fields_ = [ + ('Nameless3555', Nameless3555), + ('AckBytes', ctypes.c_uint8 * 8), + ] + + + +class ics_spy_message_mdio(ctypes.Structure): + _anonymous_ = ('Nameless18906', 'Nameless45381') + _fields_ = [ + ('StatusBitField', ctypes.c_uint32), + ('StatusBitField2', ctypes.c_uint32), + ('TimeHardware', ctypes.c_uint32), + ('TimeHardware2', ctypes.c_uint32), + ('TimeSystem', ctypes.c_uint32), + ('TimeSystem2', ctypes.c_uint32), + ('TimeStampHardwareID', ctypes.c_uint8), + ('TimeStampSystemID', ctypes.c_uint8), + ('NetworkID', ctypes.c_uint8), + ('NodeID', ctypes.c_uint8), + ('Protocol', ctypes.c_uint8), + ('MessagePieceID', ctypes.c_uint8), + ('ExtraDataPtrEnabled', ctypes.c_uint8), + ('NumberBytesHeader', ctypes.c_uint8), + ('NumberBytesData', ctypes.c_uint8), + ('NetworkID2', ctypes.c_uint8), + ('DescriptionID', ctypes.c_uint16), + ('Nameless18906', Nameless18906), + ('Data', ctypes.c_uint8 * 8), + ('Nameless45381', Nameless45381), + ('ExtraDataPtr', ctypes.c_void_p), + ('MiscData', ctypes.c_uint8), + ('Reserved', ctypes.c_uint8 * 3), + ] + + +_icsSpyMessageMdio = ics_spy_message_mdio +icsSpyMessageMdio = ics_spy_message_mdio + diff --git a/ics/structures/ics_spy_message_vsb.py b/ics/structures/ics_spy_message_vsb.py index a2c975d21..1432af372 100644 --- a/ics/structures/ics_spy_message_vsb.py +++ b/ics/structures/ics_spy_message_vsb.py @@ -4,7 +4,7 @@ -class Nameless3555(ctypes.Structure): +class Nameless5189(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless3555(ctypes.Structure): -class Nameless45381(ctypes.Union): - _anonymous_ = ('Nameless3555',) +class Nameless54558(ctypes.Union): + _anonymous_ = ('Nameless5189',) _fields_ = [ - ('Nameless3555', Nameless3555), + ('Nameless5189', Nameless5189), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_vsb(ctypes.Structure): - _anonymous_ = ('Nameless45381',) + _anonymous_ = ('Nameless54558',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -43,7 +43,7 @@ class ics_spy_message_vsb(ctypes.Structure): ('DescriptionID', ctypes.c_int16), ('ArbIDOrHeader', ctypes.c_uint32), ('Data', ctypes.c_uint8 * 8), - ('Nameless45381', Nameless45381), + ('Nameless54558', Nameless54558), ('ExtraDataPtr', ctypes.c_uint32), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/iso15765_2015_tx_message.py b/ics/structures/iso15765_2015_tx_message.py index 0bdaf13c7..868652571 100644 --- a/ics/structures/iso15765_2015_tx_message.py +++ b/ics/structures/iso15765_2015_tx_message.py @@ -4,7 +4,7 @@ -class Nameless2529(ctypes.Structure): +class Nameless757(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint16, 1), @@ -21,11 +21,11 @@ class Nameless2529(ctypes.Structure): -class Nameless9252(ctypes.Union): +class Nameless43713(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless2529',) + _anonymous_ = ('Nameless757',) _fields_ = [ - ('Nameless2529', Nameless2529), + ('Nameless757', Nameless757), ('flags', ctypes.c_uint16), ] @@ -33,7 +33,7 @@ class Nameless9252(ctypes.Union): class iso15765_2015_tx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless9252',) + _anonymous_ = ('Nameless43713',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -50,7 +50,7 @@ class iso15765_2015_tx_message(ctypes.Structure): ('data', ctypes.POINTER(ctypes.c_uint8)), ('num_bytes', ctypes.c_uint32), ('tx_dl', ctypes.c_uint8), - ('Nameless9252', Nameless9252), + ('Nameless43713', Nameless43713), ] diff --git a/ics/structures/manufacturing_operation.py b/ics/structures/manufacturing_operation.py deleted file mode 100644 index d7e23fe8c..000000000 --- a/ics/structures/manufacturing_operation.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class unlock(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('apiVersion', ctypes.c_uint32), - ('code', ctypes.c_uint32), - ] - - - -class manufacturing_operation(ctypes.Union): - _pack_ = 1 - _fields_ = [ - ('rtcCalEnable', ctypes.c_uint32), - ('rtcCalValue', ctypes.c_int), - ('unlock', unlock), - ('bytes', ctypes.c_uint8 * 256), - ] - - -ManufacturingOperation = manufacturing_operation -ManufacturingOperation = manufacturing_operation - diff --git a/ics/structures/phy_error_type.py b/ics/structures/phy_error_type.py new file mode 100644 index 000000000..da0ed63ff --- /dev/null +++ b/ics/structures/phy_error_type.py @@ -0,0 +1,29 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class phy_error_type(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + 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 = phy_error_type +PhyErrorType = phy_error_type + diff --git a/ics/structures/s_device_settings.py b/ics/structures/s_device_settings.py index 332cdfed3..9a77e87a1 100644 --- a/ics/structures/s_device_settings.py +++ b/ics/structures/s_device_settings.py @@ -26,6 +26,7 @@ from ics.structures.sobd2_lc_settings import * from ics.structures.sobd2_pro_settings import * from ics.structures.sobd2_sim_settings import * +from ics.structures.srad_comet_settings import * from ics.structures.srad_epsilon_settings import * from ics.structures.srad_galaxy_settings import * from ics.structures.srad_gigalog_settings import * @@ -89,6 +90,7 @@ class Settings(ctypes.Union): ('rad_bms', SRADBMSSettings), ('radmoon3', SRADMoon3Settings), ('fire3Flexray', SFire3FlexraySettings), + ('radcomet', SRADCometSettings), ] diff --git a/ics/structures/s_ext_sub_cmd_comm.py b/ics/structures/s_ext_sub_cmd_comm.py deleted file mode 100644 index 5a9bb02f1..000000000 --- a/ics/structures/s_ext_sub_cmd_comm.py +++ /dev/null @@ -1,65 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.extended_response_generic import * -from ics.structures.generic_api_data import * -from ics.structures.generic_api_selector import * -from ics.structures.generic_api_status import * -from ics.structures.get_component_versions import * -from ics.structures.get_component_versions_response import * -from ics.structures.get_supported_features_response import * -from ics.structures.gptp_status import * -from ics.structures.manufacturing_operation import * -from ics.structures.s_disk_details import * -from ics.structures.s_disk_format_progress import * -from ics.structures.s_disk_structure import * -from ics.structures.s_ext_sub_cmd_hdr import * -from ics.structures.software_update_command import * -from ics.structures.start_dhcp_server_command import * -from ics.structures.stop_dhcp_server_command import * -from ics.structures.uart_port_config import * -from ics.structures.uart_port_data import * -from ics.structures.uart_port_port_bytes import * -from ics.structures.w_bms_manager_reset import * -from ics.structures.w_bms_manager_set_lock import * - - -class extension(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('structure', SDiskStructure), - ('details', SDiskDetails), - ('progress', SDiskFormatProgress), - ('startDHCPServer', StartDHCPServerCommand), - ('stopDHCPServer', StopDHCPServerCommand), - ('getSupportedFeatures', GetSupportedFeaturesResponse), - ('genericResponse', ExtendedResponseGeneric), - ('gptpStatus', GPTPStatus), - ('apiStatus', GenericAPIStatus), - ('apiData', GenericAPIData), - ('apiSelector', GenericAPISelector), - ('getComponentVersions', GetComponentVersions), - ('softwareUpdate', SoftwareUpdateCommand), - ('getComponentVersionsResponse', GetComponentVersionsResponse), - ('wbmsManagerToLockUnlock', wBMSManagerSetLock), - ('wbmsManagerToReset', wBMSManagerReset), - ('uartData', UartPortData), - ('uartBytesLen', UartPortPortBytes), - ('uartConfig', UartPortConfig), - ('mfgOperation', ManufacturingOperation), - ] - - - -class s_ext_sub_cmd_comm(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('header', SExtSubCmdHdr), - ('extension', extension), - ] - - -_SExtSubCmdComm = s_ext_sub_cmd_comm -SExtSubCmdComm = s_ext_sub_cmd_comm - diff --git a/ics/structures/s_phy_reg_pkt.py b/ics/structures/s_phy_reg_pkt.py index bf22fdb05..3c87f355a 100644 --- a/ics/structures/s_phy_reg_pkt.py +++ b/ics/structures/s_phy_reg_pkt.py @@ -6,7 +6,7 @@ from ics.structures.s_phy_reg_pkt_clause45_mess import * -class Nameless14534(ctypes.Structure): +class Nameless36278(ctypes.Structure): _fields_ = [ ('Enabled', ctypes.c_uint16, 1), ('WriteEnable', ctypes.c_uint16, 1), @@ -19,16 +19,16 @@ class Nameless14534(ctypes.Structure): -class Nameless18511(ctypes.Union): - _anonymous_ = ('Nameless14534',) +class Nameless5269(ctypes.Union): + _anonymous_ = ('Nameless36278',) _fields_ = [ - ('Nameless14534', Nameless14534), + ('Nameless36278', Nameless36278), ('flags', ctypes.c_uint16), ] -class Nameless40028(ctypes.Union): +class Nameless23244(ctypes.Union): _fields_ = [ ('clause22', PhyRegPktClause22Mess_t), ('clause45', PhyRegPktClause45Mess_t), @@ -37,10 +37,10 @@ class Nameless40028(ctypes.Union): class s_phy_reg_pkt(ctypes.Structure): - _anonymous_ = ('Nameless18511', 'Nameless40028') + _anonymous_ = ('Nameless5269', 'Nameless23244') _fields_ = [ - ('Nameless18511', Nameless18511), - ('Nameless40028', Nameless40028), + ('Nameless5269', Nameless5269), + ('Nameless23244', Nameless23244), ] diff --git a/ics/structures/srad_comet_settings.py b/ics/structures/srad_comet_settings.py new file mode 100644 index 000000000..b85243754 --- /dev/null +++ b/ics/structures/srad_comet_settings.py @@ -0,0 +1,86 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.can_settings import * +from ics.structures.canfd_settings import * +from ics.structures.ethernet10_t1_s_settings import * +from ics.structures.ethernet_settings2 import * +from ics.structures.iso9141_keyword2000_settings import * +from ics.structures.op_eth_general_settings import * +from ics.structures.op_eth_settings import * +from ics.structures.rad_reporting_settings import * +from ics.structures.s_text_api_settings import * +from ics.structures.srad_gptp_settings_s import * +from ics.structures.timesync_icshardware_settings import * + + +class flags(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('hwComLatencyTestEn', ctypes.c_uint16, 1), + ('disableUsbCheckOnBoot', ctypes.c_uint16, 1), + ('reserved', ctypes.c_uint16, 14), + ] + + + +class Nameless26218(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('network_enables', ctypes.c_uint16), + ('network_enables_2', ctypes.c_uint16), + ('network_enables_3', ctypes.c_uint16), + ('network_enables_4', ctypes.c_uint16), + ] + + + +class network_enables(ctypes.Union): + _pack_ = 2 + _anonymous_ = ('Nameless26218',) + _fields_ = [ + ('word', ctypes.c_uint64), + ('Nameless26218', Nameless26218), + ] + + + +class srad_comet_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('ecu_id', ctypes.c_uint32), + ('perf_en', ctypes.c_uint16), + ('flags', flags), + ('network_enabled_on_boot', ctypes.c_uint16), + ('can1', CAN_SETTINGS), + ('canfd1', CANFD_SETTINGS), + ('can2', CAN_SETTINGS), + ('canfd2', CANFD_SETTINGS), + ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity_1', ctypes.c_uint16), + ('iso_msg_termination_1', ctypes.c_uint16), + ('network_enables', network_enables), + ('termination_enables', ctypes.c_uint64), + ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), + ('reporting', RAD_REPORTING_SETTINGS), + ('iso15765_separation_time_offset', ctypes.c_int16), + ('pwr_man_timeout', ctypes.c_uint32), + ('pwr_man_enable', ctypes.c_uint16), + ('gPTP', RAD_GPTP_SETTINGS), + ('text_api', STextAPISettings), + ('ethernet', ETHERNET_SETTINGS2), + ('opEthGen', OP_ETH_GENERAL_SETTINGS), + ('ethT1', ETHERNET_SETTINGS2), + ('opEth1', OP_ETH_SETTINGS), + ('ethT1s1', ETHERNET_SETTINGS2), + ('t1s1', ETHERNET10T1S_SETTINGS), + ('ethT1s2', ETHERNET_SETTINGS2), + ('t1s2', ETHERNET10T1S_SETTINGS), + ('network_enables_5', ctypes.c_uint64), + ] + + +_SRADCometSettings = srad_comet_settings +SRADCometSettings = srad_comet_settings + diff --git a/ics/structures/srad_epsilon_settings.py b/ics/structures/srad_epsilon_settings.py index 3a6a3696b..253740eb4 100644 --- a/ics/structures/srad_epsilon_settings.py +++ b/ics/structures/srad_epsilon_settings.py @@ -51,6 +51,7 @@ class srad_epsilon_settings(ctypes.Structure): ('flags', flags), ('switchSettings', SRADEpsilonSwitchSettings), ('ethernet2', ETHERNET_SETTINGS2), + ('misc_io_on_report_events', ctypes.c_uint16), ] diff --git a/ics/structures/srad_galaxy_settings.py b/ics/structures/srad_galaxy_settings.py index 67956b2d0..e1b2e5993 100644 --- a/ics/structures/srad_galaxy_settings.py +++ b/ics/structures/srad_galaxy_settings.py @@ -86,6 +86,7 @@ class srad_galaxy_settings(ctypes.Structure): ('ethernet2', ETHERNET_SETTINGS2), ('network_enables_4', ctypes.c_uint16), ('gPTP', RAD_GPTP_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srad_gigalog_settings.py b/ics/structures/srad_gigalog_settings.py index 314d98808..3a927c7eb 100644 --- a/ics/structures/srad_gigalog_settings.py +++ b/ics/structures/srad_gigalog_settings.py @@ -83,6 +83,7 @@ class srad_gigalog_settings(ctypes.Structure): ('network_enables_4', ctypes.c_uint16), ('reporting', RAD_REPORTING_SETTINGS), ('serdesgen', SERDESGEN_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srad_gigastar_settings.py b/ics/structures/srad_gigastar_settings.py index 3daba3575..83a076eeb 100644 --- a/ics/structures/srad_gigastar_settings.py +++ b/ics/structures/srad_gigastar_settings.py @@ -82,6 +82,7 @@ class srad_gigastar_settings(ctypes.Structure): ('network_enables_4', ctypes.c_uint16), ('serdesgen', SERDESGEN_SETTINGS), ('gPTP', RAD_GPTP_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srad_moon2_settings.py b/ics/structures/srad_moon2_settings.py index a017cea2d..ed27f31dc 100644 --- a/ics/structures/srad_moon2_settings.py +++ b/ics/structures/srad_moon2_settings.py @@ -24,6 +24,7 @@ class srad_moon2_settings(ctypes.Structure): ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), ('hwComLatencyTestEn', ctypes.c_uint16), ('gPTP', RAD_GPTP_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srad_moon3_settings.py b/ics/structures/srad_moon3_settings.py index 4a1e75fce..e9fdf51b0 100644 --- a/ics/structures/srad_moon3_settings.py +++ b/ics/structures/srad_moon3_settings.py @@ -25,6 +25,7 @@ class srad_moon3_settings(ctypes.Structure): ('network_enabled_on_boot', ctypes.c_uint16), ('network_enables_3', ctypes.c_uint16), ('flags', flags), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srad_star2_settings.py b/ics/structures/srad_star2_settings.py index acf6864b3..0fdffd9ea 100644 --- a/ics/structures/srad_star2_settings.py +++ b/ics/structures/srad_star2_settings.py @@ -56,6 +56,7 @@ class srad_star2_settings(ctypes.Structure): ('reporting', RAD_REPORTING_SETTINGS), ('ethernet', ETHERNET_SETTINGS2), ('gPTP', RAD_GPTP_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srad_super_moon_settings.py b/ics/structures/srad_super_moon_settings.py index 71b60819e..4b683280d 100644 --- a/ics/structures/srad_super_moon_settings.py +++ b/ics/structures/srad_super_moon_settings.py @@ -26,6 +26,7 @@ class srad_super_moon_settings(ctypes.Structure): ('hwComLatencyTestEn', ctypes.c_uint16), ('Eth2', ETHERNET_SETTINGS2), ('gPTP', RAD_GPTP_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/srada2_b_settings.py b/ics/structures/srada2_b_settings.py index 296a57843..e6a2cdb76 100644 --- a/ics/structures/srada2_b_settings.py +++ b/ics/structures/srada2_b_settings.py @@ -52,6 +52,7 @@ class srada2_b_settings(ctypes.Structure): ('pwr_man_enable', ctypes.c_uint16), ('ethernet', ETHERNET_SETTINGS2), ('gPTP', RAD_GPTP_SETTINGS), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/sradbms_settings.py b/ics/structures/sradbms_settings.py index bf841d3c0..fd7496c58 100644 --- a/ics/structures/sradbms_settings.py +++ b/ics/structures/sradbms_settings.py @@ -9,6 +9,7 @@ from ics.structures.s_spi_port_settings import * from ics.structures.s_wil_bridge_config import * from ics.structures.s_wil_connection_settings import * +from ics.structures.wbms_gateway_settings import * class flags(ctypes.Structure): @@ -47,6 +48,9 @@ class sradbms_settings(ctypes.Structure): ('wbms_wil_2', sWIL_CONNECTION_SETTINGS), ('wil1_nwk_metadata_buff_count', ctypes.c_uint16), ('wil2_nwk_metadata_buff_count', ctypes.c_uint16), + ('gateway', WBMSGatewaySettings), + ('network_enables_4', ctypes.c_uint16), + ('network_enables_5', ctypes.c_uint64), ] diff --git a/ics/structures/st_chip_versions.py b/ics/structures/st_chip_versions.py index d04e281f6..c1efd03ce 100644 --- a/ics/structures/st_chip_versions.py +++ b/ics/structures/st_chip_versions.py @@ -319,6 +319,15 @@ class epsilon_versions(ctypes.Structure): +class rad_comet_versions(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('zynq_core_major', ctypes.c_uint8), + ('zynq_core_minor', ctypes.c_uint8), + ] + + + class st_chip_versions(ctypes.Union): _pack_ = 2 _fields_ = [ @@ -353,6 +362,7 @@ class st_chip_versions(ctypes.Union): ('ether_badge_versions', ether_badge_versions), ('rad_a2b_versions', rad_a2b_versions), ('epsilon_versions', epsilon_versions), + ('rad_comet_versions', rad_comet_versions), ] diff --git a/ics/structures/st_cm_iso157652_rx_message.py b/ics/structures/st_cm_iso157652_rx_message.py index 771cf9702..0116ffdda 100644 --- a/ics/structures/st_cm_iso157652_rx_message.py +++ b/ics/structures/st_cm_iso157652_rx_message.py @@ -4,7 +4,7 @@ -class Nameless757(ctypes.Structure): +class Nameless18844(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint, 1), @@ -19,11 +19,11 @@ class Nameless757(ctypes.Structure): -class Nameless43713(ctypes.Union): +class Nameless61974(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless757',) + _anonymous_ = ('Nameless18844',) _fields_ = [ - ('Nameless757', Nameless757), + ('Nameless18844', Nameless18844), ('flags', ctypes.c_uint32), ] @@ -31,7 +31,7 @@ class Nameless43713(ctypes.Union): class st_cm_iso157652_rx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless43713',) + _anonymous_ = ('Nameless61974',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -43,7 +43,7 @@ class st_cm_iso157652_rx_message(ctypes.Structure): ('blockSize', ctypes.c_uint8), ('stMin', ctypes.c_uint8), ('cf_timeout', ctypes.c_uint16), - ('Nameless43713', Nameless43713), + ('Nameless61974', Nameless61974), ('reserved', ctypes.c_uint8 * 16), ] diff --git a/ics/structures/st_cm_iso157652_tx_message.py b/ics/structures/st_cm_iso157652_tx_message.py index 173c58d31..3a1137596 100644 --- a/ics/structures/st_cm_iso157652_tx_message.py +++ b/ics/structures/st_cm_iso157652_tx_message.py @@ -4,7 +4,7 @@ -class Nameless26218(ctypes.Structure): +class Nameless2529(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint, 1), @@ -22,11 +22,11 @@ class Nameless26218(ctypes.Structure): -class Nameless59426(ctypes.Union): +class Nameless9252(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless26218',) + _anonymous_ = ('Nameless2529',) _fields_ = [ - ('Nameless26218', Nameless26218), + ('Nameless2529', Nameless2529), ('flags', ctypes.c_uint32), ] @@ -34,7 +34,7 @@ class Nameless59426(ctypes.Union): class st_cm_iso157652_tx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless59426',) + _anonymous_ = ('Nameless9252',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -50,7 +50,7 @@ class st_cm_iso157652_tx_message(ctypes.Structure): ('fs_wait', ctypes.c_uint16), ('data', ctypes.c_uint8 * 4096), ('num_bytes', ctypes.c_uint32), - ('Nameless59426', Nameless59426), + ('Nameless9252', Nameless9252), ] diff --git a/ics/structures/wbms_gateway_settings.py b/ics/structures/wbms_gateway_settings.py new file mode 100644 index 000000000..3d9e1e62d --- /dev/null +++ b/ics/structures/wbms_gateway_settings.py @@ -0,0 +1,19 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class wbms_gateway_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('wbms1_network', ctypes.c_uint8), + ('wbms1_canfd_enable', ctypes.c_uint8), + ('wbms2_network', ctypes.c_uint8), + ('wbms2_canfd_enable', ctypes.c_uint8), + ('reserved', ctypes.c_uint16 * 6), + ] + + +WBMSGatewaySettings = wbms_gateway_settings + diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index aafdffe3d..64734f295 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -2142,6 +2142,54 @@ } ] }, + { + "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", @@ -2535,6 +2583,22 @@ "is_enum": false, "enum_value": null }, + { + "name": "DeviceRADCometSettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "DeviceRed2OemSettingsType", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, { "name": "DeviceSettingsTypeMax", "data_type": "int", @@ -3011,6 +3075,113 @@ } ] }, + { + "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", @@ -3018,7 +3189,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5140 ", + "name": "assert_line_5350 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3034,7 +3205,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5141 ", + "name": "assert_line_5351 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3050,7 +3221,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5142 ", + "name": "assert_line_5352 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3066,7 +3237,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5143 ", + "name": "assert_line_5353 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3082,7 +3253,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5144 ", + "name": "assert_line_5354 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3098,7 +3269,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5145 ", + "name": "assert_line_5355 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3114,7 +3285,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5146 ", + "name": "assert_line_5356 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3130,7 +3301,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5147 ", + "name": "assert_line_5357 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3146,7 +3317,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5148 ", + "name": "assert_line_5358 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3162,7 +3333,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5149 ", + "name": "assert_line_5359 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3178,7 +3349,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5150 ", + "name": "assert_line_5360 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3194,7 +3365,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5151 ", + "name": "assert_line_5361 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3210,7 +3381,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5152 ", + "name": "assert_line_5362 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3226,7 +3397,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5153 ", + "name": "assert_line_5363 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3242,7 +3413,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5154 ", + "name": "assert_line_5364 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3258,7 +3429,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5155 ", + "name": "assert_line_5365 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3274,7 +3445,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5156 ", + "name": "assert_line_5366 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3290,7 +3461,23 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5157 ", + "name": "assert_line_5367 ", + "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_5368 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3306,7 +3493,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5158 ", + "name": "assert_line_5369 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3322,7 +3509,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5159 ", + "name": "assert_line_5370 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3338,7 +3525,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5160 ", + "name": "assert_line_5371 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3354,7 +3541,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5161 ", + "name": "assert_line_5372 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3370,7 +3557,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5162 ", + "name": "assert_line_5373 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3386,7 +3573,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5163 ", + "name": "assert_line_5374 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3402,7 +3589,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5164 ", + "name": "assert_line_5375 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3418,7 +3605,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5165 ", + "name": "assert_line_5376 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3434,7 +3621,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5166 ", + "name": "assert_line_5377 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3450,7 +3637,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5167 ", + "name": "assert_line_5378 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3466,7 +3653,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5168 ", + "name": "assert_line_5379 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3482,7 +3669,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5169 ", + "name": "assert_line_5380 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3498,7 +3685,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5170 ", + "name": "assert_line_5381 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3514,7 +3701,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5171 ", + "name": "assert_line_5382 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3530,7 +3717,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5172 ", + "name": "assert_line_5383 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3546,7 +3733,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5173 ", + "name": "assert_line_5384 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3562,7 +3749,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5174 ", + "name": "assert_line_5385 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3578,7 +3765,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5175 ", + "name": "assert_line_5386 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3594,7 +3781,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5176 ", + "name": "assert_line_5387 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3610,7 +3797,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5177 ", + "name": "assert_line_5388 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3626,7 +3813,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5178 ", + "name": "assert_line_5389 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3642,7 +3829,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5179 ", + "name": "assert_line_5390 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3658,7 +3845,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5180 ", + "name": "assert_line_5391 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3674,7 +3861,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5181 ", + "name": "assert_line_5392 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3690,7 +3877,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5182 ", + "name": "assert_line_5393 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3706,7 +3893,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5183 ", + "name": "assert_line_5394 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3722,7 +3909,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5184 ", + "name": "assert_line_5395 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3738,7 +3925,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5185 ", + "name": "assert_line_5396 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3754,7 +3941,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5186 ", + "name": "assert_line_5397 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3770,7 +3957,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5187 ", + "name": "assert_line_5398 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3786,7 +3973,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5188 ", + "name": "assert_line_5399 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3802,7 +3989,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5189 ", + "name": "assert_line_5400 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3818,7 +4005,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5190 ", + "name": "assert_line_5401 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3834,7 +4021,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5191 ", + "name": "assert_line_5402 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3850,7 +4037,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5192 ", + "name": "assert_line_5403 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3866,7 +4053,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5193 ", + "name": "assert_line_5404 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3882,7 +4069,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5194 ", + "name": "assert_line_5405 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3898,7 +4085,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5195 ", + "name": "assert_line_5406 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3914,7 +4101,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5196 ", + "name": "assert_line_5407 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3930,23 +4117,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5197 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": "1/(int)(!!(sizeof(SExtSubCmdComm)" - } - ] - }, - { - "names": [], - "data_type": "Enum", - "packing": 0, - "is_anonymous": true, - "members": [ - { - "name": "assert_line_5198 ", + "name": "assert_line_5408 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3962,7 +4133,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5199 ", + "name": "assert_line_5409 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3978,7 +4149,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5200 ", + "name": "assert_line_5410 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3994,7 +4165,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5201 ", + "name": "assert_line_5411 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4010,7 +4181,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5202 ", + "name": "assert_line_5412 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4026,7 +4197,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5203 ", + "name": "assert_line_5413 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4042,7 +4213,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5204 ", + "name": "assert_line_5414 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4058,7 +4229,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5205 ", + "name": "assert_line_5415 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4074,7 +4245,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5206 ", + "name": "assert_line_5416 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4090,7 +4261,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5207 ", + "name": "assert_line_5417 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4106,7 +4277,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5208 ", + "name": "assert_line_5418 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4122,7 +4293,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5209 ", + "name": "assert_line_5419 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4138,7 +4309,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5210 ", + "name": "assert_line_5420 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4154,7 +4325,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5211 ", + "name": "assert_line_5421 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4170,7 +4341,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5212 ", + "name": "assert_line_5422 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4186,7 +4357,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5213 ", + "name": "assert_line_5423 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4202,7 +4373,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5214 ", + "name": "assert_line_5424 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4218,7 +4389,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5215 ", + "name": "assert_line_5425 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4226,5 +4397,21 @@ "enum_value": "1/(int)(!!(sizeof(CANHubSettings)" } ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_5426 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(SRADCometSettings)" + } + ] } ] \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json index d12397679..75c34e20d 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -2520,6 +2520,32 @@ "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 + } + ] } ] }, @@ -3160,6 +3186,81 @@ } ] }, + { + "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": [ "LOGGER_SETTINGS_t", @@ -3629,6 +3730,41 @@ "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", @@ -4304,15 +4440,15 @@ }, { "names": [ - "ManufacturingOperation", - "ManufacturingOperation" + "_GenericBinaryStatus", + "GenericBinaryStatus" ], - "data_type": "Union", + "data_type": "Struct", "packing": 1, "is_anonymous": false, "members": [ { - "name": "rtcCalEnable", + "name": "size", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -4320,43 +4456,25 @@ "enum_value": null }, { - "name": "rtcCalValue", - "data_type": "int", + "name": "index", + "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "names": [ - "unlock" - ], - "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": "code", - "data_type": "uint32_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": "bytes", + "name": "reserved", "data_type": "uint8_t", - "array_length": 256, + "array_length": 8, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -4365,205 +4483,16 @@ }, { "names": [ - "_SExtSubCmdComm", - "SExtSubCmdComm" + "SERDESCAM_SETTINGS_t", + "SERDESCAM_SETTINGS" ], "data_type": "Struct", "packing": 2, "is_anonymous": false, "members": [ { - "name": "header", - "data_type": "SExtSubCmdHdr", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "names": [ - "extension" - ], - "data_type": "Union", - "packing": 2, - "is_anonymous": false, - "members": [ - { - "name": "structure", - "data_type": "SDiskStructure", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "details", - "data_type": "SDiskDetails", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "progress", - "data_type": "SDiskFormatProgress", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "startDHCPServer", - "data_type": "StartDHCPServerCommand", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "stopDHCPServer", - "data_type": "StopDHCPServerCommand", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "getSupportedFeatures", - "data_type": "GetSupportedFeaturesResponse", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "genericResponse", - "data_type": "ExtendedResponseGeneric", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "gptpStatus", - "data_type": "GPTPStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "apiStatus", - "data_type": "GenericAPIStatus", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "apiData", - "data_type": "GenericAPIData", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "apiSelector", - "data_type": "GenericAPISelector", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "getComponentVersions", - "data_type": "GetComponentVersions", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "softwareUpdate", - "data_type": "SoftwareUpdateCommand", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "getComponentVersionsResponse", - "data_type": "GetComponentVersionsResponse", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbmsManagerToLockUnlock", - "data_type": "wBMSManagerSetLock", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "wbmsManagerToReset", - "data_type": "wBMSManagerReset", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uartData", - "data_type": "UartPortData", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uartBytesLen", - "data_type": "UartPortPortBytes", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "uartConfig", - "data_type": "UartPortConfig", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mfgOperation", - "data_type": "ManufacturingOperation", - "array_length": 0, - "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", + "name": "flags", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -8353,6 +8282,14 @@ "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 } ] }, @@ -8668,6 +8605,14 @@ "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 } ] }, @@ -8783,6 +8728,14 @@ "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 } ] }, @@ -9070,6 +9023,14 @@ "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 } ] }, @@ -9177,6 +9138,14 @@ "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 } ] }, @@ -9270,6 +9239,14 @@ "enum_value": null } ] + }, + { + "name": "network_enables_5", + "data_type": "uint64_t", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null } ] }, @@ -9723,6 +9700,14 @@ "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 } ] }, @@ -10152,6 +10137,14 @@ "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 } ] }, @@ -17530,6 +17523,14 @@ "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 } ] }, @@ -17782,6 +17783,56 @@ } ] }, + { + "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", @@ -18000,36 +18051,52 @@ "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": [ - "_GLOBAL_SETTINGS", - "GLOBAL_SETTINGS" + "_SRADCometSettings", + "SRADCometSettings" ], "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, @@ -18037,62 +18104,389 @@ "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", + "name": "hwComLatencyTestEn", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 0, + "bitfield_size": 1, "is_enum": false, "enum_value": null }, { - "name": "vcan3", - "data_type": "SVCAN3Settings", + "name": "disableUsbCheckOnBoot", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 0, + "bitfield_size": 1, "is_enum": false, "enum_value": null }, { - "name": "vcan4", - "data_type": "SVCAN4Settings", + "name": "reserved", + "data_type": "uint16_t", "array_length": 0, - "bitfield_size": 0, + "bitfield_size": 14, "is_enum": false, "enum_value": null - }, - { - "name": "ecu", - "data_type": "SECUSettings", + } + ] + }, + { + "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 + } + ] + }, + { + "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, @@ -18361,6 +18755,14 @@ "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 } ] } @@ -18718,6 +19120,14 @@ "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 } ] } @@ -19370,9 +19780,179 @@ ] }, { - "name": "reserved", + "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": 16, + "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 @@ -19381,14 +19961,15 @@ }, { "names": [ - "spyFilterLong" + "_icsSpyMessage", + "icsSpyMessage" ], "data_type": "Struct", "packing": 0, "is_anonymous": false, "members": [ { - "name": "StatusValue", + "name": "StatusBitField", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19396,7 +19977,7 @@ "enum_value": null }, { - "name": "StatusMask", + "name": "StatusBitField2", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19404,7 +19985,7 @@ "enum_value": null }, { - "name": "Status2Value", + "name": "TimeHardware", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19412,7 +19993,7 @@ "enum_value": null }, { - "name": "Status2Mask", + "name": "TimeHardware2", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19420,7 +20001,7 @@ "enum_value": null }, { - "name": "Header", + "name": "TimeSystem", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19428,7 +20009,7 @@ "enum_value": null }, { - "name": "HeaderMask", + "name": "TimeSystem2", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19436,123 +20017,179 @@ "enum_value": null }, { - "name": "MiscData", - "data_type": "uint32_t", + "name": "TimeStampHardwareID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "MiscDataMask", - "data_type": "uint32_t", + "name": "TimeStampSystemID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataMSB", - "data_type": "uint32_t", + "name": "NetworkID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataLSB", - "data_type": "uint32_t", + "name": "NodeID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataMaskMSB", - "data_type": "uint32_t", + "name": "Protocol", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataMaskLSB", - "data_type": "uint32_t", + "name": "MessagePieceID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "HeaderLength", - "data_type": "uint32_t", + "name": "ExtraDataPtrEnabled", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataLength", - "data_type": "uint32_t", + "name": "NumberBytesHeader", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "NetworkID", - "data_type": "uint32_t", + "name": "NumberBytesData", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "FrameMaster", - "data_type": "uint16_t", + "name": "NetworkID2", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "bUseArbIdRangeFilter", - "data_type": "uint8_t", + "name": "DescriptionID", + "data_type": "descIdType", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "bStuff2", - "data_type": "uint8_t", + "name": "ArbIDOrHeader", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ExpectedLength", - "data_type": "uint32_t", + "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": "NodeID", - "data_type": "uint32_t", + "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": [ - "_icsSpyMessage", - "icsSpyMessage" + "_icsSpyMessageFlexRay", + "icsSpyMessageFlexRay" ], "data_type": "Struct", "packing": 0, @@ -19695,12 +20332,116 @@ "enum_value": null }, { - "name": "ArbIDOrHeader", - "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": [ + { + "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", @@ -19747,6 +20488,78 @@ "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 + } + ] } ] }, @@ -19778,8 +20591,8 @@ }, { "names": [ - "_icsSpyMessageFlexRay", - "icsSpyMessageFlexRay" + "_icsSpyMessageMdio", + "icsSpyMessageMdio" ], "data_type": "Struct", "packing": 0, @@ -19942,90 +20755,34 @@ "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", + "name": "RegAddr", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 16, "is_enum": false, "enum_value": null }, { - "name": "payload_preamble", + "name": "PhyAddr", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 5, "is_enum": false, "enum_value": null }, { - "name": "frame_reserved", + "name": "DevType", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 5, "is_enum": false, "enum_value": null }, { - "name": "dynamic", + "name": "", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 6, "is_enum": false, "enum_value": null } @@ -20078,78 +20835,6 @@ "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 - } - ] } ] }, @@ -21206,7 +21891,7 @@ { "name": "ethernetStatus", "data_type": "ethernetNetworkStatus_t", - "array_length": 0, + "array_length": 9, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -21303,6 +21988,14 @@ "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", diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index 4206c8756..0d03d9266 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -53,4016 +53,4151 @@ typedef unsigned long long uintmax_t; #pragma warning(disable : 4200) typedef struct SExtendedDataFlashHeader { - uint16_t version; - uint16_t chksum; - uint32_t len; + 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; + 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; - uint32_t Status; - 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; + NeoDevice neoDevice; + uint32_t FirmwareMajor; + uint32_t FirmwareMinor; + uint32_t Status; + 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; - } CANOptions; - uint32_t Reserved[16]; + struct + { + int32_t iNetworkID; + } CANOptions; + uint32_t Reserved[16]; } OptionsOpenNeoEx, *POptionsOpenNeoEx; typedef union tagOptionsFindNeoEx { - struct - { - int32_t iNetworkID; - } CANOptions; - uint32_t Reserved[16]; + struct + { + int32_t iNetworkID; + } CANOptions; + uint32_t Reserved[16]; } OptionsFindNeoEx, *POptionsFindNeoEx; typedef struct tagicsneoVICommand { - uint8_t CommandType; - uint8_t CommandByteLength; - uint8_t Data[14]; + uint8_t CommandType; + uint8_t CommandByteLength; + uint8_t Data[14]; } icsneoVICommand; #pragma pack(push, 1) typedef struct _stAPIFirmwareInfo { - int32_t iType; - int32_t iMainFirmDateDay; - int32_t iMainFirmDateMonth; - int32_t iMainFirmDateYear; - int32_t iMainFirmDateHour; - int32_t iMainFirmDateMin; - int32_t iMainFirmDateSecond; - int32_t iMainFirmChkSum; - 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; + int32_t iType; + int32_t iMainFirmDateDay; + int32_t iMainFirmDateMonth; + int32_t iMainFirmDateYear; + int32_t iMainFirmDateHour; + int32_t iMainFirmDateMin; + int32_t iMainFirmDateSecond; + int32_t iMainFirmChkSum; + 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) #pragma pack(push, 2) enum { - AUTO, - USE_TQ + AUTO, + USE_TQ }; enum { - BPS20, - BPS33, - BPS50, - BPS62, - BPS83, - BPS100, - BPS125, - BPS250, - BPS500, - BPS800, - BPS1000, - BPS666, - BPS2000, - BPS4000, - CAN_BPS5000, - CAN_BPS6667, - CAN_BPS8000, - CAN_BPS10000, + BPS20, + BPS33, + BPS50, + BPS62, + BPS83, + BPS100, + BPS125, + BPS250, + BPS500, + BPS800, + BPS1000, + BPS666, + BPS2000, + BPS4000, + CAN_BPS5000, + CAN_BPS6667, + CAN_BPS8000, + CAN_BPS10000, }; enum { - NORMAL = 0, - DISABLE = 1, - LOOPBACK = 2, - LISTEN_ONLY = 3, - LISTEN_ALL = 7 + 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; + 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; enum { - NO_CANFD, - CANFD_ENABLED, - CANFD_BRS_ENABLED, - CANFD_ENABLED_ISO, - CANFD_BRS_ENABLED_ISO + NO_CANFD, + CANFD_ENABLED, + CANFD_BRS_ENABLED, + CANFD_ENABLED_ISO, + CANFD_BRS_ENABLED_ISO }; typedef struct _CANFD_SETTINGS { - uint8_t FDMode; - uint8_t FDBaudrate; - uint8_t FDTqSeg1; - uint8_t FDTqSeg2; - uint8_t FDTqProp; - uint8_t FDTqSync; - uint16_t FDBRP; - uint8_t FDTDC; - uint8_t reserved; + uint8_t FDMode; + 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; enum { - SWCAN_AUTOSWITCH_DISABLED, - SWCAN_AUTOSWITCH_NO_RESISTOR, - SWCAN_AUTOSWITCH_WITH_RESISTOR, - SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED + 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; + 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; enum { - BPS5000, - BPS10400, - BPS33333, - BPS50000, - BPS62500, - BPS71429, - BPS83333, - BPS100000, - BPS117647 + BPS5000, + BPS10400, + BPS33333, + BPS50000, + BPS62500, + BPS71429, + BPS83333, + BPS100000, + BPS117647 }; enum { - RESISTOR_ON, - RESISTOR_OFF + RESISTOR_ON, + RESISTOR_OFF }; enum { - SLEEP_MODE, - SLOW_MODE, - NORMAL_MODE, - FAST_MODE + SLEEP_MODE, + SLOW_MODE, + NORMAL_MODE, + FAST_MODE }; typedef struct _LIN_SETTINGS { - uint32_t Baudrate; - uint16_t spbrg; - uint8_t brgh; - uint8_t numBitsDelay; - uint8_t MasterResistor; - uint8_t Mode; + uint32_t Baudrate; + uint16_t spbrg; + uint8_t brgh; + uint8_t numBitsDelay; + uint8_t MasterResistor; + uint8_t Mode; } LIN_SETTINGS; typedef struct { - uint16_t time_500us; - uint16_t k; - uint16_t l; + uint16_t time_500us; + uint16_t k; + uint16_t l; } ISO9141_KEYWORD2000__INIT_STEP; 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; + 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; typedef struct _UART_SETTINGS { - uint16_t Baudrate; - uint16_t spbrg; - uint16_t brgh; - uint16_t parity; - uint16_t stop_bits; - uint8_t flow_control; - uint8_t reserved_1; - union - { - uint32_t bOptions; - struct + uint16_t Baudrate; + uint16_t spbrg; + uint16_t brgh; + uint16_t parity; + uint16_t stop_bits; + uint8_t flow_control; + uint8_t reserved_1; + union { - unsigned invert_tx : 1; - unsigned invert_rx : 1; - unsigned half_duplex : 1; - unsigned reserved_bits : 13; - unsigned reserved_bits2 : 16; + 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; typedef struct { - uint16_t enable_convert_mode; + uint16_t enable_convert_mode; } J1708_SETTINGS; typedef struct _SRedSettings { - CAN_SETTINGS can1; - CAN_SETTINGS can2; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; + CAN_SETTINGS can1; + CAN_SETTINGS can2; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; } SRedSettings; typedef struct _STextAPISettings { - uint32_t can1_tx_id; - uint32_t can1_rx_id; - union - { + 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; +typedef union _stChipVersions +{ struct { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can1_options; - uint32_t can2_tx_id; - uint32_t can2_rx_id; - union - { + 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 { - 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 - { + 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 { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can3_options; - uint32_t can4_tx_id; - uint32_t can4_rx_id; - union - { + uint8_t mpic_maj; + uint8_t mpic_min; + } vcan3_versions; struct { - unsigned bExtended : 1; - unsigned : 31; - }; - uint32_t DWord; - } can4_options; - uint32_t reserved[5]; -} STextAPISettings; -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 mpic_maj; - uint8_t mpic_min; - } vcanrf_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 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; + uint8_t mpic_maj; + uint8_t mpic_min; + } vcanrf_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 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 zynq_core_major; + uint8_t zynq_core_minor; + } rad_comet_versions; } stChipVersions; typedef struct _SNeoMostGatewaySettings { - uint16_t netId; - uint8_t zero0; - uint8_t Config; + uint16_t netId; + uint8_t zero0; + uint8_t Config; } SNeoMostGatewaySettings; 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, + 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; - uint8_t reserved0[3]; - uint16_t tapPair0; - uint16_t tapPair1; - uint16_t tapPair2; - uint16_t tapPair3; - uint16_t tapPair4; - uint16_t tapPair5; - union - { - struct + uint8_t ucInterfaceType; + uint8_t reserved0[3]; + uint16_t tapPair0; + uint16_t tapPair1; + uint16_t tapPair2; + uint16_t tapPair3; + uint16_t tapPair4; + uint16_t tapPair5; + union { - uint32_t bTapEnSwitch : 1; - uint32_t bTapEnPtp : 1; - uint32_t bEnReportLinkQuality : 1; - uint32_t bEnTapTxReceipts : 1; - uint32_t reserved : 28; - } flags; - uint32_t uFlags; - }; + 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; typedef struct SRAD_GPTP_SETTINGS_s { - uint32_t neighborPropDelayThresh; - uint32_t sys_phc_sync_interval; - int8_t logPDelayReqInterval; - int8_t logSyncInterval; - int8_t logAnnounceInterval; - 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]; + uint32_t neighborPropDelayThresh; + uint32_t sys_phc_sync_interval; + int8_t logPDelayReqInterval; + int8_t logSyncInterval; + int8_t logAnnounceInterval; + 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; typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s { - RAD_GPTP_SETTINGS gPTP; - OP_ETH_GENERAL_SETTINGS tap; + RAD_GPTP_SETTINGS gPTP; + OP_ETH_GENERAL_SETTINGS tap; } RAD_GPTP_AND_TAP_SETTINGS; typedef struct HW_ETH_SETTINGS_t { - OP_ETH_GENERAL_SETTINGS General_Settings; + OP_ETH_GENERAL_SETTINGS General_Settings; } HW_ETH_SETTINGS; typedef enum _opEthLinkMode { - OPETH_LINK_AUTO = 0, - OPETH_LINK_MASTER, - OPETH_LINK_SLAVE + OPETH_LINK_AUTO = 0, + OPETH_LINK_MASTER, + OPETH_LINK_SLAVE } opEthLinkMode; enum { - OPETH_MAC_SPOOF_DST_ADDR = 0, - OPETH_MAC_SPOOF_SRC_ADDR = 1, + OPETH_MAC_SPOOF_DST_ADDR = 0, + OPETH_MAC_SPOOF_SRC_ADDR = 1, }; typedef struct OP_ETH_SETTINGS_t { - uint8_t ucConfigMode; - unsigned char preemption_en; - union - { - struct + uint8_t ucConfigMode; + unsigned char preemption_en; + union { - unsigned char mac_addr1[6]; - unsigned char mac_addr2[6]; - 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; + struct + { + unsigned char mac_addr1[6]; + unsigned char mac_addr2[6]; + 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; + }; + unsigned char reserved0[14]; }; - unsigned char reserved0[14]; - }; } OP_ETH_SETTINGS; typedef struct ETHERNET_SETTINGS_t { - uint8_t duplex; - uint8_t link_speed; - uint8_t auto_neg; - uint8_t led_mode; - uint8_t rsvd[4]; + uint8_t duplex; + uint8_t link_speed; + uint8_t auto_neg; + uint8_t led_mode; + uint8_t rsvd[4]; } ETHERNET_SETTINGS; typedef struct ETHERNET_SETTINGS2_t { - uint8_t flags; - uint8_t link_speed; - uint32_t ip_addr; - uint32_t netmask; - uint32_t gateway; - uint8_t flags2; - uint8_t rsvd; + uint8_t flags; + uint8_t link_speed; + uint32_t ip_addr; + uint32_t netmask; + uint32_t gateway; + uint8_t flags2; + uint8_t rsvd; } ETHERNET_SETTINGS2; typedef struct ETHERNET10G_SETTINGS_t { - uint32_t flags; - uint32_t ip_addr; - uint32_t netmask; - uint32_t gateway; - uint8_t link_speed; - uint8_t rsvd2[7]; + uint32_t flags; + uint32_t ip_addr; + uint32_t netmask; + uint32_t gateway; + uint8_t link_speed; + uint8_t rsvd2[7]; } ETHERNET10G_SETTINGS; +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; typedef struct LOGGER_SETTINGS_t { - uint8_t extraction_timeout; - uint8_t rsvd[3]; + uint8_t extraction_timeout; + uint8_t rsvd[3]; } LOGGER_SETTINGS; typedef struct DISK_SETTINGS_t { - uint8_t disk_layout; - uint8_t disk_format; - uint32_t disk_enables; - uint8_t rsvd[8]; + uint8_t disk_layout; + uint8_t disk_format; + uint32_t disk_enables; + uint8_t rsvd[8]; } DISK_SETTINGS; typedef struct { - uint8_t term_enabled; - uint8_t term_network; - uint16_t reserved[2]; + uint8_t term_enabled; + uint8_t term_network; + uint16_t reserved[2]; } CANTERM_SETTINGS; typedef struct { - uint8_t MasterEnable; - uint8_t SlaveEnable; - uint8_t MasterNetwork; - uint8_t SlaveNetwork; + uint8_t MasterEnable; + uint8_t SlaveEnable; + uint8_t MasterNetwork; + uint8_t SlaveNetwork; } TIMESYNC_ICSHARDWARE_SETTINGS; typedef enum _EDiskFormat { - DiskFormatUnknown = 0, - DiskFormatFAT32, - DiskFormatexFAT, + DiskFormatUnknown = 0, + DiskFormatFAT32, + DiskFormatexFAT, } EDiskFormat; typedef enum _EDiskLayout { - DiskLayoutSpanned = 0, - DiskLayoutRAID0, - DiskLayoutRAID1, - DiskLayoutRAID5, - DiskLayoutIndividual, + DiskLayoutSpanned = 0, + DiskLayoutRAID0, + DiskLayoutRAID1, + DiskLayoutRAID5, + DiskLayoutIndividual, } EDiskLayout; typedef struct _SDiskStatus { - uint16_t status; - uint8_t sectors[8]; - uint8_t bytesPerSector[4]; + uint16_t status; + uint8_t sectors[8]; + uint8_t bytesPerSector[4]; } SDiskStatus; typedef struct _SDiskStructure { - DISK_SETTINGS settings; - uint16_t options; + DISK_SETTINGS settings; + uint16_t options; } SDiskStructure; typedef struct _SDiskDetails { - SDiskStructure structure; - SDiskStatus status[12]; + SDiskStructure structure; + SDiskStatus status[12]; } SDiskDetails; typedef struct _SDiskFormatProgress { - uint16_t state; - uint8_t sectorsRemaining[8]; + uint16_t state; + uint8_t sectorsRemaining[8]; } SDiskFormatProgress; 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; + uint32_t serverIpAddress; + uint32_t subnetMask; + uint32_t gatewayAddress; + uint32_t startAddress; + uint32_t endAddress; + uint32_t leaseTime; + uint32_t overwrite; } StartDHCPServerCommand; typedef struct _StopDHCPServerCommand { - uint16_t networkId; + uint16_t networkId; } StopDHCPServerCommand; typedef enum _ExtendedResponseCode { - EXTENDED_RESPONSE_OK = 0, - EXTENDED_RESPONSE_INVALID_COMMAND = -1, - EXTENDED_RESPONSE_INVALID_STATE = -2, - EXTENDED_RESPONSE_OPERATION_FAILED = -3, - EXTENDED_RESPONSE_OPERATION_PENDING = -4, - EXTENDED_RESPONSE_INVALID_PARAMETER = -5, + EXTENDED_RESPONSE_OK = 0, + EXTENDED_RESPONSE_INVALID_COMMAND = -1, + EXTENDED_RESPONSE_INVALID_STATE = -2, + EXTENDED_RESPONSE_OPERATION_FAILED = -3, + EXTENDED_RESPONSE_OPERATION_PENDING = -4, + EXTENDED_RESPONSE_INVALID_PARAMETER = -5, } ExtendedResponseCode; typedef struct _ExtendedResponseGeneric { - uint16_t commandType; - int32_t returnCode; + uint16_t commandType; + int32_t returnCode; } ExtendedResponseGeneric; typedef struct _GenericAPISelector { - uint8_t apiIndex; - uint8_t instance; - uint8_t functionID; + uint8_t apiIndex; + uint8_t instance; + uint8_t functionID; } GenericAPISelector; typedef struct _GenericAPIStatus { - GenericAPISelector api; - uint8_t functionError; - uint8_t calbackError; - uint8_t finishedProcessing; + GenericAPISelector api; + uint8_t functionError; + uint8_t calbackError; + uint8_t finishedProcessing; } GenericAPIStatus; typedef struct _GenericAPIData { - GenericAPISelector api; - uint8_t bData[513]; - uint16_t length; + uint16_t length; + GenericAPISelector api; + uint8_t bData[513]; } GenericAPIData; +typedef struct _GenericAPIData_OLD +{ + GenericAPISelector api; + uint8_t bData[513]; + uint16_t length; +} GenericAPIData_OLD; typedef struct _wBMSManagerSetLock { - uint8_t managerIndex; - uint8_t setLock; + uint8_t managerIndex; + uint8_t setLock; } wBMSManagerSetLock; typedef struct _wBMSManagerReset { - uint8_t managerIndex; + uint8_t managerIndex; } wBMSManagerReset; typedef struct _UartPortData { - uint16_t len; - uint8_t port; - uint8_t bData[256]; + uint16_t len; + uint8_t port; + uint8_t bData[256]; } UartPortData; typedef struct _UartPortPortBytes { - uint16_t len; - uint8_t port; - uint8_t flag; + uint16_t len; + uint8_t port; + uint8_t flag; } UartPortPortBytes; typedef struct _UartPortConfig { - uint32_t baudrate; - uint8_t port; - uint8_t reserve[7]; + uint32_t baudrate; + uint8_t port; + uint8_t reserve[7]; } UartPortConfig; typedef struct { - uint16_t cmdVersion; - uint16_t numValidBits; - uint32_t featureBitfields[0]; + uint16_t cmdVersion; + uint16_t numValidBits; + uint32_t featureBitfields[0]; } GetSupportedFeaturesResponse; typedef struct _VersionReport { - uint8_t valid; - uint8_t expansionSlot; - uint8_t componentInfo; - uint8_t reserved; - uint32_t identifier; - uint32_t dotVersion; - uint32_t commitHash; + uint8_t valid; + uint8_t expansionSlot; + uint8_t componentInfo; + uint8_t reserved; + uint32_t identifier; + uint32_t dotVersion; + uint32_t commitHash; } VersionReport; typedef struct _GetComponentVersions { - uint32_t reserved[2]; + uint32_t reserved[2]; } GetComponentVersions; typedef struct _ExtendedGetVersionsResponse { - uint16_t numVersions; - VersionReport versions[(16)]; + uint16_t numVersions; + VersionReport versions[(16)]; } GetComponentVersionsResponse; enum { - swUpdateWrite = 0, - swUpdateErase = 1, - swUpdateGetProgress = 2, - swUpdateValidateAll = 3, - swUpdateGetBufferSize = 4, - swUpdateCheckHostVersion = 5, - swUpdateValidateComponent = 6, - swUpdateFinalize = 7, - swUpdateGetCommunicationVersion = 8, + swUpdateWrite = 0, + swUpdateErase = 1, + swUpdateGetProgress = 2, + swUpdateValidateAll = 3, + swUpdateGetBufferSize = 4, + swUpdateCheckHostVersion = 5, + swUpdateValidateComponent = 6, + swUpdateFinalize = 7, + swUpdateGetCommunicationVersion = 8, }; typedef struct { - uint32_t componentIdentifier; - uint8_t commandType; - uint32_t offset; - uint32_t commandSizeOrProgress; - uint8_t commandData[0]; + uint32_t componentIdentifier; + uint8_t commandType; + uint32_t offset; + uint32_t commandSizeOrProgress; + uint8_t commandData[0]; } SoftwareUpdateCommand; typedef struct _SExtSubCmdHdr { - uint16_t command; - uint16_t length; + uint16_t command; + uint16_t length; } SExtSubCmdHdr; #pragma pack(push, 1) struct _timestamp { - uint16_t seconds_msb; - uint32_t seconds_lsb; - uint32_t nanoseconds; + 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; + _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; + 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; + 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; + 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]; + 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 union ManufacturingOperation -{ - uint32_t rtcCalEnable; - int rtcCalValue; - struct - { - uint32_t apiVersion; - uint32_t code; - } unlock; - uint8_t bytes[(256)]; -} ManufacturingOperation; +typedef struct _GenericBinaryStatus +{ + uint32_t size; + uint16_t index; + uint16_t status; + uint8_t reserved[8]; +} GenericBinaryStatus; #pragma pack(pop) -typedef struct _SExtSubCmdComm +enum { - SExtSubCmdHdr header; - union - { - SDiskStructure structure; - SDiskDetails details; - SDiskFormatProgress progress; - StartDHCPServerCommand startDHCPServer; - StopDHCPServerCommand stopDHCPServer; - GetSupportedFeaturesResponse getSupportedFeatures; - ExtendedResponseGeneric genericResponse; - GPTPStatus gptpStatus; - GenericAPIStatus apiStatus; - GenericAPIData apiData; - GenericAPISelector apiSelector; - GetComponentVersions getComponentVersions; - SoftwareUpdateCommand softwareUpdate; - GetComponentVersionsResponse getComponentVersionsResponse; - wBMSManagerSetLock wbmsManagerToLockUnlock; - wBMSManagerReset wbmsManagerToReset; - UartPortData uartData; - UartPortPortBytes uartBytesLen; - UartPortConfig uartConfig; - ManufacturingOperation mfgOperation; - } extension; -} SExtSubCmdComm; -enum -{ - SERDESCAM_MODE_TAP_REPEATER = 0, - SERDESCAM_MODE_SPLITTER, - SERDESCAM_MODE_LOG_ONLY, - SERDESCAM_MODE_CUSTOM, - SERDESCAM_MODE_COUNT, -}; -enum -{ - SERDESCAM_PIXEL_BIT_POS_0 = 0, - SERDESCAM_PIXEL_BIT_POS_1, - SERDESCAM_PIXEL_BIT_POS_2, - SERDESCAM_PIXEL_BIT_POS_3, -}; -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_BAYER_BGGR_8, - SERDESCAM_VIDEO_FORMAT_RAW_8, - SERDESCAM_VIDEO_FORMAT_RAW_10, - 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_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_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_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, - 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_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_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_CSI2_BAYER_RGGB_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, - 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_CSI2_BAYER_GBRG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, - 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_CSI2_BAYER_GRBG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_COUNT, + SERDESCAM_MODE_TAP_REPEATER = 0, + SERDESCAM_MODE_SPLITTER, + SERDESCAM_MODE_LOG_ONLY, + SERDESCAM_MODE_CUSTOM, + SERDESCAM_MODE_COUNT, +}; +enum +{ + SERDESCAM_PIXEL_BIT_POS_0 = 0, + SERDESCAM_PIXEL_BIT_POS_1, + SERDESCAM_PIXEL_BIT_POS_2, + SERDESCAM_PIXEL_BIT_POS_3, +}; +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_BAYER_BGGR_8, + SERDESCAM_VIDEO_FORMAT_RAW_8, + SERDESCAM_VIDEO_FORMAT_RAW_10, + 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_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_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_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, + 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_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_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_CSI2_BAYER_RGGB_8, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, + 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_CSI2_BAYER_GBRG_8, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, + 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_CSI2_BAYER_GRBG_8, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, + SERDESCAM_VIDEO_FORMAT_COUNT, }; typedef struct SERDESCAM_SETTINGS_t { - uint32_t flags; - uint8_t mode; - uint8_t rsvd1; - uint8_t bitPos; - uint8_t videoFormat; - uint16_t resWidth; - uint16_t resHeight; - uint8_t frameSkip; - uint8_t rsvd2[19]; + uint32_t flags; + uint8_t mode; + uint8_t rsvd1; + uint8_t bitPos; + uint8_t videoFormat; + uint16_t resWidth; + uint16_t resHeight; + uint8_t frameSkip; + uint8_t rsvd2[19]; } SERDESCAM_SETTINGS; typedef struct SERDESPOC_SETTINGS_t { - uint8_t mode; - uint8_t rsvd[6]; - uint8_t voltage; - uint16_t chksum; + uint8_t mode; + uint8_t rsvd[6]; + uint8_t voltage; + uint16_t chksum; } SERDESPOC_SETTINGS; 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, - SERDESGEN_MOD_ID_UNKNOWN = -1, + 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, + SERDESGEN_MOD_ID_UNKNOWN = -1, }; typedef struct SERDESGEN_SETTINGS_t { - uint16_t flags; - uint8_t rsvd1; - uint8_t mod_id; - uint16_t tx_speed; - uint16_t rx_speed; - uint8_t rsvd2[24]; + uint16_t flags; + uint8_t rsvd1; + uint8_t mod_id; + uint16_t tx_speed; + uint16_t rx_speed; + uint8_t rsvd2[24]; } SERDESGEN_SETTINGS; typedef struct _RadMoonDuoConverterSettings { - uint8_t linkMode0; - uint8_t linkMode1; - uint8_t converter1Mode; - uint32_t ipAddress; - uint32_t ipMask; - uint32_t ipGateway; + uint8_t linkMode0; + uint8_t linkMode1; + uint8_t converter1Mode; + uint32_t ipAddress; + uint32_t ipMask; + uint32_t ipGateway; } RadMoonDuoConverterSettings; 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]; + 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; 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, - REPORT_ON_GPS, + 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, + REPORT_ON_GPS, }; 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; - 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; - uint16_t vnetBits; + 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; + 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; + uint16_t vnetBits; } SFireSettings; 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; - 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; - 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; - uint16_t vnetBits; - CAN_SETTINGS can5; - CAN_SETTINGS can6; - LIN_SETTINGS lin5; - SWCAN_SETTINGS swcan2; + 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; + 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; + uint16_t vnetBits; + CAN_SETTINGS can5; + CAN_SETTINGS can6; + LIN_SETTINGS lin5; + SWCAN_SETTINGS swcan2; } SFireVnetSettings; 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; - 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; - 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; + 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; + 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; + 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; } 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; + 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; 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; + 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; 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; + 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; typedef struct _SECUSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; + uint32_t ecu_id; + uint16_t selected_network; + 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; typedef struct _SPendantSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; + uint32_t ecu_id; + uint16_t selected_network; + 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; typedef struct _SIEVBSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; + uint32_t ecu_id; + uint16_t selected_network; + 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; 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; + 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; 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, + 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, }; enum eGPTPRole { - eRoleDisabled = 0, - eRolePassive = 1, - eRoleMaster = 2, - eRoleSlave = 3, + 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; - 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; - ETHERNET_SETTINGS2 ethernet2; - uint16_t network_enables_4; - RAD_GPTP_SETTINGS gPTP; + 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; + 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; + ETHERNET_SETTINGS2 ethernet2; + uint16_t network_enables_4; + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADGalaxySettings; 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; - uint16_t hwComLatencyTestEn; - RAD_REPORTING_SETTINGS reporting; - ETHERNET_SETTINGS2 ethernet; - RAD_GPTP_SETTINGS gPTP; + 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; + uint16_t hwComLatencyTestEn; + RAD_REPORTING_SETTINGS reporting; + ETHERNET_SETTINGS2 ethernet; + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADStar2Settings; 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; + 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; typedef enum { - tdmModeTDM2 = 0, - tdmModeTDM4, - tdmModeTDM8, - tdmModeTDM12, - tdmModeTDM16, - tdmModeTDM20, - tdmModeTDM24, - tdmModeTDM32, + tdmModeTDM2 = 0, + tdmModeTDM4, + tdmModeTDM8, + tdmModeTDM12, + tdmModeTDM16, + tdmModeTDM20, + tdmModeTDM24, + tdmModeTDM32, } A2BTDMMode; typedef enum { - a2bNodeTypeMonitor = 0, - a2bNodeTypeMaster, - a2bNodeTypeSlave, + a2bNodeTypeMonitor = 0, + a2bNodeTypeMaster, + a2bNodeTypeSlave, } A2BNodeType; typedef struct { - uint8_t tdmMode; - uint8_t upstreamChannelOffset; - uint8_t downstreamChannelOffset; - uint8_t nodeType; - uint8_t flags; - uint8_t reserved[15]; + uint8_t tdmMode; + uint8_t upstreamChannelOffset; + uint8_t downstreamChannelOffset; + uint8_t nodeType; + uint8_t flags; + uint8_t reserved[15]; } A2BMonitorSettings; 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; + 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; 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; + 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; typedef struct _SRADMoon3Settings { - uint16_t perf_en; - ETHERNET10G_SETTINGS autoEth10g; - ETHERNET10G_SETTINGS eth10g; - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - uint16_t network_enables_3; - struct - { - uint16_t enableLatencyTest : 1; - uint16_t reserved : 15; - } flags; + uint16_t perf_en; + ETHERNET10G_SETTINGS autoEth10g; + ETHERNET10G_SETTINGS eth10g; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enabled_on_boot; + uint16_t network_enables_3; + struct + { + uint16_t enableLatencyTest : 1; + uint16_t reserved : 15; + } flags; + uint64_t network_enables_5; } SRADMoon3Settings; 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]; - uint8_t rsvd2[8]; - 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; + 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]; + uint8_t rsvd2[8]; + 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; 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; + 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; typedef struct _SVividCANSettings { - uint32_t ecu_id; - CAN_SETTINGS can1; - SWCAN_SETTINGS swcan1; - CAN_SETTINGS lsftcan1; - 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; + uint32_t ecu_id; + CAN_SETTINGS can1; + SWCAN_SETTINGS swcan1; + CAN_SETTINGS lsftcan1; + 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; 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; + 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; typedef struct _CmProbeSettings { - uint16_t network_enables; - uint16_t network_enabled_on_boot; + uint16_t network_enables; + uint16_t network_enabled_on_boot; } CmProbeSettings, SCmProbeSettings; typedef struct _OBD2ProSettings { - 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_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; - 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; + 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_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; + 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; typedef struct _VCAN412Settings { - 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; - 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 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; + 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; typedef struct _neoECU_AVBSettings { - 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; - 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 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; + 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; 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; + 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; 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; + 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; typedef struct SPluto_L2ForwardingParams_s { - uint16_t part_spc[8]; - uint8_t max_dynp; - uint8_t pad; + uint16_t part_spc[8]; + uint8_t max_dynp; + uint8_t pad; } SPluto_L2ForwardingParams; typedef struct SPluto_L2ForwardingEntry_s { - uint8_t vlan_pmap[8]; - uint8_t bc_domain; - uint8_t reach_port; - uint8_t fl_domain; - uint8_t pad; + uint8_t vlan_pmap[8]; + uint8_t bc_domain; + uint8_t reach_port; + uint8_t fl_domain; + uint8_t pad; } SPluto_L2ForwardingEntry; typedef struct SPluto_L2Policing_s { - uint16_t smax; - uint16_t rate; - uint16_t maxlen; - uint8_t sharindx; - uint8_t partition; + uint16_t smax; + uint16_t rate; + uint16_t maxlen; + uint8_t sharindx; + uint8_t partition; } SPluto_L2Policing; 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; + 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; typedef struct SPluto_MacConfig_s { - uint16_t top[8]; - uint16_t base[8]; - uint16_t tp_delin; - uint16_t tp_delout; - uint16_t vlanid; - uint8_t enabled[8]; - 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; + uint16_t top[8]; + uint16_t base[8]; + uint16_t tp_delin; + uint16_t tp_delout; + uint16_t vlanid; + uint8_t enabled[8]; + 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; 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; + 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; 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; + 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; typedef struct SPluto_VlLookupEntry_s { - union - { - struct - { - uint64_t macaddr; - uint16_t vlanid; - uint8_t destports; - uint8_t iscritical; - uint8_t port; - uint8_t vlanprior; - } vllupformat0; - struct + union { - uint16_t vlid; - uint8_t egrmirr; - uint8_t ingrmirr; - uint8_t port; - } vllupformat1; - }; + struct + { + uint64_t macaddr; + uint16_t vlanid; + uint8_t destports; + uint8_t iscritical; + uint8_t port; + uint8_t vlanprior; + } vllupformat0; + struct + { + uint16_t vlid; + uint8_t egrmirr; + uint8_t ingrmirr; + uint8_t port; + } vllupformat1; + }; } SPluto_VlLookupEntry; typedef struct SPluto_VlPolicingEntry_s { - uint64_t type; - uint64_t maxlen; - uint64_t sharindx; - uint64_t bag; - uint64_t jitter; + uint64_t type; + uint64_t maxlen; + uint64_t sharindx; + uint64_t bag; + uint64_t jitter; } SPluto_VlPolicingEntry; typedef struct SPluto_VlForwardingParams_s { - uint16_t partspc[8]; - uint8_t debugen; - uint8_t pad; + uint16_t partspc[8]; + uint8_t debugen; + uint8_t pad; } SPluto_VlForwardingParams; typedef struct SPluto_VlForwardingEntry_s { - uint8_t type; - uint8_t priority; - uint8_t partition; - uint8_t destports; + uint8_t type; + uint8_t priority; + uint8_t partition; + uint8_t destports; } SPluto_VlForwardingEntry; typedef struct SPluto_AVBParams_s { - uint64_t destmeta; - uint64_t srcmeta; + uint64_t destmeta; + uint64_t srcmeta; } SPluto_AVBParams; 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; + 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; typedef struct SPlutoPtpParams_s { - uint32_t neighborPropDelayThresh; - uint32_t sys_phc_sync_interval; - int8_t logPDelayReqInterval; - int8_t logSyncInterval; - int8_t logAnnounceInterval; - 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]; + uint32_t neighborPropDelayThresh; + uint32_t sys_phc_sync_interval; + int8_t logPDelayReqInterval; + int8_t logSyncInterval; + int8_t logAnnounceInterval; + 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; typedef struct SPluto_CustomParams_s { - uint8_t mode[5]; - uint8_t speed[5]; - uint8_t enablePhy[5]; - uint8_t ae1Select; - uint8_t usbSelect; - uint8_t pad; - PlutoPtpParams_t ptpParams; + uint8_t mode[5]; + uint8_t speed[5]; + uint8_t enablePhy[5]; + uint8_t ae1Select; + uint8_t usbSelect; + uint8_t pad; + PlutoPtpParams_t ptpParams; } SPluto_CustomParams; 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; + 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]; } SPlutoSwitchSettings; typedef struct _RADPlutoSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - SPluto_CustomParams custom; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + SPluto_CustomParams custom; + ETHERNET_SETTINGS2 ethernet2; } SRADPlutoSettings; typedef union { - uint32_t word; - struct - { - unsigned can_sleep_command_id : 29; - unsigned can_sleep_command_isExtended : 1; - unsigned reserved : 2; - } id; + 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; + 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; 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; + 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 { - 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; + 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; typedef enum _flexVnetMode { - flexVnetModeDisabled, - flexVnetModeOneSingle, - flexVnetModeOneDual, - flexVnetModeTwoSingle, - flexVnetModeColdStart + 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; - 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]; + 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; + 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]; } SNeoECU12Settings; 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; + 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 { - 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; + 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; typedef struct _SOBD2LCSettings { - 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_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; - union - { - uint64_t word; + 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_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; + }; + } network_enables; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + uint16_t network_enabled_on_boot; + int16_t iso15765_separation_time_offset; + STextAPISettings text_api; 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; - 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; + 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; } OBD2LCSettings, SOBD2LCSettings; typedef struct SJupiterPtpParams_s { - uint32_t neighborPropDelay; - int8_t initLogPDelayReqInterval; - int8_t initLogSyncInterval; - int8_t operationLogPDelayReqInterval; - int8_t operationLogSyncInterval; - uint8_t gPTPportRole[8]; + uint32_t neighborPropDelay; + int8_t initLogPDelayReqInterval; + int8_t initLogSyncInterval; + int8_t operationLogPDelayReqInterval; + int8_t operationLogSyncInterval; + uint8_t gPTPportRole[8]; } JupiterPtpParams_t; typedef struct _SRADJupiterSwitchSettings { - uint8_t phyMode[8]; - uint8_t enablePhy[8]; - uint8_t port7Select; - uint8_t port8Select; - uint8_t port8Speed; - uint8_t port8Legacy; - uint8_t spoofMacFlag; - uint8_t spoofedMac[6]; - uint8_t pad; - JupiterPtpParams_t ptpParams; + uint8_t phyMode[8]; + uint8_t enablePhy[8]; + uint8_t port7Select; + uint8_t port8Select; + uint8_t port8Speed; + uint8_t port8Legacy; + uint8_t spoofMacFlag; + uint8_t spoofedMac[6]; + uint8_t pad; + JupiterPtpParams_t ptpParams; } SRADJupiterSwitchSettings; typedef struct _SRADJupiterSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - SRADJupiterSwitchSettings switchSettings; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + SRADJupiterSwitchSettings switchSettings; + ETHERNET_SETTINGS2 ethernet2; } SRADJupiterSettings; typedef struct { - uint8_t allowBoot; - uint8_t useExternalWifiAntenna; - uint8_t ethConfigurationPort; - uint8_t reserved[5]; + uint8_t allowBoot; + uint8_t useExternalWifiAntenna; + uint8_t ethConfigurationPort; + uint8_t reserved[5]; } Fire3LinuxSettings; 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; + 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 { - 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; + 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; } SRed2Settings; 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 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; } SFire3Settings; 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 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; } SFire3FlexraySettings; 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; + 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; typedef struct _SEtherBadgeSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - 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 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; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + 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 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; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + ETHERNET_SETTINGS2 ethernet2; } SEtherBadgeSettings; typedef struct _SRADEpsilonSwitchSettings { - uint8_t phyMode[18]; - uint8_t enablePhy[18]; - uint8_t speed[18]; - uint8_t legacy[18]; - uint8_t spoofedMac[6]; - uint8_t spoofMacFlag; - uint8_t pad; + uint8_t phyMode[18]; + uint8_t enablePhy[18]; + uint8_t speed[18]; + uint8_t legacy[18]; + uint8_t spoofedMac[6]; + uint8_t spoofMacFlag; + uint8_t pad; } SRADEpsilonSwitchSettings; typedef struct _SRADEpsilonSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - SRADEpsilonSwitchSettings switchSettings; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + SRADEpsilonSwitchSettings switchSettings; + ETHERNET_SETTINGS2 ethernet2; + uint16_t misc_io_on_report_events; } SRADEpsilonSettings; typedef struct { - uint8_t wBMSDeviceID; - uint8_t enabled; + uint8_t wBMSDeviceID; + uint8_t enabled; } sWIL_FAULT_SERVICING_SETTINGS; typedef struct { - uint8_t enabled; + uint8_t enabled; } sWIL_NETWORK_DATA_CAPTURE_SETTINGS; 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; + 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; } sWIL_CONNECTION_SETTINGS; enum { - SPI_PORT_ONBOARD = 0, - SPI_PORT_EXTERNAL, + 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, + SPI_TYPE_WIL = 0, + SPI_TYPE_RAW, }; enum { - SPI_MODE_MASTER, - SPI_MODE_SLAVE, - SPI_MODE_PMS_EMULATION, + SPI_MODE_MASTER, + SPI_MODE_SLAVE, + SPI_MODE_PMS_EMULATION, }; typedef union { - uint8_t byte; - struct - { - uint8_t onboard_external : 1; - uint8_t type : 1; - uint8_t mode : 3; - uint8_t reserved : 3; - } config; + 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; - sSPI_PORT_SETTING port_b; + sSPI_PORT_SETTING port_a; + sSPI_PORT_SETTING port_b; } sSPI_PORT_SETTINGS; typedef union { - uint64_t dword; - struct - { - unsigned can_id : 29; - unsigned can_id_isExtended : 1; - uint16_t tcp_port; - unsigned reserved : 18; - } config; + uint64_t dword; + struct + { + unsigned can_id : 29; + unsigned can_id_isExtended : 1; + uint16_t tcp_port; + unsigned reserved : 18; + } config; } sWILBridgeConfig; +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; typedef struct _SRADBMSSettings { - uint16_t perf_en; - uint64_t termination_enables; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - int16_t iso15765_separation_time_offset; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - ETHERNET_SETTINGS ethernet; - ETHERNET_SETTINGS2 ethernet2; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t network_enabled_on_boot; - sWILBridgeConfig wil_config; - sSPI_PORT_SETTINGS spi_config; - sWIL_CONNECTION_SETTINGS wbms_wil_1; - sWIL_CONNECTION_SETTINGS wbms_wil_2; - uint16_t wil1_nwk_metadata_buff_count; - uint16_t wil2_nwk_metadata_buff_count; + uint16_t perf_en; + uint64_t termination_enables; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + int16_t iso15765_separation_time_offset; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + ETHERNET_SETTINGS ethernet; + ETHERNET_SETTINGS2 ethernet2; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + uint16_t network_enabled_on_boot; + sWILBridgeConfig wil_config; + sSPI_PORT_SETTINGS spi_config; + sWIL_CONNECTION_SETTINGS wbms_wil_1; + sWIL_CONNECTION_SETTINGS wbms_wil_2; + uint16_t wil1_nwk_metadata_buff_count; + uint16_t wil2_nwk_metadata_buff_count; + WBMSGatewaySettings gateway; + uint16_t network_enables_4; + uint64_t network_enables_5; } SRADBMSSettings; +typedef struct _SRADCometSettings +{ + 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_SETTINGS2 ethernet; + OP_ETH_GENERAL_SETTINGS opEthGen; + ETHERNET_SETTINGS2 ethT1; + OP_ETH_SETTINGS opEth1; + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + uint64_t network_enables_5; +} SRADCometSettings; 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; - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; - SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SRADGigalogSettings radgigalog; - SCANHubSettings canhub; - SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; - SEEVBSettings eevb; - SFlexVnetzSettings flexvnetz; - SVividCANSettings vividcan; - SVCAN4IndSettings vcan4_ind; - SOBD2LCSettings obd2lc; - SRADGigastarSettings radgigastar; - SRADJupiterSettings jupiter; - SRed2Settings red2; - SFire3Settings fire3; - SFire3FlexraySettings fire3fr; - SRadMoonDuoSettings radmoonduo; - SEtherBadgeSettings etherBadge; - SRADA2BSettings rad_a2b; - SRADEpsilonSettings epsilon; - SRADBMSSettings rad_bms; - SRADMoon3Settings radmoon3; - }; + 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; + SECU_AVBSettings neoecu_avb; + SRADSuperMoonSettings radsupermoon; + SRADMoon2Settings radmoon2; + SRADPlutoSettings pluto; + SRADGigalogSettings radgigalog; + SCANHubSettings canhub; + SNeoECU12Settings neoecu12; + SVCANRFSettings vcanrf; + SEEVBSettings eevb; + SFlexVnetzSettings flexvnetz; + SVividCANSettings vividcan; + SVCAN4IndSettings vcan4_ind; + SOBD2LCSettings obd2lc; + SRADGigastarSettings radgigastar; + SRADJupiterSettings jupiter; + SRed2Settings red2; + SFire3Settings fire3; + SFire3FlexraySettings fire3fr; + SRadMoonDuoSettings radmoonduo; + SEtherBadgeSettings etherBadge; + SRADA2BSettings rad_a2b; + SRADEpsilonSettings epsilon; + SRADBMSSettings rad_bms; + SRADMoon3Settings radmoon3; + SRADCometSettings radcomet; + }; } GLOBAL_SETTINGS; typedef enum _EDeviceSettingsType { - DeviceFireSettingsType, - DeviceFireVnetSettingsType, - DeviceFire2SettingsType, - DeviceVCAN3SettingsType, - DeviceRADGalaxySettingsType, - DeviceRADStar2SettingsType, - DeviceVCAN4SettingsType, - DeviceVCAN412SettingsType, - DeviceVividCANSettingsType, - DeviceECU_AVBSettingsType, - DeviceRADSuperMoonSettingsType, - DeviceRADMoon2SettingsType, - DeviceRADPlutoSettingsType, - DeviceRADGigalogSettingsType, - DeviceVCANRFSettingsType, - DeviceEEVBSettingsType, - DeviceVCAN4IndSettingsType, - DeviceNeoECU12SettingsType, - DeviceFlexVnetzSettingsType, - DeviceCANHUBSettingsType, - DeviceIEVBSettingsType, - DeviceOBD2SimSettingsType, - DeviceCMProbeSettingsType, - DeviceOBD2ProSettingsType, - DeviceRedSettingsType, - DeviceRADPlutoSwitchSettingsType, - DeviceRADGigastarSettingsType, - DeviceRADJupiterSettingsType, - DeviceRed2SettingsType, - DeviceRadMoonDuoSettingsType, - DeviceEtherBadgeSettingsType, - DeviceRADA2BSettingsType, - DeviceRADEpsilonSettingsType, - DeviceOBD2LCSettingsType, - DeviceRADBMSSettingsType, - DeviceRADMoon3SettingsType, - DeviceFire3SettingsType, - DeviceFire3FlexraySettingsType, - DeviceSettingsTypeMax, - DeviceSettingsNone = 0xFFFFFFFF + DeviceFireSettingsType, + DeviceFireVnetSettingsType, + DeviceFire2SettingsType, + DeviceVCAN3SettingsType, + DeviceRADGalaxySettingsType, + DeviceRADStar2SettingsType, + DeviceVCAN4SettingsType, + DeviceVCAN412SettingsType, + DeviceVividCANSettingsType, + DeviceECU_AVBSettingsType, + DeviceRADSuperMoonSettingsType, + DeviceRADMoon2SettingsType, + DeviceRADPlutoSettingsType, + DeviceRADGigalogSettingsType, + DeviceVCANRFSettingsType, + DeviceEEVBSettingsType, + DeviceVCAN4IndSettingsType, + DeviceNeoECU12SettingsType, + DeviceFlexVnetzSettingsType, + DeviceCANHUBSettingsType, + DeviceIEVBSettingsType, + DeviceOBD2SimSettingsType, + DeviceCMProbeSettingsType, + DeviceOBD2ProSettingsType, + DeviceRedSettingsType, + DeviceRADPlutoSwitchSettingsType, + DeviceRADGigastarSettingsType, + DeviceRADJupiterSettingsType, + DeviceRed2SettingsType, + DeviceRadMoonDuoSettingsType, + DeviceEtherBadgeSettingsType, + DeviceRADA2BSettingsType, + DeviceRADEpsilonSettingsType, + DeviceOBD2LCSettingsType, + DeviceRADBMSSettingsType, + DeviceRADMoon3SettingsType, + DeviceFire3SettingsType, + DeviceFire3FlexraySettingsType, + DeviceRADCometSettingsType, + DeviceRed2OemSettingsType, + DeviceSettingsTypeMax, + DeviceSettingsNone = 0xFFFFFFFF } 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; - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; - SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SPlutoSwitchSettings plutoswitch; - SRADGigalogSettings radgigalog; - SCANHubSettings canhub; - SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; - SEEVBSettings eevb; - SFlexVnetzSettings flexvnetz; - SVividCANSettings vividcan; - SVCAN4IndSettings vcan4_ind; - SOBD2LCSettings obd2lc; - SRADGigastarSettings radgigastar; - SRADJupiterSettings jupiter; - SFire3Settings fire3; - SRed2Settings red2; - SRadMoonDuoSettings radmoon_duo; - SEtherBadgeSettings etherBadge; - SRADA2BSettings rad_a2b; - SRADEpsilonSettings epsilon; - SRADBMSSettings rad_bms; - SRADMoon3Settings radmoon3; - SFire3FlexraySettings fire3Flexray; - } Settings; + 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; + SECU_AVBSettings neoecu_avb; + SRADSuperMoonSettings radsupermoon; + SRADMoon2Settings radmoon2; + SRADPlutoSettings pluto; + SPlutoSwitchSettings plutoswitch; + SRADGigalogSettings radgigalog; + SCANHubSettings canhub; + SNeoECU12Settings neoecu12; + SVCANRFSettings vcanrf; + SEEVBSettings eevb; + SFlexVnetzSettings flexvnetz; + SVividCANSettings vividcan; + SVCAN4IndSettings vcan4_ind; + SOBD2LCSettings obd2lc; + SRADGigastarSettings radgigastar; + 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; + } Settings; } SDeviceSettings; typedef enum _EPlasmaIonVnetChannel_t { - PlasmaIonVnetChannelMain, - PlasmaIonVnetChannelA, - PlasmaIonVnetChannelB, - eSoftCore, - eFpgaStatusResp, + PlasmaIonVnetChannelMain, + PlasmaIonVnetChannelA, + PlasmaIonVnetChannelB, + eSoftCore, + eFpgaStatusResp, } EPlasmaIonVnetChannel_t; typedef enum _EwBMSManagerPort_t { - eManagerPortA = 0, - eManagerPortB, + eManagerPortA = 0, + eManagerPortB, } EwBMSManagerPort_t; typedef enum _EwBMSManagerLockState_t { - eLockManager = 0, - eUnlockManager, + eLockManager = 0, + eUnlockManager, } EwBMSManagerLockState_t; typedef enum _EUartPort_t { - eUART0 = 0, - eUART1, + eUART0 = 0, + eUART1, } EUartPort_t; typedef enum _eGenericAPIOptions { - eGENERIC_API = 0, - eADI_WIL_API = 1, + eGENERIC_API = 0, + eADI_WIL_API = 1, } eGenericAPIOptions; typedef enum _EwBMSInstance_t { - ewBMSInstance0 = 0, - ewBMSInstance1, + ewBMSInstance0 = 0, + ewBMSInstance1, } EwBMSInstance_t; typedef struct _stCM_ISO157652_TxMessage { - uint16_t vs_netid; - uint8_t padding; - uint8_t tx_index; - uint32_t id; - uint32_t fc_id; - uint32_t fc_id_mask; - uint8_t stMin; - uint8_t blockSize; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; - uint16_t fs_timeout; - uint16_t fs_wait; - uint8_t data[4 * 1024]; - uint32_t num_bytes; - union - { - struct + uint16_t vs_netid; + uint8_t padding; + uint8_t tx_index; + uint32_t id; + uint32_t fc_id; + uint32_t fc_id_mask; + uint8_t stMin; + uint8_t blockSize; + uint8_t flowControlExtendedAddress; + uint8_t extendedAddress; + uint16_t fs_timeout; + uint16_t fs_wait; + uint8_t data[4 * 1024]; + uint32_t num_bytes; + union { - 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 iscanFD : 1; - unsigned isBRSEnabled : 1; - unsigned : 15; - unsigned tx_dl : 8; + 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 iscanFD : 1; + unsigned isBRSEnabled : 1; + unsigned : 15; + unsigned tx_dl : 8; + }; + uint32_t flags; }; - uint32_t flags; - }; } stCM_ISO157652_TxMessage; typedef struct { - uint16_t vs_netid; - uint8_t padding; - uint8_t tx_index; - uint32_t id; - uint32_t fc_id; - uint32_t fc_id_mask; - uint8_t stMin; - uint8_t blockSize; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; - uint16_t fs_timeout; - uint16_t fs_wait; - uint8_t* data; - uint32_t num_bytes; - uint8_t tx_dl; - union - { - struct + uint16_t vs_netid; + uint8_t padding; + uint8_t tx_index; + uint32_t id; + uint32_t fc_id; + uint32_t fc_id_mask; + uint8_t stMin; + uint8_t blockSize; + uint8_t flowControlExtendedAddress; + uint8_t extendedAddress; + uint16_t fs_timeout; + uint16_t fs_wait; + uint8_t* data; + uint32_t num_bytes; + uint8_t tx_dl; + union { - 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; + 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; }; - uint16_t flags; - }; } ISO15765_2015_TxMessage; typedef struct _stCM_ISO157652_RxMessage { - uint16_t vs_netid; - uint8_t padding; - uint32_t id; - uint32_t id_mask; - uint32_t fc_id; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; - uint8_t blockSize; - uint8_t stMin; - uint16_t cf_timeout; - union - { - struct + uint16_t vs_netid; + uint8_t padding; + uint32_t id; + uint32_t id_mask; + uint32_t fc_id; + uint8_t flowControlExtendedAddress; + uint8_t extendedAddress; + uint8_t blockSize; + uint8_t stMin; + uint16_t cf_timeout; + union { - 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 iscanFD : 1; - unsigned isBRSEnabled : 1; + 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 iscanFD : 1; + unsigned isBRSEnabled : 1; + }; + uint32_t flags; }; - uint32_t flags; - }; - uint8_t reserved[16]; + uint8_t reserved[16]; } stCM_ISO157652_RxMessage; #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; + 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; typedef int16_t descIdType; 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 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 { - uint32_t StatusBitField3; - uint32_t StatusBitField4; + struct + { + uint32_t StatusBitField3; + uint32_t StatusBitField4; + }; + uint8_t AckBytes[8]; }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + 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 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 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; + 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 + uint8_t Data[8]; + union { - uint32_t StatusBitField3; - uint32_t StatusBitField4; + 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; + }; }; - uint8_t AckBytes[8]; - struct + 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 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; + uint32_t ArbIDOrHeader; + struct + { + uint32_t RegAddr : 16; + uint32_t PhyAddr : 5; + uint32_t DevType : 5; + uint32_t : 6; + }; }; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; -} icsSpyMessageFlexRay; + 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 _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 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 { - uint32_t StatusBitField3; - uint32_t StatusBitField4; + struct + { + uint32_t StatusBitField3; + uint32_t StatusBitField4; + }; + uint8_t AckBytes[8]; }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + void* ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageLong; 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 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 { - uint32_t StatusBitField3; - uint32_t StatusBitField4; + struct + { + uint32_t StatusBitField3; + uint32_t StatusBitField4; + }; + uint8_t AckBytes[8]; }; - uint8_t AckBytes[8]; - }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + void* ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageJ1850; 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 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 { - uint32_t StatusBitField3; - uint32_t StatusBitField4; + struct + { + uint32_t StatusBitField3; + uint32_t StatusBitField4; + }; + uint8_t AckBytes[8]; }; - uint8_t AckBytes[8]; - }; - uint32_t ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + uint32_t ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageVSB; #pragma pack(push) #pragma pack(1) typedef struct _ethernetNetworkStatus_t { - uint16_t networkId; - uint8_t linkStatus; - uint8_t linkFullDuplex; - uint8_t linkSpeed; - uint8_t linkMode; + uint16_t networkId; + uint8_t linkStatus; + uint8_t linkFullDuplex; + uint8_t linkSpeed; + uint8_t linkMode; } ethernetNetworkStatus_t; #pragma pack(pop) typedef struct { - uint8_t backupPowerGood; - uint8_t backupPowerEnabled; - uint8_t usbHostPowerEnabled; - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; + 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; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus; + uint8_t unused; } icsFire2VnetDeviceStatus; typedef struct { - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus; + uint8_t unused; } icsVcan4DeviceStatus; typedef struct { - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus; + uint8_t unused; } icsFlexVnetzDeviceStatus; typedef struct { - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus[3]; - uint8_t ethernetActivationLineEnabled_2; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus[3]; + uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[4]; + ethernetNetworkStatus_t ethernetStatus[4]; } icsRadMoonDuoDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[8 - 1]; + ethernetNetworkStatus_t ethernetStatus[8 - 1]; } icsRadJupiterDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + ethernetNetworkStatus_t ethernetStatus; } icsOBD2ProDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[4]; + ethernetNetworkStatus_t ethernetStatus[4]; } icsRadPlutoDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + ethernetNetworkStatus_t ethernetStatus; } icsVcan4IndustrialDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + ethernetNetworkStatus_t ethernetStatus[9]; } icsRadEpsilonDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + 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; - icsVcan4IndustrialDeviceStatus vcan4indStatus; - icsRadBMSDeviceStatus radBMSStatus; + 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]; - char szDeviceName[64]; - unsigned long Status; - unsigned char bMAC_Address[6]; - unsigned char bIPV6_Address[16]; - unsigned char bIPV4_Address[4]; - unsigned long EthernetPinConfig; + char szName[128]; + char szDeviceName[64]; + unsigned long Status; + unsigned char bMAC_Address[6]; + unsigned char bIPV6_Address[16]; + unsigned char bIPV4_Address[4]; + unsigned long EthernetPinConfig; } NDIS_ADAPTER_INFORMATION; typedef struct SPhyRegPktHdr { - uint16_t numEntries; - uint8_t version; - uint8_t entryBytes; + uint16_t numEntries; + uint8_t version; + uint8_t entryBytes; } PhyRegPktHdr_t; typedef struct SPhyRegPktClause22Mess { - uint8_t phyAddr; - uint8_t page; - uint16_t regAddr; - uint16_t regVal; + uint8_t phyAddr; + uint8_t page; + uint16_t regAddr; + uint16_t regVal; } PhyRegPktClause22Mess_t; typedef struct SPhyRegPktClause45Mess { - uint8_t port; - uint8_t device; - uint16_t regAddr; - uint16_t regVal; + uint8_t port; + uint8_t device; + uint16_t regAddr; + uint16_t regVal; } PhyRegPktClause45Mess_t; 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 + 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 + PHYREG_READ = 0, + PHYREG_WRITE, + PHYREG_BOTH } PhyRegPktRw_t; typedef struct SPhyRegPkt { - union - { - struct + union { - 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; + 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; }; - 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, - NUM_VALID_DEVICE_FEATURES, - supportedFeatureMax = 0xFFFF, + networkDWCAN01, + networkDWCAN02, + networkDWCAN03, + networkDWCAN04, + networkDWCAN05, + networkDWCAN06, + networkDWCAN07, + networkDWCAN08, + networkTerminationDWCAN01, + networkTerminationDWCAN02, + networkTerminationDWCAN03, + networkTerminationDWCAN04, + networkTerminationDWCAN05, + networkTerminationDWCAN06, + networkTerminationDWCAN07, + networkTerminationDWCAN08, + enhancedFlashDriver, + 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; +enum +{ + assert_line_5350 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) +}; +; enum { - assert_line_5140 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_5351 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_5141 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_5352 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_5142 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_5353 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_5143 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_5354 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_5144 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_5355 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_5145 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_5356 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_5146 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_5357 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_5147 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_5358 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_5148 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_5359 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_5149 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_5360 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_5150 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_5361 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_5151 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_5362 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_5152 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_5363 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_5153 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_5364 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_5154 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_5365 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_5155 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_5366 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_5156 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_5367 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) }; ; enum { - assert_line_5157 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_5368 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_5158 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_5369 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_5159 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_5370 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_5160 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_5371 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_5161 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_5372 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_5162 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_5373 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_5163 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_5374 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_5164 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_5375 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_5165 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_5376 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_5166 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_5377 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_5167 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_5378 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_5168 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_5379 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_5169 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_5380 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_5170 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_5381 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_5171 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_5382 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_5172 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_5383 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_5173 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_5384 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_5174 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 768)) + assert_line_5385 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) }; ; enum { - assert_line_5175 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 414)) + assert_line_5386 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) }; ; enum { - assert_line_5176 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_5387 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_5177 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_5388 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_5178 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1472) + 6))) + assert_line_5389 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1472) + 6))) }; ; enum { - assert_line_5179 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_5390 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_5180 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_5391 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_5181 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_5392 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_5182 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_5393 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_5183 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_5394 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_5184 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_5395 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_5185 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_5396 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_5186 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_5397 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_5187 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_5398 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_5188 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_5399 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_5189 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 178)) + assert_line_5400 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) }; ; enum { - assert_line_5190 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 162)) + assert_line_5401 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) }; ; enum { - assert_line_5191 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 698)) + assert_line_5402 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) }; ; enum { - assert_line_5192 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 702)) + assert_line_5403 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) }; ; enum { - assert_line_5193 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_5404 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_5194 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_5405 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_5195 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_5406 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_5196 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_5407 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_5197 = 1 / (int)(!!(sizeof(SExtSubCmdComm) == 522)) + assert_line_5408 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_5198 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_5409 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5199 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5410 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_5200 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_5411 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_5201 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_5412 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_5202 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_5413 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_5203 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_5414 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_5204 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_5415 = 1 / (int)(!!(sizeof(SFire3Settings) == (1472))) }; ; enum { - assert_line_5205 = 1 / (int)(!!(sizeof(SFire3Settings) == (1472))) + assert_line_5416 = 1 / (int)(!!(sizeof(SRed2Settings) == (668))) }; ; enum { - assert_line_5206 = 1 / (int)(!!(sizeof(SRed2Settings) == (668))) + assert_line_5417 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_5207 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_5418 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) }; ; enum { - assert_line_5208 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 332)) + assert_line_5419 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_5209 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_5420 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) }; ; enum { - assert_line_5210 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 384)) + assert_line_5421 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_5211 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_5422 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) }; ; enum { - assert_line_5212 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 130)) + assert_line_5423 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) }; ; enum { - assert_line_5213 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 60)) + assert_line_5424 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1122))) }; ; enum { - assert_line_5214 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1122))) + assert_line_5425 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5215 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5426 = 1 / (int)(!!(sizeof(SRADCometSettings) == 456)) }; ; diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index dcf816dc5..3af749724 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -167,6 +167,14 @@ typedef unsigned __int64 uint64_t; #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 /* Upper boundry of Network IDs */ #define NETID_MAX 100 #define NETID_INVALID 0xffff @@ -215,6 +223,7 @@ 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_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -222,14 +231,14 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_OBD2_PRO (0x00000400) #define NEODEVICE_ECUCHIP_UART (0x00000800) #define NEODEVICE_PLASMA (0x00001000) -#define NEODEVICE_DONT_REUSE0 (0x00002000)//NEODEVICE_FIRE_VNET +#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_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_DONT_REUSE3 (0x00100000) //NEODEVICE_ION3 #define NEODEVICE_VCAN44 (0x00200000) #define NEODEVICE_VCAN42 (0x00400000) #define NEODEVICE_CMPROBE (0x00800000) @@ -246,7 +255,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_NEOECUCHIP NEODEVICE_IEVB //clang-format on -#define DEVICECOUNT_FOR_EXPLORER 44 //this value will be checked by the NeoViExplorer after #6453! +#define DEVICECOUNT_FOR_EXPLORER (46) //this value will be checked by the NeoViExplorer after #6453! #define ISO15765_2_NETWORK_HSCAN 0x01 #define ISO15765_2_NETWORK_MSCAN 0x02 @@ -314,6 +323,7 @@ typedef unsigned __int64 uint64_t; #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 @@ -374,6 +384,18 @@ typedef unsigned __int64 uint64_t; #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 @@ -430,8 +452,8 @@ typedef unsigned __int64 uint64_t; #define SPY_STATUS2_CAN_HAVE_LINK_DATA 0x400000 /* wBMS Specific - check protocol before handling */ -#define SPY_STATUS2_WBMS_NODE_DISCONNECTED 0x200000 -#define SPY_STATUS2_I2C_NODE_FAULT 0x400000 +#define SPY_STATUS2_WBMS_API_IS_CALLBACK 0x200000 + /* CAN-FD Specific - check protocol before handling */ #define SPY_STATUS3_CANFD_ESI 0x01 @@ -529,7 +551,7 @@ typedef struct _NeoDeviceEx #define CANNODE_STATUS_COREMINI_IS_RUNNING (0x1) #define CANNODE_STATUS_IN_BOOTLOADER (0x2) - uint32_t Status;// Bitfield, see defs above + uint32_t Status; // Bitfield, see defs above // Option bit flags #define MAIN_VNET (0x01) @@ -559,7 +581,8 @@ typedef struct _NeoDeviceEx } NeoDeviceEx; -typedef union tagOptionsOpenNeoEx { +typedef union tagOptionsOpenNeoEx +{ struct { int32_t iNetworkID; /* Network ID indicating which CAN network to communicate over */ @@ -568,7 +591,8 @@ typedef union tagOptionsOpenNeoEx { uint32_t Reserved[16]; /* may be expanded in future revisions */ } OptionsOpenNeoEx, *POptionsOpenNeoEx; -typedef union tagOptionsFindNeoEx { +typedef union tagOptionsFindNeoEx +{ struct { int32_t iNetworkID; /* Network ID indicating which CAN network to communicate over */ @@ -802,7 +826,8 @@ typedef struct _UART_SETTINGS uint16_t stop_bits; uint8_t flow_control; /* 0- off, 1 - Simple CTS RTS */ uint8_t reserved_1; - union { + union + { uint32_t bOptions; struct { @@ -835,7 +860,8 @@ typedef struct _STextAPISettings { uint32_t can1_tx_id; uint32_t can1_rx_id; - union { + union + { struct { unsigned bExtended : 1; @@ -845,7 +871,8 @@ typedef struct _STextAPISettings } can1_options; uint32_t can2_tx_id; uint32_t can2_rx_id; - union { + union + { struct { unsigned bExtended : 1; @@ -858,7 +885,8 @@ typedef struct _STextAPISettings uint32_t can3_tx_id; uint32_t can3_rx_id; - union { + union + { struct { unsigned bExtended : 1; @@ -869,7 +897,8 @@ typedef struct _STextAPISettings uint32_t can4_tx_id; uint32_t can4_rx_id; - union { + union + { struct { unsigned bExtended : 1; @@ -883,7 +912,8 @@ typedef struct _STextAPISettings } STextAPISettings; #define STextAPISettings_SIZE 72 -typedef union _stChipVersions { +typedef union _stChipVersions +{ struct { uint8_t mpic_maj; @@ -1096,6 +1126,12 @@ typedef union _stChipVersions { uint8_t mchip_minor; } epsilon_versions; + struct + { + uint8_t zynq_core_major; + uint8_t zynq_core_minor; + } rad_comet_versions; + } stChipVersions; #define stChipVersions_SIZE 8 @@ -1129,7 +1165,8 @@ typedef struct OP_ETH_GENERAL_SETTINGS_t uint16_t tapPair3; uint16_t tapPair4; uint16_t tapPair5; - union { + union + { struct { uint32_t bTapEnSwitch : 1; @@ -1145,11 +1182,11 @@ typedef struct OP_ETH_GENERAL_SETTINGS_t 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 + 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; @@ -1166,7 +1203,7 @@ typedef struct SRAD_GPTP_SETTINGS_s typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s { RAD_GPTP_SETTINGS gPTP; - OP_ETH_GENERAL_SETTINGS tap; + OP_ETH_GENERAL_SETTINGS tap; } RAD_GPTP_AND_TAP_SETTINGS; #define RAD_GPTP_AND_TAP_SETTINGS_SIZE 40 @@ -1194,12 +1231,13 @@ typedef struct OP_ETH_SETTINGS_t { uint8_t ucConfigMode; unsigned char preemption_en; - union { + 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 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; @@ -1222,14 +1260,14 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS_SIZE 8 -#define ETHERNET_SETTINGS2_FLAG_FULL_DUPLEX 0x01 -#define ETHERNET_SETTINGS2_FLAG_AUTO_NEG 0x02 +#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_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_FLAG_COMM_IN_USE 0x80 #define ETHERNET_SETTINGS2_FLAG2_LINK_MODE 0x01 #define ETHERNET_SETTINGS2_FLAG2_PHY_MODE 0x02 @@ -1293,11 +1331,27 @@ typedef struct ETHERNET10G_SETTINGS_t 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 link_speed; //0=10, 1=100, 2=1000, 3=2500, 4=5000, 5=10000 uint8_t rsvd2[7]; } 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 + typedef struct LOGGER_SETTINGS_t { /* bit6-0: timeout in seconds @@ -1310,9 +1364,9 @@ typedef struct LOGGER_SETTINGS_t 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 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 @@ -1356,7 +1410,7 @@ typedef enum _EDiskLayout typedef struct _SDiskStatus { - uint16_t status;// 0x1 = present, 0x2 = initialized + uint16_t status; // 0x1 = present, 0x2 = initialized uint8_t sectors[8]; uint8_t bytesPerSector[4]; } SDiskStatus; @@ -1367,7 +1421,7 @@ typedef struct _SDiskStatus typedef struct _SDiskStructure { DISK_SETTINGS settings; - uint16_t options;// 0x01 full format + uint16_t options; // 0x01 full format } SDiskStructure; #define SDiskStructure_SIZE 16 @@ -1380,7 +1434,7 @@ typedef struct _SDiskDetails typedef struct _SDiskFormatProgress { - uint16_t state;// state of formatting (not started, writing file system, formatting, writing VSAs, finished) + uint16_t state; // state of formatting (not started, writing file system, formatting, writing VSAs, finished) uint8_t sectorsRemaining[8]; } SDiskFormatProgress; #define SDiskFormatProgress_SIZE 10 @@ -1442,22 +1496,28 @@ typedef struct _GenericAPIStatus typedef struct _GenericAPIData { + uint16_t length; GenericAPISelector api; uint8_t bData[GENERIC_API_DATA_BUFFER_SIZE]; - uint16_t length; } 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; + uint8_t setLock; +} wBMSManagerSetLock; typedef struct _wBMSManagerReset { uint8_t managerIndex; -}wBMSManagerReset; +} wBMSManagerReset; typedef struct _UartPortData { @@ -1593,56 +1653,21 @@ typedef struct _GPTPStatus uint8_t reserved[8]; } GPTPStatus; -#define MANUFACTURING_OPERATION_MAX_SIZE (256) -typedef union ManufacturingOperation +typedef struct _GenericBinaryStatus { - // Enable RTC Calibration (0 = disable, 1 = enable) - uint32_t rtcCalEnable; - // RTC Calibration (each step represents 4.068 PPM) - int rtcCalValue; - struct - { - // set to ManufacturingOperationAPIVersion - uint32_t apiVersion; - // Unlock code, internal use. - uint32_t code; - } unlock; - // Reserved - Max acceptable size firmware will accept - uint8_t bytes[MANUFACTURING_OPERATION_MAX_SIZE]; -} ManufacturingOperation; -// Whenever ManufacturingOperation needs to change, increment this version -// This is for firmware ABI backwards compatibility. -#define ManufacturingOperationAPIVersion (1) -#pragma pack(pop) + uint32_t size; + uint16_t index; + uint16_t status; + uint8_t reserved[8]; +} GenericBinaryStatus; -typedef struct _SExtSubCmdComm -{ - SExtSubCmdHdr header; - union { - SDiskStructure structure; - SDiskDetails details; - SDiskFormatProgress progress; - StartDHCPServerCommand startDHCPServer; - StopDHCPServerCommand stopDHCPServer; - GetSupportedFeaturesResponse getSupportedFeatures; - ExtendedResponseGeneric genericResponse; - GPTPStatus gptpStatus; - GenericAPIStatus apiStatus; - GenericAPIData apiData; - GenericAPISelector apiSelector; - GetComponentVersions getComponentVersions; - SoftwareUpdateCommand softwareUpdate; - GetComponentVersionsResponse getComponentVersionsResponse; - wBMSManagerSetLock wbmsManagerToLockUnlock; - wBMSManagerReset wbmsManagerToReset; - UartPortData uartData; - UartPortPortBytes uartBytesLen; - UartPortConfig uartConfig; - ManufacturingOperation mfgOperation; - // Add additional extension commands to this union as needed. - } extension; -} SExtSubCmdComm; -#define SExtSubCmdComm_SIZE 522 +#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 @@ -1684,7 +1709,7 @@ enum 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_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 @@ -1694,21 +1719,21 @@ enum 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_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_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, @@ -1721,21 +1746,21 @@ enum 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_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_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, @@ -1749,31 +1774,31 @@ enum 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_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_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_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_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_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 + 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, @@ -1793,13 +1818,13 @@ typedef struct SERDESCAM_SETTINGS_t * bit8: forward on port 3 */ uint32_t flags; - uint8_t mode;// passthrough, tap, etc + uint8_t mode; // passthrough, tap, etc uint8_t rsvd1; uint8_t bitPos; - uint8_t videoFormat;// bytes per pixel + uint8_t videoFormat; // bytes per pixel uint16_t resWidth; uint16_t resHeight; - uint8_t frameSkip;// skip every nth frame + uint8_t frameSkip; // skip every nth frame uint8_t rsvd2[19]; } SERDESCAM_SETTINGS; #define SERDESCAM_SETTINGS_SIZE 32 @@ -1810,10 +1835,10 @@ typedef struct SERDESCAM_SETTINGS_t typedef struct SERDESPOC_SETTINGS_t { - uint8_t mode;// no poc, generated supply, serializer passthrough + 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) + 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 @@ -1822,8 +1847,8 @@ 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, + 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, }; @@ -1838,8 +1863,8 @@ typedef struct SERDESGEN_SETTINGS_t 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 + 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]; @@ -2178,7 +2203,7 @@ typedef struct _SCyanSettings uint16_t digitalIoThresholdTicks; uint16_t digitalIoThresholdEnable; TIMESYNC_ICSHARDWARE_SETTINGS timeSync; - DISK_SETTINGS disk; + DISK_SETTINGS disk; ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings } SCyanSettings; #define SCyanSettings_SIZE 936 @@ -2295,7 +2320,7 @@ typedef struct _SECUSettings */ uint32_t ecu_id; - uint16_t selected_network;// not supported yet - default to HSCAN + uint16_t selected_network; // not supported yet - default to HSCAN CAN_SETTINGS can1; CAN_SETTINGS can2; @@ -2571,13 +2596,14 @@ typedef struct _SRADGalaxySettings DISK_SETTINGS disk; LOGGER_SETTINGS logger; - ETHERNET_SETTINGS2 ethernet1;// DAQ port on label, NETID_ETHERNET - ETHERNET_SETTINGS2 ethernet2;// LAN port on label, NETID_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 768 +#define SRADGalaxySettings_SIZE 776 typedef struct _SRADStar2Settings { @@ -2630,11 +2656,12 @@ typedef struct _SRADStar2Settings uint16_t hwComLatencyTestEn; RAD_REPORTING_SETTINGS reporting; ETHERNET_SETTINGS2 ethernet; - + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADStar2Settings; -#define SRADStar2Settings_SIZE 414 +#define SRADStar2Settings_SIZE 422 typedef struct _SRADSuperMoonSettings { @@ -2655,11 +2682,12 @@ typedef struct _SRADSuperMoonSettings uint16_t hwComLatencyTestEn; ETHERNET_SETTINGS2 Eth2; - + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADSuperMoonSettings; -#define SRADSuperMoonSettings_SIZE 178 +#define SRADSuperMoonSettings_SIZE 186 typedef enum { @@ -2727,9 +2755,10 @@ typedef struct _SRADA2BSettings uint16_t pwr_man_enable; ETHERNET_SETTINGS2 ethernet; RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADA2BSettings; -#define SRADA2BSettings_SIZE 332 +#define SRADA2BSettings_SIZE 340 typedef struct _SRADMoon2Settings { @@ -2748,11 +2777,12 @@ typedef struct _SRADMoon2Settings 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 162 +#define SRADMoon2Settings_SIZE 170 typedef struct _SRADMoon3Settings { @@ -2771,9 +2801,10 @@ typedef struct _SRADMoon3Settings uint16_t enableLatencyTest : 1; uint16_t reserved : 15; } flags; // 2 + uint64_t network_enables_5; } SRADMoon3Settings; -#define SRADMoon3Settings_SIZE 60 +#define SRADMoon3Settings_SIZE 68 typedef struct _SRADGigalogSettings { @@ -2822,8 +2853,8 @@ typedef struct _SRADGigalogSettings STextAPISettings text_api; uint64_t termination_enables; - uint8_t rsvd1[8];// previously ETHERNET_SETTINGS - uint8_t rsvd2[8];// previously ETHERNET10G_SETTINGS + uint8_t rsvd1[8]; // previously ETHERNET_SETTINGS + uint8_t rsvd2[8]; // previously ETHERNET10G_SETTINGS DISK_SETTINGS disk; @@ -2851,10 +2882,10 @@ typedef struct _SRADGigalogSettings uint16_t network_enables_4; RAD_REPORTING_SETTINGS reporting; SERDESGEN_SETTINGS serdesgen; - + uint64_t network_enables_5; } SRADGigalogSettings; -#define SRADGigalogSettings_SIZE 698 +#define SRADGigalogSettings_SIZE 706 typedef struct _SRADGigastarSettings { @@ -2914,9 +2945,9 @@ typedef struct _SRADGigastarSettings LIN_SETTINGS lin1; - OP_ETH_GENERAL_SETTINGS opEthGen; - OP_ETH_SETTINGS opEth1; - OP_ETH_SETTINGS opEth2; + OP_ETH_GENERAL_SETTINGS opEthGen; + OP_ETH_SETTINGS opEth1; + OP_ETH_SETTINGS opEth2; SERDESCAM_SETTINGS serdescam1; SERDESPOC_SETTINGS serdespoc; @@ -2929,17 +2960,18 @@ typedef struct _SRADGigastarSettings SERDESGEN_SETTINGS serdesgen; RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADGigastarSettings; -#define SRADGigastarSettings_SIZE 702 +#define SRADGigastarSettings_SIZE 710 typedef struct _SVividCANSettings { uint32_t ecu_id; - CAN_SETTINGS can1;// 12 bytes - SWCAN_SETTINGS swcan1;// 14 bytes - CAN_SETTINGS lsftcan1;// 12 bytes + 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; @@ -3162,7 +3194,7 @@ typedef struct SPluto_L2AddressLookupEntry_s uint8_t pad1; uint8_t pad2; uint8_t pad3; -} SPluto_L2AddressLookupEntry;//16 +} SPluto_L2AddressLookupEntry; //16 typedef struct SPluto_L2AddressLookupParams_s { @@ -3173,14 +3205,14 @@ typedef struct SPluto_L2AddressLookupParams_s uint8_t no_enf_hostprt; uint8_t no_mgmt_learn; uint8_t pad; -} SPluto_L2AddressLookupParams;//8 +} 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 +} SPluto_L2ForwardingParams; //18 typedef struct SPluto_L2ForwardingEntry_s { @@ -3189,7 +3221,7 @@ typedef struct SPluto_L2ForwardingEntry_s uint8_t reach_port; uint8_t fl_domain; uint8_t pad; -} SPluto_L2ForwardingEntry;//12 +} SPluto_L2ForwardingEntry; //12 typedef struct SPluto_L2Policing_s { @@ -3198,7 +3230,7 @@ typedef struct SPluto_L2Policing_s uint16_t maxlen; uint8_t sharindx; uint8_t partition; -} SPluto_L2Policing;//8 +} SPluto_L2Policing; //8 typedef struct SPluto_VlanLookup_s { @@ -3209,7 +3241,7 @@ typedef struct SPluto_VlanLookup_s uint8_t vlan_bc; uint8_t tag_port; uint8_t pad; -} SPluto_VlanLookup;//8 +} SPluto_VlanLookup; //8 typedef struct SPluto_MacConfig_s { @@ -3233,7 +3265,7 @@ typedef struct SPluto_MacConfig_s uint8_t egress; uint8_t ingress; uint8_t pad; -} SPluto_MacConfig;//60 +} SPluto_MacConfig; //60 typedef struct SPluto_RetaggingEntry_s { @@ -3245,7 +3277,7 @@ typedef struct SPluto_RetaggingEntry_s uint8_t use_dest_ports; uint8_t destports; uint8_t pad; -} SPluto_RetaggingEntry;//10 +} SPluto_RetaggingEntry; //10 typedef struct SPluto_GeneralParams_s { @@ -3269,11 +3301,12 @@ typedef struct SPluto_GeneralParams_s uint8_t host_port; uint8_t mirr_port; uint8_t ignore2stf; -} SPluto_GeneralParams;//60 +} SPluto_GeneralParams; //60 typedef struct SPluto_VlLookupEntry_s { - union { + union + { /* format == 0 */ struct { @@ -3283,7 +3316,7 @@ typedef struct SPluto_VlLookupEntry_s uint8_t iscritical; uint8_t port; uint8_t vlanprior; - } vllupformat0;//14 + } vllupformat0; //14 /* format == 1 */ struct { @@ -3291,9 +3324,9 @@ typedef struct SPluto_VlLookupEntry_s uint8_t egrmirr; uint8_t ingrmirr; uint8_t port; - } vllupformat1;//5 + } vllupformat1; //5 }; -} SPluto_VlLookupEntry;//14 +} SPluto_VlLookupEntry; //14 typedef struct SPluto_VlPolicingEntry_s { @@ -3302,14 +3335,14 @@ typedef struct SPluto_VlPolicingEntry_s uint64_t sharindx; uint64_t bag; uint64_t jitter; -} SPluto_VlPolicingEntry;//40 +} SPluto_VlPolicingEntry; //40 typedef struct SPluto_VlForwardingParams_s { uint16_t partspc[PLUTO_NUM_PRIORITY]; uint8_t debugen; uint8_t pad; -} SPluto_VlForwardingParams;//18 +} SPluto_VlForwardingParams; //18 typedef struct SPluto_VlForwardingEntry_s { @@ -3317,13 +3350,13 @@ typedef struct SPluto_VlForwardingEntry_s uint8_t priority; uint8_t partition; uint8_t destports; -} SPluto_VlForwardingEntry;//4 +} SPluto_VlForwardingEntry; //4 typedef struct SPluto_AVBParams_s { uint64_t destmeta; uint64_t srcmeta; -} SPluto_AVBParams;//16 +} SPluto_AVBParams; //16 typedef struct SPluto_ClockSyncParams_s { @@ -3372,7 +3405,7 @@ typedef struct SPluto_ClockSyncParams_s uint8_t pad1; uint8_t pad2; uint8_t pad3; -} SPluto_ClockSyncParams;//80 +} SPluto_ClockSyncParams; //80 #define gPTP_ROLE_DISABLED 0 #define gPTP_ROLE_PASSIVE 1 @@ -3387,20 +3420,20 @@ typedef struct SPluto_ClockSyncParams_s 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 + 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 + 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 { @@ -3411,20 +3444,20 @@ typedef struct SPluto_CustomParams_s uint8_t usbSelect; uint8_t pad; PlutoPtpParams_t ptpParams; -} SPluto_CustomParams;//44 +} 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 + 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; @@ -3438,55 +3471,56 @@ typedef struct SPlutoSwitchSettings_s typedef struct _RADPlutoSettings { /* Performance Test */ - uint16_t perf_en;//2 + 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 + 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 + 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 + uint32_t pwr_man_timeout; //4 + uint16_t pwr_man_enable; //2 - uint16_t network_enabled_on_boot;//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 + 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 + } flags; //4 - SPluto_CustomParams custom;//44 - ETHERNET_SETTINGS2 ethernet2;//16 + SPluto_CustomParams custom; //44 + ETHERNET_SETTINGS2 ethernet2; //16 } SRADPlutoSettings; #define SRADPlutoSettings_SIZE 348 -typedef union { +typedef union +{ uint32_t word; struct { - unsigned can_sleep_command_id:29; - unsigned can_sleep_command_isExtended:1; - unsigned reserved:2; + unsigned can_sleep_command_id : 29; + unsigned can_sleep_command_isExtended : 1; + unsigned reserved : 2; } id; } SCANSleepID; typedef struct @@ -3515,7 +3549,8 @@ typedef struct _SFlexVnetzSettings uint16_t flex_termination; uint16_t slaveVnetA; uint64_t termination_enables; - union { + union + { uint64_t word; struct { @@ -3632,7 +3667,8 @@ typedef struct _VCAN4IndSettings int16_t iso15765_separation_time_offset; uint16_t network_enabled_on_boot; - union { + union + { uint64_t word; struct { @@ -3672,7 +3708,8 @@ typedef struct _SOBD2LCSettings ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; uint16_t iso_parity_1; uint16_t iso_msg_termination_1; - union { + union + { uint64_t word; struct { @@ -3712,18 +3749,18 @@ typedef struct _SOBD2LCSettings #define JUPITER_PTP_ROLE_SLAVE 2 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 + 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 enablePhy[RADJUPITER_NUM_PORTS]; //8 uint8_t port7Select; //1 uint8_t port8Select; //1 uint8_t port8Speed; @@ -3731,41 +3768,41 @@ typedef struct _SRADJupiterSwitchSettings uint8_t spoofMacFlag; uint8_t spoofedMac[6]; uint8_t pad; - JupiterPtpParams_t ptpParams;//16 -} SRADJupiterSwitchSettings;//44 + JupiterPtpParams_t ptpParams; //16 +} SRADJupiterSwitchSettings; //44 typedef struct _SRADJupiterSettings { /* Performance Test */ - uint16_t perf_en;//2 + 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 + 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 + 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 + uint32_t pwr_man_timeout; //4 + uint16_t pwr_man_enable; //2 - uint16_t network_enabled_on_boot;//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 + 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 + STextAPISettings text_api; //72 struct { @@ -3773,11 +3810,11 @@ typedef struct _SRADJupiterSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags;//4 + } flags; //4 - SRADJupiterSwitchSettings switchSettings;//44 + SRADJupiterSwitchSettings switchSettings; //44 ETHERNET_SETTINGS2 ethernet2; -} SRADJupiterSettings;//348 +} SRADJupiterSettings; //348 #define SRADJupiterSettings_SIZE 348 @@ -3793,7 +3830,8 @@ 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 + 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; @@ -3807,7 +3845,8 @@ typedef struct _SRed2Settings uint16_t slaveVnetA; uint32_t reserved; uint64_t termination_enables; - union { + union + { uint64_t word; struct { @@ -4093,42 +4132,42 @@ typedef struct typedef struct _SEtherBadgeSettings { /* Performance Test */ - uint16_t perf_en;//2 + 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 + 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 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 + uint32_t pwr_man_timeout; //4 + uint16_t pwr_man_enable; //2 - uint16_t network_enabled_on_boot;//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 + 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 { @@ -4136,13 +4175,14 @@ typedef struct _SEtherBadgeSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags;//4 + } flags; //4 - ETHERNET_SETTINGS2 ethernet2;//16 -} SEtherBadgeSettings;//316 + 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 @@ -4154,40 +4194,40 @@ typedef struct _SRADEpsilonSwitchSettings uint8_t spoofedMac[6]; uint8_t spoofMacFlag; uint8_t pad; -}SRADEpsilonSwitchSettings;//80 +} SRADEpsilonSwitchSettings; //80 typedef struct _SRADEpsilonSettings { /* Performance Test */ - uint16_t perf_en;//2 + 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 + 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 + 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 + uint32_t pwr_man_timeout; //4 + uint16_t pwr_man_enable; //2 - uint16_t network_enabled_on_boot;//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 + 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 + STextAPISettings text_api; //72 struct { @@ -4195,12 +4235,13 @@ typedef struct _SRADEpsilonSettings uint32_t enableLatencyTest : 1; uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; - } flags;//4 + } flags; //4 - SRADEpsilonSwitchSettings switchSettings;//80 - ETHERNET_SETTINGS2 ethernet2;//16 -}SRADEpsilonSettings;//384 -#define SRADEpsilonSettings_SIZE 384 + SRADEpsilonSwitchSettings switchSettings; //80 + ETHERNET_SETTINGS2 ethernet2; //16 + uint16_t misc_io_on_report_events; //2 +} SRADEpsilonSettings; //386 +#define SRADEpsilonSettings_SIZE 386 typedef struct { @@ -4220,9 +4261,18 @@ typedef struct _sWIL_CONNECTION_SETTINGS 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 + 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, @@ -4272,6 +4322,23 @@ typedef union } config; } sWILBridgeConfig; //8 + +// 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; + typedef struct _SRADBMSSettings { /* Performance Test */ @@ -4285,9 +4352,9 @@ typedef struct _SRADBMSSettings 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 + 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 @@ -4317,8 +4384,71 @@ typedef struct _SRADBMSSettings uint16_t wil1_nwk_metadata_buff_count; uint16_t wil2_nwk_metadata_buff_count; + + WBMSGatewaySettings gateway; + + uint16_t network_enables_4; //2 + uint64_t network_enables_5; //8 }SRADBMSSettings; -#define SRADBMSSettings_SIZE 130 +#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; +} SRADCometSettings; +#define SRADCometSettings_SIZE 456 #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS @@ -4326,7 +4456,8 @@ typedef struct _GLOBAL_SETTINGS uint16_t version; uint16_t len; uint16_t chksum; - union { + union + { SRedSettings red; SFireSettings fire; SFireVnetSettings firevnet; @@ -4342,7 +4473,7 @@ typedef struct _GLOBAL_SETTINGS SCmProbeSettings cmprobe; SOBD2ProSettings obd2pro; SVCAN412Settings vcan412; - SVCAN412Settings vcan4_12;// backwards compatibility with older code + SVCAN412Settings vcan4_12; // backwards compatibility with older code SECU_AVBSettings neoecu_avb; SRADSuperMoonSettings radsupermoon; SRADMoon2Settings radmoon2; @@ -4367,6 +4498,7 @@ typedef struct _GLOBAL_SETTINGS SRADEpsilonSettings epsilon; SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; + SRADCometSettings radcomet; // Make sure SDeviceSettings matches this }; } GLOBAL_SETTINGS; @@ -4414,6 +4546,8 @@ typedef enum _EDeviceSettingsType DeviceRADMoon3SettingsType, DeviceFire3SettingsType, DeviceFire3FlexraySettingsType, + DeviceRADCometSettingsType, + DeviceRed2OemSettingsType, // add new settings type here // Also add to map inside cicsneoVI::Init() DeviceSettingsTypeMax, @@ -4423,7 +4557,8 @@ typedef enum _EDeviceSettingsType typedef struct _SDeviceSettings { EDeviceSettingsType DeviceSettingType; - union { + union + { SRedSettings red; SFireSettings fire; SFireVnetSettings firevnet; @@ -4439,7 +4574,7 @@ typedef struct _SDeviceSettings SCmProbeSettings cmprobe; SOBD2ProSettings obd2pro; SVCAN412Settings vcan412; - SVCAN412Settings vcan4_12;// backwards compatibility with older code + SVCAN412Settings vcan4_12; // backwards compatibility with older code SECU_AVBSettings neoecu_avb; SRADSuperMoonSettings radsupermoon; SRADMoon2Settings radmoon2; @@ -4465,6 +4600,7 @@ typedef struct _SDeviceSettings SRADBMSSettings rad_bms; SRADMoon3Settings radmoon3; SFire3FlexraySettings fire3Flexray; + SRADCometSettings radcomet; // Make sure GLOBAL_SETTINGS matches this // NOTE: When adding new structures here implement inside icsneoGetDeviceSettings and icsneoSetDeviceSettings also. } Settings; } Settings; @@ -4473,9 +4609,9 @@ typedef struct _SDeviceSettings typedef enum _EPlasmaIonVnetChannel_t { - PlasmaIonVnetChannelMain,// PLASMA = SLOT 2, ION = VNET2 - PlasmaIonVnetChannelA,// PLASMA = SLOT 1, ION = VNET1 - PlasmaIonVnetChannelB,// PLASMA = SLOT 3, ION = NA + PlasmaIonVnetChannelMain, // PLASMA = SLOT 2, ION = VNET2 + PlasmaIonVnetChannelA, // PLASMA = SLOT 1, ION = VNET1 + PlasmaIonVnetChannelB, // PLASMA = SLOT 3, ION = NA eSoftCore, eFpgaStatusResp, } EPlasmaIonVnetChannel_t; @@ -4536,7 +4672,8 @@ typedef struct _stCM_ISO157652_TxMessage uint32_t num_bytes; /* Number of data bytes */ - union { + union + { struct { unsigned @@ -4588,7 +4725,8 @@ typedef struct uint8_t tx_dl; /* Maximum CAN(FD) protocol length for transmitted frames. Valid values are 8, 12, 16, 20, 24, 32, 48, 64 */ - union { + union + { struct { uint16_t id_29_bit_enable : 1; @@ -4627,7 +4765,8 @@ typedef struct _stCM_ISO157652_RxMessage uint16_t cf_timeout; /* max timeout (ms) for waiting on consecutive frame. Set this to N_CR_MAX's value in J2534 */ - union { + union + { struct { unsigned id_29_bit_enable : 1; /* Enables 29 bit arbId filter for frames (from ECU to neoVI) */ @@ -4699,7 +4838,8 @@ typedef struct _icsSpyMessage descIdType DescriptionID; uint32_t ArbIDOrHeader; uint8_t Data[8]; - union { + union + { struct { uint32_t StatusBitField3; @@ -4731,7 +4871,8 @@ typedef struct _icsSpyMessageFlexRay uint8_t NumberBytesData; uint8_t NetworkID2; descIdType DescriptionID; - union { + union + { uint32_t ArbIDOrHeader; struct { @@ -4749,7 +4890,8 @@ typedef struct _icsSpyMessageFlexRay }; }; uint8_t Data[8]; - union { + union + { struct { uint32_t StatusBitField3; @@ -4773,6 +4915,51 @@ typedef struct _icsSpyMessageFlexRay 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; + #if defined(VSPY3_GUI) || defined(WIVI_EXPORT) || defined(VS4A) || defined(CORELIB_CMAKE) || defined(NEOVI3GEXPLORER) #if defined(IS_64BIT_SYSTEM) #define icsSpyMessage_SIZE 80 @@ -4809,7 +4996,8 @@ typedef struct _icsSpyMessageLong uint32_t ArbIDOrHeader; uint32_t DataMsb; uint32_t DataLsb; - union { + union + { struct { uint32_t StatusBitField3; @@ -4844,7 +5032,8 @@ typedef struct _icsSpyMessageJ1850 descIdType DescriptionID; uint8_t Header[4]; uint8_t Data[8]; - union { + union + { struct { uint32_t StatusBitField3; @@ -4879,7 +5068,8 @@ typedef struct _icsSpyMessageVSB int16_t DescriptionID; uint32_t ArbIDOrHeader; uint8_t Data[8]; - union { + union + { struct { uint32_t StatusBitField3; @@ -4963,7 +5153,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus[RADJUPITER_NUM_PORTS-1]; + ethernetNetworkStatus_t ethernetStatus[RADJUPITER_NUM_PORTS - 1]; } icsRadJupiterDeviceStatus; typedef struct @@ -4983,7 +5173,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus; + ethernetNetworkStatus_t ethernetStatus[RADEPSILON_NUM_PORTS]; } icsRadEpsilonDeviceStatus; typedef struct @@ -4994,7 +5184,8 @@ typedef struct #pragma pack(push) #pragma pack(4) -typedef union { +typedef union +{ icsFire2DeviceStatus fire2Status; icsVcan4DeviceStatus vcan4Status; icsFlexVnetzDeviceStatus flexVnetzStatus; @@ -5003,6 +5194,7 @@ typedef union { icsRadJupiterDeviceStatus jupiterStatus; icsOBD2ProDeviceStatus obd2proStatus; icsRadPlutoDeviceStatus plutoStatus; + icsRadEpsilonDeviceStatus epsilonStatus; icsVcan4IndustrialDeviceStatus vcan4indStatus; icsRadBMSDeviceStatus radBMSStatus; } icsDeviceStatus; @@ -5011,14 +5203,14 @@ typedef union { 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 + 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. + 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. + [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; @@ -5029,18 +5221,18 @@ typedef struct SPhyRegPktHdr uint16_t numEntries; uint8_t version; uint8_t entryBytes; -}PhyRegPktHdr_t; +} PhyRegPktHdr_t; -#define MAX_PHY_SETTINGS_STRUCT 128 -#define MAX_NUMBYTES_PHYSETTINGS MAX_PHY_SETTINGS_STRUCT*sizeof(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 + uint8_t page; //8 bits uint16_t regAddr; //5 bits uint16_t regVal; -}PhyRegPktClause22Mess_t; //6 bytes +} PhyRegPktClause22Mess_t; //6 bytes typedef struct SPhyRegPktClause45Mess { @@ -5048,7 +5240,7 @@ typedef struct SPhyRegPktClause45Mess uint8_t device; //5 bits uint16_t regAddr; uint16_t regVal; -}PhyRegPktClause45Mess_t; //6 bytes +} PhyRegPktClause45Mess_t; //6 bytes typedef enum SPhyRegPktStatus { @@ -5073,14 +5265,15 @@ typedef struct SPhyRegPkt { union { - struct{ - uint16_t Enabled:1; - uint16_t WriteEnable:1; - uint16_t Clause45Enable:1; + 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 BusIndex : 4; + uint16_t version : 4; }; uint16_t flags; }; @@ -5090,7 +5283,7 @@ typedef struct SPhyRegPkt PhyRegPktClause22Mess_t clause22; PhyRegPktClause45Mess_t clause45; }; -}PhyRegPkt_t; +} PhyRegPkt_t; typedef enum { @@ -5114,6 +5307,23 @@ typedef enum 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); @@ -5154,6 +5364,7 @@ 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(LOGGER_SETTINGS); CHECK_STRUCT_SIZE(DISK_SETTINGS); CHECK_STRUCT_SIZE(SERDESCAM_SETTINGS); @@ -5194,7 +5405,6 @@ CHECK_STRUCT_SIZE(SExtSubCmdHdr); CHECK_STRUCT_SIZE(SDiskStructure); CHECK_STRUCT_SIZE(SDiskFormatProgress); CHECK_STRUCT_SIZE(SDiskStatus); -CHECK_STRUCT_SIZE(SExtSubCmdComm); CHECK_STRUCT_SIZE(SRADPlutoSettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SNeoECU12Settings); @@ -5213,6 +5423,7 @@ CHECK_STRUCT_SIZE(SRADBMSSettings); CHECK_STRUCT_SIZE(SRADMoon3Settings); CHECK_STRUCT_SIZE(SFire3FlexraySettings); CHECK_STRUCT_SIZE(CANHubSettings); +CHECK_STRUCT_SIZE(SRADCometSettings); #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/include/setup_module_auto_defines.h b/include/setup_module_auto_defines.h index 9911bece4..cfd6fb958 100644 --- a/include/setup_module_auto_defines.h +++ b/include/setup_module_auto_defines.h @@ -2,6 +2,6 @@ #define __SETUP_MODULE_AUTO_DEFINES_H__ #include -int setup_module_auto_defines(PyObject* module); +int setup_module_auto_defines(PyObject * module); #endif // __SETUP_MODULE_AUTO_DEFINES_H__ diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 339d152af..e238e9fb2 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -121,6 +121,14 @@ int setup_module_auto_defines(PyObject* module) 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_MAX); result += PyModule_AddIntMacro(module, NETID_INVALID); result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); @@ -160,6 +168,7 @@ 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_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -250,6 +259,7 @@ int setup_module_auto_defines(PyObject* module) 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); @@ -303,6 +313,16 @@ int setup_module_auto_defines(PyObject* module) 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); @@ -321,7 +341,6 @@ int setup_module_auto_defines(PyObject* module) 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_STATUS); 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); @@ -346,8 +365,7 @@ int setup_module_auto_defines(PyObject* module) 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_NODE_DISCONNECTED); - result += PyModule_AddIntMacro(module, SPY_STATUS2_I2C_NODE_FAULT); + 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); @@ -546,6 +564,9 @@ int setup_module_auto_defines(PyObject* module) result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS10G_FLAG_LINK_MODE_AUTO); 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, LOGGER_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, DISK_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, CANTERM_SETTINGS_SIZE); @@ -596,9 +617,10 @@ int setup_module_auto_defines(PyObject* module) // end of enum - }; result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); - result += PyModule_AddIntMacro(module, MANUFACTURING_OPERATION_MAX_SIZE); - result += PyModule_AddIntMacro(module, ManufacturingOperationAPIVersion); - result += PyModule_AddIntMacro(module, SExtSubCmdComm_SIZE); + 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); @@ -885,8 +907,17 @@ int setup_module_auto_defines(PyObject* module) 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, SRADEpsilonSettings_SIZE); + // 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); + // end of enum - }; + // enum result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); @@ -903,7 +934,12 @@ int setup_module_auto_defines(PyObject* module) result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); // 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, GS_VERSION); result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); result += PyModule_AddIntMacro(module, NEOVI_3G_MAX_SETTINGS_SIZE); @@ -946,6 +982,8 @@ int setup_module_auto_defines(PyObject* module) result += PyModule_AddIntMacro(module, DeviceRADMoon3SettingsType); result += PyModule_AddIntMacro(module, DeviceFire3SettingsType); result += PyModule_AddIntMacro(module, DeviceFire3FlexraySettingsType); + result += PyModule_AddIntMacro(module, DeviceRADCometSettingsType); + result += PyModule_AddIntMacro(module, DeviceRed2OemSettingsType); result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); result += PyModule_AddIntMacro(module, DeviceSettingsNone); // end of enum - } EDeviceSettingsType; @@ -1037,6 +1075,21 @@ int setup_module_auto_defines(PyObject* module) result += PyModule_AddIntMacro(module, supportedFeatureMax); // 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, NUM_DEVICE_FEATURE_BITFIELDS); // enum // end of enum - } From ef7c95535db769ab75c1c97f7e04ace5a0b79dcf Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 28 Jun 2023 15:23:37 -0400 Subject: [PATCH 098/201] updated latest hash for libicsneo Signed-off-by: David Rebbe --- build_libicsneo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index ed9f465c0..0f1e92150 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -4,7 +4,7 @@ import shutil import sys -LIBICSNEO_COMMIT = '63c81b1c3d13bb96371611d7e2573d6e4adcb6e2' +LIBICSNEO_COMMIT = '5b3e21fa7ca8dfa2c61105d8f36a0638eb177dca' LIBUSB_COMMIT = '4239bc3a50014b8e6a5a2a59df1fff3b7469543b' CPUS = str(multiprocessing.cpu_count()) From d3221ddff6928a825dcae7be72e04eb1fe1cea1e Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 28 Jun 2023 15:34:43 -0400 Subject: [PATCH 099/201] updated documentation and versions Signed-off-by: David Rebbe --- doc/source/conf.py | 2 +- doc/source/index.rst | 262 ++++++++++++++++++++++++++++++++++++++++--- setup.py | 4 +- 3 files changed, 248 insertions(+), 20 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index af4d66789..c0095386f 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = '912.4' +version = '913.8' # The full version, including alpha/beta/rc tags. release = version diff --git a/doc/source/index.rst b/doc/source/index.rst index 474f7b22c..b73e81919 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -336,6 +336,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ethernet10_t1_s_settings.ethernet10_t1_s_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.ethernet_network_status_t.ethernet_network_status_t :members: :undoc-members: @@ -380,6 +384,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.generic_api_data_old.generic_api_data_old + :members: + :undoc-members: + .. autoclass:: ics.structures.generic_api_selector.generic_api_selector :members: :undoc-members: @@ -388,6 +396,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.generic_binary_status.generic_binary_status + :members: + :undoc-members: + .. autoclass:: ics.structures.get_component_versions.get_component_versions :members: :undoc-members: @@ -464,6 +476,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ics_spy_message_mdio.ics_spy_message_mdio + :members: + :undoc-members: + .. autoclass:: ics.structures.ics_spy_message_vsb.ics_spy_message_vsb :members: :undoc-members: @@ -512,6 +528,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.phy_error_type.phy_error_type + :members: + :undoc-members: + .. autoclass:: ics.structures.port_identity.port_identity :members: :undoc-members: @@ -560,15 +580,15 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.s_ext_sub_cmd_comm.s_ext_sub_cmd_comm + .. autoclass:: ics.structures.s_ext_sub_cmd_hdr.s_ext_sub_cmd_hdr :members: :undoc-members: - .. autoclass:: ics.structures.s_ext_sub_cmd_hdr.s_ext_sub_cmd_hdr + .. autoclass:: ics.structures.s_extended_data_flash_header.s_extended_data_flash_header :members: :undoc-members: - .. autoclass:: ics.structures.s_extended_data_flash_header.s_extended_data_flash_header + .. autoclass:: ics.structures.s_fire3_flexray_settings.s_fire3_flexray_settings :members: :undoc-members: @@ -704,10 +724,18 @@ Module Structures :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: + .. autoclass:: ics.structures.s_spi_port_settings.s_spi_port_settings :members: :undoc-members: @@ -792,6 +820,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.srad_comet_settings.srad_comet_settings + :members: + :undoc-members: + .. autoclass:: ics.structures.srad_epsilon_settings.srad_epsilon_settings :members: :undoc-members: @@ -956,6 +988,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.wbms_gateway_settings.wbms_gateway_settings + :members: + :undoc-members: + ============================================================ @@ -1038,7 +1074,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Apr 3 2023 12:37:17 + :annotation: = Jun 28 2023 15:31:51 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1080,7 +1116,7 @@ Module Variables :annotation: = 12 .. py:data:: DEVICECOUNT_FOR_EXPLORER - :annotation: = 43 + :annotation: = 46 .. py:data:: DISABLE :annotation: = 1 @@ -1097,9 +1133,30 @@ Module Variables .. py:data:: DISK_STRUCTURE_FLAG_FULL_FORMAT :annotation: = 1 + .. py:data:: DRIVER_MASK + :annotation: = 192 + + .. py:data:: DRIVER_USB1 + :annotation: = 64 + + .. py:data:: DRIVER_USB2 + :annotation: = 128 + + .. py:data:: DRIVER_USB3 + :annotation: = 192 + .. py:data:: ETHERNET10G_SETTINGS_SIZE :annotation: = 24 + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_ENABLE_PLCA + :annotation: = 1 + + .. py:data:: ETHERNET10T1S_SETTINGS_FLAG_TERMINATION + :annotation: = 2 + + .. py:data:: ETHERNET10T1S_SETTINGS_SIZE + :annotation: = 12 + .. py:data:: ETHERNET_SETTINGS10G_FLAG_AUTO_NEG :annotation: = 2 @@ -1193,14 +1250,62 @@ Module Variables .. py:data:: FAST_MODE :annotation: = 3 + .. py:data:: FIRE2_REPORT_EMISC1_ANALOG + :annotation: = 32 + + .. py:data:: FIRE2_REPORT_EMISC1_DIGITAL + :annotation: = 2 + + .. py:data:: FIRE2_REPORT_EMISC2_ANALOG + :annotation: = 64 + + .. py:data:: FIRE2_REPORT_EMISC2_DIGITAL + :annotation: = 4 + + .. py:data:: FIRE2_REPORT_GPS + :annotation: = 1024 + + .. py:data:: FIRE2_REPORT_MISC5_DIGITAL + :annotation: = 8 + + .. py:data:: FIRE2_REPORT_MISC6_DIGITAL + :annotation: = 16 + + .. py:data:: FIRE2_REPORT_PERIODIC + :annotation: = 1 + + .. py:data:: FIRE2_REPORT_PWM_IN + :annotation: = 512 + + .. py:data:: FIRE2_REPORT_TEMP_ANALOG + :annotation: = 256 + + .. py:data:: FIRE2_REPORT_VBATT_ANALOG + :annotation: = 128 + + .. py:data:: FIRE3_REPORT_ORIENTATION + :annotation: = 2048 + .. py:data:: GENERIC_API_DATA_BUFFER_SIZE :annotation: = 513 + .. py:data:: GENERIC_BINARY_STATUS_ERROR_ANY_MASK + :annotation: = 7 + + .. py:data:: GENERIC_BINARY_STATUS_ERROR_BINARY_EMPTY + :annotation: = 4 + + .. py:data:: GENERIC_BINARY_STATUS_ERROR_OVERSIZE + :annotation: = 2 + + .. py:data:: GENERIC_BINARY_STATUS_ERROR_UNKNOWN_BINARY + :annotation: = 1 + .. py:data:: GET_SUPPORTED_FEATURES_COMMAND_VERSION :annotation: = 1 .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 942 + :annotation: = 1478 .. py:data:: GS_VERSION :annotation: = 5 @@ -1394,6 +1499,9 @@ Module Variables .. py:data:: NEODEVICE_FIRE3 :annotation: = 15 + .. py:data:: NEODEVICE_FIRE3_FLEXRAY + :annotation: = 37 + .. py:data:: NEODEVICE_FLEX :annotation: = 134217728 @@ -1421,9 +1529,6 @@ Module Variables .. py:data:: NEODEVICE_NEW_DEVICE_59 :annotation: = 33 - .. py:data:: NEODEVICE_NEW_DEVICE_FF - :annotation: = 37 - .. py:data:: NEODEVICE_OBD2_DEV :annotation: = 26 @@ -1505,6 +1610,9 @@ Module Variables .. py:data:: NEODEVICE_RED2 :annotation: = 20 + .. py:data:: NEODEVICE_RED2_OEM + :annotation: = 38 + .. py:data:: NEODEVICE_UNKNOWN :annotation: = 0 @@ -1545,7 +1653,7 @@ Module Variables :annotation: = 0.065536 .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 942 + :annotation: = 1478 .. py:data:: NEOVI_COMMTYPE_FIRE_USB :annotation: = 5 @@ -1664,6 +1772,30 @@ Module Variables .. py:data:: NETID_DEVICE_STATUS :annotation: = 513 + .. py:data:: NETID_DWCAN_09 + :annotation: = 534 + + .. py:data:: NETID_DWCAN_10 + :annotation: = 535 + + .. py:data:: NETID_DWCAN_11 + :annotation: = 536 + + .. py:data:: NETID_DWCAN_12 + :annotation: = 537 + + .. py:data:: NETID_DWCAN_13 + :annotation: = 538 + + .. py:data:: NETID_DWCAN_14 + :annotation: = 539 + + .. py:data:: NETID_DWCAN_15 + :annotation: = 540 + + .. py:data:: NETID_DWCAN_16 + :annotation: = 541 + .. py:data:: NETID_ETHERNET :annotation: = 93 @@ -1790,6 +1922,12 @@ Module Variables .. py:data:: NETID_LIN6 :annotation: = 98 + .. py:data:: NETID_LIN_07 + :annotation: = 542 + + .. py:data:: NETID_LIN_08 + :annotation: = 543 + .. py:data:: NETID_LSFTCAN :annotation: = 4 @@ -1802,6 +1940,30 @@ Module Variables .. py:data:: NETID_MAX :annotation: = 100 + .. py:data:: NETID_MDIO_01 + :annotation: = 545 + + .. py:data:: NETID_MDIO_02 + :annotation: = 546 + + .. py:data:: NETID_MDIO_03 + :annotation: = 547 + + .. py:data:: NETID_MDIO_04 + :annotation: = 548 + + .. py:data:: NETID_MDIO_05 + :annotation: = 549 + + .. py:data:: NETID_MDIO_06 + :annotation: = 550 + + .. py:data:: NETID_MDIO_07 + :annotation: = 551 + + .. py:data:: NETID_MDIO_08 + :annotation: = 552 + .. py:data:: NETID_MOST :annotation: = 51 @@ -1871,6 +2033,9 @@ Module Variables .. py:data:: NETID_SPI1 :annotation: = 72 + .. py:data:: NETID_SPI2 + :annotation: = 544 + .. py:data:: NETID_SWCAN :annotation: = 3 @@ -1901,6 +2066,9 @@ Module Variables .. py:data:: NETID_WBMS :annotation: = 532 + .. py:data:: NETID_WBMS2 + :annotation: = 533 + .. py:data:: NORMAL :annotation: = 0 @@ -2036,6 +2204,9 @@ Module Variables .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 + .. py:data:: RADEPSILON_NUM_PORTS + :annotation: = 9 + .. py:data:: RADJUPITER_NUM_PORTS :annotation: = 8 @@ -2513,12 +2684,27 @@ Module Variables .. py:data:: SLOW_MODE :annotation: = 1 + .. py:data:: SPI_MODE_MASTER + :annotation: = 0 + + .. py:data:: SPI_MODE_PMS_EMULATION + :annotation: = 2 + + .. py:data:: SPI_MODE_SLAVE + :annotation: = 1 + .. py:data:: SPI_PORT_EXTERNAL :annotation: = 1 .. py:data:: SPI_PORT_ONBOARD :annotation: = 0 + .. py:data:: SPI_TYPE_RAW + :annotation: = 1 + + .. py:data:: SPI_TYPE_WIL + :annotation: = 0 + .. py:data:: SPY_PROTOCOL_A2B :annotation: = 35 @@ -2603,6 +2789,9 @@ Module Variables .. py:data:: SPY_PROTOCOL_LIN :annotation: = 12 + .. py:data:: SPY_PROTOCOL_MDIO + :annotation: = 37 + .. py:data:: SPY_PROTOCOL_MOST :annotation: = 17 @@ -2696,9 +2885,6 @@ Module Variables .. py:data:: SPY_STATUS2_I2C_ERR_TIMEOUT :annotation: = 2097152 - .. py:data:: SPY_STATUS2_I2C_NODE_FAULT - :annotation: = 4194304 - .. py:data:: SPY_STATUS2_ISO_FRAME_ERROR :annotation: = 134217728 @@ -2741,6 +2927,36 @@ Module Variables .. py:data:: SPY_STATUS2_LONG_MESSAGE :annotation: = 8 + .. py:data:: SPY_STATUS2_MDIO_CLAUSE45 + :annotation: = 536870912 + + .. py:data:: SPY_STATUS2_MDIO_ERR_TIMEOUT + :annotation: = 2097152 + + .. py:data:: SPY_STATUS2_MDIO_INVALID_BUS + :annotation: = 8388608 + + .. py:data:: SPY_STATUS2_MDIO_INVALID_PHYADDR + :annotation: = 16777216 + + .. py:data:: SPY_STATUS2_MDIO_INVALID_REGADDR + :annotation: = 33554432 + + .. py:data:: SPY_STATUS2_MDIO_JOB_CANCELLED + :annotation: = 4194304 + + .. py:data:: SPY_STATUS2_MDIO_OVERFLOW + :annotation: = 268435456 + + .. py:data:: SPY_STATUS2_MDIO_READ + :annotation: = 1073741824 + + .. py:data:: SPY_STATUS2_MDIO_UNSUPPORTED_CLAUSE + :annotation: = 67108864 + + .. py:data:: SPY_STATUS2_MDIO_UNSUPPORTED_OPCODE + :annotation: = 134217728 + .. py:data:: SPY_STATUS2_MOST_CHANGED_PAR :annotation: = -2147483648 @@ -2768,9 +2984,6 @@ 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 @@ -2780,7 +2993,7 @@ Module Variables .. py:data:: SPY_STATUS2_VALUE_IS_BOOLEAN :annotation: = 2 - .. py:data:: SPY_STATUS2_WBMS_NODE_DISCONNECTED + .. py:data:: SPY_STATUS2_WBMS_API_IS_CALLBACK :annotation: = 2097152 .. py:data:: SPY_STATUS3_CANFD_BRS @@ -2951,6 +3164,9 @@ Module Variables .. py:data:: SWCAN_SETTINGS_SIZE :annotation: = 14 + .. py:data:: TCP_SUPPORTED + :annotation: = 32 + .. py:data:: TIMESYNC_ICSHARDWARE_SETTINGS_SIZE :annotation: = 4 @@ -2966,6 +3182,18 @@ Module Variables .. py:data:: VNETBITS_FEATURE_DISABLE_USB_CHECK :annotation: = 2 + .. py:data:: WBMS_GATEWAY_NETWORK_DWCAN_01 + :annotation: = 1 + + .. py:data:: WBMS_GATEWAY_NETWORK_DWCAN_02 + :annotation: = 2 + + .. py:data:: WBMS_GATEWAY_NETWORK_NONE + :annotation: = 0 + + .. py:data:: WBMS_GATEWAY_NETWORK_UDP_MULTICAST + :annotation: = 3 + .. py:data:: WIFI_ANTENNA_EXTERNAL :annotation: = 1 diff --git a/setup.py b/setup.py index 4b2c99a3d..729d102a7 100644 --- a/setup.py +++ b/setup.py @@ -8,8 +8,8 @@ import unittest import shutil -MAJOR_VERSION = 912 -MINOR_VERSION = 4 +MAJOR_VERSION = 913 +MINOR_VERSION = 8 POST_VERSION = None if POST_VERSION: From d111e08d39c5950f6af0aab3e52f79f4e1e368de Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 28 Jun 2023 15:35:27 -0400 Subject: [PATCH 100/201] undo clang format on this file since its auto generated. Signed-off-by: David Rebbe --- icsnVC40_processed.h | 6324 +++++++++++++++++++++--------------------- 1 file changed, 3162 insertions(+), 3162 deletions(-) diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index 0d03d9266..b357a3f7b 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -53,4151 +53,4151 @@ typedef unsigned long long uintmax_t; #pragma warning(disable : 4200) typedef struct SExtendedDataFlashHeader { - uint16_t version; - uint16_t chksum; - uint32_t len; + 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; + 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; - uint32_t Status; - 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; + NeoDevice neoDevice; + uint32_t FirmwareMajor; + uint32_t FirmwareMinor; + uint32_t Status; + 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; - } CANOptions; - uint32_t Reserved[16]; + struct + { + int32_t iNetworkID; + } CANOptions; + uint32_t Reserved[16]; } OptionsOpenNeoEx, *POptionsOpenNeoEx; typedef union tagOptionsFindNeoEx { - struct - { - int32_t iNetworkID; - } CANOptions; - uint32_t Reserved[16]; + struct + { + int32_t iNetworkID; + } CANOptions; + uint32_t Reserved[16]; } OptionsFindNeoEx, *POptionsFindNeoEx; typedef struct tagicsneoVICommand { - uint8_t CommandType; - uint8_t CommandByteLength; - uint8_t Data[14]; + uint8_t CommandType; + uint8_t CommandByteLength; + uint8_t Data[14]; } icsneoVICommand; #pragma pack(push, 1) typedef struct _stAPIFirmwareInfo { - int32_t iType; - int32_t iMainFirmDateDay; - int32_t iMainFirmDateMonth; - int32_t iMainFirmDateYear; - int32_t iMainFirmDateHour; - int32_t iMainFirmDateMin; - int32_t iMainFirmDateSecond; - int32_t iMainFirmChkSum; - 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; + int32_t iType; + int32_t iMainFirmDateDay; + int32_t iMainFirmDateMonth; + int32_t iMainFirmDateYear; + int32_t iMainFirmDateHour; + int32_t iMainFirmDateMin; + int32_t iMainFirmDateSecond; + int32_t iMainFirmChkSum; + 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) #pragma pack(push, 2) enum { - AUTO, - USE_TQ + AUTO, + USE_TQ }; enum { - BPS20, - BPS33, - BPS50, - BPS62, - BPS83, - BPS100, - BPS125, - BPS250, - BPS500, - BPS800, - BPS1000, - BPS666, - BPS2000, - BPS4000, - CAN_BPS5000, - CAN_BPS6667, - CAN_BPS8000, - CAN_BPS10000, + BPS20, + BPS33, + BPS50, + BPS62, + BPS83, + BPS100, + BPS125, + BPS250, + BPS500, + BPS800, + BPS1000, + BPS666, + BPS2000, + BPS4000, + CAN_BPS5000, + CAN_BPS6667, + CAN_BPS8000, + CAN_BPS10000, }; enum { - NORMAL = 0, - DISABLE = 1, - LOOPBACK = 2, - LISTEN_ONLY = 3, - LISTEN_ALL = 7 + 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; + 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; enum { - NO_CANFD, - CANFD_ENABLED, - CANFD_BRS_ENABLED, - CANFD_ENABLED_ISO, - CANFD_BRS_ENABLED_ISO + NO_CANFD, + CANFD_ENABLED, + CANFD_BRS_ENABLED, + CANFD_ENABLED_ISO, + CANFD_BRS_ENABLED_ISO }; typedef struct _CANFD_SETTINGS { - uint8_t FDMode; - uint8_t FDBaudrate; - uint8_t FDTqSeg1; - uint8_t FDTqSeg2; - uint8_t FDTqProp; - uint8_t FDTqSync; - uint16_t FDBRP; - uint8_t FDTDC; - uint8_t reserved; + uint8_t FDMode; + 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; enum { - SWCAN_AUTOSWITCH_DISABLED, - SWCAN_AUTOSWITCH_NO_RESISTOR, - SWCAN_AUTOSWITCH_WITH_RESISTOR, - SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED + 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; + 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; enum { - BPS5000, - BPS10400, - BPS33333, - BPS50000, - BPS62500, - BPS71429, - BPS83333, - BPS100000, - BPS117647 + BPS5000, + BPS10400, + BPS33333, + BPS50000, + BPS62500, + BPS71429, + BPS83333, + BPS100000, + BPS117647 }; enum { - RESISTOR_ON, - RESISTOR_OFF + RESISTOR_ON, + RESISTOR_OFF }; enum { - SLEEP_MODE, - SLOW_MODE, - NORMAL_MODE, - FAST_MODE + SLEEP_MODE, + SLOW_MODE, + NORMAL_MODE, + FAST_MODE }; typedef struct _LIN_SETTINGS { - uint32_t Baudrate; - uint16_t spbrg; - uint8_t brgh; - uint8_t numBitsDelay; - uint8_t MasterResistor; - uint8_t Mode; + uint32_t Baudrate; + uint16_t spbrg; + uint8_t brgh; + uint8_t numBitsDelay; + uint8_t MasterResistor; + uint8_t Mode; } LIN_SETTINGS; typedef struct { - uint16_t time_500us; - uint16_t k; - uint16_t l; + uint16_t time_500us; + uint16_t k; + uint16_t l; } ISO9141_KEYWORD2000__INIT_STEP; 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; + 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; typedef struct _UART_SETTINGS { - uint16_t Baudrate; - uint16_t spbrg; - uint16_t brgh; - uint16_t parity; - uint16_t stop_bits; - uint8_t flow_control; - uint8_t reserved_1; - union + uint16_t Baudrate; + uint16_t spbrg; + uint16_t brgh; + uint16_t parity; + uint16_t stop_bits; + uint8_t flow_control; + uint8_t reserved_1; + union + { + uint32_t bOptions; + struct { - uint32_t bOptions; - struct - { - unsigned invert_tx : 1; - unsigned invert_rx : 1; - unsigned half_duplex : 1; - unsigned reserved_bits : 13; - unsigned reserved_bits2 : 16; - }; + unsigned invert_tx : 1; + unsigned invert_rx : 1; + unsigned half_duplex : 1; + unsigned reserved_bits : 13; + unsigned reserved_bits2 : 16; }; + }; } UART_SETTINGS; typedef struct { - uint16_t enable_convert_mode; + uint16_t enable_convert_mode; } J1708_SETTINGS; typedef struct _SRedSettings { - CAN_SETTINGS can1; - CAN_SETTINGS can2; - LIN_SETTINGS lin1; - LIN_SETTINGS lin2; + CAN_SETTINGS can1; + CAN_SETTINGS can2; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; } SRedSettings; 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; -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 mpic_maj; - uint8_t mpic_min; - } vcanrf_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; + uint32_t can1_tx_id; + uint32_t can1_rx_id; + union + { 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 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; + unsigned bExtended : 1; + unsigned : 31; + }; + uint32_t DWord; + } can1_options; + uint32_t can2_tx_id; + uint32_t can2_rx_id; + union + { struct { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } rad_a2b_versions; + 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 { - uint8_t mchip_major; - uint8_t mchip_minor; - } epsilon_versions; + unsigned bExtended : 1; + unsigned : 31; + }; + uint32_t DWord; + } can3_options; + uint32_t can4_tx_id; + uint32_t can4_rx_id; + union + { struct { - uint8_t zynq_core_major; - uint8_t zynq_core_minor; - } rad_comet_versions; + unsigned bExtended : 1; + unsigned : 31; + }; + uint32_t DWord; + } can4_options; + uint32_t reserved[5]; +} STextAPISettings; +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 mpic_maj; + uint8_t mpic_min; + } vcanrf_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 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 zynq_core_major; + uint8_t zynq_core_minor; + } rad_comet_versions; } stChipVersions; typedef struct _SNeoMostGatewaySettings { - uint16_t netId; - uint8_t zero0; - uint8_t Config; + uint16_t netId; + uint8_t zero0; + uint8_t Config; } SNeoMostGatewaySettings; 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, + 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; - uint8_t reserved0[3]; - uint16_t tapPair0; - uint16_t tapPair1; - uint16_t tapPair2; - uint16_t tapPair3; - uint16_t tapPair4; - uint16_t tapPair5; - union + uint8_t ucInterfaceType; + uint8_t reserved0[3]; + uint16_t tapPair0; + uint16_t tapPair1; + uint16_t tapPair2; + uint16_t tapPair3; + uint16_t tapPair4; + uint16_t tapPair5; + union + { + struct { - 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; - }; + 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; typedef struct SRAD_GPTP_SETTINGS_s { - uint32_t neighborPropDelayThresh; - uint32_t sys_phc_sync_interval; - int8_t logPDelayReqInterval; - int8_t logSyncInterval; - int8_t logAnnounceInterval; - 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]; + uint32_t neighborPropDelayThresh; + uint32_t sys_phc_sync_interval; + int8_t logPDelayReqInterval; + int8_t logSyncInterval; + int8_t logAnnounceInterval; + 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; typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s { - RAD_GPTP_SETTINGS gPTP; - OP_ETH_GENERAL_SETTINGS tap; + RAD_GPTP_SETTINGS gPTP; + OP_ETH_GENERAL_SETTINGS tap; } RAD_GPTP_AND_TAP_SETTINGS; typedef struct HW_ETH_SETTINGS_t { - OP_ETH_GENERAL_SETTINGS General_Settings; + OP_ETH_GENERAL_SETTINGS General_Settings; } HW_ETH_SETTINGS; typedef enum _opEthLinkMode { - OPETH_LINK_AUTO = 0, - OPETH_LINK_MASTER, - OPETH_LINK_SLAVE + OPETH_LINK_AUTO = 0, + OPETH_LINK_MASTER, + OPETH_LINK_SLAVE } opEthLinkMode; enum { - OPETH_MAC_SPOOF_DST_ADDR = 0, - OPETH_MAC_SPOOF_SRC_ADDR = 1, + OPETH_MAC_SPOOF_DST_ADDR = 0, + OPETH_MAC_SPOOF_SRC_ADDR = 1, }; typedef struct OP_ETH_SETTINGS_t { - uint8_t ucConfigMode; - unsigned char preemption_en; - union + uint8_t ucConfigMode; + unsigned char preemption_en; + union + { + struct { - struct - { - unsigned char mac_addr1[6]; - unsigned char mac_addr2[6]; - 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; - }; - unsigned char reserved0[14]; + unsigned char mac_addr1[6]; + unsigned char mac_addr2[6]; + 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; }; + unsigned char reserved0[14]; + }; } OP_ETH_SETTINGS; typedef struct ETHERNET_SETTINGS_t { - uint8_t duplex; - uint8_t link_speed; - uint8_t auto_neg; - uint8_t led_mode; - uint8_t rsvd[4]; + uint8_t duplex; + uint8_t link_speed; + uint8_t auto_neg; + uint8_t led_mode; + uint8_t rsvd[4]; } ETHERNET_SETTINGS; typedef struct ETHERNET_SETTINGS2_t { - uint8_t flags; - uint8_t link_speed; - uint32_t ip_addr; - uint32_t netmask; - uint32_t gateway; - uint8_t flags2; - uint8_t rsvd; + uint8_t flags; + uint8_t link_speed; + uint32_t ip_addr; + uint32_t netmask; + uint32_t gateway; + uint8_t flags2; + uint8_t rsvd; } ETHERNET_SETTINGS2; typedef struct ETHERNET10G_SETTINGS_t { - uint32_t flags; - uint32_t ip_addr; - uint32_t netmask; - uint32_t gateway; - uint8_t link_speed; - uint8_t rsvd2[7]; + uint32_t flags; + uint32_t ip_addr; + uint32_t netmask; + uint32_t gateway; + uint8_t link_speed; + uint8_t rsvd2[7]; } ETHERNET10G_SETTINGS; 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]; + 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; typedef struct LOGGER_SETTINGS_t { - uint8_t extraction_timeout; - uint8_t rsvd[3]; + uint8_t extraction_timeout; + uint8_t rsvd[3]; } LOGGER_SETTINGS; typedef struct DISK_SETTINGS_t { - uint8_t disk_layout; - uint8_t disk_format; - uint32_t disk_enables; - uint8_t rsvd[8]; + uint8_t disk_layout; + uint8_t disk_format; + uint32_t disk_enables; + uint8_t rsvd[8]; } DISK_SETTINGS; typedef struct { - uint8_t term_enabled; - uint8_t term_network; - uint16_t reserved[2]; + uint8_t term_enabled; + uint8_t term_network; + uint16_t reserved[2]; } CANTERM_SETTINGS; typedef struct { - uint8_t MasterEnable; - uint8_t SlaveEnable; - uint8_t MasterNetwork; - uint8_t SlaveNetwork; + uint8_t MasterEnable; + uint8_t SlaveEnable; + uint8_t MasterNetwork; + uint8_t SlaveNetwork; } TIMESYNC_ICSHARDWARE_SETTINGS; typedef enum _EDiskFormat { - DiskFormatUnknown = 0, - DiskFormatFAT32, - DiskFormatexFAT, + DiskFormatUnknown = 0, + DiskFormatFAT32, + DiskFormatexFAT, } EDiskFormat; typedef enum _EDiskLayout { - DiskLayoutSpanned = 0, - DiskLayoutRAID0, - DiskLayoutRAID1, - DiskLayoutRAID5, - DiskLayoutIndividual, + DiskLayoutSpanned = 0, + DiskLayoutRAID0, + DiskLayoutRAID1, + DiskLayoutRAID5, + DiskLayoutIndividual, } EDiskLayout; typedef struct _SDiskStatus { - uint16_t status; - uint8_t sectors[8]; - uint8_t bytesPerSector[4]; + uint16_t status; + uint8_t sectors[8]; + uint8_t bytesPerSector[4]; } SDiskStatus; typedef struct _SDiskStructure { - DISK_SETTINGS settings; - uint16_t options; + DISK_SETTINGS settings; + uint16_t options; } SDiskStructure; typedef struct _SDiskDetails { - SDiskStructure structure; - SDiskStatus status[12]; + SDiskStructure structure; + SDiskStatus status[12]; } SDiskDetails; typedef struct _SDiskFormatProgress { - uint16_t state; - uint8_t sectorsRemaining[8]; + uint16_t state; + uint8_t sectorsRemaining[8]; } SDiskFormatProgress; 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; + uint32_t serverIpAddress; + uint32_t subnetMask; + uint32_t gatewayAddress; + uint32_t startAddress; + uint32_t endAddress; + uint32_t leaseTime; + uint32_t overwrite; } StartDHCPServerCommand; typedef struct _StopDHCPServerCommand { - uint16_t networkId; + uint16_t networkId; } StopDHCPServerCommand; typedef enum _ExtendedResponseCode { - EXTENDED_RESPONSE_OK = 0, - EXTENDED_RESPONSE_INVALID_COMMAND = -1, - EXTENDED_RESPONSE_INVALID_STATE = -2, - EXTENDED_RESPONSE_OPERATION_FAILED = -3, - EXTENDED_RESPONSE_OPERATION_PENDING = -4, - EXTENDED_RESPONSE_INVALID_PARAMETER = -5, + EXTENDED_RESPONSE_OK = 0, + EXTENDED_RESPONSE_INVALID_COMMAND = -1, + EXTENDED_RESPONSE_INVALID_STATE = -2, + EXTENDED_RESPONSE_OPERATION_FAILED = -3, + EXTENDED_RESPONSE_OPERATION_PENDING = -4, + EXTENDED_RESPONSE_INVALID_PARAMETER = -5, } ExtendedResponseCode; typedef struct _ExtendedResponseGeneric { - uint16_t commandType; - int32_t returnCode; + uint16_t commandType; + int32_t returnCode; } ExtendedResponseGeneric; typedef struct _GenericAPISelector { - uint8_t apiIndex; - uint8_t instance; - uint8_t functionID; + uint8_t apiIndex; + uint8_t instance; + uint8_t functionID; } GenericAPISelector; typedef struct _GenericAPIStatus { - GenericAPISelector api; - uint8_t functionError; - uint8_t calbackError; - uint8_t finishedProcessing; + GenericAPISelector api; + uint8_t functionError; + uint8_t calbackError; + uint8_t finishedProcessing; } GenericAPIStatus; typedef struct _GenericAPIData { - uint16_t length; - GenericAPISelector api; - uint8_t bData[513]; + uint16_t length; + GenericAPISelector api; + uint8_t bData[513]; } GenericAPIData; typedef struct _GenericAPIData_OLD { - GenericAPISelector api; - uint8_t bData[513]; - uint16_t length; + GenericAPISelector api; + uint8_t bData[513]; + uint16_t length; } GenericAPIData_OLD; typedef struct _wBMSManagerSetLock { - uint8_t managerIndex; - uint8_t setLock; + uint8_t managerIndex; + uint8_t setLock; } wBMSManagerSetLock; typedef struct _wBMSManagerReset { - uint8_t managerIndex; + uint8_t managerIndex; } wBMSManagerReset; typedef struct _UartPortData { - uint16_t len; - uint8_t port; - uint8_t bData[256]; + uint16_t len; + uint8_t port; + uint8_t bData[256]; } UartPortData; typedef struct _UartPortPortBytes { - uint16_t len; - uint8_t port; - uint8_t flag; + uint16_t len; + uint8_t port; + uint8_t flag; } UartPortPortBytes; typedef struct _UartPortConfig { - uint32_t baudrate; - uint8_t port; - uint8_t reserve[7]; + uint32_t baudrate; + uint8_t port; + uint8_t reserve[7]; } UartPortConfig; typedef struct { - uint16_t cmdVersion; - uint16_t numValidBits; - uint32_t featureBitfields[0]; + uint16_t cmdVersion; + uint16_t numValidBits; + uint32_t featureBitfields[0]; } GetSupportedFeaturesResponse; typedef struct _VersionReport { - uint8_t valid; - uint8_t expansionSlot; - uint8_t componentInfo; - uint8_t reserved; - uint32_t identifier; - uint32_t dotVersion; - uint32_t commitHash; + uint8_t valid; + uint8_t expansionSlot; + uint8_t componentInfo; + uint8_t reserved; + uint32_t identifier; + uint32_t dotVersion; + uint32_t commitHash; } VersionReport; typedef struct _GetComponentVersions { - uint32_t reserved[2]; + uint32_t reserved[2]; } GetComponentVersions; typedef struct _ExtendedGetVersionsResponse { - uint16_t numVersions; - VersionReport versions[(16)]; + uint16_t numVersions; + VersionReport versions[(16)]; } GetComponentVersionsResponse; enum { - swUpdateWrite = 0, - swUpdateErase = 1, - swUpdateGetProgress = 2, - swUpdateValidateAll = 3, - swUpdateGetBufferSize = 4, - swUpdateCheckHostVersion = 5, - swUpdateValidateComponent = 6, - swUpdateFinalize = 7, - swUpdateGetCommunicationVersion = 8, + swUpdateWrite = 0, + swUpdateErase = 1, + swUpdateGetProgress = 2, + swUpdateValidateAll = 3, + swUpdateGetBufferSize = 4, + swUpdateCheckHostVersion = 5, + swUpdateValidateComponent = 6, + swUpdateFinalize = 7, + swUpdateGetCommunicationVersion = 8, }; typedef struct { - uint32_t componentIdentifier; - uint8_t commandType; - uint32_t offset; - uint32_t commandSizeOrProgress; - uint8_t commandData[0]; + uint32_t componentIdentifier; + uint8_t commandType; + uint32_t offset; + uint32_t commandSizeOrProgress; + uint8_t commandData[0]; } SoftwareUpdateCommand; typedef struct _SExtSubCmdHdr { - uint16_t command; - uint16_t length; + uint16_t command; + uint16_t length; } SExtSubCmdHdr; #pragma pack(push, 1) struct _timestamp { - uint16_t seconds_msb; - uint32_t seconds_lsb; - uint32_t nanoseconds; + 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; + _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; + 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; + 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; + 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]; + 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]; + uint32_t size; + uint16_t index; + uint16_t status; + uint8_t reserved[8]; } GenericBinaryStatus; #pragma pack(pop) enum { - SERDESCAM_MODE_TAP_REPEATER = 0, - SERDESCAM_MODE_SPLITTER, - SERDESCAM_MODE_LOG_ONLY, - SERDESCAM_MODE_CUSTOM, - SERDESCAM_MODE_COUNT, + SERDESCAM_MODE_TAP_REPEATER = 0, + SERDESCAM_MODE_SPLITTER, + SERDESCAM_MODE_LOG_ONLY, + SERDESCAM_MODE_CUSTOM, + SERDESCAM_MODE_COUNT, }; enum { - SERDESCAM_PIXEL_BIT_POS_0 = 0, - SERDESCAM_PIXEL_BIT_POS_1, - SERDESCAM_PIXEL_BIT_POS_2, - SERDESCAM_PIXEL_BIT_POS_3, + SERDESCAM_PIXEL_BIT_POS_0 = 0, + SERDESCAM_PIXEL_BIT_POS_1, + SERDESCAM_PIXEL_BIT_POS_2, + SERDESCAM_PIXEL_BIT_POS_3, }; 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_BAYER_BGGR_8, - SERDESCAM_VIDEO_FORMAT_RAW_8, - SERDESCAM_VIDEO_FORMAT_RAW_10, - 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_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_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_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, - 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_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_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_CSI2_BAYER_RGGB_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, - 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_CSI2_BAYER_GBRG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, - 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_CSI2_BAYER_GRBG_8, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, - SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, - SERDESCAM_VIDEO_FORMAT_COUNT, + 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_BAYER_BGGR_8, + SERDESCAM_VIDEO_FORMAT_RAW_8, + SERDESCAM_VIDEO_FORMAT_RAW_10, + 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_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_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_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, + 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_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_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_CSI2_BAYER_RGGB_8, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_10LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_RGGB_12LE_PACKED, + 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_CSI2_BAYER_GBRG_8, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_10LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GBRG_12LE_PACKED, + 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_CSI2_BAYER_GRBG_8, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_10LE_PACKED, + SERDESCAM_VIDEO_FORMAT_CSI2_BAYER_GRBG_12LE_PACKED, + SERDESCAM_VIDEO_FORMAT_COUNT, }; typedef struct SERDESCAM_SETTINGS_t { - uint32_t flags; - uint8_t mode; - uint8_t rsvd1; - uint8_t bitPos; - uint8_t videoFormat; - uint16_t resWidth; - uint16_t resHeight; - uint8_t frameSkip; - uint8_t rsvd2[19]; + uint32_t flags; + uint8_t mode; + uint8_t rsvd1; + uint8_t bitPos; + uint8_t videoFormat; + uint16_t resWidth; + uint16_t resHeight; + uint8_t frameSkip; + uint8_t rsvd2[19]; } SERDESCAM_SETTINGS; typedef struct SERDESPOC_SETTINGS_t { - uint8_t mode; - uint8_t rsvd[6]; - uint8_t voltage; - uint16_t chksum; + uint8_t mode; + uint8_t rsvd[6]; + uint8_t voltage; + uint16_t chksum; } SERDESPOC_SETTINGS; 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, - SERDESGEN_MOD_ID_UNKNOWN = -1, + 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, + SERDESGEN_MOD_ID_UNKNOWN = -1, }; typedef struct SERDESGEN_SETTINGS_t { - uint16_t flags; - uint8_t rsvd1; - uint8_t mod_id; - uint16_t tx_speed; - uint16_t rx_speed; - uint8_t rsvd2[24]; + uint16_t flags; + uint8_t rsvd1; + uint8_t mod_id; + uint16_t tx_speed; + uint16_t rx_speed; + uint8_t rsvd2[24]; } SERDESGEN_SETTINGS; typedef struct _RadMoonDuoConverterSettings { - uint8_t linkMode0; - uint8_t linkMode1; - uint8_t converter1Mode; - uint32_t ipAddress; - uint32_t ipMask; - uint32_t ipGateway; + uint8_t linkMode0; + uint8_t linkMode1; + uint8_t converter1Mode; + uint32_t ipAddress; + uint32_t ipMask; + uint32_t ipGateway; } RadMoonDuoConverterSettings; 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]; + 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; 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, - REPORT_ON_GPS, + 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, + REPORT_ON_GPS, }; 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; - 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; - uint16_t vnetBits; + 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; + 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; + uint16_t vnetBits; } SFireSettings; 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; - 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; - 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; - uint16_t vnetBits; - CAN_SETTINGS can5; - CAN_SETTINGS can6; - LIN_SETTINGS lin5; - SWCAN_SETTINGS swcan2; + 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; + 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; + uint16_t vnetBits; + CAN_SETTINGS can5; + CAN_SETTINGS can6; + LIN_SETTINGS lin5; + SWCAN_SETTINGS swcan2; } SFireVnetSettings; 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; - 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; - 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; + 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; + 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; + 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; } 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; + 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; 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; + 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; 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; + 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; typedef struct _SECUSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; + uint32_t ecu_id; + uint16_t selected_network; + 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; typedef struct _SPendantSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; + uint32_t ecu_id; + uint16_t selected_network; + 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; typedef struct _SIEVBSettings { - uint32_t ecu_id; - uint16_t selected_network; - 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; + uint32_t ecu_id; + uint16_t selected_network; + 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; 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; + 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; 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, + 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, }; enum eGPTPRole { - eRoleDisabled = 0, - eRolePassive = 1, - eRoleMaster = 2, - eRoleSlave = 3, + 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; - 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; - ETHERNET_SETTINGS2 ethernet2; - uint16_t network_enables_4; - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; + 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; + 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; + ETHERNET_SETTINGS2 ethernet2; + uint16_t network_enables_4; + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADGalaxySettings; 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; - uint16_t hwComLatencyTestEn; - RAD_REPORTING_SETTINGS reporting; - ETHERNET_SETTINGS2 ethernet; - RAD_GPTP_SETTINGS gPTP; - uint64_t network_enables_5; + 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; + uint16_t hwComLatencyTestEn; + RAD_REPORTING_SETTINGS reporting; + ETHERNET_SETTINGS2 ethernet; + RAD_GPTP_SETTINGS gPTP; + uint64_t network_enables_5; } SRADStar2Settings; 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; + 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; typedef enum { - tdmModeTDM2 = 0, - tdmModeTDM4, - tdmModeTDM8, - tdmModeTDM12, - tdmModeTDM16, - tdmModeTDM20, - tdmModeTDM24, - tdmModeTDM32, + tdmModeTDM2 = 0, + tdmModeTDM4, + tdmModeTDM8, + tdmModeTDM12, + tdmModeTDM16, + tdmModeTDM20, + tdmModeTDM24, + tdmModeTDM32, } A2BTDMMode; typedef enum { - a2bNodeTypeMonitor = 0, - a2bNodeTypeMaster, - a2bNodeTypeSlave, + a2bNodeTypeMonitor = 0, + a2bNodeTypeMaster, + a2bNodeTypeSlave, } A2BNodeType; typedef struct { - uint8_t tdmMode; - uint8_t upstreamChannelOffset; - uint8_t downstreamChannelOffset; - uint8_t nodeType; - uint8_t flags; - uint8_t reserved[15]; + uint8_t tdmMode; + uint8_t upstreamChannelOffset; + uint8_t downstreamChannelOffset; + uint8_t nodeType; + uint8_t flags; + uint8_t reserved[15]; } A2BMonitorSettings; 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; + 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; 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; + 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; typedef struct _SRADMoon3Settings { - uint16_t perf_en; - ETHERNET10G_SETTINGS autoEth10g; - ETHERNET10G_SETTINGS eth10g; - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enabled_on_boot; - uint16_t network_enables_3; - struct - { - uint16_t enableLatencyTest : 1; - uint16_t reserved : 15; - } flags; - uint64_t network_enables_5; + uint16_t perf_en; + ETHERNET10G_SETTINGS autoEth10g; + ETHERNET10G_SETTINGS eth10g; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enabled_on_boot; + uint16_t network_enables_3; + struct + { + uint16_t enableLatencyTest : 1; + uint16_t reserved : 15; + } flags; + uint64_t network_enables_5; } SRADMoon3Settings; 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]; - uint8_t rsvd2[8]; - 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; + 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]; + uint8_t rsvd2[8]; + 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; 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; + 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; typedef struct _SVividCANSettings { - uint32_t ecu_id; - CAN_SETTINGS can1; - SWCAN_SETTINGS swcan1; - CAN_SETTINGS lsftcan1; - 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; + uint32_t ecu_id; + CAN_SETTINGS can1; + SWCAN_SETTINGS swcan1; + CAN_SETTINGS lsftcan1; + 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; 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; + 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; typedef struct _CmProbeSettings { - uint16_t network_enables; - uint16_t network_enabled_on_boot; + uint16_t network_enables; + uint16_t network_enabled_on_boot; } CmProbeSettings, SCmProbeSettings; typedef struct _OBD2ProSettings { - 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_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; - 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; + 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_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; + 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; typedef struct _VCAN412Settings { - 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; - 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 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; + 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; typedef struct _neoECU_AVBSettings { - 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; - 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 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; + 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; 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; + 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; 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; + 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; typedef struct SPluto_L2ForwardingParams_s { - uint16_t part_spc[8]; - uint8_t max_dynp; - uint8_t pad; + uint16_t part_spc[8]; + uint8_t max_dynp; + uint8_t pad; } SPluto_L2ForwardingParams; typedef struct SPluto_L2ForwardingEntry_s { - uint8_t vlan_pmap[8]; - uint8_t bc_domain; - uint8_t reach_port; - uint8_t fl_domain; - uint8_t pad; + uint8_t vlan_pmap[8]; + uint8_t bc_domain; + uint8_t reach_port; + uint8_t fl_domain; + uint8_t pad; } SPluto_L2ForwardingEntry; typedef struct SPluto_L2Policing_s { - uint16_t smax; - uint16_t rate; - uint16_t maxlen; - uint8_t sharindx; - uint8_t partition; + uint16_t smax; + uint16_t rate; + uint16_t maxlen; + uint8_t sharindx; + uint8_t partition; } SPluto_L2Policing; 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; + 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; typedef struct SPluto_MacConfig_s { - uint16_t top[8]; - uint16_t base[8]; - uint16_t tp_delin; - uint16_t tp_delout; - uint16_t vlanid; - uint8_t enabled[8]; - 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; + uint16_t top[8]; + uint16_t base[8]; + uint16_t tp_delin; + uint16_t tp_delout; + uint16_t vlanid; + uint8_t enabled[8]; + 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; 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; + 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; 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; + 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; typedef struct SPluto_VlLookupEntry_s { - union + union + { + struct { - struct - { - uint64_t macaddr; - uint16_t vlanid; - uint8_t destports; - uint8_t iscritical; - uint8_t port; - uint8_t vlanprior; - } vllupformat0; - struct - { - uint16_t vlid; - uint8_t egrmirr; - uint8_t ingrmirr; - uint8_t port; - } vllupformat1; - }; + uint64_t macaddr; + uint16_t vlanid; + uint8_t destports; + uint8_t iscritical; + uint8_t port; + uint8_t vlanprior; + } vllupformat0; + struct + { + uint16_t vlid; + uint8_t egrmirr; + uint8_t ingrmirr; + uint8_t port; + } vllupformat1; + }; } SPluto_VlLookupEntry; typedef struct SPluto_VlPolicingEntry_s { - uint64_t type; - uint64_t maxlen; - uint64_t sharindx; - uint64_t bag; - uint64_t jitter; + uint64_t type; + uint64_t maxlen; + uint64_t sharindx; + uint64_t bag; + uint64_t jitter; } SPluto_VlPolicingEntry; typedef struct SPluto_VlForwardingParams_s { - uint16_t partspc[8]; - uint8_t debugen; - uint8_t pad; + uint16_t partspc[8]; + uint8_t debugen; + uint8_t pad; } SPluto_VlForwardingParams; typedef struct SPluto_VlForwardingEntry_s { - uint8_t type; - uint8_t priority; - uint8_t partition; - uint8_t destports; + uint8_t type; + uint8_t priority; + uint8_t partition; + uint8_t destports; } SPluto_VlForwardingEntry; typedef struct SPluto_AVBParams_s { - uint64_t destmeta; - uint64_t srcmeta; + uint64_t destmeta; + uint64_t srcmeta; } SPluto_AVBParams; 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; + 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; typedef struct SPlutoPtpParams_s { - uint32_t neighborPropDelayThresh; - uint32_t sys_phc_sync_interval; - int8_t logPDelayReqInterval; - int8_t logSyncInterval; - int8_t logAnnounceInterval; - 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]; + uint32_t neighborPropDelayThresh; + uint32_t sys_phc_sync_interval; + int8_t logPDelayReqInterval; + int8_t logSyncInterval; + int8_t logAnnounceInterval; + 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; typedef struct SPluto_CustomParams_s { - uint8_t mode[5]; - uint8_t speed[5]; - uint8_t enablePhy[5]; - uint8_t ae1Select; - uint8_t usbSelect; - uint8_t pad; - PlutoPtpParams_t ptpParams; + uint8_t mode[5]; + uint8_t speed[5]; + uint8_t enablePhy[5]; + uint8_t ae1Select; + uint8_t usbSelect; + uint8_t pad; + PlutoPtpParams_t ptpParams; } SPluto_CustomParams; 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; + 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]; } SPlutoSwitchSettings; typedef struct _RADPlutoSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - SPluto_CustomParams custom; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + SPluto_CustomParams custom; + ETHERNET_SETTINGS2 ethernet2; } SRADPlutoSettings; typedef union { - uint32_t word; - struct - { - unsigned can_sleep_command_id : 29; - unsigned can_sleep_command_isExtended : 1; - unsigned reserved : 2; - } id; + 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; + 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; 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; + 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 { - 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; + 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; typedef enum _flexVnetMode { - flexVnetModeDisabled, - flexVnetModeOneSingle, - flexVnetModeOneDual, - flexVnetModeTwoSingle, - flexVnetModeColdStart + 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; - 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]; + 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; + 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]; } SNeoECU12Settings; 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; + 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 { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 28; - } flags; - ETHERNET_SETTINGS2 ethernet2; + 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; typedef struct _SOBD2LCSettings { - 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_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; - }; - } network_enables; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t network_enabled_on_boot; - int16_t iso15765_separation_time_offset; - STextAPISettings text_api; + 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_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + union + { + uint64_t word; 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; + 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; + 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; } OBD2LCSettings, SOBD2LCSettings; typedef struct SJupiterPtpParams_s { - uint32_t neighborPropDelay; - int8_t initLogPDelayReqInterval; - int8_t initLogSyncInterval; - int8_t operationLogPDelayReqInterval; - int8_t operationLogSyncInterval; - uint8_t gPTPportRole[8]; + uint32_t neighborPropDelay; + int8_t initLogPDelayReqInterval; + int8_t initLogSyncInterval; + int8_t operationLogPDelayReqInterval; + int8_t operationLogSyncInterval; + uint8_t gPTPportRole[8]; } JupiterPtpParams_t; typedef struct _SRADJupiterSwitchSettings { - uint8_t phyMode[8]; - uint8_t enablePhy[8]; - uint8_t port7Select; - uint8_t port8Select; - uint8_t port8Speed; - uint8_t port8Legacy; - uint8_t spoofMacFlag; - uint8_t spoofedMac[6]; - uint8_t pad; - JupiterPtpParams_t ptpParams; + uint8_t phyMode[8]; + uint8_t enablePhy[8]; + uint8_t port7Select; + uint8_t port8Select; + uint8_t port8Speed; + uint8_t port8Legacy; + uint8_t spoofMacFlag; + uint8_t spoofedMac[6]; + uint8_t pad; + JupiterPtpParams_t ptpParams; } SRADJupiterSwitchSettings; typedef struct _SRADJupiterSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - SRADJupiterSwitchSettings switchSettings; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + SRADJupiterSwitchSettings switchSettings; + ETHERNET_SETTINGS2 ethernet2; } SRADJupiterSettings; typedef struct { - uint8_t allowBoot; - uint8_t useExternalWifiAntenna; - uint8_t ethConfigurationPort; - uint8_t reserved[5]; + uint8_t allowBoot; + uint8_t useExternalWifiAntenna; + uint8_t ethConfigurationPort; + uint8_t reserved[5]; } Fire3LinuxSettings; 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; + 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 { - 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 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; } SRed2Settings; 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 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; } SFire3Settings; 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 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; } SFire3FlexraySettings; 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; + 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; typedef struct _SEtherBadgeSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - 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 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; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - ETHERNET_SETTINGS2 ethernet2; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + 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 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; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + ETHERNET_SETTINGS2 ethernet2; } SEtherBadgeSettings; typedef struct _SRADEpsilonSwitchSettings { - uint8_t phyMode[18]; - uint8_t enablePhy[18]; - uint8_t speed[18]; - uint8_t legacy[18]; - uint8_t spoofedMac[6]; - uint8_t spoofMacFlag; - uint8_t pad; + uint8_t phyMode[18]; + uint8_t enablePhy[18]; + uint8_t speed[18]; + uint8_t legacy[18]; + uint8_t spoofedMac[6]; + uint8_t spoofMacFlag; + uint8_t pad; } SRADEpsilonSwitchSettings; typedef struct _SRADEpsilonSettings { - uint16_t perf_en; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - LIN_SETTINGS lin1; - 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; - uint16_t network_enabled_on_boot; - 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; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - SRADEpsilonSwitchSettings switchSettings; - ETHERNET_SETTINGS2 ethernet2; - uint16_t misc_io_on_report_events; + uint16_t perf_en; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + 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; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + SRADEpsilonSwitchSettings switchSettings; + ETHERNET_SETTINGS2 ethernet2; + uint16_t misc_io_on_report_events; } SRADEpsilonSettings; typedef struct { - uint8_t wBMSDeviceID; - uint8_t enabled; + uint8_t wBMSDeviceID; + uint8_t enabled; } sWIL_FAULT_SERVICING_SETTINGS; typedef struct { - uint8_t enabled; + uint8_t enabled; } sWIL_NETWORK_DATA_CAPTURE_SETTINGS; 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; + 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; } 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, + 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, + SPI_PORT_ONBOARD = 0, + SPI_PORT_EXTERNAL, }; enum { - SPI_TYPE_WIL = 0, - SPI_TYPE_RAW, + SPI_TYPE_WIL = 0, + SPI_TYPE_RAW, }; enum { - SPI_MODE_MASTER, - SPI_MODE_SLAVE, - SPI_MODE_PMS_EMULATION, + SPI_MODE_MASTER, + SPI_MODE_SLAVE, + SPI_MODE_PMS_EMULATION, }; typedef union { - uint8_t byte; - struct - { - uint8_t onboard_external : 1; - uint8_t type : 1; - uint8_t mode : 3; - uint8_t reserved : 3; - } config; + 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; - sSPI_PORT_SETTING port_b; + sSPI_PORT_SETTING port_a; + sSPI_PORT_SETTING port_b; } sSPI_PORT_SETTINGS; typedef union { - uint64_t dword; - struct - { - unsigned can_id : 29; - unsigned can_id_isExtended : 1; - uint16_t tcp_port; - unsigned reserved : 18; - } config; + uint64_t dword; + struct + { + unsigned can_id : 29; + unsigned can_id_isExtended : 1; + uint16_t tcp_port; + unsigned reserved : 18; + } config; } sWILBridgeConfig; typedef struct { - uint8_t wbms1_network; - uint8_t wbms1_canfd_enable; - uint8_t wbms2_network; - uint8_t wbms2_canfd_enable; - uint16_t reserved[6]; + uint8_t wbms1_network; + uint8_t wbms1_canfd_enable; + uint8_t wbms2_network; + uint8_t wbms2_canfd_enable; + uint16_t reserved[6]; } WBMSGatewaySettings; typedef struct _SRADBMSSettings { - uint16_t perf_en; - uint64_t termination_enables; - CAN_SETTINGS can1; - CANFD_SETTINGS canfd1; - CAN_SETTINGS can2; - CANFD_SETTINGS canfd2; - uint16_t network_enables; - uint16_t network_enables_2; - uint16_t network_enables_3; - int16_t iso15765_separation_time_offset; - struct - { - uint32_t disableUsbCheckOnBoot : 1; - uint32_t enableLatencyTest : 1; - uint32_t enablePcEthernetComm : 1; - uint32_t reserved : 29; - } flags; - ETHERNET_SETTINGS ethernet; - ETHERNET_SETTINGS2 ethernet2; - uint32_t pwr_man_timeout; - uint16_t pwr_man_enable; - uint16_t network_enabled_on_boot; - sWILBridgeConfig wil_config; - sSPI_PORT_SETTINGS spi_config; - sWIL_CONNECTION_SETTINGS wbms_wil_1; - sWIL_CONNECTION_SETTINGS wbms_wil_2; - uint16_t wil1_nwk_metadata_buff_count; - uint16_t wil2_nwk_metadata_buff_count; - WBMSGatewaySettings gateway; - uint16_t network_enables_4; - uint64_t network_enables_5; + uint16_t perf_en; + uint64_t termination_enables; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + int16_t iso15765_separation_time_offset; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t enablePcEthernetComm : 1; + uint32_t reserved : 29; + } flags; + ETHERNET_SETTINGS ethernet; + ETHERNET_SETTINGS2 ethernet2; + uint32_t pwr_man_timeout; + uint16_t pwr_man_enable; + uint16_t network_enabled_on_boot; + sWILBridgeConfig wil_config; + sSPI_PORT_SETTINGS spi_config; + sWIL_CONNECTION_SETTINGS wbms_wil_1; + sWIL_CONNECTION_SETTINGS wbms_wil_2; + uint16_t wil1_nwk_metadata_buff_count; + uint16_t wil2_nwk_metadata_buff_count; + WBMSGatewaySettings gateway; + uint16_t network_enables_4; + uint64_t network_enables_5; } SRADBMSSettings; typedef struct _SRADCometSettings { - uint32_t ecu_id; - uint16_t perf_en; + 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 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_SETTINGS2 ethernet; - OP_ETH_GENERAL_SETTINGS opEthGen; - ETHERNET_SETTINGS2 ethT1; - OP_ETH_SETTINGS opEth1; - ETHERNET_SETTINGS2 ethT1s1; - ETHERNET10T1S_SETTINGS t1s1; - ETHERNET_SETTINGS2 ethT1s2; - ETHERNET10T1S_SETTINGS t1s2; - uint64_t network_enables_5; + 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_SETTINGS2 ethernet; + OP_ETH_GENERAL_SETTINGS opEthGen; + ETHERNET_SETTINGS2 ethT1; + OP_ETH_SETTINGS opEth1; + ETHERNET_SETTINGS2 ethT1s1; + ETHERNET10T1S_SETTINGS t1s1; + ETHERNET_SETTINGS2 ethT1s2; + ETHERNET10T1S_SETTINGS t1s2; + uint64_t network_enables_5; } SRADCometSettings; 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; - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; - SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SRADGigalogSettings radgigalog; - SCANHubSettings canhub; - SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; - SEEVBSettings eevb; - SFlexVnetzSettings flexvnetz; - SVividCANSettings vividcan; - SVCAN4IndSettings vcan4_ind; - SOBD2LCSettings obd2lc; - SRADGigastarSettings radgigastar; - SRADJupiterSettings jupiter; - SRed2Settings red2; - SFire3Settings fire3; - SFire3FlexraySettings fire3fr; - SRadMoonDuoSettings radmoonduo; - SEtherBadgeSettings etherBadge; - SRADA2BSettings rad_a2b; - SRADEpsilonSettings epsilon; - SRADBMSSettings rad_bms; - SRADMoon3Settings radmoon3; - SRADCometSettings radcomet; - }; + 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; + SECU_AVBSettings neoecu_avb; + SRADSuperMoonSettings radsupermoon; + SRADMoon2Settings radmoon2; + SRADPlutoSettings pluto; + SRADGigalogSettings radgigalog; + SCANHubSettings canhub; + SNeoECU12Settings neoecu12; + SVCANRFSettings vcanrf; + SEEVBSettings eevb; + SFlexVnetzSettings flexvnetz; + SVividCANSettings vividcan; + SVCAN4IndSettings vcan4_ind; + SOBD2LCSettings obd2lc; + SRADGigastarSettings radgigastar; + SRADJupiterSettings jupiter; + SRed2Settings red2; + SFire3Settings fire3; + SFire3FlexraySettings fire3fr; + SRadMoonDuoSettings radmoonduo; + SEtherBadgeSettings etherBadge; + SRADA2BSettings rad_a2b; + SRADEpsilonSettings epsilon; + SRADBMSSettings rad_bms; + SRADMoon3Settings radmoon3; + SRADCometSettings radcomet; + }; } GLOBAL_SETTINGS; typedef enum _EDeviceSettingsType { - DeviceFireSettingsType, - DeviceFireVnetSettingsType, - DeviceFire2SettingsType, - DeviceVCAN3SettingsType, - DeviceRADGalaxySettingsType, - DeviceRADStar2SettingsType, - DeviceVCAN4SettingsType, - DeviceVCAN412SettingsType, - DeviceVividCANSettingsType, - DeviceECU_AVBSettingsType, - DeviceRADSuperMoonSettingsType, - DeviceRADMoon2SettingsType, - DeviceRADPlutoSettingsType, - DeviceRADGigalogSettingsType, - DeviceVCANRFSettingsType, - DeviceEEVBSettingsType, - DeviceVCAN4IndSettingsType, - DeviceNeoECU12SettingsType, - DeviceFlexVnetzSettingsType, - DeviceCANHUBSettingsType, - DeviceIEVBSettingsType, - DeviceOBD2SimSettingsType, - DeviceCMProbeSettingsType, - DeviceOBD2ProSettingsType, - DeviceRedSettingsType, - DeviceRADPlutoSwitchSettingsType, - DeviceRADGigastarSettingsType, - DeviceRADJupiterSettingsType, - DeviceRed2SettingsType, - DeviceRadMoonDuoSettingsType, - DeviceEtherBadgeSettingsType, - DeviceRADA2BSettingsType, - DeviceRADEpsilonSettingsType, - DeviceOBD2LCSettingsType, - DeviceRADBMSSettingsType, - DeviceRADMoon3SettingsType, - DeviceFire3SettingsType, - DeviceFire3FlexraySettingsType, - DeviceRADCometSettingsType, - DeviceRed2OemSettingsType, - DeviceSettingsTypeMax, - DeviceSettingsNone = 0xFFFFFFFF + DeviceFireSettingsType, + DeviceFireVnetSettingsType, + DeviceFire2SettingsType, + DeviceVCAN3SettingsType, + DeviceRADGalaxySettingsType, + DeviceRADStar2SettingsType, + DeviceVCAN4SettingsType, + DeviceVCAN412SettingsType, + DeviceVividCANSettingsType, + DeviceECU_AVBSettingsType, + DeviceRADSuperMoonSettingsType, + DeviceRADMoon2SettingsType, + DeviceRADPlutoSettingsType, + DeviceRADGigalogSettingsType, + DeviceVCANRFSettingsType, + DeviceEEVBSettingsType, + DeviceVCAN4IndSettingsType, + DeviceNeoECU12SettingsType, + DeviceFlexVnetzSettingsType, + DeviceCANHUBSettingsType, + DeviceIEVBSettingsType, + DeviceOBD2SimSettingsType, + DeviceCMProbeSettingsType, + DeviceOBD2ProSettingsType, + DeviceRedSettingsType, + DeviceRADPlutoSwitchSettingsType, + DeviceRADGigastarSettingsType, + DeviceRADJupiterSettingsType, + DeviceRed2SettingsType, + DeviceRadMoonDuoSettingsType, + DeviceEtherBadgeSettingsType, + DeviceRADA2BSettingsType, + DeviceRADEpsilonSettingsType, + DeviceOBD2LCSettingsType, + DeviceRADBMSSettingsType, + DeviceRADMoon3SettingsType, + DeviceFire3SettingsType, + DeviceFire3FlexraySettingsType, + DeviceRADCometSettingsType, + DeviceRed2OemSettingsType, + DeviceSettingsTypeMax, + DeviceSettingsNone = 0xFFFFFFFF } 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; - SECU_AVBSettings neoecu_avb; - SRADSuperMoonSettings radsupermoon; - SRADMoon2Settings radmoon2; - SRADPlutoSettings pluto; - SPlutoSwitchSettings plutoswitch; - SRADGigalogSettings radgigalog; - SCANHubSettings canhub; - SNeoECU12Settings neoecu12; - SVCANRFSettings vcanrf; - SEEVBSettings eevb; - SFlexVnetzSettings flexvnetz; - SVividCANSettings vividcan; - SVCAN4IndSettings vcan4_ind; - SOBD2LCSettings obd2lc; - SRADGigastarSettings radgigastar; - 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; - } Settings; + 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; + SECU_AVBSettings neoecu_avb; + SRADSuperMoonSettings radsupermoon; + SRADMoon2Settings radmoon2; + SRADPlutoSettings pluto; + SPlutoSwitchSettings plutoswitch; + SRADGigalogSettings radgigalog; + SCANHubSettings canhub; + SNeoECU12Settings neoecu12; + SVCANRFSettings vcanrf; + SEEVBSettings eevb; + SFlexVnetzSettings flexvnetz; + SVividCANSettings vividcan; + SVCAN4IndSettings vcan4_ind; + SOBD2LCSettings obd2lc; + SRADGigastarSettings radgigastar; + 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; + } Settings; } SDeviceSettings; typedef enum _EPlasmaIonVnetChannel_t { - PlasmaIonVnetChannelMain, - PlasmaIonVnetChannelA, - PlasmaIonVnetChannelB, - eSoftCore, - eFpgaStatusResp, + PlasmaIonVnetChannelMain, + PlasmaIonVnetChannelA, + PlasmaIonVnetChannelB, + eSoftCore, + eFpgaStatusResp, } EPlasmaIonVnetChannel_t; typedef enum _EwBMSManagerPort_t { - eManagerPortA = 0, - eManagerPortB, + eManagerPortA = 0, + eManagerPortB, } EwBMSManagerPort_t; typedef enum _EwBMSManagerLockState_t { - eLockManager = 0, - eUnlockManager, + eLockManager = 0, + eUnlockManager, } EwBMSManagerLockState_t; typedef enum _EUartPort_t { - eUART0 = 0, - eUART1, + eUART0 = 0, + eUART1, } EUartPort_t; typedef enum _eGenericAPIOptions { - eGENERIC_API = 0, - eADI_WIL_API = 1, + eGENERIC_API = 0, + eADI_WIL_API = 1, } eGenericAPIOptions; typedef enum _EwBMSInstance_t { - ewBMSInstance0 = 0, - ewBMSInstance1, + ewBMSInstance0 = 0, + ewBMSInstance1, } EwBMSInstance_t; typedef struct _stCM_ISO157652_TxMessage { - uint16_t vs_netid; - uint8_t padding; - uint8_t tx_index; - uint32_t id; - uint32_t fc_id; - uint32_t fc_id_mask; - uint8_t stMin; - uint8_t blockSize; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; - uint16_t fs_timeout; - uint16_t fs_wait; - uint8_t data[4 * 1024]; - uint32_t num_bytes; - union + uint16_t vs_netid; + uint8_t padding; + uint8_t tx_index; + uint32_t id; + uint32_t fc_id; + uint32_t fc_id_mask; + uint8_t stMin; + uint8_t blockSize; + uint8_t flowControlExtendedAddress; + uint8_t extendedAddress; + uint16_t fs_timeout; + uint16_t fs_wait; + uint8_t data[4 * 1024]; + uint32_t num_bytes; + union + { + struct { - 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 iscanFD : 1; - unsigned isBRSEnabled : 1; - unsigned : 15; - unsigned tx_dl : 8; - }; - uint32_t flags; + 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 iscanFD : 1; + unsigned isBRSEnabled : 1; + unsigned : 15; + unsigned tx_dl : 8; }; + uint32_t flags; + }; } stCM_ISO157652_TxMessage; typedef struct { - uint16_t vs_netid; - uint8_t padding; - uint8_t tx_index; - uint32_t id; - uint32_t fc_id; - uint32_t fc_id_mask; - uint8_t stMin; - uint8_t blockSize; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; - uint16_t fs_timeout; - uint16_t fs_wait; - uint8_t* data; - uint32_t num_bytes; - uint8_t tx_dl; - union + uint16_t vs_netid; + uint8_t padding; + uint8_t tx_index; + uint32_t id; + uint32_t fc_id; + uint32_t fc_id_mask; + uint8_t stMin; + uint8_t blockSize; + uint8_t flowControlExtendedAddress; + uint8_t extendedAddress; + uint16_t fs_timeout; + uint16_t fs_wait; + uint8_t* data; + uint32_t num_bytes; + uint8_t tx_dl; + union + { + struct { - 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; + 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; typedef struct _stCM_ISO157652_RxMessage { - uint16_t vs_netid; - uint8_t padding; - uint32_t id; - uint32_t id_mask; - uint32_t fc_id; - uint8_t flowControlExtendedAddress; - uint8_t extendedAddress; - uint8_t blockSize; - uint8_t stMin; - uint16_t cf_timeout; - union + uint16_t vs_netid; + uint8_t padding; + uint32_t id; + uint32_t id_mask; + uint32_t fc_id; + uint8_t flowControlExtendedAddress; + uint8_t extendedAddress; + uint8_t blockSize; + uint8_t stMin; + uint16_t cf_timeout; + union + { + struct { - 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 iscanFD : 1; - unsigned isBRSEnabled : 1; - }; - uint32_t flags; + 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 iscanFD : 1; + unsigned isBRSEnabled : 1; }; - uint8_t reserved[16]; + uint32_t flags; + }; + uint8_t reserved[16]; } stCM_ISO157652_RxMessage; #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; + 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; typedef int16_t descIdType; 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 + 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 { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; + uint32_t StatusBitField3; + uint32_t StatusBitField4; }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + 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 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 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; - }; + uint32_t StatusBitField3; + uint32_t StatusBitField4; }; - uint8_t Data[8]; - union + uint8_t AckBytes[8]; + struct { - 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; - }; + 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]; + }; + 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 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 ArbIDOrHeader; - struct - { - uint32_t RegAddr : 16; - uint32_t PhyAddr : 5; - uint32_t DevType : 5; - uint32_t : 6; - }; + uint32_t RegAddr : 16; + uint32_t PhyAddr : 5; + uint32_t DevType : 5; + uint32_t : 6; }; - uint8_t Data[8]; - union + }; + uint8_t Data[8]; + union + { + struct { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; + uint32_t StatusBitField3; + uint32_t StatusBitField4; }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + uint8_t AckBytes[8]; + }; + void* ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageMdio; 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 + 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 { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; + uint32_t StatusBitField3; + uint32_t StatusBitField4; }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + uint8_t AckBytes[8]; + }; + void* ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageLong; 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 + 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 { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; + uint32_t StatusBitField3; + uint32_t StatusBitField4; }; - void* ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + uint8_t AckBytes[8]; + }; + void* ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageJ1850; 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 + 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 { - struct - { - uint32_t StatusBitField3; - uint32_t StatusBitField4; - }; - uint8_t AckBytes[8]; + uint32_t StatusBitField3; + uint32_t StatusBitField4; }; - uint32_t ExtraDataPtr; - uint8_t MiscData; - uint8_t Reserved[3]; + uint8_t AckBytes[8]; + }; + uint32_t ExtraDataPtr; + uint8_t MiscData; + uint8_t Reserved[3]; } icsSpyMessageVSB; #pragma pack(push) #pragma pack(1) typedef struct _ethernetNetworkStatus_t { - uint16_t networkId; - uint8_t linkStatus; - uint8_t linkFullDuplex; - uint8_t linkSpeed; - uint8_t linkMode; + uint16_t networkId; + uint8_t linkStatus; + uint8_t linkFullDuplex; + uint8_t linkSpeed; + uint8_t linkMode; } ethernetNetworkStatus_t; #pragma pack(pop) typedef struct { - uint8_t backupPowerGood; - uint8_t backupPowerEnabled; - uint8_t usbHostPowerEnabled; - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; + 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; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus; + uint8_t unused; } icsFire2VnetDeviceStatus; typedef struct { - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus; + uint8_t unused; } icsVcan4DeviceStatus; typedef struct { - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus; - uint8_t unused; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus; + uint8_t unused; } icsFlexVnetzDeviceStatus; typedef struct { - uint8_t ethernetActivationLineEnabled; - ethernetNetworkStatus_t ethernetStatus[3]; - uint8_t ethernetActivationLineEnabled_2; + uint8_t ethernetActivationLineEnabled; + ethernetNetworkStatus_t ethernetStatus[3]; + uint8_t ethernetActivationLineEnabled_2; } icsFire3DeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[4]; + ethernetNetworkStatus_t ethernetStatus[4]; } icsRadMoonDuoDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[8 - 1]; + ethernetNetworkStatus_t ethernetStatus[8 - 1]; } icsRadJupiterDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + ethernetNetworkStatus_t ethernetStatus; } icsOBD2ProDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[4]; + ethernetNetworkStatus_t ethernetStatus[4]; } icsRadPlutoDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + ethernetNetworkStatus_t ethernetStatus; } icsVcan4IndustrialDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus[9]; + ethernetNetworkStatus_t ethernetStatus[9]; } icsRadEpsilonDeviceStatus; typedef struct { - ethernetNetworkStatus_t ethernetStatus; + 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; + 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]; - char szDeviceName[64]; - unsigned long Status; - unsigned char bMAC_Address[6]; - unsigned char bIPV6_Address[16]; - unsigned char bIPV4_Address[4]; - unsigned long EthernetPinConfig; + char szName[128]; + char szDeviceName[64]; + unsigned long Status; + unsigned char bMAC_Address[6]; + unsigned char bIPV6_Address[16]; + unsigned char bIPV4_Address[4]; + unsigned long EthernetPinConfig; } NDIS_ADAPTER_INFORMATION; typedef struct SPhyRegPktHdr { - uint16_t numEntries; - uint8_t version; - uint8_t entryBytes; + uint16_t numEntries; + uint8_t version; + uint8_t entryBytes; } PhyRegPktHdr_t; typedef struct SPhyRegPktClause22Mess { - uint8_t phyAddr; - uint8_t page; - uint16_t regAddr; - uint16_t regVal; + uint8_t phyAddr; + uint8_t page; + uint16_t regAddr; + uint16_t regVal; } PhyRegPktClause22Mess_t; typedef struct SPhyRegPktClause45Mess { - uint8_t port; - uint8_t device; - uint16_t regAddr; - uint16_t regVal; + uint8_t port; + uint8_t device; + uint16_t regAddr; + uint16_t regVal; } PhyRegPktClause45Mess_t; 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 + 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 + 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 + union + { + struct { - PhyRegPktClause22Mess_t clause22; - PhyRegPktClause45Mess_t clause45; + 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, - NUM_VALID_DEVICE_FEATURES, - supportedFeatureMax = 0xFFFF, + networkDWCAN01, + networkDWCAN02, + networkDWCAN03, + networkDWCAN04, + networkDWCAN05, + networkDWCAN06, + networkDWCAN07, + networkDWCAN08, + networkTerminationDWCAN01, + networkTerminationDWCAN02, + networkTerminationDWCAN03, + networkTerminationDWCAN04, + networkTerminationDWCAN05, + networkTerminationDWCAN06, + networkTerminationDWCAN07, + networkTerminationDWCAN08, + enhancedFlashDriver, + 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, + 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; enum { - assert_line_5350 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_5350 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_5351 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_5351 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_5352 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_5352 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_5353 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_5353 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_5354 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_5354 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_5355 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_5355 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_5356 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_5356 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_5357 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_5357 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_5358 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_5358 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_5359 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_5359 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_5360 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_5360 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_5361 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_5361 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_5362 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_5362 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_5363 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_5363 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_5364 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_5364 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_5365 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_5365 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_5366 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_5366 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_5367 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) + assert_line_5367 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) }; ; enum { - assert_line_5368 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_5368 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_5369 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_5369 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_5370 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_5370 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_5371 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_5371 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_5372 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_5372 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_5373 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_5373 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_5374 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_5374 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_5375 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_5375 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_5376 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_5376 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_5377 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_5377 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_5378 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_5378 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_5379 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_5379 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_5380 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_5380 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_5381 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_5381 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_5382 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_5382 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_5383 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_5383 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_5384 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_5384 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_5385 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) + assert_line_5385 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) }; ; enum { - assert_line_5386 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) + assert_line_5386 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) }; ; enum { - assert_line_5387 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_5387 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_5388 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_5388 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_5389 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1472) + 6))) + assert_line_5389 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1472) + 6))) }; ; enum { - assert_line_5390 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_5390 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_5391 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_5391 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_5392 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_5392 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_5393 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_5393 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_5394 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_5394 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_5395 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_5395 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_5396 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_5396 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_5397 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_5397 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_5398 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_5398 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_5399 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_5399 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_5400 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) + assert_line_5400 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) }; ; enum { - assert_line_5401 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) + assert_line_5401 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) }; ; enum { - assert_line_5402 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) + assert_line_5402 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) }; ; enum { - assert_line_5403 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) + assert_line_5403 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) }; ; enum { - assert_line_5404 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_5404 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_5405 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_5405 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_5406 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_5406 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_5407 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_5407 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_5408 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_5408 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_5409 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5409 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5410 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_5410 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_5411 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_5411 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_5412 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_5412 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_5413 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_5413 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_5414 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_5414 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_5415 = 1 / (int)(!!(sizeof(SFire3Settings) == (1472))) + assert_line_5415 = 1 / (int)(!!(sizeof(SFire3Settings) == (1472))) }; ; enum { - assert_line_5416 = 1 / (int)(!!(sizeof(SRed2Settings) == (668))) + assert_line_5416 = 1 / (int)(!!(sizeof(SRed2Settings) == (668))) }; ; enum { - assert_line_5417 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_5417 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_5418 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) + assert_line_5418 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) }; ; enum { - assert_line_5419 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_5419 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_5420 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) + assert_line_5420 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) }; ; enum { - assert_line_5421 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_5421 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_5422 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) + assert_line_5422 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) }; ; enum { - assert_line_5423 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) + assert_line_5423 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) }; ; enum { - assert_line_5424 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1122))) + assert_line_5424 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1122))) }; ; enum { - assert_line_5425 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5425 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5426 = 1 / (int)(!!(sizeof(SRADCometSettings) == 456)) + assert_line_5426 = 1 / (int)(!!(sizeof(SRADCometSettings) == 456)) }; ; From 69dcd401a72aa95cfb504d12bf38f5d7aa4f0a30 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 29 Jun 2023 09:18:56 -0400 Subject: [PATCH 101/201] Updated libicsneo hash to fix CANFD length issue. #150 Signed-off-by: David Rebbe --- build_libicsneo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 0f1e92150..89f58caf2 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -4,7 +4,7 @@ import shutil import sys -LIBICSNEO_COMMIT = '5b3e21fa7ca8dfa2c61105d8f36a0638eb177dca' +LIBICSNEO_COMMIT = '9ef93eb73e1ada72ccc7a571744b9db1a564f18b' LIBUSB_COMMIT = '4239bc3a50014b8e6a5a2a59df1fff3b7469543b' CPUS = str(multiprocessing.cpu_count()) From 47a846441f54d080a34abafeab438b32fbb6694b Mon Sep 17 00:00:00 2001 From: FairosAws <118416535+FairosAws@users.noreply.github.com> Date: Tue, 11 Jul 2023 14:53:10 -0400 Subject: [PATCH 102/201] RAD-Moon3: Phy support (v913) (#142) * rm3 phy api support * Update methods.cpp Changing uinit to init * Updated get_phy_firmware_version against comments made in PR #142. Signed-off-by: David Rebbe * updated formatting. Signed-off-by: David Rebbe * more formatting fixes. Signed-off-by: David Rebbe * updated flash_phy_firmware and updated documentation * updated functions to match --------- Signed-off-by: David Rebbe Co-authored-by: David Rebbe --- doc/source/index.rst | 8 +- include/methods.h | 96 +++++++++++++++++----- src/methods.cpp | 191 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 272 insertions(+), 23 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index b73e81919..a0f16dea0 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -41,6 +41,7 @@ Module Functions ics.enable_network_com ics.find_devices ics.firmware_update_required + ics.flash_phy_firmware ics.force_firmware_update ics.generic_api_get_status ics.generic_api_read_data @@ -64,6 +65,7 @@ Module Functions ics.get_messages ics.get_pcb_serial_number ics.get_performance_parameters + ics.get_phy_firmware_version ics.get_rtc ics.get_script_status ics.get_serial_number @@ -107,6 +109,7 @@ Module Functions ics.EnableNetworkCom ics.FindNeoDevices ics.FirmwareUpdateRequired + ics.FlashPhyFirmware ics.ForceFirmwareUpdate ics.GenericAPIGetStatus ics.GenericAPIReadData @@ -127,6 +130,7 @@ Module Functions ics.GetMessages ics.GetPCBSerialNumber ics.GetPerformanceParameters + ics.GetPhyFwVersion ics.GetRTC ics.GetSerialNumber ics.GetTimeStampForMsg @@ -184,6 +188,7 @@ Module Functions ics.icsneoEnableNetworkCom ics.icsneoFindNeoDevices ics.icsneoFirmwareUpdateRequired + ics.icsneoFlashPhyFirmware ics.icsneoForceFirmwareUpdate ics.icsneoGenericAPIGetStatus ics.icsneoGenericAPIReadData @@ -204,6 +209,7 @@ Module Functions ics.icsneoGetMessages ics.icsneoGetPCBSerialNumber ics.icsneoGetPerformanceParameters + ics.icsneoGetPhyFwVersion ics.icsneoGetRTC ics.icsneoGetSerialNumber ics.icsneoGetTimeStampForMsg @@ -1074,7 +1080,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Jun 28 2023 15:31:51 + :annotation: = Jun 28 2023 16:13:59 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 diff --git a/include/methods.h b/include/methods.h index 339e59fbc..3dee305f1 100644 --- a/include/methods.h +++ b/include/methods.h @@ -99,6 +99,8 @@ extern "C" PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); PyObject* meth_get_gptp_status(PyObject* self, PyObject* args); // icsneoGetGPTPStatus PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args); // icsneoGetAllChipVersions + PyObject* meth_flash_phy_firmware(PyObject* self, PyObject* args); + PyObject* meth_get_phy_firmware_version(PyObject* self, PyObject* args); #ifdef _cplusplus } @@ -437,24 +439,24 @@ extern "C" //_DOC_SET_REFLASH_DISPLAY_CALLBACKS), "icsneoSetReflashCallback(), pass a python function func(msg, progress)" #define _DOC_SET_REFLASH_CALLBACK \ MODULE_NAME \ - ".set_reflash_callback(callback)\n" \ - "\n" \ - "Sets the reflash display callback.\n" \ - "\n" \ - "Args:\n" \ - "\tcallback (:class:`function`): Must be a callable Python function (`def callback(msg, progress)`)\n\n" \ - "\n" \ - "Raises:\n" \ - "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ - "\n" \ - "Returns:\n" \ - "\tNone.\n" \ - "\n" \ - "\t>>> def callback(msg, progress):\n" \ - "\t... print(msg, progress)\n" \ - "\t...\n" \ - "\t>>> ics.set_reflash_callback(callback)\n" \ - "\t>>> \n" + ".set_reflash_callback(callback)\n" \ + "\n" \ + "Sets the reflash display callback.\n" \ + "\n" \ + "Args:\n" \ + "\tcallback (:class:`function`): Must be a callable Python function (`def callback(msg, progress)`)\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone.\n" \ + "\n" \ + "\t>>> def callback(msg, progress):\n" \ + "\t... print(msg, progress)\n" \ + "\t...\n" \ + "\t>>> ics.set_reflash_callback(callback)\n" \ + "\t>>> \n" #define _DOC_GET_DEVICE_SETTINGS \ MODULE_NAME \ @@ -1870,6 +1872,48 @@ extern "C" "(:class:`ics.structures.st_chip_versions.st_chip_versions`)\n\n" \ "\n" +#define _DOC_FLASH_PHY_FIRMWARE \ + MODULE_NAME ".flash_phy_firmware(device, data, phy_index[, check_success])\n" \ + "\n" \ + "Flashes PHY Firmware. If not sure, don't use this method\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tdata (:class:`bytes`): :class:`bytes`: data of the firmware binary.\n\n" \ + "\n" \ + "\tphy_index (:class:`int`): :class:`int`: phy Index enum.\n\n" \ + "\n" \ + "\tcheck_success (:class:`bool`): :class:`bool`: Optional, raises an exception if not successful \n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + +#define _DOC_GET_PHY_FIRMWARE_VERSION \ + MODULE_NAME ".get_phy_firmware_version(device, phy_index[, check_success])\n" \ + "\n" \ + "Gets PHY Firmware version. If not sure, don't use this method\n" \ + "\n" \ + "Args:\n" \ + "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ + "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\n" \ + "\tphy_index (:class:`int`): :class:`int`: phy Index enum.\n\n" \ + "\n" \ + "\tcheck_success (:class:`bool`): :class:`bool`: Optional, raises an exception if not successful \n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + static PyMethodDef IcsMethods[] = { _EZ_ICS_STRUCT_METHOD("find_devices", "icsneoFindNeoDevices", @@ -1978,7 +2022,8 @@ static PyMethodDef IcsMethods[] = { 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 + //_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."), @@ -2366,6 +2411,19 @@ static PyMethodDef IcsMethods[] = { METH_VARARGS, _DOC_GET_ALL_CHIP_VERSIONS), + _EZ_ICS_STRUCT_METHOD("flash_phy_firmware", + "icsneoFlashPhyFirmware", + "FlashPhyFirmware", + meth_flash_phy_firmware, + METH_VARARGS, + _DOC_FLASH_PHY_FIRMWARE), + _EZ_ICS_STRUCT_METHOD("get_phy_firmware_version", + "icsneoGetPhyFwVersion", + "GetPhyFwVersion", + meth_get_phy_firmware_version, + METH_VARARGS, + _DOC_GET_PHY_FIRMWARE_VERSION), + { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, diff --git a/src/methods.cpp b/src/methods.cpp index 84a6ce0a1..25af4e759 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -137,7 +137,7 @@ char* neodevice_to_string(unsigned long type) return "neoVI RED"; case NEODEVICE_ECU: return "neoECU"; - case NEODEVICE_IEVB: //also NEODEVICE_NEOECUCHIP + case NEODEVICE_IEVB: // also NEODEVICE_NEOECUCHIP return "IEVB"; case NEODEVICE_PENDANT: return "Pendant"; @@ -145,13 +145,13 @@ char* neodevice_to_string(unsigned long type) return "neoOBD2 PRO"; case NEODEVICE_ECUCHIP_UART: return "ECUCHIP"; - case NEODEVICE_PLASMA: //also NEODEVICE_ANY_PLASMA + 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 + case NEODEVICE_ION: // also NEODEVICE_ANY_ION return "neoVI ION"; case NEODEVICE_RADSTAR: return "RAD-Star"; @@ -3272,6 +3272,191 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "This is a bug!"); } +PyObject* meth_flash_phy_firmware(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + char phy_indx = 0; + PyObject* bytes_obj = NULL; + bool check_success = true; + if (!PyArg_ParseTuple(args, arg_parse("OiO|b:", __FUNCTION__), &obj, &phy_indx, &bytes_obj, &check_success)) { + return NULL; + } + + if (!PyBytes_CheckExact(bytes_obj)) { + return set_ics_exception(exception_runtime_error(), "Argument must be of Bytes type "); + } + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + // Convert the object to a bytes object + PyObject* bytes = PyBytes_FromObject(bytes_obj); + // Grab the byte size + Py_ssize_t bsize = PyBytes_Size(bytes); + // Grab the data out of the bytes + unsigned char* bytes_str = (unsigned char*)PyBytes_AsString(bytes); + if (!bytes_str) + 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 function_error = (int)PhyOperationError; + // int __stdcall icsneoFlashPhyFirmware(void* hObject, unsigned char phyIndx, unsigned char* fileData, size_t + // fileDataSize, int* errorCode) + ice::Function icsneoFlashPhyFirmware( + lib, "icsneoFlashPhyFirmware"); + Py_BEGIN_ALLOW_THREADS; + if (!icsneoFlashPhyFirmware(handle, phy_indx, bytes_str, bsize, &function_error)) { + Py_BLOCK_THREADS; + return set_ics_exception(exception_runtime_error(), "icsneoFlashPhyFirmware() Failed"); + } + // check the return value to make sure we are good + if (check_success && function_error != PhyOperationSuccess) { + std::stringstream ss; + ss << "icsneoFlashPhyFirmware() Failed with error code: " << function_error << " ("; + switch (function_error) { + case PhyOperationError: + ss << "PhyOperationError"; + break; + case PhyOperationSuccess: + ss << "PhyOperationSuccess"; + break; + case PhyFlashingInitError: + ss << "PhyFlashingInitError"; + break; + case PhyFlashingEraseError: + ss << "PhyFlashingEraseError"; + break; + case PhyFlashingWriteError: + ss << "PhyFlashingWriteError"; + break; + case PhyFlashingReadError: + ss << "PhyFlashingReadError"; + break; + case PhyFlashingVerifyError: + ss << "PhyFlashingVerifyError"; + break; + case PhyFlashingDeinitError: + ss << "PhyFlashingDeinitError"; + break; + case PhyFlashingInvalidHardware: + ss << "PhyFlashingInvalidHardware"; + break; + case PhyFlashingInvalidDataFile: + ss << "PhyFlashingInvalidDataFile"; + break; + case PhyGetVersionError: + ss << "PhyGetVersionError"; + break; + case PhyIndexError: + ss << "PhyIndexError"; + break; + default: + ss << "Unknown"; + break; + }; + ss << ")"; + return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); + } + Py_END_ALLOW_THREADS; + return Py_BuildValue("i", function_error); + + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} + +PyObject* meth_get_phy_firmware_version(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + char phy_indx = 0; + bool check_success = true; + if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &phy_indx, &check_success)) { + return NULL; + } + + if (!PyNeoDevice_CheckExact(obj)) { + return set_ics_exception(exception_runtime_error(), + "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + } + ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + + 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 icsneoGetPhyFwVersion(void* hObject, unsigned char phyIndx, unsigned int* phyFwVers, int* + // errorCode) + ice::Function icsneoGetPhyFwVersion( + lib, "icsneoGetPhyFwVersion"); + + unsigned int phy_version = 0; + int function_error = 0; + Py_BEGIN_ALLOW_THREADS; + if (!icsneoGetPhyFwVersion(handle, phy_indx, &phy_version, &function_error)) { + Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGetPhyFwVersion() Failed"); + } + Py_END_ALLOW_THREADS; + // check the return value to make sure we are good + if (check_success && function_error != PhyOperationSuccess) { + std::stringstream ss; + ss << "icsneoGetPhyFwVersion() Failed with error code: " << function_error << " ("; + switch (function_error) { + case PhyOperationError: + ss << "PhyOperationError"; + break; + case PhyOperationSuccess: + ss << "PhyOperationSuccess"; + break; + case PhyFlashingInitError: + ss << "PhyFlashingInitError"; + break; + case PhyFlashingEraseError: + ss << "PhyFlashingEraseError"; + break; + case PhyFlashingWriteError: + ss << "PhyFlashingWriteError"; + break; + case PhyFlashingReadError: + ss << "PhyFlashingReadError"; + break; + case PhyFlashingVerifyError: + ss << "PhyFlashingVerifyError"; + break; + case PhyFlashingDeinitError: + ss << "PhyFlashingDeinitError"; + break; + case PhyFlashingInvalidHardware: + ss << "PhyFlashingInvalidHardware"; + break; + case PhyFlashingInvalidDataFile: + ss << "PhyFlashingInvalidDataFile"; + break; + case PhyGetVersionError: + ss << "PhyGetVersionError"; + break; + case PhyIndexError: + ss << "PhyIndexError"; + break; + default: + ss << "Unknown"; + break; + }; + ss << ")"; + return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); + } + return Py_BuildValue("Ii", phy_version, function_error); + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} + PyObject* meth_override_library_name(PyObject* self, PyObject* args) { const char* name = NULL; From f0cb5ead51a7d98c00fbc02248ede9f6bc110e30 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 15 Aug 2023 12:39:47 -0400 Subject: [PATCH 103/201] updated ice and fixed compiler warnings --- .gitmodules | 3 + include/ice/ice.h | 9 --- include/ice/ice_exception.h | 31 --------- include/ice/ice_function.h | 81 --------------------- include/ice/ice_library.h | 44 ------------ include/ice/ice_library_manager.h | 33 --------- include/object_spy_message.h | 6 +- setup.py | 22 +++--- src/dll.cpp | 68 +++++------------- src/exceptions.cpp | 4 +- src/ice | 1 + src/ice/ice_library.cpp | 112 ------------------------------ src/ice/ice_library_manager.cpp | 53 -------------- src/main.cpp | 33 ++++----- src/methods.cpp | 12 ++-- 15 files changed, 60 insertions(+), 452 deletions(-) create mode 100644 .gitmodules delete mode 100644 include/ice/ice.h delete mode 100644 include/ice/ice_exception.h delete mode 100644 include/ice/ice_function.h delete mode 100644 include/ice/ice_library.h delete mode 100644 include/ice/ice_library_manager.h create mode 160000 src/ice delete mode 100644 src/ice/ice_library.cpp delete mode 100644 src/ice/ice_library_manager.cpp diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..29d672410 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/ice"] + path = src/ice + url = git@github.com:ic3man5/ice.git diff --git a/include/ice/ice.h b/include/ice/ice.h deleted file mode 100644 index 101448dd4..000000000 --- a/include/ice/ice.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef __ICE_H__ -#define __ICE_H__ - -#include "ice_exception.h" -#include "ice_function.h" -#include "ice_library.h" -#include "ice_library_manager.h" - -#endif // __ICE_H__ \ No newline at end of file diff --git a/include/ice/ice_exception.h b/include/ice/ice_exception.h deleted file mode 100644 index 170c825a5..000000000 --- a/include/ice/ice_exception.h +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Ice multiplatform dynamic library loader. - * - * @copyright 2011 David Rebbe - */ - -#ifndef __ICE_EXCEPTION_H__ -#define __ICE_EXCEPTION_H__ - -#include -#include - -namespace ice -{ -class Exception; -}; - -class ice::Exception : std::exception -{ - const std::string m_msg; -public: - Exception(const std::string msg) - : m_msg(msg) {} - ~Exception() throw() {} - const char* what() const throw() - { return this->m_msg.c_str(); } - std::string const whatString() const - { return this->m_msg; } -}; - -#endif // ice_exception.h diff --git a/include/ice/ice_function.h b/include/ice/ice_function.h deleted file mode 100644 index a649e249d..000000000 --- a/include/ice/ice_function.h +++ /dev/null @@ -1,81 +0,0 @@ -/** - * Ice multiplatform dynamic library loader. - * - * @copyright 2011 David Rebbe - */ - -#ifndef __ICE_FUNCTIONS_H__ -#define __ICE_FUNCTIONS_H__ - -#include "ice_library.h" -#include "ice_exception.h" -#include -#include - -namespace ice -{ -template -class Function; -} - -template -class ice::Function -{ - ice::Library* m_lib; - -public: - Function(ice::Library* library, std::string name) - : m_name(name) - { - m_lib = library; - if (library == NULL) - { - std::stringstream ss; - ss << "Library is NULL, can't call function: '" << - name << "'"; - throw ice::Exception(ss.str()); - } -#if (defined(_WIN32) || defined(__WIN32__)) - m_func = reinterpret_cast( - GetProcAddress(library->_library(), name.c_str())); - if (m_func == NULL) - { - std::stringstream err; - err << "Failed to Retrieve address of function '" << name << - "': Windows Error #" << GetLastError() << " for library '" << - library->name() << "'"; - throw ice::Exception(err.str()); - } -#else - m_func = reinterpret_cast( - dlsym(library->_library(), name.c_str())); - if (m_func == NULL) - { - std::stringstream err; - err << "Failed to Retrieve address of function '" << name << - "': " << dlerror() << " for library '" << - library->name() << "'"; - throw ice::Exception(err.str()); - } -#endif - } - operator Signature *() const - { - if (m_func == NULL) - { - std::stringstream ss; - ss << "Function address '" << m_name + "' isn't resolved for library: '" << - m_lib->name() << "'"; - throw ice::Exception(ss.str()); - } - return m_func; - } - bool isValid() const { return m_func != NULL; } - std::string name() const { return m_name; } - -protected: - Signature* m_func; - const std::string m_name; -}; - -#endif // ice_function.h diff --git a/include/ice/ice_library.h b/include/ice/ice_library.h deleted file mode 100644 index dc5efb3df..000000000 --- a/include/ice/ice_library.h +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Ice multiplatform dynamic library loader. - * - * @copyright 2011 David Rebbe - */ - -#ifndef __ICE_LIBRARY_H__ -#define __ICE_LIBRARY_H__ - -#if (defined(_WIN32) || defined(__WIN32__)) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#define VC_EXTRALEAN -#endif // WIN32_LEAN_AND_MEAN -#include -#else -#include -#define HMODULE void* -#endif - -#include - -namespace ice -{ -class Library; -}; - -class ice::Library -{ - HMODULE m_lib; - std::string m_name; - -public: - Library(std::string name); - ~Library(); - bool isLoaded() const; - std::string name() const { return m_name; } - - std::string getPath(bool* okay=NULL); - - HMODULE const& _library() const; -}; - -#endif // ice_library.h diff --git a/include/ice/ice_library_manager.h b/include/ice/ice_library_manager.h deleted file mode 100644 index 39230c68d..000000000 --- a/include/ice/ice_library_manager.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef __ICE_LIBRARY_MANAGER_H__ -#define __ICE_LIBRARY_MANAGER_H__ - -#include "ice_library.h" -#include -#include -#include - -namespace ice -{ - class LibraryManager; -}; - -class ice::LibraryManager -{ -public: - LibraryManager(); - ~LibraryManager(); - - void add(std::string name, std::string path); - void remove(std::string name); - void remove(ice::Library& library); - - std::vector getLibraryNames() const; - - ice::Library& operator[](std::string name); - -private: - typedef std::map Libraries; - Libraries m_libs; -}; - -#endif // __ICE_LIBRARY_MANAGER_H__ \ No newline at end of file diff --git a/include/object_spy_message.h b/include/object_spy_message.h index 3e3f11190..ed83b64b5 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -220,7 +220,7 @@ static void spy_message_object_dealloc(spy_message_object* self) 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[] self->msg.ExtraDataPtr; + delete[] (unsigned char*)self->msg.ExtraDataPtr; self->msg.ExtraDataPtr = NULL; self->msg.ExtraDataPtrEnabled = 0; } @@ -383,7 +383,7 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val // 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[] obj->msg.ExtraDataPtr; + 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) { @@ -407,7 +407,7 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val 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[] obj->msg.ExtraDataPtr; + 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; diff --git a/setup.py b/setup.py index 729d102a7..04e858ea3 100644 --- a/setup.py +++ b/setup.py @@ -67,13 +67,19 @@ def run(self): build_module.build.run(self) -home_path = os.path.expanduser('~') -# Grab all the source files -source_files = [] -for root, dirs, files in os.walk('src'): - for file in files: - if file.endswith('.cpp') or file.endswith('.c'): - source_files.append(os.path.join(root, file)) +source_files = [ + 'src/object_spy_message.cpp', + 'src/defines.cpp', + 'src/exceptions.cpp', + 'src/dll.cpp', + 'src/setup_module_auto_defines.cpp', + 'src/main.cpp', + 'src/object_neo_device.cpp', + 'src/methods.cpp', + 'src/ice/src/ice_library_manager.cpp', + 'src/ice/src/ice_library_name.cpp', + 'src/ice/src/ice_library.cpp' +] # Set compiler flags here if 'LINUX' in platform.system().upper() or "MSC" not in sys.version: @@ -103,7 +109,7 @@ def read(fname): define_macros=[('MAJOR_VERSION', MAJOR_VERSION), ('MINOR_VERSION', MINOR_VERSION), ('EXTERNAL_PROJECT', 1)], - include_dirs=['include', 'include/ics', 'include/ice'], + include_dirs=['include', 'include/ics', 'src/ice/include', 'src/ice/include/ice'], libraries=[], library_dirs=['/usr/local/lib'], sources=source_files, extra_compile_args=compile_args) diff --git a/src/dll.cpp b/src/dll.cpp index fc7a0ccda..c0e71f1ed 100644 --- a/src/dll.cpp +++ b/src/dll.cpp @@ -1,68 +1,32 @@ #include "dll.h" +#include #include -ice::Library* LIBRARY = NULL; -char ERROR_MESSAGE[512]; - -bool __initialize(char* name) -{ - if (dll_is_initialized()) { - return true; - } - try { - memset(ERROR_MESSAGE, '\0', sizeof(ERROR_MESSAGE) / sizeof(ERROR_MESSAGE[0])); - if (!name) { -#if (defined(_WIN32) || defined(__WIN32__)) - LIBRARY = new ice::Library("icsneo40.dll"); -#elif (defined(__APPLE__)) - LIBRARY = new ice::Library("@loader_path/libicsneolegacy.dylib"); -#else - LIBRARY = new ice::Library("${ORIGIN}/libicsneolegacy.so"); -#endif - } else { - LIBRARY = new ice::Library(name); - } - } catch (ice::Exception& ex) { - strncpy(ERROR_MESSAGE, ex.whatString().c_str(), sizeof(ERROR_MESSAGE) / sizeof(ERROR_MESSAGE[0])); - ERROR_MESSAGE[sizeof(ERROR_MESSAGE) / sizeof(ERROR_MESSAGE[0]) - 1] = '\0'; - return false; - } - return true; -} - -bool dll_initialize(char* name) -{ - return __initialize(name); -} - -bool dll_is_initialized(void) -{ - return LIBRARY != NULL; -} - -void dll_uninitialize(void) -{ - if (!dll_is_initialized()) { - return; - } - delete LIBRARY; - LIBRARY = NULL; -} bool dll_reinitialize(char* name) { - dll_uninitialize(); - return dll_initialize(name); + auto& mgr = ice::LibraryManager::instance(); + mgr.add("ics", name, false, true); + + return mgr.exists("ics"); } char* dll_get_error(char* error_msg) { - strcpy(error_msg, ERROR_MESSAGE); + auto& mgr = ice::LibraryManager::instance(); + if (!mgr.exists("ics")) { + strcpy(error_msg, "Critical Error: Library isn't loaded!"); + return error_msg; + } + strcpy(error_msg, mgr["ics"]->getLastError().c_str()); return error_msg; } ice::Library* dll_get_library(void) { - dll_initialize(); - return LIBRARY; + auto& mgr = ice::LibraryManager::instance(); + if (!mgr.exists("ics")) { + return nullptr; + } + return mgr["ics"]; } diff --git a/src/exceptions.cpp b/src/exceptions.cpp index 50ce57adb..bfefb9a8d 100644 --- a/src/exceptions.cpp +++ b/src/exceptions.cpp @@ -61,7 +61,7 @@ PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_na { std::stringstream ss; std::string function = std::string(func_name); - int loc = function.find("meth_"); + auto loc = function.find("meth_"); if (loc != std::string::npos) { function.erase(loc, 5); } @@ -78,7 +78,7 @@ PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, { std::stringstream ss; std::string function = std::string(func_name); - int loc = function.find("meth_"); + auto loc = function.find("meth_"); if (loc != std::string::npos) { function.erase(loc, 5); } diff --git a/src/ice b/src/ice new file mode 160000 index 000000000..39cb1173d --- /dev/null +++ b/src/ice @@ -0,0 +1 @@ +Subproject commit 39cb1173dbfc08f0a2c742b20cc4217ed38b0651 diff --git a/src/ice/ice_library.cpp b/src/ice/ice_library.cpp deleted file mode 100644 index 925e4ca3c..000000000 --- a/src/ice/ice_library.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Ice multiplatform dynamic library loader. - * - * @copyright 2011 David Rebbe - */ - -#include "ice_library.h" -#include "ice_exception.h" -#include - -using namespace ice; - -Library::Library(std::string name) -{ - m_name = name; -#if (defined(_WIN32) || defined(__WIN32__)) -#ifdef UNICODE - int len = MultiByteToWideChar(CP_UTF8, 0, name.c_str(), -1, NULL, 0); - if (len) - { - wchar_t* n = new wchar_t[len]; - MultiByteToWideChar(CP_UTF8, 0, name.c_str(), -1, n, len); - m_lib = LoadLibrary(n); - delete[] n; - } else m_lib = NULL; -#else - m_lib = LoadLibrary(name.c_str()); -#endif // UNICODE - if (m_lib == NULL) - { - DWORD error = GetLastError(); - std::stringstream err; - err << "Failed to open library: '" << name << - "' with error code: #" << error; - throw Exception(err.str()); - } -#else - m_lib = dlopen(name.c_str(), RTLD_NOW); - if (m_lib == NULL) - { - std::stringstream err; - err << "Failed to open library '" << name << - "': " << dlerror(); - throw Exception(err.str()); - } -#endif -} - -Library::~Library() -{ - if (this->isLoaded()) - { -#if (defined(_WIN32) || defined(__WIN32__)) - FreeLibrary(m_lib); -#else - dlclose(m_lib); -#endif - } -} - -bool Library::isLoaded() const -{ - return m_lib != NULL; -} - -std::string Library::getPath(bool* okay) -{ - if (okay) - *okay = false; - if (!isLoaded()) - return m_name; -#if (defined(_WIN32) || defined(__WIN32__)) - TCHAR buffer[MAX_PATH] = {0}; - int len = GetModuleFileName(m_lib, buffer, MAX_PATH); - if (!len) - { - DWORD error = GetLastError(); - std::stringstream err; - err << "Failed to get Library path: '" << m_name << - "' with error code: #" << error; - throw Exception(err.str()); - } -#ifdef UNICODE - int length = WideCharToMultiByte(CP_UTF8, 0, buffer, -1, NULL, 0, NULL, NULL); - if (length) - { - char* temp = new char[MAX_PATH]; - WideCharToMultiByte(CP_UTF8, 0, buffer, -1, temp, length, NULL, NULL); - std::stringstream ss; - ss << temp; - if (okay) - *okay = true; - return ss.str(); - } -#else - std::stringstream ss; - ss << buffer; - if (okay) - *okay = true; - return ss.str(); -#endif // UNICODE -#else - // Linux doesn't really have a way to get the library path from the handle and - // its recommended to use absolute paths when loading with dlopen(). -#endif // WIN32 - return m_name; -} - -HMODULE const& Library::_library() const -{ - return m_lib; -} diff --git a/src/ice/ice_library_manager.cpp b/src/ice/ice_library_manager.cpp deleted file mode 100644 index 8fee9fc06..000000000 --- a/src/ice/ice_library_manager.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include "ice_library_manager.h" -#include -#include "ice_exception.h" - -using namespace ice; - -LibraryManager::LibraryManager() -{ - -} - -LibraryManager::~LibraryManager() -{ - Libraries::iterator iter = m_libs.begin(); - for (; iter != m_libs.end(); iter = m_libs.begin()) - this->remove(iter->first); -} - -void LibraryManager::add(std::string name, std::string path) -{ - m_libs[name] = new ice::Library(path); -} - -void LibraryManager::remove(std::string name) -{ - if (m_libs.find(name) == m_libs.end()) - return; - ice::Library* lib = m_libs[name]; - delete lib; - lib = NULL; - m_libs.erase(name); -} - -std::vector LibraryManager::getLibraryNames() const -{ - std::vector names; - names.reserve(m_libs.size()); - Libraries::const_iterator iter = m_libs.begin(); - for (; iter != m_libs.end(); ++iter) - names.push_back(iter->first); - return names; -} - -ice::Library& LibraryManager::operator[](std::string name) -{ - if (m_libs.find(name) == m_libs.end()) - { - std::stringstream ss; - ss << "LibraryManager Failed to retreive '" << name << "' From loaded library list!"; - throw Exception(ss.str()); - } - return *m_libs[name]; -} diff --git a/src/main.cpp b/src/main.cpp index ef6efbf7e..5b4e11d50 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,4 +1,4 @@ - +#include #include #include #include "defines.h" @@ -48,34 +48,35 @@ "\n" \ "https://pypi.python.org/pypi/python-ics\n" -#if PY_MAJOR_VERSION >= 3 static PyModuleDef IcsModule = { PyModuleDef_HEAD_INIT, MODULE_NAME, _DOC_ICS_MODULE, -1, IcsMethods, NULL, NULL, NULL, NULL }; + +void initialize_ics_library() { +#if (defined(_WIN32) || defined(__WIN32__)) + // Everything besides windows uses libicsneo + constexpr char LIBRARY_NAME[] = "icsneo40"; +#else + constexpr char LIBRARY_NAME[] = "icsneo"; #endif + auto& mgr = ice::LibraryManager::instance(); + const auto library_name = ice::LibraryName(LIBRARY_NAME); + mgr.add("ics", library_name.build(), true); +} #ifdef __cplusplus extern "C" { #endif -#if PY_MAJOR_VERSION >= 3 PyMODINIT_FUNC PyInit_ics(void) -#else -void initics(void) -#endif { -#if PY_MAJOR_VERSION >= 3 + initialize_ics_library(); + PyObject* module = PyModule_Create(&IcsModule); -#else - PyObject* module = Py_InitModule3(MODULE_NAME, IcsMethods, _DOC_ICS_MODULE); -#endif + if (!module) { -#if PY_MAJOR_VERSION >= 3 return module; -#else - return; -#endif } PyDateTime_IMPORT; @@ -89,11 +90,7 @@ void initics(void) setup_neo_device_object(module); setup_spy_message_object(module); -#if PY_MAJOR_VERSION >= 3 return module; -#else - return; -#endif } #ifdef __cplusplus diff --git a/src/methods.cpp b/src/methods.cpp index 25af4e759..6a2e6a3d5 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -461,7 +461,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) // Find the first free device for (int i = 0; i < count; ++i) { // If we are looking for a serial number, check here - if (serial_number && devices[i].neoDevice.SerialNumber != serial_number) + if (serial_number && devices[i].neoDevice.SerialNumber != (int32_t)serial_number) continue; // If we aren't using neoVI Server and already have a connection we can't proceed. if (!use_neovi_server && devices[i].neoDevice.NumberOfClients != 0) { @@ -592,7 +592,7 @@ __int64 _tm_secs_offset(tm* t1, tm* t2) __int64 r2 = _tm_secs(t2); if (r1 == -1 || r2 == -1) return result; - if (t1->tm_year != t2->tm_year || t1->tm_mon != t1->tm_mon) + if (t1->tm_year != t2->tm_year || t1->tm_mon != t2->tm_mon) return -2; if ((result = r1 - r2) < 0) result *= -1; @@ -1284,7 +1284,7 @@ static void message_reflash_callback(const wchar_t* message, unsigned long progr // We need to relock the GIL here otherwise we crash PyGILState_STATE state = PyGILState_Ensure(); if (!msg_reflash_callback) { - PySys_WriteStdout("%s -%d\n", message, progress); + 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); } else { @@ -3032,7 +3032,7 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceStatus() Failed"); } if (throw_exception_on_size_mismatch) { - if (device_status_size != device_status_buffer.len) { + if (device_status_size != (size_t)device_status_buffer.len) { Py_BLOCK_THREADS; PyBuffer_Release(&device_status_buffer); return set_ics_exception(exception_runtime_error(), "icsneoGetDeviceStatus() API mismatch detected!"); @@ -3685,7 +3685,7 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) { PyObject* obj = NULL; - unsigned int feature = NULL; + unsigned int feature = 0; bool enable = false; if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &feature)) { return NULL; @@ -3993,7 +3993,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "icsneoUartWrite() Failed"); } Py_END_ALLOW_THREADS; - if (check_size && data.len != bytesActuallySent) { + 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"); } From e7a82ab848d8d042b6eeca731127161ff33ca778 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 15 Aug 2023 16:05:41 -0400 Subject: [PATCH 104/201] fixed module paths for #153 --- .gitignore | 3 +++ include/dll.h | 4 +--- src/ice | 2 +- src/main.cpp | 2 +- src/methods.cpp | 5 ++++- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 19d160300..b637a0147 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# python virtual environment +.venv/ + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/include/dll.h b/include/dll.h index b48f5a0e7..f7c39b65c 100644 --- a/include/dll.h +++ b/include/dll.h @@ -5,9 +5,7 @@ #pragma warning(disable : 4290) #endif -#include "ice/ice_library.h" -#include "ice/ice_exception.h" -#include "ice/ice_function.h" +#include #ifdef _MSC_VER #pragma warning(default : 4290) diff --git a/src/ice b/src/ice index 39cb1173d..949596538 160000 --- a/src/ice +++ b/src/ice @@ -1 +1 @@ -Subproject commit 39cb1173dbfc08f0a2c742b20cc4217ed38b0651 +Subproject commit 94959653831607af434c71357c33494c0ea1e263 diff --git a/src/main.cpp b/src/main.cpp index 5b4e11d50..ff1211380 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -57,7 +57,7 @@ void initialize_ics_library() { // Everything besides windows uses libicsneo constexpr char LIBRARY_NAME[] = "icsneo40"; #else - constexpr char LIBRARY_NAME[] = "icsneo"; + constexpr char LIBRARY_NAME[] = "icsneolegacy"; #endif auto& mgr = ice::LibraryManager::instance(); const auto library_name = ice::LibraryName(LIBRARY_NAME); diff --git a/src/methods.cpp b/src/methods.cpp index 6a2e6a3d5..c9a90f501 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3488,7 +3488,10 @@ PyObject* meth_get_library_path(PyObject* self) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - return Py_BuildValue("s", lib->getPath().c_str()); + bool okay = false; + auto path = lib->getPath(&okay); + //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()); } From bfc97b9502180e18103bb51bd3fad82936e98624 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 15 Aug 2023 16:57:03 -0400 Subject: [PATCH 105/201] update ice to fix windows --- src/ice | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ice b/src/ice index 949596538..8297cfe21 160000 --- a/src/ice +++ b/src/ice @@ -1 +1 @@ -Subproject commit 94959653831607af434c71357c33494c0ea1e263 +Subproject commit 8297cfe21439525b1ccf6ffac9e7527f75d1b4f5 From 7f072de476c006dbc940479ace482fc2520a206a Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 10:06:07 -0400 Subject: [PATCH 106/201] fixed windows compiler error --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index ff1211380..3ffbf974e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -60,7 +60,7 @@ void initialize_ics_library() { constexpr char LIBRARY_NAME[] = "icsneolegacy"; #endif auto& mgr = ice::LibraryManager::instance(); - const auto library_name = ice::LibraryName(LIBRARY_NAME); + const auto& library_name = ice::LibraryName(LIBRARY_NAME); mgr.add("ics", library_name.build(), true); } From 96e95f1f33f7733459d36be6c720e8c810032f7b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 10:09:51 -0400 Subject: [PATCH 107/201] Fixed msvc compiler issue Signed-off-by: David Rebbe --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index ff1211380..3ffbf974e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -60,7 +60,7 @@ void initialize_ics_library() { constexpr char LIBRARY_NAME[] = "icsneolegacy"; #endif auto& mgr = ice::LibraryManager::instance(); - const auto library_name = ice::LibraryName(LIBRARY_NAME); + const auto& library_name = ice::LibraryName(LIBRARY_NAME); mgr.add("ics", library_name.build(), true); } From a5f44016a4d57d942d5f202a80d5c48d4fb77f58 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 12:49:02 -0400 Subject: [PATCH 108/201] updated to 913.16 --- ics/hiddenimports.py | 2 + ics/structures/__init__.py | 2 + ics/structures/e_supported_wil_versions.py | 18 + ics/structures/s_fire3_flexray_settings.py | 1 + ics/structures/s_fire3_settings.py | 1 + ics/structures/s_red2_settings.py | 1 + .../srad_jupiter_switch_settings.py | 2 +- ics/structures/st_chip_versions.py | 12 + ics/structures/switchw_bms_version_error.py | 21 + icsnVC40.h.enums.json | 223 +- icsnVC40.h.json | 68 +- icsnVC40_processed.h | 178 +- include/ics/icsnVC40.h | 36 +- src/setup_module_auto_defines.cpp | 2098 +++++++++-------- 14 files changed, 1455 insertions(+), 1208 deletions(-) create mode 100644 ics/structures/e_supported_wil_versions.py create mode 100644 ics/structures/switchw_bms_version_error.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index af2f392b0..fdc30f784 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -161,6 +161,8 @@ "ics.structures.s_phy_reg_pkt_clause22_mess", "ics.structures.s_phy_reg_pkt_clause45_mess", "ics.structures.s_phy_reg_pkt", + "ics.structures.e_supported_wil_versions", + "ics.structures.switchw_bms_version_error", "ics.structures.op_eth_link_mode", "ics.structures.e_disk_format", "ics.structures.e_disk_layout", diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index 602fd98b7..f0bedcdc8 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -161,6 +161,8 @@ "s_phy_reg_pkt_clause22_mess", "s_phy_reg_pkt_clause45_mess", "s_phy_reg_pkt", + "e_supported_wil_versions", + "switchw_bms_version_error", "op_eth_link_mode", "e_disk_format", "e_disk_layout", diff --git a/ics/structures/e_supported_wil_versions.py b/ics/structures/e_supported_wil_versions.py new file mode 100644 index 000000000..2608b0beb --- /dev/null +++ b/ics/structures/e_supported_wil_versions.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class e_supported_wil_versions(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + eSupportedWILVersions_WIL_1_1_0 = 1 + eSupportedWILVersions_WIL_2_0_0 = enum.auto() + + +eSupportedWILVersions = e_supported_wil_versions + diff --git a/ics/structures/s_fire3_flexray_settings.py b/ics/structures/s_fire3_flexray_settings.py index eeb0f807f..603c6d7c3 100644 --- a/ics/structures/s_fire3_flexray_settings.py +++ b/ics/structures/s_fire3_flexray_settings.py @@ -111,6 +111,7 @@ class s_fire3_flexray_settings(ctypes.Structure): ('termination_enables_2', ctypes.c_uint64), ('flex_mode', ctypes.c_uint16), ('flex_termination', ctypes.c_uint16), + ('iso_tester_pullup_enable', ctypes.c_uint16), ] diff --git a/ics/structures/s_fire3_settings.py b/ics/structures/s_fire3_settings.py index 9b63799dd..e5af9be4e 100644 --- a/ics/structures/s_fire3_settings.py +++ b/ics/structures/s_fire3_settings.py @@ -128,6 +128,7 @@ class s_fire3_settings(ctypes.Structure): ('selectable_network_2', ctypes.c_uint16), ('network_enables_2', ctypes.c_uint64), ('termination_enables_2', ctypes.c_uint64), + ('iso_tester_pullup_enable', ctypes.c_uint16), ] diff --git a/ics/structures/s_red2_settings.py b/ics/structures/s_red2_settings.py index 293d24ce2..bb0b52f1f 100644 --- a/ics/structures/s_red2_settings.py +++ b/ics/structures/s_red2_settings.py @@ -104,6 +104,7 @@ class s_red2_settings(ctypes.Structure): ('ethernet2_2', ETHERNET_SETTINGS2), ('os_settings', Fire3LinuxSettings), ('gPTP', RAD_GPTP_SETTINGS), + ('iso_tester_pullup_enable', ctypes.c_uint16), ] diff --git a/ics/structures/srad_jupiter_switch_settings.py b/ics/structures/srad_jupiter_switch_settings.py index 65c24c16a..97699f727 100644 --- a/ics/structures/srad_jupiter_switch_settings.py +++ b/ics/structures/srad_jupiter_switch_settings.py @@ -17,7 +17,7 @@ class srad_jupiter_switch_settings(ctypes.Structure): ('spoofMacFlag', ctypes.c_uint8), ('spoofedMac', ctypes.c_uint8 * 6), ('pad', ctypes.c_uint8), - ('ptpParams', JupiterPtpParams_t), + ('ptpParams_unused', JupiterPtpParams_t), ] diff --git a/ics/structures/st_chip_versions.py b/ics/structures/st_chip_versions.py index c1efd03ce..ca9f5566f 100644 --- a/ics/structures/st_chip_versions.py +++ b/ics/structures/st_chip_versions.py @@ -319,6 +319,17 @@ class epsilon_versions(ctypes.Structure): +class rad_wbms_versions(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('mchip_major', ctypes.c_uint8), + ('mchip_minor', ctypes.c_uint8), + ('wil_major', ctypes.c_uint8), + ('wil_minor', ctypes.c_uint8), + ] + + + class rad_comet_versions(ctypes.Structure): _pack_ = 2 _fields_ = [ @@ -362,6 +373,7 @@ class st_chip_versions(ctypes.Union): ('ether_badge_versions', ether_badge_versions), ('rad_a2b_versions', rad_a2b_versions), ('epsilon_versions', epsilon_versions), + ('rad_wbms_versions', rad_wbms_versions), ('rad_comet_versions', rad_comet_versions), ] diff --git a/ics/structures/switchw_bms_version_error.py b/ics/structures/switchw_bms_version_error.py new file mode 100644 index 000000000..4a80585d7 --- /dev/null +++ b/ics/structures/switchw_bms_version_error.py @@ -0,0 +1,21 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class switchw_bms_version_error(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + SwitchwBMSVersion_Failed = 0 + SwitchwBMSVersion_OK = enum.auto() + SwitchwBMSVersion_Reflashed = enum.auto() + SwitchwBMSVersion_ParameterNotValid = enum.auto() + + +SwitchwBMSVersionError = switchw_bms_version_error +SwitchwBMSVersionError = switchw_bms_version_error + diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index 64734f295..a60764f67 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -1,4 +1,73 @@ [ + { + "names": [ + "eSupportedWILVersions" + ], + "data_type": "Enum", + "packing": 0, + "is_anonymous": false, + "members": [ + { + "name": "eSupportedWILVersions_WIL_1_1_0 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": 1 + }, + { + "name": "eSupportedWILVersions_WIL_2_0_0", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "SwitchwBMSVersionError", + "SwitchwBMSVersionError" + ], + "data_type": "Enum", + "packing": 0, + "is_anonymous": false, + "members": [ + { + "name": "SwitchwBMSVersion_Failed ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": 0 + }, + { + "name": "SwitchwBMSVersion_OK", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "SwitchwBMSVersion_Reflashed", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "SwitchwBMSVersion_ParameterNotValid", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, { "names": [], "data_type": "Enum", @@ -3189,7 +3258,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5350 ", + "name": "assert_line_5372 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3205,7 +3274,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5351 ", + "name": "assert_line_5373 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3221,7 +3290,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5352 ", + "name": "assert_line_5374 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3237,7 +3306,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5353 ", + "name": "assert_line_5375 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3253,7 +3322,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5354 ", + "name": "assert_line_5376 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3269,7 +3338,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5355 ", + "name": "assert_line_5377 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3285,7 +3354,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5356 ", + "name": "assert_line_5378 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3301,7 +3370,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5357 ", + "name": "assert_line_5379 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3317,7 +3386,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5358 ", + "name": "assert_line_5380 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3333,7 +3402,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5359 ", + "name": "assert_line_5381 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3349,7 +3418,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5360 ", + "name": "assert_line_5382 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3365,7 +3434,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5361 ", + "name": "assert_line_5383 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3381,7 +3450,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5362 ", + "name": "assert_line_5384 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3397,7 +3466,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5363 ", + "name": "assert_line_5385 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3413,7 +3482,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5364 ", + "name": "assert_line_5386 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3429,7 +3498,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5365 ", + "name": "assert_line_5387 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3445,7 +3514,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5366 ", + "name": "assert_line_5388 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3461,7 +3530,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5367 ", + "name": "assert_line_5389 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3477,7 +3546,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5368 ", + "name": "assert_line_5390 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3493,7 +3562,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5369 ", + "name": "assert_line_5391 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3509,7 +3578,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5370 ", + "name": "assert_line_5392 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3525,7 +3594,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5371 ", + "name": "assert_line_5393 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3541,7 +3610,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5372 ", + "name": "assert_line_5394 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3557,7 +3626,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5373 ", + "name": "assert_line_5395 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3573,7 +3642,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5374 ", + "name": "assert_line_5396 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3589,7 +3658,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5375 ", + "name": "assert_line_5397 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3605,7 +3674,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5376 ", + "name": "assert_line_5398 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3621,7 +3690,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5377 ", + "name": "assert_line_5399 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3637,7 +3706,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5378 ", + "name": "assert_line_5400 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3653,7 +3722,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5379 ", + "name": "assert_line_5401 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3669,7 +3738,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5380 ", + "name": "assert_line_5402 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3685,7 +3754,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5381 ", + "name": "assert_line_5403 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3701,7 +3770,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5382 ", + "name": "assert_line_5404 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3717,7 +3786,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5383 ", + "name": "assert_line_5405 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3733,7 +3802,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5384 ", + "name": "assert_line_5406 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3749,7 +3818,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5385 ", + "name": "assert_line_5407 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3765,7 +3834,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5386 ", + "name": "assert_line_5408 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3781,7 +3850,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5387 ", + "name": "assert_line_5409 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3797,7 +3866,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5388 ", + "name": "assert_line_5410 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3813,7 +3882,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5389 ", + "name": "assert_line_5411 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3829,7 +3898,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5390 ", + "name": "assert_line_5412 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3845,7 +3914,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5391 ", + "name": "assert_line_5413 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3861,7 +3930,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5392 ", + "name": "assert_line_5414 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3877,7 +3946,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5393 ", + "name": "assert_line_5415 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3893,7 +3962,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5394 ", + "name": "assert_line_5416 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3909,7 +3978,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5395 ", + "name": "assert_line_5417 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3925,7 +3994,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5396 ", + "name": "assert_line_5418 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3941,7 +4010,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5397 ", + "name": "assert_line_5419 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3957,7 +4026,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5398 ", + "name": "assert_line_5420 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3973,7 +4042,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5399 ", + "name": "assert_line_5421 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3989,7 +4058,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5400 ", + "name": "assert_line_5422 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4005,7 +4074,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5401 ", + "name": "assert_line_5423 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4021,7 +4090,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5402 ", + "name": "assert_line_5424 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4037,7 +4106,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5403 ", + "name": "assert_line_5425 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4053,7 +4122,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5404 ", + "name": "assert_line_5426 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4069,7 +4138,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5405 ", + "name": "assert_line_5427 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4085,7 +4154,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5406 ", + "name": "assert_line_5428 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4101,7 +4170,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5407 ", + "name": "assert_line_5429 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4117,7 +4186,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5408 ", + "name": "assert_line_5430 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4133,7 +4202,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5409 ", + "name": "assert_line_5431 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4149,7 +4218,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5410 ", + "name": "assert_line_5432 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4165,7 +4234,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5411 ", + "name": "assert_line_5433 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4181,7 +4250,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5412 ", + "name": "assert_line_5434 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4197,7 +4266,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5413 ", + "name": "assert_line_5435 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4213,7 +4282,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5414 ", + "name": "assert_line_5436 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4229,7 +4298,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5415 ", + "name": "assert_line_5437 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4245,7 +4314,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5416 ", + "name": "assert_line_5438 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4261,7 +4330,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5417 ", + "name": "assert_line_5439 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4277,7 +4346,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5418 ", + "name": "assert_line_5440 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4293,7 +4362,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5419 ", + "name": "assert_line_5441 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4309,7 +4378,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5420 ", + "name": "assert_line_5442 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4325,7 +4394,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5421 ", + "name": "assert_line_5443 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4341,7 +4410,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5422 ", + "name": "assert_line_5444 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4357,7 +4426,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5423 ", + "name": "assert_line_5445 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4373,7 +4442,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5424 ", + "name": "assert_line_5446 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4389,7 +4458,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5425 ", + "name": "assert_line_5447 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4405,7 +4474,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5426 ", + "name": "assert_line_5448 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, diff --git a/icsnVC40.h.json b/icsnVC40.h.json index 75c34e20d..a33248a20 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -2521,6 +2521,48 @@ } ] }, + { + "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" @@ -14483,7 +14525,7 @@ "enum_value": null }, { - "name": "ptpParams", + "name": "ptpParams_unused", "data_type": "JupiterPtpParams_t", "array_length": 0, "bitfield_size": 0, @@ -15303,6 +15345,14 @@ "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 } ] }, @@ -16132,6 +16182,14 @@ "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 } ] }, @@ -16833,6 +16891,14 @@ "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 } ] }, diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index b357a3f7b..aeafa9995 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -51,6 +51,18 @@ typedef long long intmax_t; typedef unsigned long long uintmax_t; #pragma warning(pop) #pragma warning(disable : 4200) +typedef enum +{ + eSupportedWILVersions_WIL_1_1_0 = 1, + eSupportedWILVersions_WIL_2_0_0, +} eSupportedWILVersions; +typedef enum SwitchwBMSVersionError +{ + SwitchwBMSVersion_Failed = 0, + SwitchwBMSVersion_OK, + SwitchwBMSVersion_Reflashed, + SwitchwBMSVersion_ParameterNotValid, +} SwitchwBMSVersionError; typedef struct SExtendedDataFlashHeader { uint16_t version; @@ -549,6 +561,13 @@ typedef union _stChipVersions 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; @@ -2508,7 +2527,7 @@ typedef struct _SRADJupiterSwitchSettings uint8_t spoofMacFlag; uint8_t spoofedMac[6]; uint8_t pad; - JupiterPtpParams_t ptpParams; + JupiterPtpParams_t ptpParams_unused; } SRADJupiterSwitchSettings; typedef struct _SRADJupiterSettings { @@ -2623,6 +2642,7 @@ typedef struct _SRed2Settings ETHERNET_SETTINGS2 ethernet2_2; Fire3LinuxSettings os_settings; RAD_GPTP_SETTINGS gPTP; + uint16_t iso_tester_pullup_enable; } SRed2Settings; typedef struct _SFire3Settings { @@ -2730,6 +2750,7 @@ typedef struct _SFire3Settings uint16_t selectable_network_2; uint64_t network_enables_2; uint64_t termination_enables_2; + uint16_t iso_tester_pullup_enable; } SFire3Settings; typedef struct _SFire3FlexraySettings { @@ -2821,6 +2842,7 @@ typedef struct _SFire3FlexraySettings uint64_t termination_enables_2; uint16_t flex_mode; uint16_t flex_termination; + uint16_t iso_tester_pullup_enable; } SFire3FlexraySettings; typedef struct { @@ -3819,385 +3841,385 @@ typedef enum PhyErrorType } PhyErrorType; enum { - assert_line_5350 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_5372 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_5351 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_5373 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_5352 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_5374 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_5353 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_5375 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_5354 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_5376 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_5355 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_5377 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_5356 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_5378 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_5357 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_5379 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_5358 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_5380 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_5359 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_5381 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_5360 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_5382 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_5361 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_5383 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_5362 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_5384 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_5363 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_5385 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_5364 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_5386 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_5365 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_5387 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_5366 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_5388 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_5367 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) + assert_line_5389 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) }; ; enum { - assert_line_5368 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_5390 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_5369 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_5391 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_5370 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_5392 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_5371 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_5393 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_5372 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_5394 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_5373 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_5395 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_5374 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_5396 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_5375 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_5397 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_5376 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_5398 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_5377 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_5399 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_5378 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_5400 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_5379 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_5401 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_5380 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_5402 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_5381 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_5403 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_5382 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_5404 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_5383 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_5405 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_5384 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_5406 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_5385 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) + assert_line_5407 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) }; ; enum { - assert_line_5386 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) + assert_line_5408 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) }; ; enum { - assert_line_5387 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_5409 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_5388 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_5410 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_5389 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1472) + 6))) + assert_line_5411 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1474) + 6))) }; ; enum { - assert_line_5390 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_5412 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_5391 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_5413 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_5392 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_5414 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_5393 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_5415 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_5394 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_5416 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_5395 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_5417 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_5396 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_5418 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_5397 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_5419 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_5398 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_5420 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_5399 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_5421 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_5400 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) + assert_line_5422 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) }; ; enum { - assert_line_5401 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) + assert_line_5423 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) }; ; enum { - assert_line_5402 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) + assert_line_5424 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) }; ; enum { - assert_line_5403 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) + assert_line_5425 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) }; ; enum { - assert_line_5404 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_5426 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_5405 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_5427 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_5406 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_5428 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_5407 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_5429 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_5408 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_5430 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_5409 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5431 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5410 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_5432 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_5411 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_5433 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_5412 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_5434 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_5413 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_5435 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_5414 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_5436 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_5415 = 1 / (int)(!!(sizeof(SFire3Settings) == (1472))) + assert_line_5437 = 1 / (int)(!!(sizeof(SFire3Settings) == (1474))) }; ; enum { - assert_line_5416 = 1 / (int)(!!(sizeof(SRed2Settings) == (668))) + assert_line_5438 = 1 / (int)(!!(sizeof(SRed2Settings) == (670))) }; ; enum { - assert_line_5417 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_5439 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_5418 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) + assert_line_5440 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) }; ; enum { - assert_line_5419 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_5441 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_5420 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) + assert_line_5442 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) }; ; enum { - assert_line_5421 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_5443 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_5422 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) + assert_line_5444 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) }; ; enum { - assert_line_5423 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) + assert_line_5445 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) }; ; enum { - assert_line_5424 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1122))) + assert_line_5446 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1124))) }; ; enum { - assert_line_5425 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5447 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5426 = 1 / (int)(!!(sizeof(SRADCometSettings) == 456)) + assert_line_5448 = 1 / (int)(!!(sizeof(SRADCometSettings) == 456)) }; ; diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 3af749724..585ffc8b3 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -525,6 +525,20 @@ typedef unsigned __int64 uint64_t; #define FIRE2_REPORT_GPS (0x0400) #define FIRE3_REPORT_ORIENTATION (0x0800) +typedef enum +{ + eSupportedWILVersions_WIL_1_1_0 = 1, + eSupportedWILVersions_WIL_2_0_0, +}eSupportedWILVersions; + +typedef enum SwitchwBMSVersionError +{ + SwitchwBMSVersion_Failed = 0, + SwitchwBMSVersion_OK, + SwitchwBMSVersion_Reflashed, + SwitchwBMSVersion_ParameterNotValid, +} SwitchwBMSVersionError; + typedef struct SExtendedDataFlashHeader { uint16_t version; @@ -1126,6 +1140,14 @@ typedef union _stChipVersions 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; @@ -3744,9 +3766,6 @@ typedef struct _SOBD2LCSettings #define RADJUPITER_NUM_PORTS 8 -#define JUPITER_PTP_ROLE_DISABLED 0 -#define JUPITER_PTP_ROLE_MASTER 1 -#define JUPITER_PTP_ROLE_SLAVE 2 typedef struct SJupiterPtpParams_s { uint32_t neighborPropDelay; //ns @@ -3768,7 +3787,7 @@ typedef struct _SRADJupiterSwitchSettings uint8_t spoofMacFlag; uint8_t spoofedMac[6]; uint8_t pad; - JupiterPtpParams_t ptpParams; //16 + JupiterPtpParams_t ptpParams_unused; //16 } SRADJupiterSwitchSettings; //44 typedef struct _SRADJupiterSettings @@ -3907,8 +3926,9 @@ typedef struct _SRed2Settings ETHERNET_SETTINGS2 ethernet2_2; Fire3LinuxSettings os_settings; RAD_GPTP_SETTINGS gPTP; + uint16_t iso_tester_pullup_enable; } SRed2Settings; -#define SRed2Settings_SIZE (668) +#define SRed2Settings_SIZE (670) typedef struct _SFire3Settings { @@ -4016,8 +4036,9 @@ typedef struct _SFire3Settings uint16_t selectable_network_2; uint64_t network_enables_2; uint64_t termination_enables_2; + uint16_t iso_tester_pullup_enable; } SFire3Settings; -#define SFire3Settings_SIZE (1472) +#define SFire3Settings_SIZE (1474) typedef struct _SFire3FlexraySettings { @@ -4109,8 +4130,9 @@ typedef struct _SFire3FlexraySettings uint64_t termination_enables_2; uint16_t flex_mode; uint16_t flex_termination; + uint16_t iso_tester_pullup_enable; } SFire3FlexraySettings; -#define SFire3FlexraySettings_SIZE (1122) +#define SFire3FlexraySettings_SIZE (1124) typedef struct { diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index e238e9fb2..f5ddb8024 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -8,1091 +8,1101 @@ #include #include "ics/icsnVC40.h" -int setup_module_auto_defines(PyObject* module) +int setup_module_auto_defines(PyObject * module) { - int result = 0; + 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_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_NEW_DEVICE_58); - result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); - 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_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_VCANRF); - 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_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, 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); - // enum - result += PyModule_AddIntMacro(module, AUTO); - result += PyModule_AddIntMacro(module, USE_TQ); - // end of enum - }; + 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_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_NEW_DEVICE_58); + result += PyModule_AddIntMacro(module, NEODEVICE_NEW_DEVICE_59); + 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_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_VCANRF); + 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_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, 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); + // enum + result += PyModule_AddIntMacro(module, eSupportedWILVersions_WIL_1_1_0); + result += PyModule_AddIntMacro(module, eSupportedWILVersions_WIL_2_0_0); + // end of enum - } eSupportedWILVersions; - // 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); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, SwitchwBMSVersion_Failed); + result += PyModule_AddIntMacro(module, SwitchwBMSVersion_OK); + result += PyModule_AddIntMacro(module, SwitchwBMSVersion_Reflashed); + result += PyModule_AddIntMacro(module, SwitchwBMSVersion_ParameterNotValid); + // end of enum - } SwitchwBMSVersionError; - // 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); - // end of enum - }; + 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); + // enum + result += PyModule_AddIntMacro(module, AUTO); + result += PyModule_AddIntMacro(module, USE_TQ); + // end of enum - }; - result += PyModule_AddIntMacro(module, 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); - // 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); + // end of enum - }; - result += PyModule_AddIntMacro(module, 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); - // 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); + // end of enum - }; - result += PyModule_AddIntMacro(module, 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, RESISTOR_ON); - result += PyModule_AddIntMacro(module, RESISTOR_OFF); - // end of enum - }; + result += PyModule_AddIntMacro(module, 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); + // 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, 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); + // 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); - // 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); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, RESISTOR_ON); + result += PyModule_AddIntMacro(module, RESISTOR_OFF); + // 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_AddIntMacro(module, HW_ETH_SETTINGS_SIZE); - // enum - result += PyModule_AddIntMacro(module, OPETH_LINK_AUTO); - result += PyModule_AddIntMacro(module, OPETH_LINK_MASTER); - result += PyModule_AddIntMacro(module, OPETH_LINK_SLAVE); - // end of enum - } opEthLinkMode; + // 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_DST_ADDR); - result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_SRC_ADDR); - // 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); + // 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); + // 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_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_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, 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); - // enum - result += PyModule_AddIntMacro(module, DiskFormatUnknown); - result += PyModule_AddIntMacro(module, DiskFormatFAT32); - result += PyModule_AddIntMacro(module, DiskFormatexFAT); - // end of enum - } EDiskFormat; + 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); + result += PyModule_AddIntMacro(module, OPETH_LINK_SLAVE); + // end of enum - } opEthLinkMode; - // 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); - // end of enum - } EDiskLayout; + // enum + result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_DST_ADDR); + result += PyModule_AddIntMacro(module, OPETH_MAC_SPOOF_SRC_ADDR); + // end of enum - }; - 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); - // 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); - // end of enum - } ExtendedResponseCode; + 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_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_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, 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); + // enum + result += PyModule_AddIntMacro(module, DiskFormatUnknown); + result += PyModule_AddIntMacro(module, DiskFormatFAT32); + result += PyModule_AddIntMacro(module, DiskFormatexFAT); + // end of enum - } EDiskFormat; - 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); - // end of enum - }; + // 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); + // end of enum - } EDiskLayout; - result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); - 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); - // 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); - // end of enum - }; + 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); + // 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); + // end of enum - } ExtendedResponseCode; - // 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); - // end of enum - }; + 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); + // 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); - // end of enum - }; + result += PyModule_AddIntMacro(module, SExtSubCmdHdr_SIZE); + 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); + // 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); + // 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); - // 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); - // 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); + // 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_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); - // 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); + // 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, SVCANRFSettings_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); - // 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); - // 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); + // 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, eRoleDisabled); - result += PyModule_AddIntMacro(module, eRolePassive); - result += PyModule_AddIntMacro(module, eRoleMaster); - result += PyModule_AddIntMacro(module, eRoleSlave); - // 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_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); + // end of enum - }; - result += PyModule_AddIntMacro(module, SRADGalaxySettings_SIZE); - result += PyModule_AddIntMacro(module, SRADStar2Settings_SIZE); - result += PyModule_AddIntMacro(module, SRADSuperMoonSettings_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); - // end of enum - } A2BTDMMode; + 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, SVCANRFSettings_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); + // 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, a2bNodeTypeMonitor); - result += PyModule_AddIntMacro(module, a2bNodeTypeMaster); - result += PyModule_AddIntMacro(module, a2bNodeTypeSlave); - // end of enum - } A2BNodeType; + // enum + result += PyModule_AddIntMacro(module, eRoleDisabled); + result += PyModule_AddIntMacro(module, eRolePassive); + result += PyModule_AddIntMacro(module, eRoleMaster); + result += PyModule_AddIntMacro(module, eRoleSlave); + // end of enum - }; - 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, 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); - // 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); - // end of enum - } flexVnetMode; + result += PyModule_AddIntMacro(module, SRADGalaxySettings_SIZE); + result += PyModule_AddIntMacro(module, SRADStar2Settings_SIZE); + result += PyModule_AddIntMacro(module, SRADSuperMoonSettings_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); + // end of enum - } A2BTDMMode; - 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, JUPITER_PTP_ROLE_DISABLED); - result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_MASTER); - result += PyModule_AddIntMacro(module, JUPITER_PTP_ROLE_SLAVE); - 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_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, SRADEpsilonSettings_SIZE); - // 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); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, a2bNodeTypeMonitor); + result += PyModule_AddIntMacro(module, a2bNodeTypeMaster); + result += PyModule_AddIntMacro(module, a2bNodeTypeSlave); + // end of enum - } A2BNodeType; - // enum - result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); - result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); - // end of enum - }; + 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, 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); + // 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); + // end of enum - } flexVnetMode; - // enum - result += PyModule_AddIntMacro(module, SPI_TYPE_WIL); - result += PyModule_AddIntMacro(module, SPI_TYPE_RAW); - // end of enum - }; + 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_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, SRADEpsilonSettings_SIZE); + // 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); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, SPI_MODE_MASTER); - result += PyModule_AddIntMacro(module, SPI_MODE_SLAVE); - result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); - // end of enum - }; + // enum + result += PyModule_AddIntMacro(module, SPI_PORT_ONBOARD); + result += PyModule_AddIntMacro(module, SPI_PORT_EXTERNAL); + // 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, GS_VERSION); - result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); - result += PyModule_AddIntMacro(module, 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, DeviceVCANRFSettingsType); - 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, DeviceRed2OemSettingsType); - result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); - result += PyModule_AddIntMacro(module, DeviceSettingsNone); - // end of enum - } EDeviceSettingsType; + // enum + result += PyModule_AddIntMacro(module, SPI_TYPE_WIL); + result += PyModule_AddIntMacro(module, SPI_TYPE_RAW); + // end of enum - }; - // 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); - // end of enum - } EPlasmaIonVnetChannel_t; + // enum + result += PyModule_AddIntMacro(module, SPI_MODE_MASTER); + result += PyModule_AddIntMacro(module, SPI_MODE_SLAVE); + result += PyModule_AddIntMacro(module, SPI_MODE_PMS_EMULATION); + // end of enum - }; - // enum - result += PyModule_AddIntMacro(module, eManagerPortA); - result += PyModule_AddIntMacro(module, eManagerPortB); - // end of enum - } EwBMSManagerPort_t; + 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, GS_VERSION); + result += PyModule_AddIntMacro(module, GLOBAL_SETTINGS_SIZE); + result += PyModule_AddIntMacro(module, 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, DeviceVCANRFSettingsType); + 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, DeviceRed2OemSettingsType); + result += PyModule_AddIntMacro(module, DeviceSettingsTypeMax); + result += PyModule_AddIntMacro(module, DeviceSettingsNone); + // end of enum - } EDeviceSettingsType; - // enum - result += PyModule_AddIntMacro(module, eLockManager); - result += PyModule_AddIntMacro(module, eUnlockManager); - // end of enum - } EwBMSManagerLockState_t; + // 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); + // end of enum - } EPlasmaIonVnetChannel_t; - // enum - result += PyModule_AddIntMacro(module, eUART0); - result += PyModule_AddIntMacro(module, eUART1); - // end of enum - } EUartPort_t; + // enum + result += PyModule_AddIntMacro(module, eManagerPortA); + result += PyModule_AddIntMacro(module, eManagerPortB); + // end of enum - } EwBMSManagerPort_t; - // enum - result += PyModule_AddIntMacro(module, eGENERIC_API); - result += PyModule_AddIntMacro(module, eADI_WIL_API); - // end of enum - } eGenericAPIOptions; + // enum + result += PyModule_AddIntMacro(module, eLockManager); + result += PyModule_AddIntMacro(module, eUnlockManager); + // end of enum - } EwBMSManagerLockState_t; - // enum - result += PyModule_AddIntMacro(module, ewBMSInstance0); - result += PyModule_AddIntMacro(module, ewBMSInstance1); - // end of enum - } EwBMSInstance_t; + // enum + result += PyModule_AddIntMacro(module, eUART0); + result += PyModule_AddIntMacro(module, eUART1); + // end of enum - } EUartPort_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); - // 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); - // end of enum - } PhyRegPktStatus_t; + // enum + result += PyModule_AddIntMacro(module, eGENERIC_API); + result += PyModule_AddIntMacro(module, eADI_WIL_API); + // end of enum - } eGenericAPIOptions; - // enum - result += PyModule_AddIntMacro(module, PHYREG_READ); - result += PyModule_AddIntMacro(module, PHYREG_WRITE); - result += PyModule_AddIntMacro(module, PHYREG_BOTH); - // end of enum - } PhyRegPktRw_t; + // enum + result += PyModule_AddIntMacro(module, ewBMSInstance0); + result += PyModule_AddIntMacro(module, ewBMSInstance1); + // end of enum - } EwBMSInstance_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, NUM_VALID_DEVICE_FEATURES); - result += PyModule_AddIntMacro(module, supportedFeatureMax); - // end of enum - } DeviceFeature; + 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); + // 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); + // end of enum - } PhyRegPktStatus_t; - // 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; + // enum + result += PyModule_AddIntMacro(module, PHYREG_READ); + result += PyModule_AddIntMacro(module, PHYREG_WRITE); + result += PyModule_AddIntMacro(module, PHYREG_BOTH); + // end of enum - } PhyRegPktRw_t; - result += PyModule_AddIntMacro(module, NUM_DEVICE_FEATURE_BITFIELDS); - // enum - // end of enum - } + // 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, NUM_VALID_DEVICE_FEATURES); + result += PyModule_AddIntMacro(module, supportedFeatureMax); + // end of enum - } DeviceFeature; - return result == 0 ? 1 : 0; + // 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, NUM_DEVICE_FEATURE_BITFIELDS); + // enum + // end of enum - } + + + return result == 0 ? 1 : 0; } From eab7fcc7911d4731568c95348fa2b69314f9eaeb Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 12:49:37 -0400 Subject: [PATCH 109/201] updated to 913.16 --- doc/source/conf.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index c0095386f..440df7426 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = '913.8' +version = '913.16' # The full version, including alpha/beta/rc tags. release = version diff --git a/setup.py b/setup.py index 04e858ea3..19f3dbe85 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ import shutil MAJOR_VERSION = 913 -MINOR_VERSION = 8 +MINOR_VERSION = 16 POST_VERSION = None if POST_VERSION: From 0651e88a568b42f5eb3086319d948932006a8b1b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 13:03:45 -0400 Subject: [PATCH 110/201] added readthedocs configuration file Signed-off-by: David Rebbe --- .readthedocs.yaml | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .readthedocs.yaml diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 000000000..192f520ad --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,41 @@ +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.11" + # You can also specify other tool versions: + # nodejs: "20" + # rust: "1.70" + # golang: "1.20" + +# VCS submodules configuration. +submodules: + include: all + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/conf.py + # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs + builder: "html" + # Fail on all warnings to avoid broken references + # fail_on_warning: true + +# Optionally build your docs in additional formats such as PDF and ePub +formats: + - pdf + - epub + +# Optional but recommended, declare the Python requirements required +# to build your documentation +# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html + python: + install: + - method: pip + path: . + - requirements: docs/requirements.txt \ No newline at end of file From f767ef71f67ea07ea682a2cb99a8e02f0d5e98b7 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 13:09:40 -0400 Subject: [PATCH 111/201] fixed indentation Signed-off-by: David Rebbe --- .readthedocs.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 192f520ad..119c6bd60 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -28,14 +28,14 @@ sphinx: # Optionally build your docs in additional formats such as PDF and ePub formats: - - pdf - - epub + - pdf + - epub # Optional but recommended, declare the Python requirements required # to build your documentation # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html - python: - install: +python: + install: - method: pip path: . - requirements: docs/requirements.txt \ No newline at end of file From 957984ea948569cf646d8f81447fd3ab053d8dc6 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 13:13:59 -0400 Subject: [PATCH 112/201] updating submodule to https instead of ssh Signed-off-by: David Rebbe --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 29d672410..1cf2ed09a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "src/ice"] path = src/ice - url = git@github.com:ic3man5/ice.git + url = https://github.com/ic3man5/ice.git From a31d54559858604ee2131777422c11c5db3fd354 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 13:21:50 -0400 Subject: [PATCH 113/201] readthedocs update Signed-off-by: David Rebbe --- .readthedocs.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 119c6bd60..cd7dabe07 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -7,8 +7,13 @@ version: 2 # Set the OS, Python version and other tools you might need build: os: ubuntu-22.04 + apt_packages: + - clang + - clang-format + - build-essential tools: python: "3.11" + # You can also specify other tool versions: # nodejs: "20" # rust: "1.70" From 4dbda6b8e27a8564a93dcf3187b0c6af4481ab61 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 13:26:12 -0400 Subject: [PATCH 114/201] libicsneo dependencies for readthedocs Signed-off-by: David Rebbe --- .readthedocs.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index cd7dabe07..efd850091 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -11,6 +11,9 @@ build: - clang - clang-format - build-essential + - libpcap0.8-dev + - libusb-1.0-0-dev + - cmake tools: python: "3.11" From 69ec0220af1542f1ffea80533cc20d13765a538b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 16 Aug 2023 13:30:16 -0400 Subject: [PATCH 115/201] fixed path Signed-off-by: David Rebbe --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index efd850091..b2c0c63c9 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -46,4 +46,4 @@ python: install: - method: pip path: . - - requirements: docs/requirements.txt \ No newline at end of file + - requirements: doc/requirements.txt \ No newline at end of file From 367cbafdc3e18f2e6c690d675835acece586659b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 17 Aug 2023 07:35:25 -0400 Subject: [PATCH 116/201] fixed path --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index b2c0c63c9..9a30d3811 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -28,7 +28,7 @@ submodules: # Build documentation in the "docs/" directory with Sphinx sphinx: - configuration: docs/conf.py + configuration: doc/conf.py # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs builder: "html" # Fail on all warnings to avoid broken references From b7fa23eff456c641a0df074ba0bfd368668eed37 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 17 Aug 2023 07:53:19 -0400 Subject: [PATCH 117/201] fix the path again... --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 9a30d3811..1ab2c6318 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -28,7 +28,7 @@ submodules: # Build documentation in the "docs/" directory with Sphinx sphinx: - configuration: doc/conf.py + configuration: doc/source/conf.py # You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs builder: "html" # Fail on all warnings to avoid broken references From 50e748703577c8000a6cc5a217add1bfbe7abb78 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 17 Aug 2023 13:04:24 -0400 Subject: [PATCH 118/201] updated script for better error message output --- generate_icsneo40_structs.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 4a157481e..f4829d7e3 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -3,7 +3,7 @@ import os.path from collections import OrderedDict import sys -from subprocess import run, PIPE +from subprocess import STDOUT, CalledProcessError, run, PIPE from enum import Enum, auto import random import ctypes @@ -476,13 +476,22 @@ def format_file(filename): # processed_fname = "icsnVC40_processed.h" # Run it through the preprocessor # clang -E -P .\include\ics\icsnVC40.h -o output.h - result = run(["clang", "-DEXTERNAL_PROJECT", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=PIPE) - result.check_returncode() + result = run(["clang", "-DEXTERNAL_PROJECT", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=STDOUT) + try: + result.check_returncode() + except CalledProcessError as ex: + print(f"ERROR: {' '.join(result.args)} failed with error code {ex.returncode}") + print(ex.stdout.decode('UTF-8')) + #print(ex.stderr) # Format the file result = run(["clang-format", "-i", "--style", - "{BasedOnStyle: Mozilla, ColumnLimit: '200'}", processed_fname], stdout=PIPE, stderr=PIPE) - result.check_returncode() + "{BasedOnStyle: Mozilla, ColumnLimit: '200'}", processed_fname], stdout=PIPE, stderr=STDOUT) + try: + result.check_returncode() + except CalledProcessError as ex: + print(f"ERROR: {' '.join(result.args)} failed with error code {ex.returncode}") + print(ex.stdout.decode('UTF-8')) return processed_fname From 50c67b78fc4742363ca8d996b90c6195d8031e9c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 18 Aug 2023 10:28:21 -0400 Subject: [PATCH 119/201] fixed build script Signed-off-by: David Rebbe --- .github/workflows/wheels.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index b1f7f9af2..9baaff0f5 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -12,6 +12,8 @@ jobs: steps: - uses: actions/checkout@v3 + with: + submodules: recursive # Used to host cibuildwheel - uses: actions/setup-python@v3 From 0bf7398990faf4affe5c6632c3ad250f57c54b37 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 18 Aug 2023 14:43:31 -0400 Subject: [PATCH 120/201] force mac to c++17 standard --- setup.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 19f3dbe85..e5c246208 100644 --- a/setup.py +++ b/setup.py @@ -87,7 +87,11 @@ def run(self): '-fpermissive', '-Wno-unused-variable', '-Wno-unused-function', - '-Wno-write-strings' + '-Wno-write-strings', + ] +elif 'DARWIN' in platform.system().upper(): + compile_args = [ + '-std=c++17', ] else: compile_args = [] From c7766b62987a3ec45a48d0c54478e1f2f8c8a7fc Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 21 Aug 2023 17:29:33 -0400 Subject: [PATCH 121/201] Fixed FlashDevice2 callback --- src/methods.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/methods.cpp b/src/methods.cpp index c9a90f501..8996462cc 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -1262,7 +1262,7 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) unsigned long, unsigned long, unsigned long, - void*)> + void (*MessageCallback)(const char* message, bool success))> FlashDevice2(lib, "FlashDevice2"); Py_BEGIN_ALLOW_THREADS; if (!FlashDevice2(0x3835C256, &(neo_device->dev), rc, reflash_count, 0, 0, 0, &message_callback)) { From 81972158b2f6db58d4b134d78677a2c125840f0c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 23 Aug 2023 10:18:18 -0400 Subject: [PATCH 122/201] fix for ics.base36enc to handle 64-bit values. --- src/methods.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/methods.cpp b/src/methods.cpp index 8996462cc..c8a08cb9a 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -2263,11 +2263,11 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) PyObject* meth_base36enc(PyObject* self, PyObject* args) { - unsigned long value = 0; - if (!PyArg_ParseTuple(args, arg_parse("i:", __FUNCTION__), &value)) { + unsigned long long value = 0; + if (!PyArg_ParseTuple(args, arg_parse("K:", __FUNCTION__), &value)) { return NULL; } - char base36[37] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + constexpr char base36[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /* log(2**64) / log(36) = 12.38 => max 13 char + '\0' */ char buffer[100]; unsigned int offset = sizeof(buffer); From 0ebf147526275f4af46c33c8821b655e0b013d70 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 23 Aug 2023 10:20:50 -0400 Subject: [PATCH 123/201] Fixed NeoDevice Serial number range check --- include/object_neo_device.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/object_neo_device.h b/include/object_neo_device.h index 31ca505d5..7e33be60f 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -143,10 +143,11 @@ static PyObject* neo_device_object_tp_repr(PyObject* o) { // example output: neo_device_object* nd = (neo_device_object*)(o); - // Check range is AA0000-ZZZZZZ + // Check range is A00000-ZZZZZZ PyObject* sn = NULL; - if (621457920 <= nd->dev.SerialNumber && nd->dev.SerialNumber <= 2176782335) - sn = convert_to_base36(nd->dev.SerialNumber); + uint32_t serial = (uint32_t)nd->dev.SerialNumber; + if (16796160 <= serial && serial <= 2176782335) + sn = convert_to_base36(serial); else sn = PyUnicode_FromFormat("%lu", nd->dev.SerialNumber); return PyUnicode_FromFormat("<" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " %U %U>", nd->name, sn); From ea2930759d3da1e03ea7bf2d7c0f634e848b17f4 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 23 Aug 2023 10:21:10 -0400 Subject: [PATCH 124/201] Fix for mac c++17 support --- setup.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index e5c246208..690e3df27 100644 --- a/setup.py +++ b/setup.py @@ -90,9 +90,8 @@ def run(self): '-Wno-write-strings', ] elif 'DARWIN' in platform.system().upper(): - compile_args = [ - '-std=c++17', - ] + # Mac doesn't respect the compiler args, but will append with ARCHFLAGS environment variable + os.environ['ARCHFLAGS'] = '-std=c++17' else: compile_args = [] From 826152c8960fcce7989c8d856efc8cb0fac8187d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 23 Aug 2023 11:09:30 -0400 Subject: [PATCH 125/201] fixed conditionals for platform detection --- setup.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/setup.py b/setup.py index 690e3df27..c3ffed20e 100644 --- a/setup.py +++ b/setup.py @@ -81,14 +81,22 @@ def run(self): 'src/ice/src/ice_library.cpp' ] +# gcc and clang arguments +gcc_compile_args = [ + '-fpermissive', + '-Wno-unused-variable', + '-Wno-unused-function', + '-Wno-write-strings', +] + # Set compiler flags here -if 'LINUX' in platform.system().upper() or "MSC" not in sys.version: - compile_args = [ - '-fpermissive', - '-Wno-unused-variable', - '-Wno-unused-function', - '-Wno-write-strings', - ] +if 'WINDOWS' in platform.system().upper(): + compile_args = [] + # mingw and clang python builds won't have MSC in the version string + if "MSC" not in sys.version: + compile_args = gcc_compile_args +elif 'LINUX' in platform.system().upper(): + 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' From ca566b750751f96ab58afeb67340c7fe3e343aab Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 23 Aug 2023 11:12:55 -0400 Subject: [PATCH 126/201] lets try this again... --- setup.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index c3ffed20e..86f2f8f64 100644 --- a/setup.py +++ b/setup.py @@ -82,7 +82,7 @@ def run(self): ] # gcc and clang arguments -gcc_compile_args = [ +GCC_COMPILE_ARGS = [ '-fpermissive', '-Wno-unused-variable', '-Wno-unused-function', @@ -94,12 +94,13 @@ def run(self): compile_args = [] # mingw and clang python builds won't have MSC in the version string if "MSC" not in sys.version: - compile_args = gcc_compile_args + compile_args = GCC_COMPILE_ARGS elif 'LINUX' in platform.system().upper(): - compile_args = gcc_compile_args + 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' + compile_args = [] else: compile_args = [] From 853ed23e5cf11322f8a04c9efb20773703c8ef79 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 24 Aug 2023 11:22:47 -0400 Subject: [PATCH 127/201] Fixed serial number range Signed-off-by: David Rebbe --- include/object_neo_device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/object_neo_device.h b/include/object_neo_device.h index 7e33be60f..b64389913 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -146,7 +146,7 @@ static PyObject* neo_device_object_tp_repr(PyObject* o) // Check range is A00000-ZZZZZZ PyObject* sn = NULL; uint32_t serial = (uint32_t)nd->dev.SerialNumber; - if (16796160 <= serial && serial <= 2176782335) + if (604661760 <= serial && serial <= 2176782335) sn = convert_to_base36(serial); else sn = PyUnicode_FromFormat("%lu", nd->dev.SerialNumber); From a8c5ae9172595fafcdd84bbeff2b5eb68d3b4b96 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 24 Aug 2023 14:24:05 -0400 Subject: [PATCH 128/201] Serial Number checks fixed for real this time. #156 Signed-off-by: David Rebbe --- examples/iso15765_example.py | 2 +- examples/open_device_example.py | 2 +- examples/transmit_can_example.py | 2 +- examples/transmit_can_xtd_example.py | 2 +- examples/transmit_lin_example.py | 2 +- examples/transmit_lin_ldf_example.py | 2 +- include/object_neo_device.h | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/examples/iso15765_example.py b/examples/iso15765_example.py index 631436d19..aadf14b9c 100644 --- a/examples/iso15765_example.py +++ b/examples/iso15765_example.py @@ -6,7 +6,7 @@ # Helper Functions ########################################################## def dev_name(device): - if int("AA0000", 36) < device.SerialNumber < int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/open_device_example.py b/examples/open_device_example.py index 95728c3c2..edcee52cb 100644 --- a/examples/open_device_example.py +++ b/examples/open_device_example.py @@ -6,7 +6,7 @@ def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/transmit_can_example.py b/examples/transmit_can_example.py index 4ce1ad460..84a86e334 100644 --- a/examples/transmit_can_example.py +++ b/examples/transmit_can_example.py @@ -6,7 +6,7 @@ def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/transmit_can_xtd_example.py b/examples/transmit_can_xtd_example.py index ea3b217cc..747d0c7a8 100644 --- a/examples/transmit_can_xtd_example.py +++ b/examples/transmit_can_xtd_example.py @@ -6,7 +6,7 @@ def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/transmit_lin_example.py b/examples/transmit_lin_example.py index 589770fae..91a148dac 100755 --- a/examples/transmit_lin_example.py +++ b/examples/transmit_lin_example.py @@ -8,7 +8,7 @@ def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/transmit_lin_ldf_example.py b/examples/transmit_lin_ldf_example.py index 3e746c9cd..955bad5c2 100755 --- a/examples/transmit_lin_ldf_example.py +++ b/examples/transmit_lin_ldf_example.py @@ -10,7 +10,7 @@ def parse_ldf(): def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("AA0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/include/object_neo_device.h b/include/object_neo_device.h index b64389913..51e77194b 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -143,10 +143,10 @@ static PyObject* neo_device_object_tp_repr(PyObject* o) { // example output: neo_device_object* nd = (neo_device_object*)(o); - // Check range is A00000-ZZZZZZ + // Check range is 0A0000-ZZZZZZ PyObject* sn = NULL; uint32_t serial = (uint32_t)nd->dev.SerialNumber; - if (604661760 <= serial && serial <= 2176782335) + if (16796160 <= serial && serial <= 2176782335) sn = convert_to_base36(serial); else sn = PyUnicode_FromFormat("%lu", nd->dev.SerialNumber); From 7f1f4c8290fa190b0ab73c19cea1c976068d7f67 Mon Sep 17 00:00:00 2001 From: pierreluctg Date: Tue, 29 Aug 2023 11:10:19 -0400 Subject: [PATCH 129/201] Fixed NeoDevice Serial number range check examples (#158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pierre-Luc Tessier Gagné --- examples/lin_settings_example.py | 2 +- examples/transmit_canfd_example.py | 2 +- examples/transmit_ethernet_example.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/lin_settings_example.py b/examples/lin_settings_example.py index 5aa3583c4..c62e808d3 100644 --- a/examples/lin_settings_example.py +++ b/examples/lin_settings_example.py @@ -51,7 +51,7 @@ def get_device_specific_settings(s: s_device_settings) -> object: def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/transmit_canfd_example.py b/examples/transmit_canfd_example.py index 3c1b56fb0..f5dd091b7 100644 --- a/examples/transmit_canfd_example.py +++ b/examples/transmit_canfd_example.py @@ -37,7 +37,7 @@ def are_errors_present(msg): def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) diff --git a/examples/transmit_ethernet_example.py b/examples/transmit_ethernet_example.py index f60eaa22f..fddef4656 100644 --- a/examples/transmit_ethernet_example.py +++ b/examples/transmit_ethernet_example.py @@ -37,7 +37,7 @@ def are_errors_present(msg): def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("A00000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): + if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) From 3c3446d58ee93449e7a7ea8701ccd0ddda743283 Mon Sep 17 00:00:00 2001 From: pierreluctg Date: Tue, 29 Aug 2023 11:13:45 -0400 Subject: [PATCH 130/201] Fixed NeoDevice Serial number range check in ics exception (#157) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Pierre-Luc Tessier Gagné --- src/exceptions.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/exceptions.cpp b/src/exceptions.cpp index bfefb9a8d..3dbbbaa15 100644 --- a/src/exceptions.cpp +++ b/src/exceptions.cpp @@ -92,7 +92,7 @@ PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, } char* b36sn = pyics_base36enc(PyNeoDevice_GetSerialNumber(obj)); ss << PyNeoDevice_GetSerialNumber(obj); - if (b36sn != NULL && PyNeoDevice_GetSerialNumber(obj) >= 604661760 /* "A00000" */) { + if (b36sn != NULL && PyNeoDevice_GetSerialNumber(obj) >= 16796160 /* "0A0000" */) { ss << " - " << b36sn << ")"; } else { ss << ")"; From a65f1aa21ecc2f497f7770b5fb5d238bd452ef53 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 6 Dec 2023 12:56:21 -0500 Subject: [PATCH 131/201] update ciwheel version --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 9baaff0f5..adf24898f 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/setup-python@v3 - name: Install cibuildwheel - run: python -m pip install cibuildwheel==2.12.1 + run: python -m pip install cibuildwheel==2.16.2 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse From 1218156d1f32c0a79069a24773447fa50fb3a301 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 6 Dec 2023 15:48:51 -0500 Subject: [PATCH 132/201] updated macos version --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index adf24898f..745caa987 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04, windows-2019, macOS-11] + os: [ubuntu-20.04, windows-2019, macOS-13] steps: - uses: actions/checkout@v3 From b328467c64039eb44ca7bcd6902141bd2cb57ae0 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 8 Dec 2023 11:52:32 -0500 Subject: [PATCH 133/201] 64-bit improvements (#160) * fixed NeoDevice._Handle on 64-bit * added formatting config * apply formatting * update ciwheel version * updated macos version --- build_libicsneo.py | 113 +++-- doc/source/conf.py | 140 +++--- doc/source/generate_documentation.py | 31 +- examples/canfd_transmit_example.py | 6 +- examples/iso15765_example.py | 45 +- examples/lin_settings_example.py | 8 +- examples/open_device_example.py | 16 +- examples/transmit_can_example.py | 37 +- examples/transmit_can_xtd_example.py | 37 +- examples/transmit_canfd_example.py | 34 +- examples/transmit_ethernet_example.py | 52 ++- examples/transmit_lin_example.py | 36 +- examples/transmit_lin_ldf_example.py | 73 +-- extract_icsneo40_defines.py | 101 +++-- generate_icsneo40_structs.py | 381 +++++++++------- include/object_neo_device.h | 2 +- pyproject.toml | 17 +- setup.py | 136 +++--- test/obsolete/cmvspy.py | 575 +++++++++++++++++++++--- test/obsolete/cmvspyconvert.py | 64 +-- test/obsolete/test_coremini.py | 10 +- test/obsolete/test_get_device_status.py | 10 +- test/obsolete/test_network_fire.py | 47 +- test/obsolete/test_open_close.py | 17 +- test/test_find_devices.py | 59 ++- test/test_structs.py | 35 +- 26 files changed, 1392 insertions(+), 690 deletions(-) diff --git a/build_libicsneo.py b/build_libicsneo.py index 89f58caf2..4d7e08518 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -4,90 +4,105 @@ import shutil import sys -LIBICSNEO_COMMIT = '9ef93eb73e1ada72ccc7a571744b9db1a564f18b' -LIBUSB_COMMIT = '4239bc3a50014b8e6a5a2a59df1fff3b7469543b' +LIBICSNEO_COMMIT = "9ef93eb73e1ada72ccc7a571744b9db1a564f18b" +LIBUSB_COMMIT = "4239bc3a50014b8e6a5a2a59df1fff3b7469543b" CPUS = str(multiprocessing.cpu_count()) def checkout(): - if not os.path.isdir('libicsneo'): - subprocess.check_output( - ['git', 'clone', 'https://github.com/intrepidcs/libicsneo.git']) - subprocess.check_output( - ['git', 'checkout', LIBICSNEO_COMMIT], cwd='libicsneo') + if not os.path.isdir("libicsneo"): + subprocess.check_output(["git", "clone", "https://github.com/intrepidcs/libicsneo.git"]) + subprocess.check_output(["git", "checkout", LIBICSNEO_COMMIT], cwd="libicsneo") - if not os.path.isdir('libusb') and sys.platform == 'darwin': - subprocess.check_output( - ['git', 'clone', 'https://github.com/libusb/libusb.git']) - subprocess.check_output(['git', 'checkout', LIBUSB_COMMIT], cwd='libusb') + if not os.path.isdir("libusb") and sys.platform == "darwin": + subprocess.check_output(["git", "clone", "https://github.com/libusb/libusb.git"]) + subprocess.check_output(["git", "checkout", LIBUSB_COMMIT], cwd="libusb") def _build_libusb(): - subprocess.check_output(['git', 'clean', '-xdf'], cwd='libusb') + subprocess.check_output(["git", "clean", "-xdf"], cwd="libusb") - subprocess.check_output(['./bootstrap.sh'], cwd='libusb') + subprocess.check_output(["./bootstrap.sh"], cwd="libusb") env = os.environ.copy() - env['CFLAGS'] = '-arch x86_64 -arch arm64 -mmacosx-version-min=10.13' - env['CXXFLAGS'] = '-arch x86_64 -arch arm64 -mmacosx-version-min=10.13' - subprocess.check_output( - ['./configure', '--disable-static', '--prefix=/tmp/libusb'], cwd='libusb', env=env) + env["CFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" + env["CXXFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" + subprocess.check_output(["./configure", "--disable-static", "--prefix=/tmp/libusb"], cwd="libusb", env=env) - subprocess.check_output(['make', '-j' + CPUS], cwd='libusb') - subprocess.check_output(['make', 'install'], cwd='libusb') + subprocess.check_output(["make", "-j" + CPUS], cwd="libusb") + subprocess.check_output(["make", "install"], cwd="libusb") def _build_icsneo_linux(): - subprocess.check_output(['git', 'clean', '-xdf'], cwd='libicsneo') - subprocess.check_output(['mkdir', '-p', 'libicsneo/build']) + subprocess.check_output(["git", "clean", "-xdf"], cwd="libicsneo") + subprocess.check_output(["mkdir", "-p", "libicsneo/build"]) + + subprocess.check_output( + ["cmake", "..", "-DCMAKE_BUILD_TYPE=Release", "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON"], cwd="libicsneo/build" + ) + subprocess.check_output( + ["cmake", "--build", ".", "--target", "icsneolegacy", "--parallel", CPUS], cwd="libicsneo/build" + ) - subprocess.check_output(['cmake', '..', '-DCMAKE_BUILD_TYPE=Release', '-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON'], cwd='libicsneo/build') - subprocess.check_output(['cmake', '--build', '.', '--target', - 'icsneolegacy', '--parallel', CPUS], cwd='libicsneo/build') def _build_icsneo_macos(): - subprocess.check_output(['git', 'clean', '-xdf'], cwd='libicsneo') - subprocess.check_output(['mkdir', '-p', 'libicsneo/build']) + subprocess.check_output(["git", "clean", "-xdf"], cwd="libicsneo") + subprocess.check_output(["mkdir", "-p", "libicsneo/build"]) - subprocess.check_output(['cmake', '..', '-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64', - '-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON', '-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13', - '-DLIBUSB_LIBRARIES=/tmp/libusb/lib/libusb-1.0.0.dylib', - '-DLIBUSB_INCLUDE_DIR=/tmp/libusb/include/libusb-1.0'], cwd='libicsneo/build') + subprocess.check_output( + [ + "cmake", + "..", + "-DCMAKE_BUILD_TYPE=Release", + "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64", + "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON", + "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13", + "-DLIBUSB_LIBRARIES=/tmp/libusb/lib/libusb-1.0.0.dylib", + "-DLIBUSB_INCLUDE_DIR=/tmp/libusb/include/libusb-1.0", + ], + cwd="libicsneo/build", + ) - subprocess.check_output(['cmake', '--build', '.', '--target', - 'icsneolegacy', '--parallel', CPUS], cwd='libicsneo/build') - subprocess.check_output(['install_name_tool', '-change', '/tmp/libusb/lib/libusb-1.0.0.dylib', - '@loader_path/libusb-1.0.0.dylib', 'libicsneolegacy.dylib'], cwd='libicsneo/build') + subprocess.check_output( + ["cmake", "--build", ".", "--target", "icsneolegacy", "--parallel", CPUS], cwd="libicsneo/build" + ) + subprocess.check_output( + [ + "install_name_tool", + "-change", + "/tmp/libusb/lib/libusb-1.0.0.dylib", + "@loader_path/libusb-1.0.0.dylib", + "libicsneolegacy.dylib", + ], + cwd="libicsneo/build", + ) def build(): print("Building libicsneo...") - if sys.platform == 'darwin': + if sys.platform == "darwin": _build_libusb() _build_icsneo_macos() - elif sys.platform == 'linux': + elif sys.platform == "linux": _build_icsneo_linux() def copy(): - if sys.platform == 'darwin': - shutil.copyfile('/tmp/libusb/lib/libusb-1.0.0.dylib', - 'ics/libusb-1.0.0.dylib') - shutil.copyfile('libicsneo/build/libicsneolegacy.dylib', - 'ics/libicsneolegacy.dylib') - elif sys.platform == 'linux': - shutil.copyfile('libicsneo/build/libicsneolegacy.so', - 'ics/libicsneolegacy.so') + if sys.platform == "darwin": + shutil.copyfile("/tmp/libusb/lib/libusb-1.0.0.dylib", "ics/libusb-1.0.0.dylib") + shutil.copyfile("libicsneo/build/libicsneolegacy.dylib", "ics/libicsneolegacy.dylib") + elif sys.platform == "linux": + shutil.copyfile("libicsneo/build/libicsneolegacy.so", "ics/libicsneolegacy.so") def clean(): - shutil.rmtree('libicsneo') - shutil.rmtree('libusb') - shutil.rmtree('/tmp/libusb') + shutil.rmtree("libicsneo") + shutil.rmtree("libusb") + shutil.rmtree("/tmp/libusb") -if __name__ == '__main__': - if '--clean' in sys.argv: +if __name__ == "__main__": + if "--clean" in sys.argv: clean() exit(0) checkout() diff --git a/doc/source/conf.py b/doc/source/conf.py index 440df7426..e3fbb9ec2 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -19,56 +19,56 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) -sys.path.insert(0, os.path.abspath('.')) +# sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath(".")) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autosummary', - 'sphinx.ext.autodoc', + "sphinx.ext.autosummary", + "sphinx.ext.autodoc", ] # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = 'ics' -copyright = 'Intrepid Control Systems, Inc.' +project = "ics" +copyright = "Intrepid Control Systems, Inc." # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '913.16' +version = "913.16" # The full version, including alpha/beta/rc tags. release = version # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -76,168 +76,162 @@ # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -#html_theme = 'sphinx_rtd_theme' -html_theme = 'classic' +# html_theme = 'sphinx_rtd_theme' +html_theme = "classic" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -html_theme_options = {'body_max_width': '80%'} +html_theme_options = {"body_max_width": "80%"} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path = ['_static'] +# html_static_path = ['_static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Output file base name for HTML help builder. -htmlhelp_basename = 'icsdoc' +htmlhelp_basename = "icsdoc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', + # The paper size ('letterpaper' or 'a4paper'). + #'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - ('index', 'ics.tex', 'python\\_ics Documentation', - 'David Rebbe', 'manual'), + ("index", "ics.tex", "python\\_ics Documentation", "David Rebbe", "manual"), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'ics', 'ics Documentation', - ['David Rebbe'], 1) -] +man_pages = [("index", "ics", "ics Documentation", ["David Rebbe"], 1)] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -246,21 +240,19 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'ics', 'ics Documentation', - 'David Rebbe', 'ics', 'One line description of project.', - 'Miscellaneous'), + ("index", "ics", "ics Documentation", "David Rebbe", "ics", "One line description of project.", "Miscellaneous"), ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False -autodoc_member_order = 'groupwise' +autodoc_member_order = "groupwise" diff --git a/doc/source/generate_documentation.py b/doc/source/generate_documentation.py index 70f24338c..422b9dccd 100644 --- a/doc/source/generate_documentation.py +++ b/doc/source/generate_documentation.py @@ -1,46 +1,50 @@ import inspect import ics + def generate_structures(): - #data = '.. autosummary::\n' + # data = '.. autosummary::\n' """ \t.. automodule:: ics.structures.{name}.{name}\n\t\t:members:\n\t\t:undoc-members:\n\n" """ - data = '' + data = "" for name, value in inspect.getmembers(ics.structures, inspect.ismodule): - #data += f"\t.. automodule:: ics.structures.{name}\n\t\t:members:\n\t\t:show-inheritance:\n\t\t:undoc-members:\n\n" + # data += f"\t.. automodule:: ics.structures.{name}\n\t\t:members:\n\t\t:show-inheritance:\n\t\t:undoc-members:\n\n" data += f"\t.. autoclass:: ics.structures.{name}.{name}\n\t\t:members:\n\t\t:undoc-members:\n\n" return data + def generate_functions(): - data = '' + data = "" functions = inspect.getmembers(ics, inspect.isroutine) new_style_functions = [] icsneo_style_functions = [] inbetween_style_functions = [] for function_name, function_type in functions: - if function_name.startswith('icsneo'): + if function_name.startswith("icsneo"): icsneo_style_functions.append(function_name) - elif '_' in function_name: + elif "_" in function_name: new_style_functions.append(function_name) else: inbetween_style_functions.append(function_name) - data += '.. autosummary::\n' + data += ".. autosummary::\n" for name in new_style_functions + inbetween_style_functions + icsneo_style_functions: if name: data += f"\tics.{name}\n" return data + def generate_variables(): - data = '' + data = "" for variable in [item for item in dir(ics) if not item.startswith("__") and item.isupper()]: data += f"\t.. py:data:: {str(variable)}\n\t\t:annotation: = {str(getattr(ics, variable))}\n\n" return data + def generate_documentation(): return inspect.cleandoc( - """.. include:: header.rst + """.. include:: header.rst .. include:: examples.rst ============================================================ @@ -69,8 +73,11 @@ def generate_documentation(): %s - """ % (generate_functions(), generate_structures(), generate_variables())) + """ + % (generate_functions(), generate_structures(), generate_variables()) + ) + -with open('index.rst', 'w+') as f: +with open("index.rst", "w+") as f: f.write(generate_documentation()) -print("Done.") \ No newline at end of file +print("Done.") diff --git a/examples/canfd_transmit_example.py b/examples/canfd_transmit_example.py index 2de778c08..3e211e980 100644 --- a/examples/canfd_transmit_example.py +++ b/examples/canfd_transmit_example.py @@ -1,4 +1,4 @@ -import ics +import ics if __name__ == "__main__": # Create a CAN Message like normal but set the StatusBitFields @@ -8,8 +8,8 @@ msg.Protocol = ics.SPY_PROTOCOL_CANFD msg.StatusBitField = ics.SPY_STATUS_CANFD msg.StatusBitField3 = ics.SPY_STATUS3_CANFD_BRS - msg.ExtraDataPtr = tuple([x for x in range(64)]) + msg.ExtraDataPtr = tuple([x for x in range(64)]) # Open Device and transmit the message device = ics.open_device() - ics.transmit_messages(device, msg) \ No newline at end of file + ics.transmit_messages(device, msg) diff --git a/examples/iso15765_example.py b/examples/iso15765_example.py index aadf14b9c..66dc8d037 100644 --- a/examples/iso15765_example.py +++ b/examples/iso15765_example.py @@ -4,6 +4,7 @@ enable_print_message = False enable_use_server = True + # Helper Functions ########################################################## def dev_name(device): if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): @@ -11,34 +12,40 @@ def dev_name(device): else: return device.Name + " " + str(device.SerialNumber) + def print_message(msg): if not enable_print_message: if isinstance(msg, ics.SpyMessage): - print('\tArbID: {}\tData: {}'.format(hex(msg.ArbIDOrHeader), [hex(x) for x in msg.Data])) + print("\tArbID: {}\tData: {}".format(hex(msg.ArbIDOrHeader), [hex(x) for x in msg.Data])) return - print('\t' + str(type(msg))) + print("\t" + str(type(msg))) for attribute in dir(msg): if attribute.startswith("_"): continue length = len(attribute) - if attribute == 'data': - print("\t\t{}:{}{}".format(attribute, " "*(30-length), msg.data[:msg.num_bytes])) + if attribute == "data": + print("\t\t{}:{}{}".format(attribute, " " * (30 - length), msg.data[: msg.num_bytes])) else: value = getattr(msg, attribute) try: value = hex(value) except: pass - print("\t\t{}:{}{}".format(attribute, " "*(30-length), value)) + print("\t\t{}:{}{}".format(attribute, " " * (30 - length), value)) print() + def open_device(index=0): device = None if enable_use_server: # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -47,6 +54,7 @@ def open_device(index=0): print("Opened Device %s." % dev_name(device)) return device + # Iso15765 Fuctions ######################################################### def transmit_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): number_of_bytes = 64 @@ -59,8 +67,8 @@ def transmit_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): msg.fc_id = 0x7E8 msg.fc_id_mask = 0xFFF msg.flowControlExtendedAddress = 0xFE - msg.fs_timeout = 0x10 # ms - msg.fs_wait = 0x3000 # ms + msg.fs_timeout = 0x10 # ms + msg.fs_wait = 0x3000 # ms msg.blockSize = 0 msg.stMin = 0 # paddingEnable @@ -73,16 +81,17 @@ def transmit_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): msg.tx_dl = 1 # Data my_data = [x for x in range(number_of_bytes)] - msg.data = (ctypes.c_ubyte*len(msg.data))(*my_data) + msg.data = (ctypes.c_ubyte * len(msg.data))(*my_data) # Transmit the message print("Transmitting iso15765 message on {}...".format(dev_name(device))) ics.iso15765_transmit_message(device, netid, msg, 3000) # Wait for the messages to be transmitted, this can be calculated a lot better but works here. - time.sleep((((number_of_bytes/8)*msg.fs_timeout)/1000.0)+0.5) - #print_message(msg) + time.sleep((((number_of_bytes / 8) * msg.fs_timeout) / 1000.0) + 0.5) + # print_message(msg) print("Transmitted iso15765 message on {}.".format(dev_name(device))) + def setup_rx_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): msg = ics.st_cm_iso157652_rx_message.st_cm_iso157652_rx_message() @@ -106,27 +115,29 @@ def setup_rx_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): print("Setting up iso15765 message on {}...".format(dev_name(device))) ics.iso15765_receive_message(device, netid, msg) print("Setup iso15765 message on {}.".format(dev_name(device))) - + def get_iso15765_msgs(device): msgs, error_count = ics.get_messages(device) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): - print('Message #{}\t'.format(i+1), end='') + print("Message #{}\t".format(i + 1), end="") print_message(m) - + + if __name__ == "__main__": import time + netid = ics.NETID_HSCAN - + tx_device = open_device(0) rx_device = open_device(1) - + ics.iso15765_enable_networks(tx_device, netid) ics.iso15765_enable_networks(rx_device, netid) setup_rx_iso15765_msg(rx_device) transmit_iso15765_msg(tx_device) get_iso15765_msgs(rx_device) - + ics.iso15765_disable_networks(tx_device) ics.iso15765_disable_networks(rx_device) diff --git a/examples/lin_settings_example.py b/examples/lin_settings_example.py index c62e808d3..a46a4eb0f 100644 --- a/examples/lin_settings_example.py +++ b/examples/lin_settings_example.py @@ -43,9 +43,7 @@ def get_device_specific_settings(s: s_device_settings) -> object: setting_map[e_device_settings_type.DeviceOBD2LCSettingsType] = "obd2lc" if s.DeviceSettingType not in setting_map: - raise KeyError( - f"Error: {s.DeviceSettingType} is not a known type in setting_map" - ) + raise KeyError(f"Error: {s.DeviceSettingType} is not a known type in setting_map") return getattr(s.Settings, setting_map[s.DeviceSettingType]) @@ -69,9 +67,7 @@ def print_settings(device_specific_settings): try: # Open the first device device = ics.open_device() - print( - f"Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})..." - ) + print(f"Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})...") except ics.RuntimeError as ex: print(f"Failed to open first device: {ex}") exit(1) diff --git a/examples/open_device_example.py b/examples/open_device_example.py index edcee52cb..826e9a673 100644 --- a/examples/open_device_example.py +++ b/examples/open_device_example.py @@ -4,20 +4,26 @@ # with neoVI Server enabled so we can successfully open devices enable_use_server = True + def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) - + + def open_device(index=0): device = None if enable_use_server: # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -25,8 +31,8 @@ def open_device(index=0): device = ics.open_device() print("Opened Device %s." % dev_name(device)) return device - - + + if __name__ == "__main__": # Lets figure out how many are connected to the PC and display it connected_count = len(ics.find_devices()) @@ -37,4 +43,4 @@ def open_device(index=0): # the device will automatically close here # because the device object is going out of # scope. - print("Finished.") \ No newline at end of file + print("Finished.") diff --git a/examples/transmit_can_example.py b/examples/transmit_can_example.py index 84a86e334..4ec554a03 100644 --- a/examples/transmit_can_example.py +++ b/examples/transmit_can_example.py @@ -4,20 +4,26 @@ # with neoVI Server enabled so we can successfully open devices enable_use_server = True + def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) - + + def open_device(index=0): device = None if enable_use_server: # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -25,34 +31,37 @@ def open_device(index=0): device = ics.open_device() print("Opened Device %s." % dev_name(device)) return device - + + def transmit_can(device): msg = ics.SpyMessage() - msg.ArbIDOrHeader = 0x01 # CAN Arbitration ID - msg.Data = (1,2,3,4,5,6,7,8) # Data Bytes go here - msg.NetworkID = ics.NETID_HSCAN # First channel of CAN on the device - + msg.ArbIDOrHeader = 0x01 # CAN Arbitration ID + msg.Data = (1, 2, 3, 4, 5, 6, 7, 8) # Data Bytes go here + msg.NetworkID = ics.NETID_HSCAN # First channel of CAN on the device + # msg parameter here can also be a tuple of messages ics.transmit_messages(device, msg) + def receive_can(device): msgs, error_count = ics.get_messages(device) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): - print('Message #{}\t'.format(i+1), end='') - print('\tArbID: {}\tData: {}'.format(hex(m.ArbIDOrHeader), [hex(x) for x in m.Data])) - - + print("Message #{}\t".format(i + 1), end="") + print("\tArbID: {}\tData: {}".format(hex(m.ArbIDOrHeader), [hex(x) for x in m.Data])) + + if __name__ == "__main__": import time + # Lets figure out how many are connected to the PC and display it connected_count = len(ics.find_devices()) print("Found {} connected device(s)...".format(connected_count)) - + tx_dev = open_device(0) rx_dev = open_device(1) - + transmit_can(tx_dev) receive_can(rx_dev) - + print("Finished.") diff --git a/examples/transmit_can_xtd_example.py b/examples/transmit_can_xtd_example.py index 747d0c7a8..4d2e5acbf 100644 --- a/examples/transmit_can_xtd_example.py +++ b/examples/transmit_can_xtd_example.py @@ -4,20 +4,26 @@ # with neoVI Server enabled so we can successfully open devices enable_use_server = True + def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) - + + def open_device(index=0): device = None if enable_use_server: # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -25,38 +31,41 @@ def open_device(index=0): device = ics.open_device() print("Opened Device %s." % dev_name(device)) return device - + + def transmit_can(device): msg = ics.SpyMessage() - msg.ArbIDOrHeader = 0xFFFFFF # CAN Arbitration ID - msg.Data = (1,2,3,4,5,6,7,8) # Data Bytes go here - msg.NetworkID = ics.NETID_HSCAN # First channel of CAN on the device + msg.ArbIDOrHeader = 0xFFFFFF # CAN Arbitration ID + msg.Data = (1, 2, 3, 4, 5, 6, 7, 8) # Data Bytes go here + msg.NetworkID = ics.NETID_HSCAN # First channel of CAN on the device msg.NumberBytesHeader = 4 msg.StatusBitField = ics.SPY_STATUS_XTD_FRAME - + # msg parameter here can also be a tuple of messages ics.transmit_messages(device, msg) + def receive_can(device): msgs, error_count = ics.get_messages(device) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): if m.NetworkID != ics.NETID_HSCAN: continue - print('Message #{}\t'.format(i+1), end='') - print('\tArbID: {}\tData: {}'.format(hex(m.ArbIDOrHeader), [hex(x) for x in m.Data])) - - + print("Message #{}\t".format(i + 1), end="") + print("\tArbID: {}\tData: {}".format(hex(m.ArbIDOrHeader), [hex(x) for x in m.Data])) + + if __name__ == "__main__": import time + # Lets figure out how many are connected to the PC and display it connected_count = len(ics.find_devices()) print("Found {} connected device(s)...".format(connected_count)) - + tx_dev = open_device(0) rx_dev = open_device(1) - + transmit_can(tx_dev) receive_can(rx_dev) - + print("Finished.") diff --git a/examples/transmit_canfd_example.py b/examples/transmit_canfd_example.py index f5dd091b7..e0e6b9dc2 100644 --- a/examples/transmit_canfd_example.py +++ b/examples/transmit_canfd_example.py @@ -1,5 +1,6 @@ import ics import time + # Tells our custom open_device() function to do special behavior # with neoVI Server enabled so we can successfully open devices enable_use_server = True @@ -7,6 +8,7 @@ DATA_BYTES = tuple([x for x in range(64)]) + def are_errors_present(msg): """Helper function to detect if a message error occurred.""" error_flags = 0 @@ -49,8 +51,11 @@ def open_device(index=0): # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -73,38 +78,43 @@ def transmit_can(device): _, _ = ics.get_messages(device) # msg parameter here can also be a tuple of messages ics.transmit_messages(device, msg) - # Give the bus and buffers time to do their magic. + # Give the bus and buffers time to do their magic. # In a real application we should poll until we find our actual message. time.sleep(0.5) # get all the messages on this device and print out the transmitted messages - print("="*80) + print("=" * 80) print(f"Transmitted Messages on {dev_name(device)}") - print("="*80) + print("=" * 80) msgs, error_count = ics.get_messages(device) for i, m in enumerate(msgs): # Only process transmitted messages if m.StatusBitField & ics.SPY_STATUS_TX_MSG == ics.SPY_STATUS_TX_MSG: - print('Message #{}\t'.format(i+1), end='') + print("Message #{}\t".format(i + 1), end="") data = m.Data if not m.ExtraDataPtr else m.ExtraDataPtr netid = m.NetworkID | (m.NetworkID2 << 8) - print('NetID: {}\tArbID: {}\tData: {}\tErrors Present: {}'.format(hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data], are_errors_present(m))) + print( + "NetID: {}\tArbID: {}\tData: {}\tErrors Present: {}".format( + hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data], are_errors_present(m) + ) + ) + def receive_can(device): msgs, error_count = ics.get_messages(device) - print("="*80) + print("=" * 80) print(f"Received Messages on {dev_name(device)}") - print("="*80) + print("=" * 80) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): # Ignore transmitted messages if m.StatusBitField & ics.SPY_STATUS_TX_MSG == ics.SPY_STATUS_TX_MSG: continue - #if m.Protocol != ics.SPY_PROTOCOL_CANFD: + # if m.Protocol != ics.SPY_PROTOCOL_CANFD: # continue - print('Message #{}\t'.format(i+1), end='') + print("Message #{}\t".format(i + 1), end="") data = m.Data if not m.ExtraDataPtr else m.ExtraDataPtr netid = m.NetworkID | (m.NetworkID2 << 8) - print('NetID: {}\tArbID: {}\tData: {}'.format(hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data])) + print("NetID: {}\tArbID: {}\tData: {}".format(hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data])) if __name__ == "__main__": diff --git a/examples/transmit_ethernet_example.py b/examples/transmit_ethernet_example.py index fddef4656..8cf579789 100644 --- a/examples/transmit_ethernet_example.py +++ b/examples/transmit_ethernet_example.py @@ -1,5 +1,6 @@ import ics import time + # Tells our custom open_device() function to do special behavior # with neoVI Server enabled so we can successfully open devices enable_use_server = True @@ -7,6 +8,7 @@ DATA_BYTES = tuple([x for x in range(64)]) + def are_errors_present(msg): """Helper function to detect if a message error occurred.""" error_flags = 0 @@ -49,8 +51,11 @@ def open_device(index=0): # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -71,8 +76,24 @@ def transmit_ethernet(device): # use ARP packet # Gigalog requires this for Ethernet 10G to be detected in Vspy (0x08, 0x06) # Last two bytes are the network id - data = [0x00, 0xFC, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x08, 0x06, netid & 0xFF, (netid >> 8) & 0xFF] + data = [ + 0x00, + 0xFC, + 0x70, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0xFF, + 0x08, + 0x06, + netid & 0xFF, + (netid >> 8) & 0xFF, + ] # Append 62 random bytes on the end. data += [x for x in range(62)] msg.ExtraDataPtr = tuple(data) @@ -82,36 +103,41 @@ def transmit_ethernet(device): _, _ = ics.get_messages(device) # msg parameter here can also be a tuple of messages ics.transmit_messages(device, msg) - # Give the bus and buffers time to do their magic. + # Give the bus and buffers time to do their magic. # In a real application we should poll until we find our actual message. time.sleep(0.5) # get all the messages on this device and print out the transmitted messages - print("="*80) + print("=" * 80) print(f"Transmitted Messages on {dev_name(device)}") - print("="*80) + print("=" * 80) msgs, error_count = ics.get_messages(device) for i, m in enumerate(msgs): # Only process transmitted messages if m.StatusBitField & ics.SPY_STATUS_TX_MSG == ics.SPY_STATUS_TX_MSG: - print('Message #{}\t'.format(i+1), end='') + print("Message #{}\t".format(i + 1), end="") data = m.Data if not m.ExtraDataPtr else m.ExtraDataPtr netid = m.NetworkID | (m.NetworkID2 << 8) - print('NetID: {}\tArbID: {}\tData: {}\tErrors Present: {}'.format(hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data], are_errors_present(m))) + print( + "NetID: {}\tArbID: {}\tData: {}\tErrors Present: {}".format( + hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data], are_errors_present(m) + ) + ) + def receive_ethernet(device): msgs, error_count = ics.get_messages(device) - print("="*80) + print("=" * 80) print(f"Received Messages on {dev_name(device)}") - print("="*80) + print("=" * 80) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): # Ignore transmitted messages if m.StatusBitField & ics.SPY_STATUS_TX_MSG == ics.SPY_STATUS_TX_MSG: continue - print('Message #{}\t'.format(i+1), end='') + print("Message #{}\t".format(i + 1), end="") data = m.Data if not m.ExtraDataPtr else m.ExtraDataPtr netid = m.NetworkID | (m.NetworkID2 << 8) - print('NetID: {}\tArbID: {}\tData: {}'.format(hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data])) + print("NetID: {}\tArbID: {}\tData: {}".format(hex(netid), hex(m.ArbIDOrHeader), [hex(x) for x in data])) if __name__ == "__main__": diff --git a/examples/transmit_lin_example.py b/examples/transmit_lin_example.py index 91a148dac..e698a8e40 100755 --- a/examples/transmit_lin_example.py +++ b/examples/transmit_lin_example.py @@ -6,20 +6,26 @@ # with neoVI Server enabled so we can successfully open devices enable_use_server = True + def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): return device.Name + " " + ics.base36enc(device.SerialNumber) else: return device.Name + " " + str(device.SerialNumber) - + + def open_device(index=0): device = None if enable_use_server: # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] else: @@ -28,14 +34,16 @@ def open_device(index=0): print("Opened Device %s." % dev_name(device)) return device + def calc_checksum(msg): checksum = 0 - for byte in msg.Header[1:]+msg.Data: + for byte in msg.Header[1:] + msg.Data: checksum += byte - if (checksum > 255): + if checksum > 255: checksum -= 255 msg.Data += tuple([~checksum & 0xFF]) + def transmit_lin(msg): calc_checksum(msg) msg.NumberBytesHeader = len(msg.Header) @@ -46,6 +54,7 @@ def transmit_lin(msg): print(ex) raise ex + def prepare_message(device): msg = ics.SpyMessageJ1850() msg.StatusBitField = ics.SPY_STATUS_INIT_MESSAGE @@ -55,30 +64,33 @@ def prepare_message(device): msg.Data = (0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x88) transmit_lin(msg) + def receive_lin(device): msgs, error_count = ics.get_messages(device) print("Received {} messages with {} errors.".format(len(msgs), error_count)) - netids = { ics.NETID_LIN: "LIN 1", ics.NETID_LIN2: "LIN 2" } + netids = {ics.NETID_LIN: "LIN 1", ics.NETID_LIN2: "LIN 2"} for i, m in enumerate(msgs): - print('\nMessage #{}: '.format(i+1), end='') + print("\nMessage #{}: ".format(i + 1), end="") netid = netids.get(m.NetworkID) if netid is not None: - print('{}'.format(netid), end='') - if (m.StatusBitField & ics.SPY_STATUS_INIT_MESSAGE): - print(' | Init', end='') + print("{}".format(netid), end="") + if m.StatusBitField & ics.SPY_STATUS_INIT_MESSAGE: + print(" | Init", end="") data_list = [] for x in m.Header[1:]: data_list.append(x) for y in m.Data: data_list.append(y) - print('\nID: {} | '.format(hex(m.Header[0])), end='') + print("\nID: {} | ".format(hex(m.Header[0])), end="") if len(data_list): checksum = data_list.pop() - print('Data: {} | '.format([hex(x) for x in data_list]), end='') - print('Checksum: {}'.format(hex(checksum))) + print("Data: {} | ".format([hex(x) for x in data_list]), end="") + print("Checksum: {}".format(hex(checksum))) + if __name__ == "__main__": import time + # Lets figure out how many are connected to the PC and display it connected_count = len(ics.find_devices()) print("Found {} connected device(s)...".format(connected_count)) diff --git a/examples/transmit_lin_ldf_example.py b/examples/transmit_lin_ldf_example.py index 955bad5c2..c937810cc 100755 --- a/examples/transmit_lin_ldf_example.py +++ b/examples/transmit_lin_ldf_example.py @@ -4,10 +4,12 @@ import os import ldfparser + def parse_ldf(): - path = os.path.join(os.path.dirname(__file__), 'lin22.ldf') + path = os.path.join(os.path.dirname(__file__), "lin22.ldf") return ldfparser.parse_ldf(path) + def dev_name(device): # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): @@ -15,28 +17,34 @@ def dev_name(device): else: return device.Name + " " + str(device.SerialNumber) + def open_device(index=0): device = None # ics.open_device() won't open a device if we have handles open already # so we need to find them and specify which ones to connect to. devices = ics.find_devices() - print("Opening Device {} (Open Client handles: {})...".format(dev_name(devices[index]), devices[index].NumberOfClients)) + print( + "Opening Device {} (Open Client handles: {})...".format( + dev_name(devices[index]), devices[index].NumberOfClients + ) + ) ics.open_device(devices[index]) device = devices[index] print("Opened Device %s." % dev_name(device)) return device + def receive_lin(device): msgs, error_count = ics.get_messages(device) print("Received {} messages with {} errors.".format(len(msgs), error_count)) - netids = { ics.NETID_LIN: "LIN 1" }#, ics.NETID_LIN2: "LIN 2" } + netids = {ics.NETID_LIN: "LIN 1"} # , ics.NETID_LIN2: "LIN 2" } for i, m in enumerate(msgs): netid = netids.get(m.NetworkID) if netid is not None: - #print('\nMessage #{}: '.format(i+1), end='') - print('{}'.format(netid), end='') - if (m.StatusBitField & ics.SPY_STATUS_INIT_MESSAGE): - print(' | Init') + # print('\nMessage #{}: '.format(i+1), end='') + print("{}".format(netid), end="") + if m.StatusBitField & ics.SPY_STATUS_INIT_MESSAGE: + print(" | Init") data_list = [] for x in m.Header[1:]: data_list.append(x) @@ -45,39 +53,40 @@ def receive_lin(device): try: frame_name = ldf.get_frame(m.Header[0] & 0x3F).name if frame_name is not None: - print('{} | '.format(frame_name), end='') + print("{} | ".format(frame_name), end="") except: pass - print('ID: {} | '.format(hex(m.Header[0])), end='') + print("ID: {} | ".format(hex(m.Header[0])), end="") if len(data_list): checksum = data_list.pop() - print('Data: {} | '.format([hex(x) for x in data_list]), end='') - print('Checksum: {}'.format(hex(checksum))) + print("Data: {} | ".format([hex(x) for x in data_list]), end="") + print("Checksum: {}".format(hex(checksum))) print() return True + def send_frame(self, baudrate: int, frame_id: int, data: bytearray, netid: int, is_commander: bool): # set baudrate with device settings? msg = ics.SpyMessageJ1850() - if(is_commander): + if is_commander: msg.StatusBitField = ics.SPY_STATUS_INIT_MESSAGE msg.Protocol = ics.SPY_PROTOCOL_LIN msg.NetworkID = netid header_bytes = [frame_id] frame_bytes = [] - if(len(data)): + if len(data): hdr_len = min(len(data), 2) data_len = min((len(data) - hdr_len), 6) checksum = 0 - if(hdr_len > 0): + if hdr_len > 0: header_bytes += list(data[0:hdr_len]) - if(data_len > 0): + if data_len > 0: frame_bytes += list(data[hdr_len:]) - for byte in header_bytes+frame_bytes: + for byte in header_bytes + frame_bytes: checksum += byte - if (checksum > 255): + if checksum > 255: checksum -= 255 - if(len(header_bytes) == 2): + if len(header_bytes) == 2: header_bytes.append(~checksum & 0xFF) else: frame_bytes.append(~checksum & 0xFF) @@ -92,6 +101,7 @@ def send_frame(self, baudrate: int, frame_id: int, data: bytearray, netid: int, return False return True + class LINCommander: def __init__(self, device): self.device = device @@ -100,6 +110,7 @@ def __init__(self, device): def send_commander_frame(self, baudrate: int, frame_id: int, data: bytearray): send_frame(self, baudrate, frame_id, data, ics.NETID_LIN, True) + class LINResponder: def __init__(self, device): self.device = device @@ -108,8 +119,10 @@ def __init__(self, device): def send_responder_frame(self, baudrate: int, frame_id: int, data: bytearray): send_frame(self, baudrate, frame_id, data, ics.NETID_LIN2, False) + if __name__ == "__main__": import time + ldf = parse_ldf() # Lets figure out how many are connected to the PC and display it connected_count = len(ics.find_devices()) @@ -124,28 +137,28 @@ def send_responder_frame(self, baudrate: int, frame_id: int, data: bytearray): lin_resp.frames.update({each.name: each}) for cmdr in commander_nodes.publishes_frames: - lin_cmdr.frames.update({cmdr.name: cmdr}) + lin_cmdr.frames.update({cmdr.name: cmdr}) collision_schedule = ldf.get_schedule_table("Collision_resolver") for entry in collision_schedule.schedule: - if(entry.frame is not None): - if(entry.frame.name in lin_cmdr.frames): + if entry.frame is not None: + if entry.frame.name in lin_cmdr.frames: cmdr_data = entry.frame.encode({}) lin_cmdr.send_commander_frame(ldf.baudrate, entry.frame.frame_id, cmdr_data) - elif(entry.frame.name in lin_resp.frames): + elif entry.frame.name in lin_resp.frames: resp_data = entry.frame.encode({}) lin_resp.send_responder_frame(ldf.baudrate, entry.frame.frame_id, resp_data) - time.sleep(150/1000) + time.sleep(150 / 1000) lin_cmdr.send_commander_frame(ldf.baudrate, entry.frame.frame_id, bytearray()) - time.sleep(150/1000) + time.sleep(150 / 1000) - #request_frame = ldf.get_unconditional_frame('CEM_Frm1') - #request_data = request_frame.encode({"InternalLightsRequest": 'on'}, ldf.converters) - #lin_cmdr.send_commander_frame(ldf.baudrate, request_frame.frame_id, request_data) + # request_frame = ldf.get_unconditional_frame('CEM_Frm1') + # request_data = request_frame.encode({"InternalLightsRequest": 'on'}, ldf.converters) + # lin_cmdr.send_commander_frame(ldf.baudrate, request_frame.frame_id, request_data) - #responseFrame = ldf.get_unconditional_frame('RSM_Frm1') - #responseData = responseFrame.encode({"RightIntLightsSwitch": 'off'}, ldf.converters) - #lin_resp.send_responder_frame(ldf.baudrate, responseFrame.frame_id, responseData) + # responseFrame = ldf.get_unconditional_frame('RSM_Frm1') + # responseData = responseFrame.encode({"RightIntLightsSwitch": 'off'}, ldf.converters) + # lin_resp.send_responder_frame(ldf.baudrate, responseFrame.frame_id, responseData) receive_lin(device) time.sleep(1) print("Finished.") diff --git a/extract_icsneo40_defines.py b/extract_icsneo40_defines.py index 5e29070c8..5163abe11 100644 --- a/extract_icsneo40_defines.py +++ b/extract_icsneo40_defines.py @@ -12,10 +12,11 @@ def format_file(filename, preprocessor=False): import os + processed_fname = os.path.basename(filename) name, ext = os.path.splitext(processed_fname) - processed_fname = f'{name}_processed{ext}' - #processed_fname = "icsnVC40_processed.h" + processed_fname = f"{name}_processed{ext}" + # processed_fname = "icsnVC40_processed.h" # Run it through the preprocessor # clang -E -P .\include\ics\icsnVC40.h -o output.h if preprocessor: @@ -27,8 +28,11 @@ def format_file(filename, preprocessor=False): shutil.copy(str(original_path), str(new_path)) # Format the file - result = run(["clang-format", "-i", "--style", - "{BasedOnStyle: Mozilla, ColumnLimit: '200'}", processed_fname], stdout=PIPE, stderr=PIPE) + result = run( + ["clang-format", "-i", "--style", "{BasedOnStyle: Mozilla, ColumnLimit: '200'}", processed_fname], + stdout=PIPE, + stderr=PIPE, + ) result.check_returncode() return processed_fname @@ -36,7 +40,7 @@ def format_file(filename, preprocessor=False): def extract(): use_internal = False - if os.path.isfile('include/ics/icsnVC40Internal.h'): + if os.path.isfile("include/ics/icsnVC40Internal.h"): use_internal = True print("Using Internal Header!") @@ -48,103 +52,122 @@ def extract(): """ # write the header file first - with open('include/setup_module_auto_defines.h', 'w') as f: + with open("include/setup_module_auto_defines.h", "w") as f: print("#ifndef __SETUP_MODULE_AUTO_DEFINES_H__", file=f) print("#define __SETUP_MODULE_AUTO_DEFINES_H__", file=f) if use_internal: print("\n#ifndef _USE_INTERNAL_HEADER_\n#define _USE_INTERNAL_HEADER_\n#endif\n", file=f) - print('#include ', file=f) + print("#include ", file=f) print("\nint setup_module_auto_defines(PyObject * module);\n", file=f) print("#endif // __SETUP_MODULE_AUTO_DEFINES_H__", file=f) - ignores = ('(', '#endif', '#define', 'icscm_', 'GCC_MODIFIER', 'VS_MODIFIER', - '{', 'ICSNVC40_H', 'ICSNVC40INTERNAL__H_', 'SYellowSettings_SIZE', 'IS_64BIT_SYSTEM') + ignores = ( + "(", + "#endif", + "#define", + "icscm_", + "GCC_MODIFIER", + "VS_MODIFIER", + "{", + "ICSNVC40_H", + "ICSNVC40INTERNAL__H_", + "SYellowSettings_SIZE", + "IS_64BIT_SYSTEM", + ) use_enums = True - with open('src/setup_module_auto_defines.cpp', 'w') as f: + 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#include "ics/icsnVC40.h"', file=f) if use_internal: - print("#include \"ics/icsnVC40Internal.h\"", file=f) + print('#include "ics/icsnVC40Internal.h"', file=f) print("\nint setup_module_auto_defines(PyObject * module)\n{", file=f) print("\tint result = 0;\n", file=f) fnames = [] - fnames.append(format_file('include/ics/icsnVC40.h')) + fnames.append(format_file("include/ics/icsnVC40.h")) if use_internal: - fnames.append(format_file('include/ics/icsnVC40Internal.h')) + fnames.append(format_file("include/ics/icsnVC40Internal.h")) # Let's get to work here! for header_file in fnames: # if not os.path.isfile(header_file) and 'Internal' in header_file: # # Ignore this file # continue - with open(header_file, 'r') as fname: - if 'icsnVC40Internal' in header_file: - print("\n#ifdef _USE_INTERNAL_HEADER_ /* ALL THESE DEFINES ARE SPECIFIED IN THE INTERNAL HEADER */\n", file=f) + with open(header_file, "r") as fname: + if "icsnVC40Internal" in header_file: + print( + "\n#ifdef _USE_INTERNAL_HEADER_ /* ALL THESE DEFINES ARE SPECIFIED IN THE INTERNAL HEADER */\n", + file=f, + ) inside_enum = False inside_comment = False line_number = 0 for line in fname: line_number += 1 - if line.lstrip().startswith('//'): + if line.lstrip().startswith("//"): continue - if inside_enum and '}' in line: + if inside_enum and "}" in line: inside_enum = False if use_enums: - print('\t// end of enum - ', line, file=f) + print("\t// end of enum - ", line, file=f) continue - elif inside_comment and '*/' in line: + elif inside_comment and "*/" in line: inside_comment = False continue - elif inside_enum and not '{' in line: + elif inside_enum and not "{" in line: sline = line.split() if not sline: continue if any(x in sline[0] for x in ignores): continue if use_enums: - if ',' in sline[0]: + if "," in sline[0]: # This removes anything after the comma as we don't need it - sline[0] = sline[0].split(',')[0] + 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) + sline[0] = sline[0].split("=")[0] + print("\tresult += PyModule_AddIntMacro(module, %s);" % sline[0].replace(",", ""), file=f) continue - if '#define' in line: - sline = line.split('//')[0].split() + if "#define" in line: + sline = line.split("//")[0].split() # DEBUG: print('\t\t' + str(line_number) + '\t' + str(sline)) if any(x in sline[1] for x in ignores): continue if len(sline) >= 3 and re.match("^\d+?\.\d+?$", sline[2]) is not None: # Value is a float print( - '\tresult += PyModule_AddObject(module, "{0}", PyFloat_FromDouble({0}));'.format(sline[1]), file=f) + '\tresult += PyModule_AddObject(module, "{0}", PyFloat_FromDouble({0}));'.format( + 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]), - file=f) + file=f, + ) else: - print('\tresult += PyModule_AddIntMacro(module, %s);' % sline[1], file=f) + print("\tresult += PyModule_AddIntMacro(module, %s);" % sline[1], file=f) - elif '/*' in line: + elif "/*" in line: inside_comment = True continue - elif 'enum' in line.split('//')[0]: + elif "enum" in line.split("//")[0]: inside_enum = True if use_enums: - print('\t// enum', file=f) - if '{' in line and '};' in line: + print("\t// enum", file=f) + if "{" in line and "};" in line: # Special Case here - sline = "".join(line[line.find("{")+1:line.find("}")].split()).split(',') + sline = "".join(line[line.find("{") + 1 : line.find("}")].split()).split(",") # Remove =X assignments if present. - sline = [x.split('=')[0] for x in sline] + sline = [x.split("=")[0] for x in sline] for e in sline: - print('\tresult += PyModule_AddIntMacro(module, %s);' % e, file=f) + print("\tresult += PyModule_AddIntMacro(module, %s);" % e, file=f) inside_enum = False continue - if 'icsnVC40Internal' in header_file: + if "icsnVC40Internal" in header_file: print("\n#endif // _USE_INTERNAL_HEADER_\n", file=f) print("\n\treturn result == 0 ? 1 : 0;\n}", file=f) diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index f4829d7e3..128ff0ef6 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -48,16 +48,16 @@ def __init__(self, name, data_type, array_length, bitfield_size, enum_value=None self.is_enum = bool(self.enum_value) def __repr__(self): - return f'<{self.__class__.__name__} {self.name} {self.data_type} @ {hex(id(self))}>' + return f"<{self.__class__.__name__} {self.name} {self.data_type} @ {hex(id(self))}>" def to_ordered_dict(self): od = OrderedDict() - od['name'] = self.name - od['data_type'] = self.data_type - od['array_length'] = self.array_length - od['bitfield_size'] = self.bitfield_size - od['is_enum'] = self.is_enum - od['enum_value'] = self.enum_value + od["name"] = self.name + od["data_type"] = self.data_type + od["array_length"] = self.array_length + od["bitfield_size"] = self.bitfield_size + od["is_enum"] = self.is_enum + od["enum_value"] = self.enum_value return od @@ -81,44 +81,44 @@ def __repr__(self): if self.names: name = self.names[-1] else: - name = 'Anon' + name = "Anon" if self.data_type == DataType.Struct: - t_name = 'Struct' + t_name = "Struct" elif self.data_type == DataType.Union: - t_name = 'Union' + t_name = "Union" elif self.data_type == DataType.Enum: - t_name = 'Enum' + t_name = "Enum" else: - t_name = 'Unknown' + t_name = "Unknown" - return f'<{self.__class__.__name__} {name} {t_name} {len(self.members)} members @ {hex(id(self))}>' + return f"<{self.__class__.__name__} {name} {t_name} {len(self.members)} members @ {hex(id(self))}>" def to_ordered_dict(self): od = OrderedDict() if self.data_type == DataType.Struct: - t_name = 'Struct' + t_name = "Struct" elif self.data_type == DataType.Union: - t_name = 'Union' + t_name = "Union" elif self.data_type == DataType.Enum: - t_name = 'Enum' + t_name = "Enum" else: - t_name = 'Unknown' + t_name = "Unknown" - od['names'] = self.names - od['data_type'] = t_name - od['packing'] = self.packing - od['is_anonymous'] = self.is_anonymous - od['members'] = [] + od["names"] = self.names + od["data_type"] = t_name + od["packing"] = self.packing + od["is_anonymous"] = self.is_anonymous + od["members"] = [] for member in self.members: - od['members'].append(member.to_ordered_dict()) + od["members"].append(member.to_ordered_dict()) return od def assign_preferred_name(self, is_embedded=False): """This assigns a name to the object if we are nameless and anonymous, safe to call multiple times.""" self.preferred_name = get_preferred_struct_name(self.names) # Any object that starts with _ won't be imported with import * statement so lets push it to the end - if self.preferred_name and self.preferred_name.startswith('_'): + if self.preferred_name and self.preferred_name.startswith("_"): modified_name = reverse_leading_underscores(self.preferred_name) self.names.append(modified_name) self.preferred_name = get_preferred_struct_name(self.names) @@ -128,9 +128,7 @@ def assign_preferred_name(self, is_embedded=False): self.preferred_name = convert_to_snake_case(self.preferred_name) -_start_of_obj_blacklist = ( - re.compile(r'''struct [aA-zZ\\_]+ [aA-zZ\\_]+;'''), # struct some_random_struct_name value; -) +_start_of_obj_blacklist = (re.compile(r"""struct [aA-zZ\\_]+ [aA-zZ\\_]+;"""),) # struct some_random_struct_name value; def is_line_start_of_object(line): @@ -138,7 +136,7 @@ def is_line_start_of_object(line): for regex in _start_of_obj_blacklist: if bool(regex.search(line)): return False - return bool(re.search('\btypedef struct$|struct$|struct \S*$|enum$|enum |union$|union ', line)) + return bool(re.search("\btypedef struct$|struct$|struct \S*$|enum$|enum |union$|union ", line)) # This contains all the objects that don't pass convert_to_ctype_object @@ -175,16 +173,16 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): new_obj = CObject() new_obj.packing = pack_size # Grab the object name - name = re.sub('typedef|struct|enum|union|\{|\s*', '', line) + name = re.sub("typedef|struct|enum|union|\{|\s*", "", line) # Only append the name if its not anonymous if name: new_obj.names.append(name) # Determine the type of object - if 'struct' in line: + if "struct" in line: new_obj.data_type = DataType.Struct - elif 'union' in line: + elif "union" in line: new_obj.data_type = DataType.Union - elif 'enum' in line: + elif "enum" in line: new_obj.data_type = DataType.Enum else: new_obj.data_type = DataType.Unknown @@ -204,15 +202,15 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): embedded_object = parse_object(f, -1, pack_size, True) new_obj.members.append(embedded_object) continue - opening_bracket_count += line.count('{') - opening_bracket_count -= line.count('}') - assert (opening_bracket_count >= 0) + opening_bracket_count += line.count("{") + opening_bracket_count -= line.count("}") + assert opening_bracket_count >= 0 # Determine if we are at the end of the struct - if opening_bracket_count == 0 and re.match('}.*;', line): - extra_names = ''.join(line.split()).strip('};').split(',') + if opening_bracket_count == 0 and re.match("}.*;", line): + extra_names = "".join(line.split()).strip("};").split(",") try: # Remove dangling empty string - extra_names.remove('') + extra_names.remove("") except ValueError: pass if extra_names: @@ -221,7 +219,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): finished = True break # Nothing to do with this line anymore - if re.match('.*{.*', line): + if re.match(".*{.*", line): continue # Parse the member if new_obj.data_type == DataType.Enum: @@ -250,9 +248,9 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): def reverse_leading_underscores(value: str): """Take a string starting with underscores and moves them to the end. Returns a string""" - if value.startswith('_'): - underscore_count = len(value) - len(value.lstrip('_')) - return value.lstrip('_') + '_'*underscore_count + if value.startswith("_"): + underscore_count = len(value) - len(value.lstrip("_")) + return value.lstrip("_") + "_" * underscore_count # We didn't have underscores in the value return value @@ -277,61 +275,60 @@ def parse_struct_member(buffered_line): # for line in buffered_line.split('\n'): # new_buffered_line += re.sub('{|union|}|;', '', line) + '\n' # buffered_line = new_buffered_line - buffered_line = re.sub("\s*\[", "[", ' '.join(buffered_line.split())) + buffered_line = re.sub("\s*\[", "[", " ".join(buffered_line.split())) # print("DEBUG AFTER:", buffered_line) # Figure out if we are an array type and get the array length - array_subsection = re.search('\[.*\]', buffered_line) + array_subsection = re.search("\[.*\]", buffered_line) is_array = array_subsection is not None if is_array: - array_length = int(eval(array_subsection.group(0).strip('[]'))) + array_length = int(eval(array_subsection.group(0).strip("[]"))) else: array_length = 0 # Remove the array portion - buffered_line = re.sub('\[.*\]', '', buffered_line) + buffered_line = re.sub("\[.*\]", "", buffered_line) # split up the remaining words = buffered_line.split() if not len(words): - return None, '', 0, 0 # data_type, array_length, bitwise_length - if ':' in words: + return None, "", 0, 0 # data_type, array_length, bitwise_length + if ":" in words: # we are a bitfield ;( try: - bitwise_length = int( - re.search('\d*', words[words.index(":")+1]).group(0)) + bitwise_length = int(re.search("\d*", words[words.index(":") + 1]).group(0)) except Exception as ex: if debug_print: print("EXCEPTION:", ex) bitwise_length = 0 # see if we get a valid ctype object before : to check for things like "unsigned : 31;" - pre_colon_text = ' '.join(words[:words.index(":")]) + pre_colon_text = " ".join(words[: words.index(":")]) check_data_type = convert_to_ctype_object(pre_colon_text) if check_data_type: - data_name = '' + data_name = "" data_type = pre_colon_text else: - data_name_index = words.index(":")-1 + data_name_index = words.index(":") - 1 data_name = words[data_name_index] - data_type = ' '.join(words[0:data_name_index]) + data_type = " ".join(words[0:data_name_index]) else: bitwise_length = 0 data_name = words[-1] - data_type = ' '.join(words[0:len(words)-1]) - if data_name.startswith('*'): - data_type += ' *' - data_name = data_name.lstrip('*') + data_type = " ".join(words[0 : len(words) - 1]) + if data_name.startswith("*"): + data_type += " *" + data_name = data_name.lstrip("*") # DEBUG: ['uint8_t', 'MACAddress[6];'] # print("DEBUG:", words, buffered_line) # remove stuff that shouldn't be in the name - data_name = re.sub('{|{|}|\s*', '', data_name) - data_type = re.sub('union|{|{|}|^struct', '', data_type) + data_name = re.sub("{|{|}|\s*", "", data_name) + data_type = re.sub("union|{|{|}|^struct", "", data_type) data_type = data_type.strip() if not data_type: - data_name = '' + data_name = "" # Any object that starts with _ won't be imported with import * statement so lets push it to the end - if data_type.startswith('_') and not convert_to_ctype_object(data_type): + if data_type.startswith("_") and not convert_to_ctype_object(data_type): data_type = reverse_leading_underscores(data_type) - return re.sub('\[.*\]|;', '', data_name), data_type, array_length, bitwise_length + return re.sub("\[.*\]|;", "", data_name), data_type, array_length, bitwise_length def parse_enum_member(buffered_line): @@ -339,34 +336,34 @@ def parse_enum_member(buffered_line): # VARIABLE_NAME = 0, # remove all unneeded whitespace - buffered_line = re.sub("\s*\[", "[", ' '.join(buffered_line.split())) + buffered_line = re.sub("\s*\[", "[", " ".join(buffered_line.split())) - if '=' in buffered_line: - name = buffered_line.split('=')[0] - value = buffered_line.split('=')[1] - value = re.sub('{|{|}|,|\s*', '', value) + if "=" in buffered_line: + name = buffered_line.split("=")[0] + value = buffered_line.split("=")[1] + value = re.sub("{|{|}|,|\s*", "", value) try: value = int(value) except ValueError as ex: - if '0X' in value.upper(): + if "0X" in value.upper(): value = int(value, 16) - elif '0B' in value.upper(): + elif "0B" in value.upper(): value = int(value, 2) else: - name = re.sub(',', '', buffered_line) + name = re.sub(",", "", buffered_line) value = None return name, value def get_struct_name_from_header(line): # line.split('struct ')[-1] - struct_name = re.sub('typedef|struct|enum|union|\{|\s*', '', line) + struct_name = re.sub("typedef|struct|enum|union|\{|\s*", "", line) if not struct_name: # == 'typedef struct': anonymous_struct = True - struct_name = 'anonymous' - elif '{' == struct_name: + struct_name = "anonymous" + elif "{" == struct_name: anonymous_struct = True - struct_name = 'anonymous' + struct_name = "anonymous" else: anonymous_struct = False return struct_name, anonymous_struct @@ -378,12 +375,14 @@ def get_struct_names(data): # key = the "key" in the data # values = list of other names for name in data.keys(): - if name in ('names', 'pack'): + if name in ("names", "pack"): continue - if 'names' in data[name]: - names[name] = data[name]['names'] + if "names" in data[name]: + names[name] = data[name]["names"] else: - names[name] = [name, ] + names[name] = [ + name, + ] return names @@ -416,9 +415,9 @@ def get_preferred_struct_name(_names): def convert_to_snake_case(name): # return name - s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name) - s2 = re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower() - return re.sub(r'(_)\1{1,}', '_', s2) + s1 = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name) + s2 = re.sub("([a-z0-9])([A-Z])", r"\1_\2", s1).lower() + return re.sub(r"(_)\1{1,}", "_", s2) def convert_to_ctype_object(data_type): @@ -431,37 +430,52 @@ def convert_to_ctype_object(data_type): "c_short": ("short",), "c_ushort": ("unsigned short",), "c_int": ("int",), - "c_uint": ("unsigned", "unsigned int",), + "c_uint": ( + "unsigned", + "unsigned int", + ), "c_long": ("long",), "c_ulong": ("unsigned long",), - "c_longlong": ("__int64", "long long",), - "c_ulonglong": ("unsigned __int64", "unsigned long long",), + "c_longlong": ( + "__int64", + "long long", + ), + "c_ulonglong": ( + "unsigned __int64", + "unsigned long long", + ), "c_size_t": ("size_t",), - "c_ssize_t": ("ssize_t", "Py_ssize_t",), + "c_ssize_t": ( + "ssize_t", + "Py_ssize_t", + ), "c_float": ("float",), "c_double": ("double",), - "c_void_p": ("void*", "void *",), + "c_void_p": ( + "void*", + "void *", + ), } # Add all the intX_t types for d in [8, 16, 32, 64]: - ctype_types[f'c_int{d}'] = (f'int{d}_t',) - ctype_types[f'c_uint{d}'] = (f'uint{d}_t',) + ctype_types[f"c_int{d}"] = (f"int{d}_t",) + 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",) ctype_types["c_uint64"] = ctype_types["c_uint64"] + ("_clock_identity",) - is_pointer = '*' in data_type and not 'void' in data_type + is_pointer = "*" in data_type and not "void" in data_type for ctype_type, c_types in ctype_types.items(): for c_type in c_types: if is_pointer: - data_type = data_type.replace('*', '') + data_type = data_type.replace("*", "") if c_type == data_type: try: t = f"ctypes.{ctype_type}" eval(t) if is_pointer: - t = f'ctypes.POINTER({t})' + t = f"ctypes.POINTER({t})" return t except AttributeError as ex: return None @@ -470,34 +484,40 @@ def convert_to_ctype_object(data_type): def format_file(filename): import os + processed_fname = os.path.basename(filename) name, ext = os.path.splitext(processed_fname) - processed_fname = f'{name}_processed{ext}' + processed_fname = f"{name}_processed{ext}" # processed_fname = "icsnVC40_processed.h" # Run it through the preprocessor # clang -E -P .\include\ics\icsnVC40.h -o output.h - result = run(["clang", "-DEXTERNAL_PROJECT", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=STDOUT) + result = run( + ["clang", "-DEXTERNAL_PROJECT", "-E", "-P", filename, "-o", processed_fname], stdout=PIPE, stderr=STDOUT + ) try: result.check_returncode() except CalledProcessError as ex: print(f"ERROR: {' '.join(result.args)} failed with error code {ex.returncode}") - print(ex.stdout.decode('UTF-8')) - #print(ex.stderr) + print(ex.stdout.decode("UTF-8")) + # print(ex.stderr) # Format the file - result = run(["clang-format", "-i", "--style", - "{BasedOnStyle: Mozilla, ColumnLimit: '200'}", processed_fname], stdout=PIPE, stderr=STDOUT) + result = run( + ["clang-format", "-i", "--style", "{BasedOnStyle: Mozilla, ColumnLimit: '200'}", processed_fname], + stdout=PIPE, + stderr=STDOUT, + ) try: result.check_returncode() except CalledProcessError as ex: print(f"ERROR: {' '.join(result.args)} failed with error code {ex.returncode}") - print(ex.stdout.decode('UTF-8')) + print(ex.stdout.decode("UTF-8")) return processed_fname def parse_header_file(filename): - with open(filename, 'r') as f: + with open(filename, "r") as f: pack_size = 0 line_count = 0 last_pos = f.tell() @@ -511,20 +531,20 @@ def parse_header_file(filename): line = line.strip() line_count += 1 # Remove all unneeded whitespace - line = ' '.join(line.split()) + line = " ".join(line.split()) # Remove preprocessor statements if line.startswith("#"): # get the pack size - if re.match('#pragma.*pack.*.*pop.*', line): + if re.match("#pragma.*pack.*.*pop.*", line): if pack_size_stack: pack_size = pack_size_stack.pop() else: pack_size = 0 - elif re.match('#pragma.*pack.*.*push.*', line) or re.match('#pragma.*pack\(\d\)', line): - pushing = 'push' in line + elif re.match("#pragma.*pack.*.*push.*", line) or re.match("#pragma.*pack\(\d\)", line): + pushing = "push" in line try: last = pack_size - pack_size = int(re.search('\d{1,}', line).group(0)) + pack_size = int(re.search("\d{1,}", line).group(0)) if pushing: pack_size_stack.append(last) except AttributeError: @@ -533,20 +553,24 @@ def parse_header_file(filename): pack_size_stack.append(pack_size) if debug_print: print("PACK SIZE:", pack_size) - elif re.match('#define.*', line) and len(line.split(' ')) == 3 and not '\\' in line and not 'sizeof' in line: + elif ( + re.match("#define.*", line) + and len(line.split(" ")) == 3 + and not "\\" in line + and not "sizeof" in line + ): # preprocessor define that can be used as a number in array sizes... # we are going to hack the variable into the module's globals so we can eval() it later - words = line.split(' ') + words = line.split(" ") if debug_print: - print("ADDING {} to globals with value of {}".format( - words[1], words[2])) + print("ADDING {} to globals with value of {}".format(words[1], words[2])) try: globals()[words[1]] = eval(words[2]) except SyntaxError as ex: # This happens when we have an integer literal # https://en.cppreference.com/w/cpp/language/integer_literal # TODO: 0x1p5 - literals = ('u', 'U', 'l', 'L', 'z', 'Z', 'f', 'F') + literals = ("u", "U", "l", "L", "z", "Z", "f", "F") modified_word = words[2] while modified_word.endswith(literals): for literal in literals: @@ -578,10 +602,11 @@ def parse_header_file(filename): return c_objects, enum_objects -def generate(filename='include/ics/icsnVC40.h'): +def generate(filename="include/ics/icsnVC40.h"): import shutil import json import os + basename = os.path.basename(filename) filename = format_file(filename) c_objects, enum_objects = parse_header_file(filename) @@ -593,30 +618,57 @@ def generate(filename='include/ics/icsnVC40.h'): for enum_object in enum_objects: enum_objects_converted.append(enum_object.to_ordered_dict()) j = json.dumps(c_objects_converted, indent=4, sort_keys=False) - with open(f'{basename}.json', 'w+') as f: + with open(f"{basename}.json", "w+") as f: f.write(j) j = json.dumps(enum_objects_converted, indent=4, sort_keys=False) - with open(f'{basename}.enums.json', 'w+') as f: + with open(f"{basename}.enums.json", "w+") as f: f.write(j) # generate the python files - output_dir = './ics/structures' + output_dir = "./ics/structures" print(f"Removing {output_dir}...") try: shutil.rmtree(output_dir) except FileNotFoundError: pass ignore_names = [ - '__fsid_t', '__darwin_pthread_handler_rec', - '_mbstate_t', 'mbstate_t_', 'mbstatet_', 'Mbstatet_', '_Mbstatet', - '_LONGDOUBLE', 'LONGDOUBLE_', - '_opaque_pthread_attr_t', '_opaque_pthread_cond_t', '_opaque_pthread_condattr_t', - '_opaque_pthread_mutex_t', '_opaque_pthread_mutexattr_t', '_opaque_pthread_once_t', - '_opaque_pthread_rwlock_t', '_opaque_pthread_rwlockattr_t', '_opaque_pthread_t', - 'crt_locale_pointers_', 'crt_locale_data_public_', '__crt_locale_data_public', - 'ldiv_t', 'lldiv_t', 'ldouble_', 'ldbl12_', 'div_t', 'crt_float_', 'crt_double_', - 'ndis_adapter_information', - 'NeoDevice', 'neo_device', 'NeoDeviceEx', 'neo_device_ex', - 'icsSpyMessage', 'icsSpyMessageJ1850', 'ics_spy_message', 'ics_spy_message_j1850'] + "__fsid_t", + "__darwin_pthread_handler_rec", + "_mbstate_t", + "mbstate_t_", + "mbstatet_", + "Mbstatet_", + "_Mbstatet", + "_LONGDOUBLE", + "LONGDOUBLE_", + "_opaque_pthread_attr_t", + "_opaque_pthread_cond_t", + "_opaque_pthread_condattr_t", + "_opaque_pthread_mutex_t", + "_opaque_pthread_mutexattr_t", + "_opaque_pthread_once_t", + "_opaque_pthread_rwlock_t", + "_opaque_pthread_rwlockattr_t", + "_opaque_pthread_t", + "crt_locale_pointers_", + "crt_locale_data_public_", + "__crt_locale_data_public", + "ldiv_t", + "lldiv_t", + "ldouble_", + "ldbl12_", + "div_t", + "crt_float_", + "crt_double_", + "ndis_adapter_information", + "NeoDevice", + "neo_device", + "NeoDeviceEx", + "neo_device_ex", + "icsSpyMessage", + "icsSpyMessageJ1850", + "ics_spy_message", + "ics_spy_message_j1850", + ] file_names = [] prefered_names = [] all_objects = c_objects + enum_objects @@ -654,11 +706,11 @@ def generate(filename='include/ics/icsnVC40.h'): print(f"Generated all python {len(all_objects)-ignored_enum_count} files.") # Generate __init__.py and add all the modules to __all__ - with open(os.path.join(output_dir, '__init__.py'), 'w+') as f: + with open(os.path.join(output_dir, "__init__.py"), "w+") as f: f.write("__all__ = [\n") for file_name in file_names: - fname = re.sub('(\.py)', '', file_name) - r = re.compile('(' + fname + ')') + fname = re.sub("(\.py)", "", file_name) + r = re.compile("(" + fname + ")") if list(filter(r.match, ignore_names)): # print("IGNORING:", fname) continue @@ -667,16 +719,16 @@ def generate(filename='include/ics/icsnVC40.h'): f.write('",\n') f.write("]\n") # write a hidden_import python file for pyinstaller - with open('./ics/hiddenimports.py', 'w+') as f: - f.write('hidden_imports = [\n') + with open("./ics/hiddenimports.py", "w+") as f: + f.write("hidden_imports = [\n") for file_name in file_names: - fname = re.sub('(\.py)', '', file_name) - r = re.compile('(' + fname + ')') + fname = re.sub("(\.py)", "", file_name) + r = re.compile("(" + fname + ")") if list(filter(r.match, ignore_names)): # print("IGNORING:", fname) continue f.write(f' "ics.structures.{fname}",\n') - f.write(']\n\n') + f.write("]\n\n") # Verify We can at least import all of the modules - quick check to make sure parser worked. # TODO: This is broke @@ -697,16 +749,16 @@ def generate(filename='include/ics/icsnVC40.h'): def _write_c_object(f, c_object): # Write the header if c_object.data_type == DataType.Struct: - f.write(f'class {c_object.preferred_name}(ctypes.Structure):\n') + f.write(f"class {c_object.preferred_name}(ctypes.Structure):\n") elif c_object.data_type == DataType.Union: - f.write(f'class {c_object.preferred_name}(ctypes.Union):\n') + f.write(f"class {c_object.preferred_name}(ctypes.Union):\n") elif c_object.data_type == DataType.Enum: - f.write(f'class {c_object.preferred_name}(enum.IntEnum):\n') + f.write(f"class {c_object.preferred_name}(enum.IntEnum):\n") f.write(' """A ctypes-compatible IntEnum superclass."""\n') - f.write(' @classmethod\n') - f.write(' def from_param(cls, obj):\n') - f.write(' return int(obj)\n') - f.write('\n') + f.write(" @classmethod\n") + f.write(" def from_param(cls, obj):\n") + f.write(" return int(obj)\n") + f.write("\n") else: raise ValueError("CObject is not of a known data type!") @@ -714,15 +766,15 @@ def _write_c_object(f, c_object): if c_object.data_type in (DataType.Struct, DataType.Union): # Setup the packing if c_object.packing: - f.write(f' _pack_ = {c_object.packing}\n') + f.write(f" _pack_ = {c_object.packing}\n") # Grab all the anonymous names anonymous_names = [] for member in c_object.members: if isinstance(member, CObject) and member.is_anonymous: anonymous_names.append(member.preferred_name) if anonymous_names: - f.write(f' _anonymous_ = {str(tuple(anonymous_names))}\n') - f.write(f' _fields_ = [\n') + f.write(f" _anonymous_ = {str(tuple(anonymous_names))}\n") + f.write(f" _fields_ = [\n") # Write the members for member in c_object.members: @@ -730,16 +782,16 @@ def _write_c_object(f, c_object): enum_value = member.enum_value if enum_value == None: if c_object.enum_last_value != None: - enum_value = 'enum.auto()' + enum_value = "enum.auto()" c_object.enum_last_value += 1 else: # https://docs.python.org/3/library/enum.html#enum.auto # By default, the initial value starts at 1. c_object.enum_last_value = 0 - enum_value = '0' + enum_value = "0" elif c_object.enum_last_value == None: c_object.enum_last_value = 0 - f.write(f' {member.name} = {enum_value}\n') + f.write(f" {member.name} = {enum_value}\n") else: # Struct/Union def _write_member(f, member, is_struct_or_union=False): @@ -757,7 +809,7 @@ def _write_member(f, member, is_struct_or_union=False): # C enum types can be char, unsigned, signed but seem to default to # 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' + data_type = "ctypes.c_int32" else: data_type = member.data_type if member.bitfield_size: @@ -776,22 +828,22 @@ def _write_member(f, member, is_struct_or_union=False): # Finalize the _fields_ attribute and extra names if c_object.data_type in (DataType.Struct, DataType.Union): - f.write(f' ]\n') + f.write(f" ]\n") # Extra names here - f.write('\n\n') + f.write("\n\n") for name in c_object.names: # Ignore the actual object name if name == c_object.preferred_name: continue - f.write('{} = {}\n'.format(re.sub('^\*', '', name), c_object.preferred_name)) - f.write('\n') + f.write("{} = {}\n".format(re.sub("^\*", "", name), c_object.preferred_name)) + f.write("\n") def generate_pyfile(c_object, path): # name = get_preferred_struct_name(c_object.names) # c_object.preferred_name = convert_to_snake_case(name) # Make the fname and the path - fname = f'{c_object.preferred_name}.py' + fname = f"{c_object.preferred_name}.py" fname_with_path = os.path.normpath(os.path.join(path, fname)) # create the needed directories if not os.path.exists(os.path.split(fname_with_path)[0]): @@ -799,16 +851,16 @@ def generate_pyfile(c_object, path): os.makedirs(os.path.split(fname_with_path)[0]) except OSError as ex: import errno + if ex.errno != errno.EEXIST: # Race condition handler, if someone else makes a directory after we check if exists raise - with open(fname_with_path, 'w+') as f: + with open(fname_with_path, "w+") as f: # Write the boiler plate code - f.write( - '# This file was auto generated; Do not modify, if you value your sanity!\n') - f.write('import ctypes\n') - f.write('import enum\n') - f.write('\n') + f.write("# This file was auto generated; Do not modify, if you value your sanity!\n") + f.write("import ctypes\n") + f.write("import enum\n") + f.write("\n") # Generate all the imports def get_c_object_imports(c_object): @@ -832,15 +884,16 @@ def get_c_object_imports(c_object): return sorted(set(import_names)) import_names = get_c_object_imports(c_object) - for import_name in (import_names): + for import_name in import_names: f.write(f"from ics.structures.{import_name} import *\n") - f.write('\n\n') + f.write("\n\n") def _generate_inner_objects(f, c_object): for member in c_object.members: if isinstance(member, CObject): _generate_inner_objects(f, member) _write_c_object(f, member) + # generate all the inner objects _generate_inner_objects(f, c_object) # Finally write our main object @@ -853,16 +906,16 @@ def generate_all_files(): import os import pathlib - filenames = ('icsnVC40.h', 'icsnVC40Internal.h') + filenames = ("icsnVC40.h", "icsnVC40Internal.h") for filename in filenames: - path = pathlib.Path('include/ics/') + path = pathlib.Path("include/ics/") path = path.joinpath(filename) if path.exists(): - if 'Internal' in str(filename): + if "Internal" in str(filename): print("WARNING: Generating internal header!") print(f"Parsing {str(path)}...") generate(str(path)) -if __name__ == '__main__': +if __name__ == "__main__": generate_all_files() diff --git a/include/object_neo_device.h b/include/object_neo_device.h index 51e77194b..2570f0ac7 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -42,7 +42,7 @@ #define ICS_HANDLE_PY_TYPE T_INT #else #define ICS_HANDLE void* -#define ICS_HANDLE_PY_TYPE T_INT +#define ICS_HANDLE_PY_TYPE T_ULONGLONG #endif typedef struct diff --git a/pyproject.toml b/pyproject.toml index 57842c7da..ecbffedae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,4 +13,19 @@ archs = ["universal2"] before-build = "brew install automake libtool cmake clang-format" [tool.cibuildwheel.windows] -before-build = "choco install llvm" \ No newline at end of file +before-build = "choco install llvm" + +[tool.black] +line-length = 120 +# https://stackoverflow.com/questions/73247204/black-not-respecting-extend-exclude-in-pyproject-toml +force-exclude = ''' +/( + | .vscode + | .venv + | build + | ics + | include + | msvc + | src +)/ +''' \ No newline at end of file diff --git a/setup.py b/setup.py index 86f2f8f64..65a3fe41c 100644 --- a/setup.py +++ b/setup.py @@ -13,16 +13,16 @@ POST_VERSION = None if POST_VERSION: - VERSION_STRING = '%d.%d-%d' % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) + VERSION_STRING = "%d.%d-%d" % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) else: - VERSION_STRING = '%d.%d' % (MAJOR_VERSION, MINOR_VERSION) + VERSION_STRING = "%d.%d" % (MAJOR_VERSION, MINOR_VERSION) def _run_tests(): - directory = os.path.abspath(os.path.dirname(sys.modules['__main__'].__file__)) + directory = os.path.abspath(os.path.dirname(sys.modules["__main__"].__file__)) loader = unittest.defaultTestLoader runner = unittest.TextTestRunner() - suite = loader.discover(os.path.join(directory, 'test')) + suite = loader.discover(os.path.join(directory, "test")) runner.run(suite) @@ -37,6 +37,7 @@ def finalize_options(self): def run_tests(self): _run_tests() + except ImportError: from distutils.core import Command @@ -57,10 +58,12 @@ class build(build_module.build): def run(self): import extract_icsneo40_defines import generate_icsneo40_structs + extract_icsneo40_defines.extract() generate_icsneo40_structs.generate_all_files() - if platform.system().upper() in ('DARWIN', 'LINUX'): + if platform.system().upper() in ("DARWIN", "LINUX"): import build_libicsneo + build_libicsneo.checkout() build_libicsneo.build() build_libicsneo.copy() @@ -68,47 +71,47 @@ def run(self): source_files = [ - 'src/object_spy_message.cpp', - 'src/defines.cpp', - 'src/exceptions.cpp', - 'src/dll.cpp', - 'src/setup_module_auto_defines.cpp', - 'src/main.cpp', - 'src/object_neo_device.cpp', - 'src/methods.cpp', - 'src/ice/src/ice_library_manager.cpp', - 'src/ice/src/ice_library_name.cpp', - 'src/ice/src/ice_library.cpp' + "src/object_spy_message.cpp", + "src/defines.cpp", + "src/exceptions.cpp", + "src/dll.cpp", + "src/setup_module_auto_defines.cpp", + "src/main.cpp", + "src/object_neo_device.cpp", + "src/methods.cpp", + "src/ice/src/ice_library_manager.cpp", + "src/ice/src/ice_library_name.cpp", + "src/ice/src/ice_library.cpp", ] # gcc and clang arguments GCC_COMPILE_ARGS = [ - '-fpermissive', - '-Wno-unused-variable', - '-Wno-unused-function', - '-Wno-write-strings', + "-fpermissive", + "-Wno-unused-variable", + "-Wno-unused-function", + "-Wno-write-strings", ] # Set compiler flags here -if 'WINDOWS' in platform.system().upper(): +if "WINDOWS" in platform.system().upper(): compile_args = [] # mingw and clang python builds won't have MSC in the version string if "MSC" not in sys.version: compile_args = GCC_COMPILE_ARGS -elif 'LINUX' in platform.system().upper(): +elif "LINUX" in platform.system().upper(): compile_args = GCC_COMPILE_ARGS -elif 'DARWIN' in platform.system().upper(): +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' + os.environ["ARCHFLAGS"] = "-std=c++17" compile_args = [] else: compile_args = [] # Check for clang stuff here, read the docs doesn't have this so use what is in the repo if not os.getenv("READTHEDOCS"): - if not shutil.which('clang'): + if not shutil.which("clang"): raise RuntimeError("clang is required for building python_ics.") - if not shutil.which('clang-format'): + if not shutil.which("clang-format"): raise RuntimeError("clang-format is required for building python_ics.") @@ -117,44 +120,49 @@ def read(fname): ics_extension = Extension( - 'ics.ics', - define_macros=[('MAJOR_VERSION', MAJOR_VERSION), - ('MINOR_VERSION', MINOR_VERSION), - ('EXTERNAL_PROJECT', 1)], - include_dirs=['include', 'include/ics', 'src/ice/include', 'src/ice/include/ice'], + "ics.ics", + define_macros=[("MAJOR_VERSION", MAJOR_VERSION), ("MINOR_VERSION", MINOR_VERSION), ("EXTERNAL_PROJECT", 1)], + include_dirs=["include", "include/ics", "src/ice/include", "src/ice/include/ice"], libraries=[], - library_dirs=['/usr/local/lib'], - sources=source_files, extra_compile_args=compile_args) + library_dirs=["/usr/local/lib"], + sources=source_files, + extra_compile_args=compile_args, +) package_data = {} -if 'DARWIN' in platform.system().upper(): - package_data['ics'] = ['*.dylib'] -elif 'LINUX' in platform.system().upper(): - package_data[''] = ['*.so'] - -setup(name='python_ics', - version=VERSION_STRING, - description='Library for interfacing with Intrepid devices in Python', - long_description=read('README.md'), - long_description_content_type='text/markdown', - license="MIT", - author='David Rebbe', - author_email='drebbe@intrepidcs.com', - maintainer='David Rebbe', - maintainer_email='drebbe@intrepidcs.com', - url='https://github.com/intrepidcs/python_ics/', - cmdclass={'build': build, 'test': UnitTests, }, - download_url='https://github.com/intrepidcs/python_ics/releases', - packages=['ics', 'ics.structures'], - package_data=package_data, - include_package_data=True, - ext_modules=[ics_extension], - classifiers=[ - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - ],) +if "DARWIN" in platform.system().upper(): + package_data["ics"] = ["*.dylib"] +elif "LINUX" in platform.system().upper(): + package_data[""] = ["*.so"] + +setup( + name="python_ics", + version=VERSION_STRING, + description="Library for interfacing with Intrepid devices in Python", + long_description=read("README.md"), + long_description_content_type="text/markdown", + license="MIT", + author="David Rebbe", + author_email="drebbe@intrepidcs.com", + maintainer="David Rebbe", + maintainer_email="drebbe@intrepidcs.com", + url="https://github.com/intrepidcs/python_ics/", + cmdclass={ + "build": build, + "test": UnitTests, + }, + download_url="https://github.com/intrepidcs/python_ics/releases", + packages=["ics", "ics.structures"], + package_data=package_data, + include_package_data=True, + ext_modules=[ics_extension], + classifiers=[ + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + ], +) diff --git a/test/obsolete/cmvspy.py b/test/obsolete/cmvspy.py index 58a03d390..11c59d8b9 100644 --- a/test/obsolete/cmvspy.py +++ b/test/obsolete/cmvspy.py @@ -1,58 +1,519 @@ -#This file was automatically generated by 'cmvspyconvert.py' -#from a cmvspy.h file. -#Example usage: -# from cmvspy import data as coremini_data +# 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, ) +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/test/obsolete/cmvspyconvert.py b/test/obsolete/cmvspyconvert.py index fefcae071..fdb718a35 100644 --- a/test/obsolete/cmvspyconvert.py +++ b/test/obsolete/cmvspyconvert.py @@ -4,38 +4,40 @@ import sys import re -file_boiler_plate = \ -"""#This file was automatically generated by '%s' +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] +# 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.") \ No newline at end of file + 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/test/obsolete/test_coremini.py b/test/obsolete/test_coremini.py index dcd17ece1..f99cd0d20 100644 --- a/test/obsolete/test_coremini.py +++ b/test/obsolete/test_coremini.py @@ -6,6 +6,7 @@ from cmvspy import data + class testCoreMini(unittest.TestCase): def _clear_coremini(self): if self.dev1.DeviceType == ics.NEODEVICE_VCAN3: @@ -13,10 +14,10 @@ def _clear_coremini(self): 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 + # input() # for debugging purposes self.dev1 = ics.open_device() self._clear_coremini(self) @@ -38,9 +39,10 @@ def load_coremini(self, contents, location): 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' + 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) @@ -70,4 +72,4 @@ def testFblock(self): if __name__ == "__main__": - unittest.main() + unittest.main() diff --git a/test/obsolete/test_get_device_status.py b/test/obsolete/test_get_device_status.py index bd66ccc75..86a7b674d 100644 --- a/test/obsolete/test_get_device_status.py +++ b/test/obsolete/test_get_device_status.py @@ -1,17 +1,19 @@ import ics import time + def print_device_status(s): for attr_name in dir(s): - if attr_name.startswith('_'): + if attr_name.startswith("_"): continue - print(attr_name, " "*(35-len(attr_name)), getattr(s, attr_name)) - if attr_name.upper() in ('FIRE2STATUS', 'VCAN4STATUS'): + 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 +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/test/obsolete/test_network_fire.py b/test/obsolete/test_network_fire.py index f517688ce..38bf5da3e 100644 --- a/test/obsolete/test_network_fire.py +++ b/test/obsolete/test_network_fire.py @@ -3,6 +3,7 @@ import time import random + class testneoVIFIRENetworks(unittest.TestCase): @classmethod def setUpClass(self): @@ -11,19 +12,18 @@ def setUpClass(self): 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 @@ -31,13 +31,19 @@ def tearDownClass(self): # 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.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) @@ -54,23 +60,21 @@ def testCAN(self): 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.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): + + 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]: + for byte in message.Data + message.Header[1:3]: checksum += byte - if (checksum > 255): + if checksum > 255: checksum -= 255 message.Data += ((~checksum & 0xFF),) self.assertTrue(ics.transmit_messages(self.dev1, message) == None) @@ -84,9 +88,9 @@ def testLIN(self): 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 + # dev1 = output, dev2 = input def _test_misc(self, state): arbs = (0x203, 0x204, 0x205, 0x206, 0x201, 0x202) for arb in arbs: @@ -104,14 +108,13 @@ def _test_misc(self, state): 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)) + # 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 + # dev1 = output, dev2 = input settings = ics.get_device_settings(self.dev1) settings.misc_io_initial_ddr = 0x3F settings.misc_io_initial_latch = 0x3F diff --git a/test/obsolete/test_open_close.py b/test/obsolete/test_open_close.py index 9e124bcd3..ed2884649 100644 --- a/test/obsolete/test_open_close.py +++ b/test/obsolete/test_open_close.py @@ -2,14 +2,15 @@ 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) + pass # time.sleep(2) @classmethod def tearDownClass(self): @@ -17,28 +18,28 @@ def tearDownClass(self): # 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 + 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 = [] @@ -47,7 +48,7 @@ def testOpenCloseByFirstFound(self): # Close by API for device in first_devices: ics.close_device(device) - + def testOpenClose100Times(self): for x in range(100): ics.open_device(self.devices[0]) diff --git a/test/test_find_devices.py b/test/test_find_devices.py index bbff56f8b..232373193 100644 --- a/test/test_find_devices.py +++ b/test/test_find_devices.py @@ -1,22 +1,25 @@ 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) @@ -24,39 +27,49 @@ def test_default_parameters_time(self): 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,]) + devices = ics.find_devices( + [ + ics.NEODEVICE_FIRE2, + ] + ) self.assertTrue(len(devices) == 1) - + def test_find_vcan3(self): - devices = ics.find_devices([ics.NEODEVICE_VCAN3,]) + 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) @@ -68,23 +81,32 @@ 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,]) + devices = ics.find_devices( + [ + ics.NEODEVICE_FIRE2, + ] + ) self.assertTrue(len(devices) == 2) - + def test_find_vcan3(self): - devices = ics.find_devices([ics.NEODEVICE_VCAN3,]) + 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) @@ -93,5 +115,6 @@ def test_find_fire2_and_vcan3(self): if __name__ == "__main__": if _DEBUG: import os + input("Pause... " + str(os.getpid())) - unittest.main() \ No newline at end of file + unittest.main() diff --git a/test/test_structs.py b/test/test_structs.py index dbc61d004..25a9de512 100644 --- a/test/test_structs.py +++ b/test/test_structs.py @@ -1,14 +1,16 @@ import unittest import sys import os -#print(os.getcwd()) -print(os.path.abspath('../')) -sys.path.append('../') + +# 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) @@ -18,32 +20,33 @@ def test_all(self): 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.a, b"\x00") self.assertEqual(t.b, 0) self.assertEqual(t.t, 0) - t.a = b'Z' - self.assertEqual(t.a, b'Z') + 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.a = b"\x00" t.b = 10 - self.assertEqual(t.a, b'\x00') + 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.a, b"\x00") self.assertEqual(t.b, 0) self.assertEqual(t.t, test.TestD) -class TestTestStructure(unittest.TestCase): +class TestTestStructure(unittest.TestCase): def test_a(self): t = A() self.assertTrue(isinstance(t, ctypes.Structure)) @@ -65,7 +68,7 @@ def test_a(self): 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)) @@ -87,7 +90,7 @@ def test_b(self): 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)) @@ -151,7 +154,7 @@ def test_d(self): 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)) @@ -203,7 +206,7 @@ def test_f(self): 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)) @@ -232,7 +235,7 @@ def test_anonymous(self): self.assertEqual(t.B.d, 0) self.assertEqual(t.B.e, 0) self.assertEqual(t.B.f, 1) - t._def = 0x7 + t._def = 0x7 self.assertEqual(t._def, 0x7) self.assertEqual(t.B.d, 1) self.assertEqual(t.B.e, 1) @@ -243,4 +246,4 @@ def test_anonymous(self): try: unittest.main() except SystemExit as ex: - print(f'Return code: {int(ex.code)}') + print(f"Return code: {int(ex.code)}") From 35cab2720b655319565595659bdc7dfbebf915eb Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 8 Dec 2023 12:35:48 -0500 Subject: [PATCH 134/201] Add serial number defines for #159 --- include/defines.h | 4 +++- src/defines.cpp | 2 ++ src/exceptions.cpp | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/defines.h b/include/defines.h index d44ef7be6..171254f6d 100644 --- a/include/defines.h +++ b/include/defines.h @@ -4,7 +4,9 @@ #define MODULE_NAME "ics.ics" #define MODULE_DESCRIPTION "Copyright Intrepid Control Systems, Inc." -#define VSPY3_BUILD_VERSION 901 + +#define MIN_BASE36_SERIAL (16796160) +#define MAX_SERIAL (2176782335) // https://bugs.python.org/issue28769 // 2.x = char* PyString_AsString(return_value); diff --git a/src/defines.cpp b/src/defines.cpp index 06dca9338..89e8766b0 100644 --- a/src/defines.cpp +++ b/src/defines.cpp @@ -7,6 +7,8 @@ int setup_module_defines(PyObject* module) return --result; result += PyModule_AddStringConstant(module, "BUILD_DATETIME", __DATE__ " " __TIME__); + result += PyModule_AddObject(module, "MIN_BASE36_SERIAL", PyLong_FromUnsignedLong(MIN_BASE36_SERIAL)); + result += PyModule_AddObject(module, "MAX_SERIAL", PyLong_FromUnsignedLong(MAX_SERIAL)); if (result == 0) { return 1; diff --git a/src/exceptions.cpp b/src/exceptions.cpp index 3dbbbaa15..726cb0b80 100644 --- a/src/exceptions.cpp +++ b/src/exceptions.cpp @@ -92,7 +92,7 @@ PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, } char* b36sn = pyics_base36enc(PyNeoDevice_GetSerialNumber(obj)); ss << PyNeoDevice_GetSerialNumber(obj); - if (b36sn != NULL && PyNeoDevice_GetSerialNumber(obj) >= 16796160 /* "0A0000" */) { + if (b36sn != NULL && PyNeoDevice_GetSerialNumber(obj) >= MIN_BASE36_SERIAL /* "0A0000" */) { ss << " - " << b36sn << ")"; } else { ss << ")"; From b17b8afccb3842f52f2803fb6a6d19045f8b640f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 8 Dec 2023 12:36:27 -0500 Subject: [PATCH 135/201] missed file for #159 --- include/object_neo_device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/object_neo_device.h b/include/object_neo_device.h index 51e77194b..d08034dcf 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -146,7 +146,7 @@ static PyObject* neo_device_object_tp_repr(PyObject* o) // Check range is 0A0000-ZZZZZZ PyObject* sn = NULL; uint32_t serial = (uint32_t)nd->dev.SerialNumber; - if (16796160 <= serial && serial <= 2176782335) + if (MIN_BASE36_SERIAL <= serial && serial <= MAX_SERIAL) sn = convert_to_base36(serial); else sn = PyUnicode_FromFormat("%lu", nd->dev.SerialNumber); From a4b4ffcc07a1a03788a176dcd93e98394ea283e2 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 8 Dec 2023 13:14:37 -0500 Subject: [PATCH 136/201] Fixes for #164 --- include/object_neo_device.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/include/object_neo_device.h b/include/object_neo_device.h index 786414b22..d0b117849 100644 --- a/include/object_neo_device.h +++ b/include/object_neo_device.h @@ -49,7 +49,7 @@ typedef struct { PyObject_HEAD NeoDevice dev; PyObject* name; - char auto_cleanup; + bool auto_cleanup; ICS_HANDLE handle; PyObject* dict; } neo_device_object; @@ -67,7 +67,7 @@ static PyMemberDef neo_device_object_members[] = { { "MaxAllowedClients", T_INT, offsetof(neo_device_object, dev.MaxAllowedClients), 0, "" }, { "AutoHandleClose", T_BOOL, - offsetof(neo_device_object, dev.MaxAllowedClients), + offsetof(neo_device_object, auto_cleanup), 0, "When " NEO_DEVICE_OBJECT_NAME " is freed the handle will automatically be closed, if true." }, { "_Handle", @@ -75,11 +75,6 @@ static PyMemberDef neo_device_object_members[] = { offsetof(neo_device_object, handle), 0, "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, - { "IsOpen", - T_BOOL, - offsetof(neo_device_object, handle), - 0, - "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, { NULL, 0, 0, 0, 0 }, }; From ed4690ee8c9ecf68d7dc2a5da494606a13a25c7c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 11 Dec 2023 11:05:26 -0500 Subject: [PATCH 137/201] updated readme and add python 3.12 support in the description --- README.md | 2 +- setup.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index abe2935a5..d5cecb02b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![](IntrepidCS.png) +![](https://github.com/intrepidcs/python_ics/blob/master/IntrepidCS.png?raw=true) ![](https://github.com/intrepidcs/python_ics/actions/workflows/wheels.yml/badge.svg) diff --git a/setup.py b/setup.py index 65a3fe41c..13b38acc4 100644 --- a/setup.py +++ b/setup.py @@ -164,5 +164,6 @@ def read(fname): "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ], ) From e58fd2927aff4001063bbb337a0fd8ad52ad90e5 Mon Sep 17 00:00:00 2001 From: Pierre-Luc Date: Wed, 31 Jan 2024 13:25:02 -0500 Subject: [PATCH 138/201] Append to ARCHFLAGS instead of overwriting it (#169) Append to `ARCHFLAGS` instead of overwriting it --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 13b38acc4..046141186 100644 --- a/setup.py +++ b/setup.py @@ -102,7 +102,7 @@ def run(self): 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" + os.environ["ARCHFLAGS"] += " -std=c++17" compile_args = [] else: compile_args = [] From 28fda717266dc933fe2e729a87009b67f87a7bf8 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 1 Feb 2024 11:30:57 -0500 Subject: [PATCH 139/201] updated header to v914.14 Signed-off-by: David Rebbe --- ics/hiddenimports.py | 20 +- ics/structures/__init__.py | 20 +- ics/structures/e_supported_wil_versions.py | 18 - ics/structures/ics_spy_message_long.py | 12 +- ics/structures/ics_spy_message_vsb.py | 12 +- ics/structures/ics_spy_messagew_bms.py | 92 + ics/structures/mac_sec_flags.py | 17 + ics/structures/mac_sec_map.py | 24 + ics/structures/mac_sec_rule.py | 50 + ics/structures/mac_sec_sa.py | 24 + ics/structures/mac_sec_sc.py | 26 + ics/structures/mac_sec_sec_y.py | 33 + ics/structures/macsec_cipher_suite.py | 21 + ics/structures/macsec_config.py | 27 + ics/structures/macsec_mpls_outer.py | 17 + ics/structures/macsec_packet_type.py | 24 + ics/structures/macsec_settings.py | 18 + ics/structures/macsec_strip_sectag_icv.py | 21 + ics/structures/macsec_validateframe.py | 21 + ics/structures/macsec_vlantag.py | 17 + ics/structures/s_phy_reg_pkt.py | 16 +- ics/structures/s_wil_bridge_config.py | 8 +- ics/structures/sfp_id.py | 23 + ics/structures/sobd2_lc_settings.py | 7 +- ics/structures/srad_comet_settings.py | 2 + ics/structures/sradbms_settings.py | 3 +- ics/structures/switchw_bms_version_error.py | 21 - icsnVC40.h.enums.json | 501 ++++-- icsnVC40.h.json | 1683 ++++++++++++++++--- icsnVC40_processed.h | 416 +++-- include/ics/icsnVC40.h | 360 +++- src/setup_module_auto_defines.cpp | 74 +- 32 files changed, 2984 insertions(+), 644 deletions(-) delete mode 100644 ics/structures/e_supported_wil_versions.py create mode 100644 ics/structures/ics_spy_messagew_bms.py create mode 100644 ics/structures/mac_sec_flags.py create mode 100644 ics/structures/mac_sec_map.py create mode 100644 ics/structures/mac_sec_rule.py create mode 100644 ics/structures/mac_sec_sa.py create mode 100644 ics/structures/mac_sec_sc.py create mode 100644 ics/structures/mac_sec_sec_y.py create mode 100644 ics/structures/macsec_cipher_suite.py create mode 100644 ics/structures/macsec_config.py create mode 100644 ics/structures/macsec_mpls_outer.py create mode 100644 ics/structures/macsec_packet_type.py create mode 100644 ics/structures/macsec_settings.py create mode 100644 ics/structures/macsec_strip_sectag_icv.py create mode 100644 ics/structures/macsec_validateframe.py create mode 100644 ics/structures/macsec_vlantag.py create mode 100644 ics/structures/sfp_id.py delete mode 100644 ics/structures/switchw_bms_version_error.py diff --git a/ics/hiddenimports.py b/ics/hiddenimports.py index fdc30f784..e7cee5628 100644 --- a/ics/hiddenimports.py +++ b/ics/hiddenimports.py @@ -25,6 +25,16 @@ "ics.structures.ethernet_settings2", "ics.structures.ethernet10_g_settings", "ics.structures.ethernet10_t1_s_settings", + "ics.structures.macsec_vlantag", + "ics.structures.macsec_mpls_outer", + "ics.structures.mac_sec_rule", + "ics.structures.mac_sec_map", + "ics.structures.mac_sec_sec_y", + "ics.structures.mac_sec_sc", + "ics.structures.mac_sec_sa", + "ics.structures.mac_sec_flags", + "ics.structures.macsec_config", + "ics.structures.macsec_settings", "ics.structures.logger_settings", "ics.structures.disk_settings", "ics.structures.canterm_settings", @@ -127,9 +137,9 @@ "ics.structures.s_wil_fault_servicing_settings", "ics.structures.s_wil_network_data_capture_settings", "ics.structures.s_wil_connection_settings", + "ics.structures.s_wil_bridge_config", "ics.structures.s_spi_port_setting", "ics.structures.s_spi_port_settings", - "ics.structures.s_wil_bridge_config", "ics.structures.wbms_gateway_settings", "ics.structures.sradbms_settings", "ics.structures.srad_comet_settings", @@ -141,6 +151,7 @@ "ics.structures.spy_filter_long", "ics.structures.ics_spy_message_flex_ray", "ics.structures.ics_spy_message_mdio", + "ics.structures.ics_spy_messagew_bms", "ics.structures.ics_spy_message_long", "ics.structures.ics_spy_message_vsb", "ics.structures.ethernet_network_status_t", @@ -161,9 +172,12 @@ "ics.structures.s_phy_reg_pkt_clause22_mess", "ics.structures.s_phy_reg_pkt_clause45_mess", "ics.structures.s_phy_reg_pkt", - "ics.structures.e_supported_wil_versions", - "ics.structures.switchw_bms_version_error", "ics.structures.op_eth_link_mode", + "ics.structures.sfp_id", + "ics.structures.macsec_packet_type", + "ics.structures.macsec_validateframe", + "ics.structures.macsec_strip_sectag_icv", + "ics.structures.macsec_cipher_suite", "ics.structures.e_disk_format", "ics.structures.e_disk_layout", "ics.structures.extended_response_code", diff --git a/ics/structures/__init__.py b/ics/structures/__init__.py index f0bedcdc8..10712364f 100644 --- a/ics/structures/__init__.py +++ b/ics/structures/__init__.py @@ -25,6 +25,16 @@ "ethernet_settings2", "ethernet10_g_settings", "ethernet10_t1_s_settings", + "macsec_vlantag", + "macsec_mpls_outer", + "mac_sec_rule", + "mac_sec_map", + "mac_sec_sec_y", + "mac_sec_sc", + "mac_sec_sa", + "mac_sec_flags", + "macsec_config", + "macsec_settings", "logger_settings", "disk_settings", "canterm_settings", @@ -127,9 +137,9 @@ "s_wil_fault_servicing_settings", "s_wil_network_data_capture_settings", "s_wil_connection_settings", + "s_wil_bridge_config", "s_spi_port_setting", "s_spi_port_settings", - "s_wil_bridge_config", "wbms_gateway_settings", "sradbms_settings", "srad_comet_settings", @@ -141,6 +151,7 @@ "spy_filter_long", "ics_spy_message_flex_ray", "ics_spy_message_mdio", + "ics_spy_messagew_bms", "ics_spy_message_long", "ics_spy_message_vsb", "ethernet_network_status_t", @@ -161,9 +172,12 @@ "s_phy_reg_pkt_clause22_mess", "s_phy_reg_pkt_clause45_mess", "s_phy_reg_pkt", - "e_supported_wil_versions", - "switchw_bms_version_error", "op_eth_link_mode", + "sfp_id", + "macsec_packet_type", + "macsec_validateframe", + "macsec_strip_sectag_icv", + "macsec_cipher_suite", "e_disk_format", "e_disk_layout", "extended_response_code", diff --git a/ics/structures/e_supported_wil_versions.py b/ics/structures/e_supported_wil_versions.py deleted file mode 100644 index 2608b0beb..000000000 --- a/ics/structures/e_supported_wil_versions.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 e_supported_wil_versions(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - eSupportedWILVersions_WIL_1_1_0 = 1 - eSupportedWILVersions_WIL_2_0_0 = enum.auto() - - -eSupportedWILVersions = e_supported_wil_versions - diff --git a/ics/structures/ics_spy_message_long.py b/ics/structures/ics_spy_message_long.py index b89a7d1d0..1268ae3a8 100644 --- a/ics/structures/ics_spy_message_long.py +++ b/ics/structures/ics_spy_message_long.py @@ -4,7 +4,7 @@ -class Nameless14534(ctypes.Structure): +class Nameless36278(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless14534(ctypes.Structure): -class Nameless18511(ctypes.Union): - _anonymous_ = ('Nameless14534',) +class Nameless5269(ctypes.Union): + _anonymous_ = ('Nameless36278',) _fields_ = [ - ('Nameless14534', Nameless14534), + ('Nameless36278', Nameless36278), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_long(ctypes.Structure): - _anonymous_ = ('Nameless18511',) + _anonymous_ = ('Nameless5269',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -44,7 +44,7 @@ class ics_spy_message_long(ctypes.Structure): ('ArbIDOrHeader', ctypes.c_uint32), ('DataMsb', ctypes.c_uint32), ('DataLsb', ctypes.c_uint32), - ('Nameless18511', Nameless18511), + ('Nameless5269', Nameless5269), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/ics_spy_message_vsb.py b/ics/structures/ics_spy_message_vsb.py index 1432af372..4cbb3ad51 100644 --- a/ics/structures/ics_spy_message_vsb.py +++ b/ics/structures/ics_spy_message_vsb.py @@ -4,7 +4,7 @@ -class Nameless5189(ctypes.Structure): +class Nameless20259(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless5189(ctypes.Structure): -class Nameless54558(ctypes.Union): - _anonymous_ = ('Nameless5189',) +class Nameless39357(ctypes.Union): + _anonymous_ = ('Nameless20259',) _fields_ = [ - ('Nameless5189', Nameless5189), + ('Nameless20259', Nameless20259), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_vsb(ctypes.Structure): - _anonymous_ = ('Nameless54558',) + _anonymous_ = ('Nameless39357',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -43,7 +43,7 @@ class ics_spy_message_vsb(ctypes.Structure): ('DescriptionID', ctypes.c_int16), ('ArbIDOrHeader', ctypes.c_uint32), ('Data', ctypes.c_uint8 * 8), - ('Nameless54558', Nameless54558), + ('Nameless39357', Nameless39357), ('ExtraDataPtr', ctypes.c_uint32), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/ics/structures/ics_spy_messagew_bms.py b/ics/structures/ics_spy_messagew_bms.py new file mode 100644 index 000000000..a33b81684 --- /dev/null +++ b/ics/structures/ics_spy_messagew_bms.py @@ -0,0 +1,92 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class Nameless14534(ctypes.Structure): + _fields_ = [ + ('', ctypes.c_uint32, 8), + ('PacketType', ctypes.c_uint32, 8), + ('PacketID', ctypes.c_uint32, 8), + ('PacketSource', ctypes.c_uint32, 8), + ] + + + +class Nameless18511(ctypes.Union): + _anonymous_ = ('Nameless14534',) + _fields_ = [ + ('ArbIDOrHeader', ctypes.c_uint32), + ('Nameless14534', Nameless14534), + ] + + + +class Nameless40028(ctypes.Structure): + _fields_ = [ + ('APICode', ctypes.c_uint32, 8), + ('', ctypes.c_uint32, 24), + ] + + + +class Nameless59525(ctypes.Union): + _anonymous_ = ('Nameless40028',) + _fields_ = [ + ('StatusBitField3', ctypes.c_uint32), + ('Nameless40028', Nameless40028), + ] + + + +class Nameless5189(ctypes.Structure): + _anonymous_ = ('Nameless59525',) + _fields_ = [ + ('Nameless59525', Nameless59525), + ('StatusBitField4', ctypes.c_uint32), + ] + + + +class Nameless54558(ctypes.Union): + _anonymous_ = ('Nameless5189',) + _fields_ = [ + ('Nameless5189', Nameless5189), + ('AckBytes', ctypes.c_uint8 * 8), + ] + + + +class ics_spy_messagew_bms(ctypes.Structure): + _anonymous_ = ('Nameless18511', 'Nameless54558') + _fields_ = [ + ('StatusBitField', ctypes.c_uint32), + ('StatusBitField2', ctypes.c_uint32), + ('TimeHardware', ctypes.c_uint32), + ('TimeHardware2', ctypes.c_uint32), + ('TimeSystem', ctypes.c_uint32), + ('TimeSystem2', ctypes.c_uint32), + ('TimeStampHardwareID', ctypes.c_uint8), + ('TimeStampSystemID', ctypes.c_uint8), + ('NetworkID', ctypes.c_uint8), + ('NodeID', ctypes.c_uint8), + ('Protocol', ctypes.c_uint8), + ('MessagePieceID', ctypes.c_uint8), + ('ExtraDataPtrEnabled', ctypes.c_uint8), + ('NumberBytesHeader', ctypes.c_uint8), + ('NumberBytesData', ctypes.c_uint8), + ('NetworkID2', ctypes.c_uint8), + ('DescriptionID', ctypes.c_uint16), + ('Nameless18511', Nameless18511), + ('Data', ctypes.c_uint8 * 8), + ('Nameless54558', Nameless54558), + ('ExtraDataPtr', ctypes.c_void_p), + ('MiscData', ctypes.c_uint8), + ('Reserved', ctypes.c_uint8 * 3), + ] + + +_icsSpyMessagewBMS = ics_spy_messagew_bms +icsSpyMessagewBMS = ics_spy_messagew_bms + diff --git a/ics/structures/mac_sec_flags.py b/ics/structures/mac_sec_flags.py new file mode 100644 index 000000000..026423106 --- /dev/null +++ b/ics/structures/mac_sec_flags.py @@ -0,0 +1,17 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class mac_sec_flags(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('en', ctypes.c_uint32, 1), + ('reserved', ctypes.c_uint32, 31), + ] + + +MACSecFlags_t = mac_sec_flags +MACSecFlags = mac_sec_flags + diff --git a/ics/structures/mac_sec_map.py b/ics/structures/mac_sec_map.py new file mode 100644 index 000000000..7dae31c19 --- /dev/null +++ b/ics/structures/mac_sec_map.py @@ -0,0 +1,24 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class mac_sec_map(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('index', ctypes.c_uint8), + ('sectag_sci', ctypes.c_uint64), + ('secYIndex', ctypes.c_uint8), + ('isControlPacket', ctypes.c_uint8), + ('scIndex', ctypes.c_uint8), + ('auxiliary_plcy', ctypes.c_uint8), + ('ruleId', ctypes.c_uint8), + ('rsvd', ctypes.c_uint8 * 5), + ('enable', ctypes.c_uint8), + ] + + +MACSecMap_t = mac_sec_map +MACSecMap = mac_sec_map + diff --git a/ics/structures/mac_sec_rule.py b/ics/structures/mac_sec_rule.py new file mode 100644 index 000000000..8b463bed8 --- /dev/null +++ b/ics/structures/mac_sec_rule.py @@ -0,0 +1,50 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.macsec_mpls_outer import * +from ics.structures.macsec_packet_type import * +from ics.structures.macsec_vlantag import * + + +class mac_sec_rule(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('index', ctypes.c_uint8), + ('key_MAC_DA', ctypes.c_uint8 * 6), + ('mask_MAC_DA', ctypes.c_uint8 * 6), + ('key_MAC_SA', ctypes.c_uint8 * 6), + ('mask_MAC_SA', ctypes.c_uint8 * 6), + ('key_Ethertype', ctypes.c_uint16), + ('mask_Ethertype', ctypes.c_uint16), + ('key_vlantag_outer1', MACSEC_VLANTAG), + ('key_MPLS_outer1', MACSEC_MPLS_OUTER), + ('mask_vlantag_outer1', MACSEC_VLANTAG), + ('mask_MPLS_outer1', MACSEC_MPLS_OUTER), + ('key_vlantag_outer2', MACSEC_VLANTAG), + ('key_MPLS_outer2', MACSEC_MPLS_OUTER), + ('mask_vlantag_outer2', MACSEC_VLANTAG), + ('mask_MPLS_outer2', MACSEC_MPLS_OUTER), + ('key_bonus_data', ctypes.c_uint16), + ('mask_bonus_data', ctypes.c_uint16), + ('key_tag_match_bitmap', ctypes.c_uint8), + ('mask_tag_match_bitmap', ctypes.c_uint8), + ('key_packet_type', ctypes.c_int32), + ('mask_packet_type', ctypes.c_uint8), + ('key_inner_vlan_type', ctypes.c_uint16), + ('mask_inner_vlan_type', ctypes.c_uint16), + ('key_outer_vlan_type', ctypes.c_uint16), + ('mask_outer_vlan_type', ctypes.c_uint16), + ('key_num_tags', ctypes.c_uint8), + ('mask_num_tags', ctypes.c_uint8), + ('key_express', ctypes.c_uint8), + ('mask_express', ctypes.c_uint8), + ('isMPLS', ctypes.c_uint8), + ('rsvd', ctypes.c_uint8 * 5), + ('enable', ctypes.c_uint8), + ] + + +MACSecRule_t = mac_sec_rule +MACSecRule = mac_sec_rule + diff --git a/ics/structures/mac_sec_sa.py b/ics/structures/mac_sec_sa.py new file mode 100644 index 000000000..2969ec92d --- /dev/null +++ b/ics/structures/mac_sec_sa.py @@ -0,0 +1,24 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class mac_sec_sa(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('index', ctypes.c_uint8), + ('sak', ctypes.c_uint8 * 32), + ('hashKey', ctypes.c_uint8 * 16), + ('salt', ctypes.c_uint8 * 12), + ('ssci', ctypes.c_uint32), + ('AN', ctypes.c_uint8), + ('nextPN', ctypes.c_uint64), + ('rsvd', ctypes.c_uint8 * 5), + ('enable', ctypes.c_uint8), + ] + + +MACSecSa_t = mac_sec_sa +MACSecSa = mac_sec_sa + diff --git a/ics/structures/mac_sec_sc.py b/ics/structures/mac_sec_sc.py new file mode 100644 index 000000000..cc0ced87e --- /dev/null +++ b/ics/structures/mac_sec_sc.py @@ -0,0 +1,26 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class mac_sec_sc(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('index', ctypes.c_uint8), + ('secYIndex', ctypes.c_uint8), + ('sci', ctypes.c_uint64), + ('sa_index0', ctypes.c_uint8), + ('sa_index1', ctypes.c_uint8), + ('sa_index0_in_use', ctypes.c_uint8), + ('sa_index1_in_use', ctypes.c_uint8), + ('enable_auto_rekey', ctypes.c_uint8), + ('isActiveSA1', ctypes.c_uint8), + ('rsvd', ctypes.c_uint8 * 7), + ('enable', ctypes.c_uint8), + ] + + +MACSecSc_t = mac_sec_sc +MACSecSc = mac_sec_sc + diff --git a/ics/structures/mac_sec_sec_y.py b/ics/structures/mac_sec_sec_y.py new file mode 100644 index 000000000..75db8f191 --- /dev/null +++ b/ics/structures/mac_sec_sec_y.py @@ -0,0 +1,33 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.macsec_cipher_suite import * +from ics.structures.macsec_strip_sectag_icv import * +from ics.structures.macsec_validateframe import * + + +class mac_sec_sec_y(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('index', ctypes.c_uint8), + ('controlled_port_enabled', ctypes.c_uint8), + ('validate_frames', ctypes.c_int32), + ('strip_sectag_icv', ctypes.c_int32), + ('cipher', ctypes.c_int32), + ('confidential_offset', ctypes.c_uint8), + ('icv_includes_da_sa', ctypes.c_uint8), + ('replay_protect', ctypes.c_uint8), + ('replay_window', ctypes.c_uint32), + ('protect_frames', ctypes.c_uint8), + ('sectag_offset', ctypes.c_uint8), + ('sectag_tci', ctypes.c_uint8), + ('mtu', ctypes.c_uint16), + ('rsvd', ctypes.c_uint8 * 6), + ('enable', ctypes.c_uint8), + ] + + +MACSecSecY_t = mac_sec_sec_y +MACSecSecY = mac_sec_sec_y + diff --git a/ics/structures/macsec_cipher_suite.py b/ics/structures/macsec_cipher_suite.py new file mode 100644 index 000000000..1fbf23fd3 --- /dev/null +++ b/ics/structures/macsec_cipher_suite.py @@ -0,0 +1,21 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class macsec_cipher_suite(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + 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_t = macsec_cipher_suite +MACSEC_CIPHER_SUITE = macsec_cipher_suite + diff --git a/ics/structures/macsec_config.py b/ics/structures/macsec_config.py new file mode 100644 index 000000000..10aa1ce4b --- /dev/null +++ b/ics/structures/macsec_config.py @@ -0,0 +1,27 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.mac_sec_flags import * +from ics.structures.mac_sec_map import * +from ics.structures.mac_sec_rule import * +from ics.structures.mac_sec_sa import * +from ics.structures.mac_sec_sc import * +from ics.structures.mac_sec_sec_y import * + + +class macsec_config(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('flags', MACSecFlags), + ('rule', MACSecRule * 2), + ('map', MACSecMap * 2), + ('secy', MACSecSecY * 2), + ('sc', MACSecSc * 2), + ('sa', MACSecSa * 4), + ] + + +MACSEC_CONFIG_t = macsec_config +MACSEC_CONFIG = macsec_config + diff --git a/ics/structures/macsec_mpls_outer.py b/ics/structures/macsec_mpls_outer.py new file mode 100644 index 000000000..d9b1b725f --- /dev/null +++ b/ics/structures/macsec_mpls_outer.py @@ -0,0 +1,17 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class macsec_mpls_outer(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('MPLS_label', ctypes.c_uint32), + ('exp', ctypes.c_uint8), + ] + + +MACSEC_MPLS_OUTER_t = macsec_mpls_outer +MACSEC_MPLS_OUTER = macsec_mpls_outer + diff --git a/ics/structures/macsec_packet_type.py b/ics/structures/macsec_packet_type.py new file mode 100644 index 000000000..5dbbec482 --- /dev/null +++ b/ics/structures/macsec_packet_type.py @@ -0,0 +1,24 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class macsec_packet_type(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + 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_t = macsec_packet_type +MACSEC_PACKET_TYPE = macsec_packet_type + diff --git a/ics/structures/macsec_settings.py b/ics/structures/macsec_settings.py new file mode 100644 index 000000000..8d5c93153 --- /dev/null +++ b/ics/structures/macsec_settings.py @@ -0,0 +1,18 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + +from ics.structures.macsec_config import * + + +class macsec_settings(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('rx', MACSEC_CONFIG), + ('tx', MACSEC_CONFIG), + ] + + +MACSEC_SETTINGS_t = macsec_settings +MACSEC_SETTINGS = macsec_settings + diff --git a/ics/structures/macsec_strip_sectag_icv.py b/ics/structures/macsec_strip_sectag_icv.py new file mode 100644 index 000000000..91327795d --- /dev/null +++ b/ics/structures/macsec_strip_sectag_icv.py @@ -0,0 +1,21 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class macsec_strip_sectag_icv(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + MACSEC_SECTAG_ICV_BOTH_STRIP = 0 + MACSEC_SECTAG_ICV_RESERVED = 1 + MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2 + MACSEC_SECTAG_ICV_NO_STRIP = 3 + + +MACSEC_STRIP_SECTAG_ICV_t = macsec_strip_sectag_icv +MACSEC_STRIP_SECTAG_ICV = macsec_strip_sectag_icv + diff --git a/ics/structures/macsec_validateframe.py b/ics/structures/macsec_validateframe.py new file mode 100644 index 000000000..158d7b9d8 --- /dev/null +++ b/ics/structures/macsec_validateframe.py @@ -0,0 +1,21 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class macsec_validateframe(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + MACSEC_VF_DISABLED = 0 + MACSEC_VF_CHECK = 1 + MACSEC_VF_STRICT = 2 + MACSEC_VF_NA = 3 + + +MACSEC_VALIDATEFRAME_t = macsec_validateframe +MACSEC_VALIDATEFRAME = macsec_validateframe + diff --git a/ics/structures/macsec_vlantag.py b/ics/structures/macsec_vlantag.py new file mode 100644 index 000000000..73c0e873e --- /dev/null +++ b/ics/structures/macsec_vlantag.py @@ -0,0 +1,17 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class macsec_vlantag(ctypes.Structure): + _pack_ = 2 + _fields_ = [ + ('VID', ctypes.c_uint16), + ('PRI_CFI', ctypes.c_uint8), + ] + + +MACSEC_VLANTAG_t = macsec_vlantag +MACSEC_VLANTAG = macsec_vlantag + diff --git a/ics/structures/s_phy_reg_pkt.py b/ics/structures/s_phy_reg_pkt.py index 3c87f355a..b26cc738b 100644 --- a/ics/structures/s_phy_reg_pkt.py +++ b/ics/structures/s_phy_reg_pkt.py @@ -6,7 +6,7 @@ from ics.structures.s_phy_reg_pkt_clause45_mess import * -class Nameless36278(ctypes.Structure): +class Nameless20257(ctypes.Structure): _fields_ = [ ('Enabled', ctypes.c_uint16, 1), ('WriteEnable', ctypes.c_uint16, 1), @@ -19,16 +19,16 @@ class Nameless36278(ctypes.Structure): -class Nameless5269(ctypes.Union): - _anonymous_ = ('Nameless36278',) +class Nameless60883(ctypes.Union): + _anonymous_ = ('Nameless20257',) _fields_ = [ - ('Nameless36278', Nameless36278), + ('Nameless20257', Nameless20257), ('flags', ctypes.c_uint16), ] -class Nameless23244(ctypes.Union): +class Nameless5382(ctypes.Union): _fields_ = [ ('clause22', PhyRegPktClause22Mess_t), ('clause45', PhyRegPktClause45Mess_t), @@ -37,10 +37,10 @@ class Nameless23244(ctypes.Union): class s_phy_reg_pkt(ctypes.Structure): - _anonymous_ = ('Nameless5269', 'Nameless23244') + _anonymous_ = ('Nameless60883', 'Nameless5382') _fields_ = [ - ('Nameless5269', Nameless5269), - ('Nameless23244', Nameless23244), + ('Nameless60883', Nameless60883), + ('Nameless5382', Nameless5382), ] diff --git a/ics/structures/s_wil_bridge_config.py b/ics/structures/s_wil_bridge_config.py index eeb2f29f1..44c944b0e 100644 --- a/ics/structures/s_wil_bridge_config.py +++ b/ics/structures/s_wil_bridge_config.py @@ -7,10 +7,10 @@ class config(ctypes.Structure): _pack_ = 2 _fields_ = [ - ('can_id', ctypes.c_uint, 29), - ('can_id_isExtended', ctypes.c_uint, 1), - ('tcp_port', ctypes.c_uint16), - ('reserved', ctypes.c_uint, 18), + ('can_id', ctypes.c_uint64, 29), + ('can_id_isExtended', ctypes.c_uint64, 1), + ('tcp_port', ctypes.c_uint64, 16), + ('reserved', ctypes.c_uint64, 18), ] diff --git a/ics/structures/sfp_id.py b/ics/structures/sfp_id.py new file mode 100644 index 000000000..a1f8207fa --- /dev/null +++ b/ics/structures/sfp_id.py @@ -0,0 +1,23 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class sfp_id(enum.IntEnum): + """A ctypes-compatible IntEnum superclass.""" + @classmethod + def from_param(cls, obj): + return int(obj) + + SFP_ID_UNKNOWN = 0 + SFP_ID_FINISAR_FCLF8522P2BTL = enum.auto() + SFP_ID_FS_GB_GE_T = enum.auto() + SFP_ID_ICS_MV2112A2 = enum.auto() + SFP_ID_ICS_MV2221MB1 = enum.auto() + SFP_ID_ICS_MV3244 = enum.auto() + SFP_ID_MAX = enum.auto() + + +SfpId = sfp_id + diff --git a/ics/structures/sobd2_lc_settings.py b/ics/structures/sobd2_lc_settings.py index 02055c301..21a83f49c 100644 --- a/ics/structures/sobd2_lc_settings.py +++ b/ics/structures/sobd2_lc_settings.py @@ -61,9 +61,9 @@ class sobd2_lc_settings(ctypes.Structure): ('canfd4', CANFD_SETTINGS), ('swcan1', SWCAN_SETTINGS), ('lin1', LIN_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), + ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), + ('iso_parity', ctypes.c_uint16), + ('iso_msg_termination', ctypes.c_uint16), ('network_enables', network_enables), ('pwr_man_timeout', ctypes.c_uint32), ('pwr_man_enable', ctypes.c_uint16), @@ -76,6 +76,7 @@ class sobd2_lc_settings(ctypes.Structure): ('disk', DISK_SETTINGS), ('ethernet', ETHERNET_SETTINGS), ('ethernet2', ETHERNET_SETTINGS2), + ('iso_tester_pullup_enable', ctypes.c_uint16), ] diff --git a/ics/structures/srad_comet_settings.py b/ics/structures/srad_comet_settings.py index b85243754..2fd36e228 100644 --- a/ics/structures/srad_comet_settings.py +++ b/ics/structures/srad_comet_settings.py @@ -7,6 +7,7 @@ from ics.structures.ethernet10_t1_s_settings import * from ics.structures.ethernet_settings2 import * from ics.structures.iso9141_keyword2000_settings import * +from ics.structures.lin_settings import * from ics.structures.op_eth_general_settings import * from ics.structures.op_eth_settings import * from ics.structures.rad_reporting_settings import * @@ -78,6 +79,7 @@ class srad_comet_settings(ctypes.Structure): ('ethT1s2', ETHERNET_SETTINGS2), ('t1s2', ETHERNET10T1S_SETTINGS), ('network_enables_5', ctypes.c_uint64), + ('lin1', LIN_SETTINGS), ] diff --git a/ics/structures/sradbms_settings.py b/ics/structures/sradbms_settings.py index fd7496c58..6d3192640 100644 --- a/ics/structures/sradbms_settings.py +++ b/ics/structures/sradbms_settings.py @@ -7,7 +7,6 @@ from ics.structures.ethernet_settings import * from ics.structures.ethernet_settings2 import * from ics.structures.s_spi_port_settings import * -from ics.structures.s_wil_bridge_config import * from ics.structures.s_wil_connection_settings import * from ics.structures.wbms_gateway_settings import * @@ -42,7 +41,7 @@ class sradbms_settings(ctypes.Structure): ('pwr_man_timeout', ctypes.c_uint32), ('pwr_man_enable', ctypes.c_uint16), ('network_enabled_on_boot', ctypes.c_uint16), - ('wil_config', sWILBridgeConfig), + ('rsvd', ctypes.c_uint8 * 10), ('spi_config', sSPI_PORT_SETTINGS), ('wbms_wil_1', sWIL_CONNECTION_SETTINGS), ('wbms_wil_2', sWIL_CONNECTION_SETTINGS), diff --git a/ics/structures/switchw_bms_version_error.py b/ics/structures/switchw_bms_version_error.py deleted file mode 100644 index 4a80585d7..000000000 --- a/ics/structures/switchw_bms_version_error.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class switchw_bms_version_error(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - SwitchwBMSVersion_Failed = 0 - SwitchwBMSVersion_OK = enum.auto() - SwitchwBMSVersion_Reflashed = enum.auto() - SwitchwBMSVersion_ParameterNotValid = enum.auto() - - -SwitchwBMSVersionError = switchw_bms_version_error -SwitchwBMSVersionError = switchw_bms_version_error - diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index a60764f67..0500c9e78 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -1,73 +1,4 @@ [ - { - "names": [ - "eSupportedWILVersions" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "eSupportedWILVersions_WIL_1_1_0 ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": true, - "enum_value": 1 - }, - { - "name": "eSupportedWILVersions_WIL_2_0_0", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, - { - "names": [ - "SwitchwBMSVersionError", - "SwitchwBMSVersionError" - ], - "data_type": "Enum", - "packing": 0, - "is_anonymous": false, - "members": [ - { - "name": "SwitchwBMSVersion_Failed ", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": 0 - }, - { - "name": "SwitchwBMSVersion_OK", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SwitchwBMSVersion_Reflashed", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "SwitchwBMSVersion_ParameterNotValid", - "data_type": "int", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - } - ] - }, { "names": [], "data_type": "Enum", @@ -639,6 +570,268 @@ } ] }, + { + "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_t", + "MACSEC_PACKET_TYPE" + ], + "data_type": "Enum", + "packing": 2, + "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_t", + "MACSEC_VALIDATEFRAME" + ], + "data_type": "Enum", + "packing": 2, + "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_t", + "MACSEC_STRIP_SECTAG_ICV" + ], + "data_type": "Enum", + "packing": 2, + "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_t", + "MACSEC_CIPHER_SUITE" + ], + "data_type": "Enum", + "packing": 2, + "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", @@ -3258,7 +3451,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5372 ", + "name": "assert_line_5645 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3274,7 +3467,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5373 ", + "name": "assert_line_5646 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3290,7 +3483,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5374 ", + "name": "assert_line_5647 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3306,7 +3499,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5375 ", + "name": "assert_line_5648 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3322,7 +3515,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5376 ", + "name": "assert_line_5649 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3338,7 +3531,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5377 ", + "name": "assert_line_5650 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3354,7 +3547,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5378 ", + "name": "assert_line_5651 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3370,7 +3563,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5379 ", + "name": "assert_line_5652 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3386,7 +3579,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5380 ", + "name": "assert_line_5653 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3402,7 +3595,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5381 ", + "name": "assert_line_5654 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3418,7 +3611,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5382 ", + "name": "assert_line_5655 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3434,7 +3627,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5383 ", + "name": "assert_line_5656 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3450,7 +3643,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5384 ", + "name": "assert_line_5657 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3466,7 +3659,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5385 ", + "name": "assert_line_5658 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3482,7 +3675,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5386 ", + "name": "assert_line_5659 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3498,7 +3691,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5387 ", + "name": "assert_line_5660 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3514,7 +3707,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5388 ", + "name": "assert_line_5661 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3530,7 +3723,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5389 ", + "name": "assert_line_5662 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3546,7 +3739,23 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5390 ", + "name": "assert_line_5663 ", + "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_5664 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3562,7 +3771,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5391 ", + "name": "assert_line_5665 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3578,7 +3787,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5392 ", + "name": "assert_line_5666 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3594,7 +3803,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5393 ", + "name": "assert_line_5667 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3610,7 +3819,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5394 ", + "name": "assert_line_5668 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3626,7 +3835,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5395 ", + "name": "assert_line_5669 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3642,7 +3851,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5396 ", + "name": "assert_line_5670 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3658,7 +3867,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5397 ", + "name": "assert_line_5671 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3674,7 +3883,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5398 ", + "name": "assert_line_5672 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3690,7 +3899,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5399 ", + "name": "assert_line_5673 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3706,7 +3915,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5400 ", + "name": "assert_line_5674 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3722,7 +3931,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5401 ", + "name": "assert_line_5675 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3738,7 +3947,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5402 ", + "name": "assert_line_5676 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3754,7 +3963,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5403 ", + "name": "assert_line_5677 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3770,7 +3979,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5404 ", + "name": "assert_line_5678 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3786,7 +3995,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5405 ", + "name": "assert_line_5679 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3802,7 +4011,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5406 ", + "name": "assert_line_5680 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3818,7 +4027,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5407 ", + "name": "assert_line_5681 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3834,7 +4043,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5408 ", + "name": "assert_line_5682 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3850,7 +4059,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5409 ", + "name": "assert_line_5683 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3866,7 +4075,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5410 ", + "name": "assert_line_5684 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3882,7 +4091,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5411 ", + "name": "assert_line_5685 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3898,7 +4107,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5412 ", + "name": "assert_line_5686 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3914,7 +4123,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5413 ", + "name": "assert_line_5687 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3930,7 +4139,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5414 ", + "name": "assert_line_5688 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3946,7 +4155,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5415 ", + "name": "assert_line_5689 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3962,7 +4171,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5416 ", + "name": "assert_line_5690 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3978,7 +4187,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5417 ", + "name": "assert_line_5691 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3994,7 +4203,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5418 ", + "name": "assert_line_5692 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4010,7 +4219,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5419 ", + "name": "assert_line_5693 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4026,7 +4235,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5420 ", + "name": "assert_line_5694 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4042,7 +4251,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5421 ", + "name": "assert_line_5695 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4058,7 +4267,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5422 ", + "name": "assert_line_5696 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4074,7 +4283,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5423 ", + "name": "assert_line_5697 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4090,7 +4299,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5424 ", + "name": "assert_line_5698 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4106,7 +4315,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5425 ", + "name": "assert_line_5699 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4122,7 +4331,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5426 ", + "name": "assert_line_5700 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4138,7 +4347,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5427 ", + "name": "assert_line_5701 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4154,7 +4363,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5428 ", + "name": "assert_line_5702 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4170,7 +4379,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5429 ", + "name": "assert_line_5703 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4186,7 +4395,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5430 ", + "name": "assert_line_5704 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4202,7 +4411,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5431 ", + "name": "assert_line_5705 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4218,7 +4427,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5432 ", + "name": "assert_line_5706 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4234,7 +4443,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5433 ", + "name": "assert_line_5707 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4250,7 +4459,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5434 ", + "name": "assert_line_5708 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4266,7 +4475,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5435 ", + "name": "assert_line_5709 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4282,7 +4491,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5436 ", + "name": "assert_line_5710 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4298,7 +4507,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5437 ", + "name": "assert_line_5711 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4314,7 +4523,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5438 ", + "name": "assert_line_5712 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4330,7 +4539,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5439 ", + "name": "assert_line_5713 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4346,7 +4555,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5440 ", + "name": "assert_line_5714 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4362,7 +4571,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5441 ", + "name": "assert_line_5715 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4378,7 +4587,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5442 ", + "name": "assert_line_5716 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4394,7 +4603,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5443 ", + "name": "assert_line_5717 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4410,7 +4619,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5444 ", + "name": "assert_line_5718 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4426,7 +4635,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5445 ", + "name": "assert_line_5719 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4442,7 +4651,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5446 ", + "name": "assert_line_5720 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4458,7 +4667,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5447 ", + "name": "assert_line_5721 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4474,7 +4683,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5448 ", + "name": "assert_line_5722 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, diff --git a/icsnVC40.h.json b/icsnVC40.h.json index a33248a20..8d36834b3 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -3303,6 +3303,836 @@ } ] }, + { + "names": [ + "MACSEC_VLANTAG_t", + "MACSEC_VLANTAG" + ], + "data_type": "Struct", + "packing": 2, + "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", + "MACSEC_MPLS_OUTER" + ], + "data_type": "Struct", + "packing": 2, + "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_t", + "MACSecRule" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "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", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "key_MPLS_outer1", + "data_type": "MACSEC_MPLS_OUTER", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mask_vlantag_outer1", + "data_type": "MACSEC_VLANTAG", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mask_MPLS_outer1", + "data_type": "MACSEC_MPLS_OUTER", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "key_vlantag_outer2", + "data_type": "MACSEC_VLANTAG", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "key_MPLS_outer2", + "data_type": "MACSEC_MPLS_OUTER", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mask_vlantag_outer2", + "data_type": "MACSEC_VLANTAG", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "mask_MPLS_outer2", + "data_type": "MACSEC_MPLS_OUTER", + "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": "MACSEC_PACKET_TYPE", + "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 + } + ] + }, + { + "names": [ + "MACSecMap_t", + "MACSecMap" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "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 + } + ] + }, + { + "names": [ + "MACSecSecY_t", + "MACSecSecY" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "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": "MACSEC_VALIDATEFRAME", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "strip_sectag_icv", + "data_type": "MACSEC_STRIP_SECTAG_ICV", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "cipher", + "data_type": "MACSEC_CIPHER_SUITE", + "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 + } + ] + }, + { + "names": [ + "MACSecSc_t", + "MACSecSc" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "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 + } + ] + }, + { + "names": [ + "MACSecSa_t", + "MACSecSa" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "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 + } + ] + }, + { + "names": [ + "MACSecFlags_t", + "MACSecFlags" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "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 + } + ] + }, + { + "names": [ + "MACSEC_CONFIG_t", + "MACSEC_CONFIG" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "name": "flags", + "data_type": "MACSecFlags", + "array_length": 0, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "rule", + "data_type": "MACSecRule", + "array_length": 2, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "map", + "data_type": "MACSecMap", + "array_length": 2, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "secy", + "data_type": "MACSecSecY", + "array_length": 2, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "sc", + "data_type": "MACSecSc", + "array_length": 2, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + }, + { + "name": "sa", + "data_type": "MACSecSa", + "array_length": 4, + "bitfield_size": 0, + "is_enum": false, + "enum_value": null + } + ] + }, + { + "names": [ + "MACSEC_SETTINGS_t", + "MACSEC_SETTINGS" + ], + "data_type": "Struct", + "packing": 2, + "is_anonymous": false, + "members": [ + { + "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 + } + ] + }, { "names": [ "LOGGER_SETTINGS_t", @@ -14163,7 +14993,7 @@ "enum_value": null }, { - "name": "iso9141_kwp_settings_1", + "name": "iso9141_kwp_settings", "data_type": "ISO9141_KEYWORD2000_SETTINGS", "array_length": 0, "bitfield_size": 0, @@ -14171,7 +15001,7 @@ "enum_value": null }, { - "name": "iso_parity_1", + "name": "iso_parity", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -14179,7 +15009,7 @@ "enum_value": null }, { - "name": "iso_msg_termination_1", + "name": "iso_msg_termination", "data_type": "uint16_t", "array_length": 0, "bitfield_size": 0, @@ -14381,6 +15211,14 @@ "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 } ] }, @@ -17703,6 +18541,66 @@ } ] }, + { + "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" @@ -17789,66 +18687,6 @@ } ] }, - { - "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": "unsigned", - "array_length": 0, - "bitfield_size": 29, - "is_enum": false, - "enum_value": null - }, - { - "name": "can_id_isExtended", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null - }, - { - "name": "tcp_port", - "data_type": "uint16_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "reserved", - "data_type": "unsigned", - "array_length": 0, - "bitfield_size": 18, - "is_enum": false, - "enum_value": null - } - ] - } - ] - }, { "names": [ "WBMSGatewaySettings" @@ -18071,9 +18909,9 @@ "enum_value": null }, { - "name": "wil_config", - "data_type": "sWILBridgeConfig", - "array_length": 0, + "name": "rsvd", + "data_type": "uint8_t", + "array_length": 10, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -18460,6 +19298,14 @@ "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 } ] }, @@ -19846,9 +20692,179 @@ ] }, { - "name": "reserved", + "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": 16, + "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 @@ -19857,14 +20873,15 @@ }, { "names": [ - "spyFilterLong" + "_icsSpyMessage", + "icsSpyMessage" ], "data_type": "Struct", "packing": 0, "is_anonymous": false, "members": [ { - "name": "StatusValue", + "name": "StatusBitField", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19872,7 +20889,7 @@ "enum_value": null }, { - "name": "StatusMask", + "name": "StatusBitField2", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19880,7 +20897,7 @@ "enum_value": null }, { - "name": "Status2Value", + "name": "TimeHardware", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19888,7 +20905,7 @@ "enum_value": null }, { - "name": "Status2Mask", + "name": "TimeHardware2", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19896,7 +20913,7 @@ "enum_value": null }, { - "name": "Header", + "name": "TimeSystem", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19904,7 +20921,7 @@ "enum_value": null }, { - "name": "HeaderMask", + "name": "TimeSystem2", "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, @@ -19912,123 +20929,179 @@ "enum_value": null }, { - "name": "MiscData", - "data_type": "uint32_t", + "name": "TimeStampHardwareID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "MiscDataMask", - "data_type": "uint32_t", + "name": "TimeStampSystemID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataMSB", - "data_type": "uint32_t", + "name": "NetworkID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataLSB", - "data_type": "uint32_t", + "name": "NodeID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataMaskMSB", - "data_type": "uint32_t", + "name": "Protocol", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataMaskLSB", - "data_type": "uint32_t", + "name": "MessagePieceID", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "HeaderLength", - "data_type": "uint32_t", + "name": "ExtraDataPtrEnabled", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ByteDataLength", - "data_type": "uint32_t", + "name": "NumberBytesHeader", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "NetworkID", - "data_type": "uint32_t", + "name": "NumberBytesData", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "FrameMaster", - "data_type": "uint16_t", + "name": "NetworkID2", + "data_type": "uint8_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "bUseArbIdRangeFilter", - "data_type": "uint8_t", + "name": "DescriptionID", + "data_type": "descIdType", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "bStuff2", - "data_type": "uint8_t", + "name": "ArbIDOrHeader", + "data_type": "uint32_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, "enum_value": null }, { - "name": "ExpectedLength", - "data_type": "uint32_t", + "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": "NodeID", - "data_type": "uint32_t", + "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": [ - "_icsSpyMessage", - "icsSpyMessage" + "_icsSpyMessageFlexRay", + "icsSpyMessageFlexRay" ], "data_type": "Struct", "packing": 0, @@ -20171,12 +21244,116 @@ "enum_value": null }, { - "name": "ArbIDOrHeader", - "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": [ + { + "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", @@ -20223,6 +21400,78 @@ "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 + } + ] } ] }, @@ -20254,8 +21503,8 @@ }, { "names": [ - "_icsSpyMessageFlexRay", - "icsSpyMessageFlexRay" + "_icsSpyMessageMdio", + "icsSpyMessageMdio" ], "data_type": "Struct", "packing": 0, @@ -20418,90 +21667,34 @@ "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", + "name": "RegAddr", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 16, "is_enum": false, "enum_value": null }, { - "name": "payload_preamble", + "name": "PhyAddr", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 5, "is_enum": false, "enum_value": null }, { - "name": "frame_reserved", + "name": "DevType", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 5, "is_enum": false, "enum_value": null }, { - "name": "dynamic", + "name": "", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 1, + "bitfield_size": 6, "is_enum": false, "enum_value": null } @@ -20554,78 +21747,6 @@ "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 - } - ] } ] }, @@ -20657,8 +21778,8 @@ }, { "names": [ - "_icsSpyMessageMdio", - "icsSpyMessageMdio" + "_icsSpyMessagewBMS", + "icsSpyMessagewBMS" ], "data_type": "Struct", "packing": 0, @@ -20821,34 +21942,34 @@ "is_anonymous": true, "members": [ { - "name": "RegAddr", + "name": "", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 16, + "bitfield_size": 8, "is_enum": false, "enum_value": null }, { - "name": "PhyAddr", + "name": "PacketType", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 5, + "bitfield_size": 8, "is_enum": false, "enum_value": null }, { - "name": "DevType", + "name": "PacketID", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 5, + "bitfield_size": 8, "is_enum": false, "enum_value": null }, { - "name": "", + "name": "PacketSource", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 6, + "bitfield_size": 8, "is_enum": false, "enum_value": null } @@ -20877,12 +21998,44 @@ "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": "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", diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index aeafa9995..1a4ab2108 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -51,18 +51,6 @@ typedef long long intmax_t; typedef unsigned long long uintmax_t; #pragma warning(pop) #pragma warning(disable : 4200) -typedef enum -{ - eSupportedWILVersions_WIL_1_1_0 = 1, - eSupportedWILVersions_WIL_2_0_0, -} eSupportedWILVersions; -typedef enum SwitchwBMSVersionError -{ - SwitchwBMSVersion_Failed = 0, - SwitchwBMSVersion_OK, - SwitchwBMSVersion_Reflashed, - SwitchwBMSVersion_ParameterNotValid, -} SwitchwBMSVersionError; typedef struct SExtendedDataFlashHeader { uint16_t version; @@ -676,6 +664,16 @@ typedef struct ETHERNET_SETTINGS_t uint8_t led_mode; uint8_t rsvd[4]; } ETHERNET_SETTINGS; +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, + SFP_ID_MAX, +} SfpId; typedef struct ETHERNET_SETTINGS2_t { uint8_t flags; @@ -706,6 +704,157 @@ typedef struct ETHERNET10T1S_SETTINGS_t uint8_t local_id_alternate; uint8_t rsvd[5]; } ETHERNET10T1S_SETTINGS; +typedef struct MACSEC_VLANTAG_t +{ + uint16_t VID; + uint8_t PRI_CFI; +} MACSEC_VLANTAG; +typedef struct MACSEC_MPLS_OUTER_t +{ + uint32_t MPLS_label; + uint8_t exp; +} MACSEC_MPLS_OUTER; +typedef enum MACSEC_PACKET_TYPE_t +{ + 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; +typedef struct MACSecRule_t +{ + 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 key_vlantag_outer1; + MACSEC_MPLS_OUTER key_MPLS_outer1; + MACSEC_VLANTAG mask_vlantag_outer1; + MACSEC_MPLS_OUTER mask_MPLS_outer1; + MACSEC_VLANTAG key_vlantag_outer2; + MACSEC_MPLS_OUTER key_MPLS_outer2; + MACSEC_VLANTAG mask_vlantag_outer2; + MACSEC_MPLS_OUTER 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; + MACSEC_PACKET_TYPE 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; + uint8_t isMPLS; + uint8_t rsvd[5]; + uint8_t enable; +} MACSecRule; +typedef struct MACSecMap_t +{ + uint8_t index; + uint64_t sectag_sci; + uint8_t secYIndex; + uint8_t isControlPacket; + uint8_t scIndex; + uint8_t auxiliary_plcy; + uint8_t ruleId; + uint8_t rsvd[5]; + uint8_t enable; +} MACSecMap; +typedef enum MACSEC_VALIDATEFRAME_t +{ + MACSEC_VF_DISABLED = 0, + MACSEC_VF_CHECK = 1, + MACSEC_VF_STRICT = 2, + MACSEC_VF_NA = 3 +} MACSEC_VALIDATEFRAME; +typedef enum MACSEC_STRIP_SECTAG_ICV_t +{ + MACSEC_SECTAG_ICV_BOTH_STRIP = 0, + MACSEC_SECTAG_ICV_RESERVED = 1, + MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2, + MACSEC_SECTAG_ICV_NO_STRIP = 3 +} MACSEC_STRIP_SECTAG_ICV; +typedef enum MACSEC_CIPHER_SUITE_t +{ + 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; +typedef struct MACSecSecY_t +{ + uint8_t index; + uint8_t controlled_port_enabled; + MACSEC_VALIDATEFRAME validate_frames; + MACSEC_STRIP_SECTAG_ICV strip_sectag_icv; + MACSEC_CIPHER_SUITE 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 rsvd[6]; + uint8_t enable; +} MACSecSecY; +typedef struct MACSecSc_t +{ + 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 rsvd[7]; + uint8_t enable; +} MACSecSc; +typedef struct MACSecSa_t +{ + 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 rsvd[5]; + uint8_t enable; +} MACSecSa; +typedef struct MACSecFlags_t +{ + uint32_t en : 1; + uint32_t reserved : 31; +} MACSecFlags; +typedef struct MACSEC_CONFIG_t +{ + MACSecFlags flags; + MACSecRule rule[(2)]; + MACSecMap map[(2)]; + MACSecSecY secy[(2)]; + MACSecSc sc[(2)]; + MACSecSa sa[(4)]; +} MACSEC_CONFIG; +typedef struct MACSEC_SETTINGS_t +{ + MACSEC_CONFIG rx; + MACSEC_CONFIG tx; +} MACSEC_SETTINGS; typedef struct LOGGER_SETTINGS_t { uint8_t extraction_timeout; @@ -2473,9 +2622,9 @@ typedef struct _SOBD2LCSettings CANFD_SETTINGS canfd4; SWCAN_SETTINGS swcan1; LIN_SETTINGS lin1; - ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; - uint16_t iso_parity_1; - uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; + uint16_t iso_parity; + uint16_t iso_msg_termination; union { uint64_t word; @@ -2506,6 +2655,7 @@ typedef struct _SOBD2LCSettings DISK_SETTINGS disk; ETHERNET_SETTINGS ethernet; ETHERNET_SETTINGS2 ethernet2; + uint16_t iso_tester_pullup_enable; } OBD2LCSettings, SOBD2LCSettings; typedef struct SJupiterPtpParams_s { @@ -2986,6 +3136,17 @@ enum 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 @@ -3001,17 +3162,6 @@ typedef struct sSPI_PORT_SETTING port_a; sSPI_PORT_SETTING port_b; } sSPI_PORT_SETTINGS; -typedef union -{ - uint64_t dword; - struct - { - unsigned can_id : 29; - unsigned can_id_isExtended : 1; - uint16_t tcp_port; - unsigned reserved : 18; - } config; -} sWILBridgeConfig; typedef struct { uint8_t wbms1_network; @@ -3044,7 +3194,7 @@ typedef struct _SRADBMSSettings uint32_t pwr_man_timeout; uint16_t pwr_man_enable; uint16_t network_enabled_on_boot; - sWILBridgeConfig wil_config; + uint8_t rsvd[10]; sSPI_PORT_SETTINGS spi_config; sWIL_CONNECTION_SETTINGS wbms_wil_1; sWIL_CONNECTION_SETTINGS wbms_wil_2; @@ -3100,6 +3250,7 @@ typedef struct _SRADCometSettings ETHERNET_SETTINGS2 ethT1s2; ETHERNET10T1S_SETTINGS t1s2; uint64_t network_enables_5; + LIN_SETTINGS lin1; } SRADCometSettings; typedef struct _GLOBAL_SETTINGS { @@ -3542,6 +3693,58 @@ typedef struct _icsSpyMessageMdio 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; typedef struct _icsSpyMessageLong { uint32_t StatusBitField; @@ -3841,385 +4044,390 @@ typedef enum PhyErrorType } PhyErrorType; enum { - assert_line_5372 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_5645 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) +}; +; +enum +{ + assert_line_5646 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_5373 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_5647 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_5374 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_5648 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_5375 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_5649 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_5376 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_5650 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_5377 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_5651 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_5378 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_5652 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_5379 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_5653 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_5380 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_5654 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_5381 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_5655 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_5382 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_5656 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_5383 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_5657 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_5384 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_5658 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_5385 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_5659 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_5386 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_5660 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_5387 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_5661 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_5388 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_5662 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) }; ; enum { - assert_line_5389 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) + assert_line_5663 = 1 / (int)(!!(sizeof(MACSEC_SETTINGS) == (2 * sizeof(MACSEC_CONFIG)))) }; ; enum { - assert_line_5390 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_5664 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_5391 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_5665 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_5392 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_5666 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_5393 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_5667 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_5394 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_5668 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_5395 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_5669 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_5396 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_5670 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_5397 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_5671 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_5398 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_5672 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_5399 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_5673 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_5400 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_5674 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_5401 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_5675 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_5402 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_5676 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_5403 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_5677 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_5404 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_5678 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_5405 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_5679 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_5406 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_5680 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_5407 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) + assert_line_5681 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) }; ; enum { - assert_line_5408 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) + assert_line_5682 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) }; ; enum { - assert_line_5409 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_5683 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_5410 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_5684 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) }; ; enum { - assert_line_5411 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1474) + 6))) + assert_line_5685 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1474) + 6))) }; ; enum { - assert_line_5412 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_5686 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_5413 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_5687 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_5414 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_5688 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_5415 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_5689 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_5416 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_5690 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_5417 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_5691 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_5418 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_5692 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_5419 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_5693 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_5420 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_5694 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_5421 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_5695 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_5422 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) + assert_line_5696 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) }; ; enum { - assert_line_5423 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) + assert_line_5697 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) }; ; enum { - assert_line_5424 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) + assert_line_5698 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) }; ; enum { - assert_line_5425 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) + assert_line_5699 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) }; ; enum { - assert_line_5426 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_5700 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_5427 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_5701 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_5428 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_5702 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_5429 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_5703 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_5430 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_5704 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_5431 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5705 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5432 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_5706 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_5433 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_5707 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_5434 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_5708 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_5435 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_5709 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_5436 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_5710 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_5437 = 1 / (int)(!!(sizeof(SFire3Settings) == (1474))) + assert_line_5711 = 1 / (int)(!!(sizeof(SFire3Settings) == (1474))) }; ; enum { - assert_line_5438 = 1 / (int)(!!(sizeof(SRed2Settings) == (670))) + assert_line_5712 = 1 / (int)(!!(sizeof(SRed2Settings) == (670))) }; ; enum { - assert_line_5439 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_5713 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_5440 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) + assert_line_5714 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) }; ; enum { - assert_line_5441 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_5715 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_5442 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) + assert_line_5716 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) }; ; enum { - assert_line_5443 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_5717 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_5444 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) + assert_line_5718 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) }; ; enum { - assert_line_5445 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) + assert_line_5719 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) }; ; enum { - assert_line_5446 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1124))) + assert_line_5720 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1124))) }; ; enum { - assert_line_5447 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5721 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5448 = 1 / (int)(!!(sizeof(SRADCometSettings) == 456)) + assert_line_5722 = 1 / (int)(!!(sizeof(SRADCometSettings) == 466)) }; ; diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 585ffc8b3..d45b2a8e8 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -224,6 +224,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RADCOMET (0x00000024) #define NEODEVICE_FIRE3_FLEXRAY (0x00000025) #define NEODEVICE_RED2_OEM (0x00000026) +#define NEODEVICE_NEW_DEVICE_27 (0x00000027) #define NEODEVICE_RED (0x00000040) #define NEODEVICE_ECU (0x00000080) #define NEODEVICE_IEVB (0x00000100) @@ -359,7 +360,7 @@ typedef unsigned __int64 uint64_t; #define SPY_STATUS_INIT_MESSAGE 0x20000000 #define SPY_STATUS_LIN_MASTER 0x20000000 #define SPY_STATUS_CANFD 0x20000000 -#define SPY_STATUS_A2B_CONTROL 0x80000 +#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 @@ -438,6 +439,9 @@ typedef unsigned __int64 uint64_t; #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 /* FlexRay Specific - check protocol before handling */ #define SPY_STATUS2_FLEXRAY_TX_AB 0x200000 @@ -525,20 +529,6 @@ typedef unsigned __int64 uint64_t; #define FIRE2_REPORT_GPS (0x0400) #define FIRE3_REPORT_ORIENTATION (0x0800) -typedef enum -{ - eSupportedWILVersions_WIL_1_1_0 = 1, - eSupportedWILVersions_WIL_2_0_0, -}eSupportedWILVersions; - -typedef enum SwitchwBMSVersionError -{ - SwitchwBMSVersion_Failed = 0, - SwitchwBMSVersion_OK, - SwitchwBMSVersion_Reflashed, - SwitchwBMSVersion_ParameterNotValid, -} SwitchwBMSVersionError; - typedef struct SExtendedDataFlashHeader { uint16_t version; @@ -1295,6 +1285,21 @@ typedef struct ETHERNET_SETTINGS_t #define ETHERNET_SETTINGS2_FLAG2_PHY_MODE 0x02 #define ETHERNET_SETTINGS2_FLAG2_LINK_MODE_AUTO 0x04 +#define ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT 4 +#define ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK 0xF0 + +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 @@ -1313,9 +1318,13 @@ typedef struct ETHERNET_SETTINGS2_t uint32_t netmask; uint32_t gateway; /* FLAGS2 - * bit0: link mode - 0=master, 1=slave + * bit0: Link mode - 0=master, 1=slave * bit1: PHY mode - 0=IEEE, 1=legacy * bit2: auto master/slave + * bit4: SFP module ID0 + * bit5: SFP module ID1 + * bit6: SFP module ID2 + * bit7: SFP module ID3 */ uint8_t flags2; uint8_t rsvd; @@ -1373,6 +1382,217 @@ typedef struct ETHERNET10T1S_SETTINGS_t #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 + +/* + * START - MACsec Definitions + */ +/* MACsec Rule */ +/** + * @brief Structure of Vlan tag + * + */ +typedef struct MACSEC_VLANTAG_t +{ + uint16_t VID; /*!< 12 bits */ + uint8_t PRI_CFI; /*!< PRI - 3 bits, CFI - 1bit */ +} MACSEC_VLANTAG; +/** + * @brief Structure of MPLS + * + */ +typedef struct MACSEC_MPLS_OUTER_t +{ + uint32_t MPLS_label; /*!< 20 bits */ + uint8_t exp; /*!< 3 bits */ +} MACSEC_MPLS_OUTER; +/** + * @brief Define Encoded Packet Type from the parser + * + */ +typedef enum MACSEC_PACKET_TYPE_t +{ + 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 struct MACSecRule_t +{ + 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 key_vlantag_outer1; /*!< outermost/1st VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ + MACSEC_MPLS_OUTER key_MPLS_outer1; + MACSEC_VLANTAG mask_vlantag_outer1; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + MACSEC_MPLS_OUTER mask_MPLS_outer1; + MACSEC_VLANTAG key_vlantag_outer2; /*!< 2nd outermost VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ + MACSEC_MPLS_OUTER key_MPLS_outer2; + MACSEC_VLANTAG mask_vlantag_outer2; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ + MACSEC_MPLS_OUTER 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 */ + MACSEC_PACKET_TYPE 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; +} MACSecRule; +/* MACsec Map */ +#define MACSEC_SETTINGS_MAP_SIZE (20) +typedef struct MACSecMap_t +{ + 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; +} MACSecMap; +/* MACsec SecY */ +/** + * @brief Define the permit police for frames as defined in 802.1ae + * + */ +typedef enum MACSEC_VALIDATEFRAME_t +{ + 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_STRIP_SECTAG_ICV_t +{ + 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_SUITE_t +{ + 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 struct MACSecSecY_t +{ + 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 */ + MACSEC_VALIDATEFRAME validate_frames; /*!< see MACSEC_VALIDATEFRAME */ + MACSEC_STRIP_SECTAG_ICV strip_sectag_icv; /*!< see MACSEC_STRIP_SECTAG_ICV */ + MACSEC_CIPHER_SUITE cipher; /*!< Define the cipher suite to use for this SecY */ + 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; +} MACSecSecY; +/* MACsec SC */ +#define MACSEC_SETTINGS_SC_SIZE (24) +typedef struct MACSecSc_t +{ + 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; +} MACSecSc; +/* MACsec SA */ +#define MACSEC_SETTINGS_SA_SIZE (80) +typedef struct MACSecSa_t +{ + 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; +} MACSecSa; +/* MACsec Flags */ +#define MACSEC_SETTINGS_FLAGS_SIZE (4) +typedef struct MACSecFlags_t +{ + uint32_t en : 1; // '1' = enable; '0' = disable + uint32_t reserved : 31; +} MACSecFlags; +/* 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 flags; + MACSecRule rule[MACSEC_NUM_RULES_PER_CONFIG]; + MACSecMap map[MACSEC_NUM_MAPS_PER_CONFIG]; + MACSecSecY secy[MACSEC_NUM_SECY_PER_CONFIG]; + MACSecSc sc[MACSEC_NUM_SC_PER_CONFIG]; + MACSecSa sa[MACSEC_NUM_SA_PER_CONFIG]; +} MACSEC_CONFIG; +#define MACSEC_SETTINGS_SIZE (2 * sizeof(MACSEC_CONFIG)) +typedef struct MACSEC_SETTINGS_t +{ + MACSEC_CONFIG rx; + MACSEC_CONFIG tx; +} MACSEC_SETTINGS; +/* + * END - MACsec Definitions + */ typedef struct LOGGER_SETTINGS_t { @@ -1674,7 +1894,6 @@ typedef struct _GPTPStatus uint8_t is_syntonized; uint8_t reserved[8]; } GPTPStatus; - typedef struct _GenericBinaryStatus { uint32_t size; @@ -3727,9 +3946,9 @@ typedef struct _SOBD2LCSettings SWCAN_SETTINGS swcan1; LIN_SETTINGS lin1; /* 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; + uint16_t iso_parity; + uint16_t iso_msg_termination; union { uint64_t word; @@ -3761,8 +3980,9 @@ typedef struct _SOBD2LCSettings DISK_SETTINGS disk; ETHERNET_SETTINGS ethernet; ETHERNET_SETTINGS2 ethernet2; // supercedes ethernet settings + uint16_t iso_tester_pullup_enable; } OBD2LCSettings, SOBD2LCSettings; -#define OBD2LCSettings_SIZE 360 +#define OBD2LCSettings_SIZE 370 #define RADJUPITER_NUM_PORTS 8 @@ -4314,6 +4534,19 @@ enum 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; @@ -4332,19 +4565,6 @@ typedef struct sSPI_PORT_SETTING port_b; //1 } sSPI_PORT_SETTINGS; -typedef union -{ - uint64_t dword; - struct - { - unsigned can_id : 29; - unsigned can_id_isExtended : 1; - uint16_t tcp_port; - unsigned reserved : 18; - } config; -} sWILBridgeConfig; //8 - - // clang-format off #define WBMS_GATEWAY_NETWORK_NONE (0) #define WBMS_GATEWAY_NETWORK_DWCAN_01 (1) @@ -4359,7 +4579,7 @@ typedef struct uint8_t wbms2_network; uint8_t wbms2_canfd_enable; uint16_t reserved[6]; -} WBMSGatewaySettings; +} WBMSGatewaySettings; //16 typedef struct _SRADBMSSettings { @@ -4396,19 +4616,18 @@ typedef struct _SRADBMSSettings uint16_t pwr_man_enable; //2 uint16_t network_enabled_on_boot; //2 - //WIL wrapped CAN and ETHERNET - sWILBridgeConfig wil_config; //8 + 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; - 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; //16 - WBMSGatewaySettings gateway; - uint16_t network_enables_4; //2 uint64_t network_enables_5; //8 }SRADBMSSettings; @@ -4469,8 +4688,9 @@ typedef struct _SRADCometSettings ETHERNET_SETTINGS2 ethT1s2; ETHERNET10T1S_SETTINGS t1s2; uint64_t network_enables_5; + LIN_SETTINGS lin1; } SRADCometSettings; -#define SRADCometSettings_SIZE 456 +#define SRADCometSettings_SIZE 466 #define GS_VERSION 5 typedef struct _GLOBAL_SETTINGS @@ -4982,6 +5202,59 @@ typedef struct _icsSpyMessageMdio 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 @@ -5352,7 +5625,7 @@ typedef enum PhyErrorType #define NUM_DEVICE_FEATURE_BITFIELDS ((NUM_VALID_DEVICE_FEATURES + 31) / 32) -#ifndef INTREPID_NO_CHECK_STRUCT_SIZE +#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) @@ -5387,6 +5660,7 @@ CHECK_STRUCT_SIZE(ETHERNET_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET_SETTINGS2); CHECK_STRUCT_SIZE(ETHERNET10G_SETTINGS); CHECK_STRUCT_SIZE(ETHERNET10T1S_SETTINGS); +CHECK_STRUCT_SIZE(MACSEC_SETTINGS); CHECK_STRUCT_SIZE(LOGGER_SETTINGS); CHECK_STRUCT_SIZE(DISK_SETTINGS); CHECK_STRUCT_SIZE(SERDESCAM_SETTINGS); diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index f5ddb8024..050d1525e 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -169,6 +169,7 @@ int setup_module_auto_defines(PyObject * module) 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_RED); result += PyModule_AddIntMacro(module, NEODEVICE_ECU); result += PyModule_AddIntMacro(module, NEODEVICE_IEVB); @@ -357,6 +358,9 @@ int setup_module_auto_defines(PyObject * module) 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_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); @@ -417,18 +421,6 @@ int setup_module_auto_defines(PyObject * module) result += PyModule_AddIntMacro(module, FIRE2_REPORT_PWM_IN); result += PyModule_AddIntMacro(module, FIRE2_REPORT_GPS); result += PyModule_AddIntMacro(module, FIRE3_REPORT_ORIENTATION); - // enum - result += PyModule_AddIntMacro(module, eSupportedWILVersions_WIL_1_1_0); - result += PyModule_AddIntMacro(module, eSupportedWILVersions_WIL_2_0_0); - // end of enum - } eSupportedWILVersions; - - // enum - result += PyModule_AddIntMacro(module, SwitchwBMSVersion_Failed); - result += PyModule_AddIntMacro(module, SwitchwBMSVersion_OK); - result += PyModule_AddIntMacro(module, SwitchwBMSVersion_Reflashed); - result += PyModule_AddIntMacro(module, SwitchwBMSVersion_ParameterNotValid); - // end of enum - } SwitchwBMSVersionError; - result += PyModule_AddIntMacro(module, CANNODE_STATUS_COREMINI_IS_RUNNING); result += PyModule_AddIntMacro(module, CANNODE_STATUS_IN_BOOTLOADER); result += PyModule_AddIntMacro(module, MAIN_VNET); @@ -563,6 +555,18 @@ 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_SFP_ID_SHIFT); + result += PyModule_AddIntMacro(module, ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK); + // 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_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); @@ -579,6 +583,52 @@ int setup_module_auto_defines(PyObject * module) 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); + // 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); + // end of enum - } MACSEC_PACKET_TYPE; + + result += PyModule_AddIntMacro(module, MACSEC_SETTINGS_RULE_SIZE); + result += PyModule_AddIntMacro(module, 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); + // 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); + // 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); + // 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); From 60c19a049c56ce3185c6448f7f0b5eabccd65a75 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 1 Feb 2024 11:34:29 -0500 Subject: [PATCH 140/201] updated documentation and version Signed-off-by: David Rebbe --- doc/source/conf.py | 2 +- doc/source/index.rst | 228 ++++++++++++++++++++++++++++++++++++++++--- setup.py | 4 +- 3 files changed, 218 insertions(+), 16 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index e3fbb9ec2..5c6d2174d 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -56,7 +56,7 @@ # built documents. # # The short X.Y version. -version = "913.16" +version = "914.14" # The full version, including alpha/beta/rc tags. release = version diff --git a/doc/source/index.rst b/doc/source/index.rst index a0f16dea0..3b2c0fbc2 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -490,6 +490,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.ics_spy_messagew_bms.ics_spy_messagew_bms + :members: + :undoc-members: + .. autoclass:: ics.structures.ics_vcan4_device_status.ics_vcan4_device_status :members: :undoc-members: @@ -522,6 +526,62 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.mac_sec_flags.mac_sec_flags + :members: + :undoc-members: + + .. autoclass:: ics.structures.mac_sec_map.mac_sec_map + :members: + :undoc-members: + + .. autoclass:: ics.structures.mac_sec_rule.mac_sec_rule + :members: + :undoc-members: + + .. autoclass:: ics.structures.mac_sec_sa.mac_sec_sa + :members: + :undoc-members: + + .. autoclass:: ics.structures.mac_sec_sc.mac_sec_sc + :members: + :undoc-members: + + .. autoclass:: ics.structures.mac_sec_sec_y.mac_sec_sec_y + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_cipher_suite.macsec_cipher_suite + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_config.macsec_config + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_mpls_outer.macsec_mpls_outer + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_packet_type.macsec_packet_type + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_settings.macsec_settings + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_strip_sectag_icv.macsec_strip_sectag_icv + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_validateframe.macsec_validateframe + :members: + :undoc-members: + + .. autoclass:: ics.structures.macsec_vlantag.macsec_vlantag + :members: + :undoc-members: + .. autoclass:: ics.structures.op_eth_general_settings.op_eth_general_settings :members: :undoc-members: @@ -802,6 +862,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.sfp_id.sfp_id + :members: + :undoc-members: + .. autoclass:: ics.structures.sievb_settings.sievb_settings :members: :undoc-members: @@ -1080,7 +1144,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Jun 28 2023 16:13:59 + :annotation: = Feb 1 2024 11:29:42 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1154,6 +1218,12 @@ Module Variables .. py:data:: ETHERNET10G_SETTINGS_SIZE :annotation: = 24 + .. 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_ENABLE_PLCA :annotation: = 1 @@ -1205,6 +1275,12 @@ Module Variables .. py:data:: ETHERNET_SETTINGS2_FLAG2_PHY_MODE :annotation: = 2 + .. py:data:: ETHERNET_SETTINGS2_FLAG2_SFP_ID_MASK + :annotation: = 240 + + .. py:data:: ETHERNET_SETTINGS2_FLAG2_SFP_ID_SHIFT + :annotation: = 4 + .. py:data:: ETHERNET_SETTINGS2_FLAG_AUTO_NEG :annotation: = 2 @@ -1311,7 +1387,7 @@ Module Variables :annotation: = 1 .. py:data:: GLOBAL_SETTINGS_SIZE - :annotation: = 1478 + :annotation: = 1480 .. py:data:: GS_VERSION :annotation: = 5 @@ -1388,15 +1464,6 @@ Module Variables .. py:data:: J1708_SETTINGS_SIZE :annotation: = 2 - .. py:data:: JUPITER_PTP_ROLE_DISABLED - :annotation: = 0 - - .. py:data:: JUPITER_PTP_ROLE_MASTER - :annotation: = 1 - - .. py:data:: JUPITER_PTP_ROLE_SLAVE - :annotation: = 2 - .. py:data:: LINUX_BOOT_ALLOWED :annotation: = 1 @@ -1424,6 +1491,102 @@ Module Variables .. py:data:: LOOPBACK :annotation: = 2 + .. py:data:: MACSEC_CIPHER_GCM_AES_128 + :annotation: = 0 + + .. py:data:: MACSEC_CIPHER_GCM_AES_128_XPN + :annotation: = 2 + + .. py:data:: MACSEC_CIPHER_GCM_AES_256 + :annotation: = 1 + + .. py:data:: MACSEC_CIPHER_GCM_AES_256_XPN + :annotation: = 3 + + .. py:data:: MACSEC_NUM_FLAGS_PER_CONFIG + :annotation: = 1 + + .. py:data:: MACSEC_NUM_MAPS_PER_CONFIG + :annotation: = 2 + + .. py:data:: MACSEC_NUM_RULES_PER_CONFIG + :annotation: = 2 + + .. py:data:: MACSEC_NUM_SA_PER_CONFIG + :annotation: = 4 + + .. py:data:: MACSEC_NUM_SC_PER_CONFIG + :annotation: = 2 + + .. py:data:: MACSEC_NUM_SECY_PER_CONFIG + :annotation: = 2 + + .. py:data:: MACSEC_PACKET_DUAL_VLAN + :annotation: = 2 + + .. py:data:: MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS + :annotation: = 5 + + .. py:data:: MACSEC_PACKET_MPLS + :annotation: = 3 + + .. py:data:: MACSEC_PACKET_NO_VLAN_OR_MPLS + :annotation: = 0 + + .. py:data:: MACSEC_PACKET_SINGLE_VLAN + :annotation: = 1 + + .. py:data:: MACSEC_PACKET_SINGLE_VLAN_FOLLOW_BY_MPLS + :annotation: = 4 + + .. py:data:: MACSEC_PACKET_UNSUPPORTED_TYPE + :annotation: = 6 + + .. py:data:: MACSEC_SECTAG_ICV_BOTH_STRIP + :annotation: = 0 + + .. py:data:: MACSEC_SECTAG_ICV_NO_STRIP + :annotation: = 3 + + .. py:data:: MACSEC_SECTAG_ICV_RESERVED + :annotation: = 1 + + .. py:data:: MACSEC_SECTAG_ICV_STRIP_ICV_ONLY + :annotation: = 2 + + .. py:data:: MACSEC_SETTINGS_FLAGS_SIZE + :annotation: = 4 + + .. py:data:: MACSEC_SETTINGS_MAP_SIZE + :annotation: = 20 + + .. py:data:: MACSEC_SETTINGS_RULE_SIZE + :annotation: = 88 + + .. py:data:: MACSEC_SETTINGS_SA_SIZE + :annotation: = 80 + + .. py:data:: MACSEC_SETTINGS_SC_SIZE + :annotation: = 24 + + .. py:data:: MACSEC_SETTINGS_SECY_SIZE + :annotation: = 24 + + .. py:data:: MACSEC_SETTINGS_SIZE + :annotation: = 1400 + + .. py:data:: MACSEC_VF_CHECK + :annotation: = 1 + + .. py:data:: MACSEC_VF_DISABLED + :annotation: = 0 + + .. py:data:: MACSEC_VF_NA + :annotation: = 3 + + .. py:data:: MACSEC_VF_STRICT + :annotation: = 2 + .. py:data:: MAIN_VNET :annotation: = 1 @@ -1439,12 +1602,18 @@ Module Variables .. 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:: NEODEVICE_ANY_ION :annotation: = 262144 @@ -1529,6 +1698,9 @@ Module Variables .. py:data:: NEODEVICE_NEOECUCHIP :annotation: = 256 + .. py:data:: NEODEVICE_NEW_DEVICE_27 + :annotation: = 39 + .. py:data:: NEODEVICE_NEW_DEVICE_58 :annotation: = 31 @@ -1659,7 +1831,7 @@ Module Variables :annotation: = 0.065536 .. py:data:: NEOVI_3G_MAX_SETTINGS_SIZE - :annotation: = 1478 + :annotation: = 1480 .. py:data:: NEOVI_COMMTYPE_FIRE_USB :annotation: = 5 @@ -2678,6 +2850,27 @@ Module Variables .. py:data:: SERDESPOC_SETTINGS_SIZE :annotation: = 10 + .. py:data:: SFP_ID_FINISAR_FCLF8522P2BTL + :annotation: = 1 + + .. py:data:: SFP_ID_FS_GB_GE_T + :annotation: = 2 + + .. py:data:: SFP_ID_ICS_MV2112A2 + :annotation: = 3 + + .. py:data:: SFP_ID_ICS_MV2221MB1 + :annotation: = 4 + + .. py:data:: SFP_ID_ICS_MV3244 + :annotation: = 5 + + .. py:data:: SFP_ID_MAX + :annotation: = 6 + + .. py:data:: SFP_ID_UNKNOWN + :annotation: = 0 + .. py:data:: SLAVE_VNET_A :annotation: = 2 @@ -2852,6 +3045,15 @@ Module Variables .. py:data:: SPY_STATUS2_ETHERNET_PREEMPTION_ENABLED :annotation: = 33554432 + .. py:data:: SPY_STATUS2_ETHERNET_T1S_BURST + :annotation: = 1073741824 + + .. py:data:: SPY_STATUS2_ETHERNET_T1S_ETHERNET + :annotation: = -2147483648 + + .. py:data:: SPY_STATUS2_ETHERNET_T1S_SYMBOL + :annotation: = 536870912 + .. py:data:: SPY_STATUS2_ETHERNET_UPDATE_CHECKSUMS :annotation: = 67108864 @@ -3027,7 +3229,7 @@ Module Variables :annotation: = 2 .. py:data:: SPY_STATUS_A2B_CONTROL - :annotation: = 524288 + :annotation: = 268435456 .. py:data:: SPY_STATUS_A2B_MONITOR :annotation: = 536870912 diff --git a/setup.py b/setup.py index 046141186..29d218d9a 100644 --- a/setup.py +++ b/setup.py @@ -8,8 +8,8 @@ import unittest import shutil -MAJOR_VERSION = 913 -MINOR_VERSION = 16 +MAJOR_VERSION = 914 +MINOR_VERSION = 14 POST_VERSION = None if POST_VERSION: From 92666ef830547f9d2c6017895d6ee7ec02741dad Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 5 Feb 2024 12:39:45 -0500 Subject: [PATCH 141/201] debugging stuff Signed-off-by: David Rebbe --- .vscode/launch.json | 42 ++++++++++++++++++++++++++++++++++++++++++ src/icsdebug.py | 14 ++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/icsdebug.py diff --git a/.vscode/launch.json b/.vscode/launch.json index ddffc7023..7a1545e58 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -37,5 +37,47 @@ "console": "integratedTerminal", "args": ["include/ics/icsnVC40.h", ], }, + { + "name": "Python: Run icsdebug.py", + "type": "python", + "request": "launch", + "program": "src\\icsdebug.py", + "console": "integratedTerminal" + }, + { + "name": "Debugger Attach", + "type": "cppvsdbg", + //"type": "lldb", + "request": "attach", + //"program": "${workspaceFolder}\\.venv\\Scripts\\python.exe", /* My virtual env */ + "pid": "${command:pickProcess}", + //"MIMode": "gdb", + //"miDebuggerPath": "/usr/bin/gdb", + //"setupCommands": [ + // { + // "description": "Enable pretty-printing for gdb", + // "text": "-enable-pretty-printing", + // "ignoreFailures": true + // } + //] + } + { + "name": "Launch Debug icsdebug.py", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}\\.venv\\Scripts\\python.exe", /* My virtual env */ + "args": ["${workspaceFolder}\\src\\icsdebug.py"], + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + //"MIMode": "gdb", + //"miDebuggerPath": "/usr/bin/gdb", + //"setupCommands": [ + // { + // "description": "Enable pretty-printing for gdb", + // "text": "-enable-pretty-printing", + // "ignoreFailures": true + // } + //] + } ] } \ No newline at end of file diff --git a/src/icsdebug.py b/src/icsdebug.py new file mode 100644 index 000000000..4fce630c4 --- /dev/null +++ b/src/icsdebug.py @@ -0,0 +1,14 @@ +import os +print(os.getpid()) + +import ics +for i in range(100): + print(i) + devices = ics.find_devices() +print(f"Found {len(devices)} devices...") +for device in devices: + print(device) + ics.open_device(device) + ics.close_device(device) + +print("Done.") \ No newline at end of file From 0510925b7f7f21c978b7e1938304c449777a265c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 5 Feb 2024 14:34:10 -0500 Subject: [PATCH 142/201] added debug information for windows. --- .vscode/launch.json | 33 ++------------------------------- README.md | 20 ++++++++++++++++++++ src/icsdebug.py | 4 +--- 3 files changed, 23 insertions(+), 34 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 7a1545e58..4e4683a1b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -38,8 +38,8 @@ "args": ["include/ics/icsnVC40.h", ], }, { - "name": "Python: Run icsdebug.py", - "type": "python", + "name": "Python: Debug icsdebug.py", + "type": "debugpy", "request": "launch", "program": "src\\icsdebug.py", "console": "integratedTerminal" @@ -47,37 +47,8 @@ { "name": "Debugger Attach", "type": "cppvsdbg", - //"type": "lldb", "request": "attach", - //"program": "${workspaceFolder}\\.venv\\Scripts\\python.exe", /* My virtual env */ "pid": "${command:pickProcess}", - //"MIMode": "gdb", - //"miDebuggerPath": "/usr/bin/gdb", - //"setupCommands": [ - // { - // "description": "Enable pretty-printing for gdb", - // "text": "-enable-pretty-printing", - // "ignoreFailures": true - // } - //] - } - { - "name": "Launch Debug icsdebug.py", - "type": "cppvsdbg", - "request": "launch", - "program": "${workspaceFolder}\\.venv\\Scripts\\python.exe", /* My virtual env */ - "args": ["${workspaceFolder}\\src\\icsdebug.py"], - "cwd": "${workspaceFolder}", - "console": "integratedTerminal", - //"MIMode": "gdb", - //"miDebuggerPath": "/usr/bin/gdb", - //"setupCommands": [ - // { - // "description": "Enable pretty-printing for gdb", - // "text": "-enable-pretty-printing", - // "ignoreFailures": true - // } - //] } ] } \ No newline at end of file diff --git a/README.md b/README.md index d5cecb02b..f6971df1f 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,26 @@ http://python-ics.readthedocs.io/ - Building from source requires clang and clang-format to be present on the build machine. +# Debugging on Windows + +- Build and install python_ics for debug. When installing python choose the following: + - Customize Installation -> Advanced Options + - Check Download debugging symbols + - Check Download debug binaries +- Build python with debug: + - `python -m menv .env` + - `.\.venv\Scripts\Activate.ps1` + - `python -m pip install -r requirements.txt` + - `python setup.py build -g` + - `python setup.py install --force` +- Place a breakpoint in `src/icsdebug.py` +- launch "Python: Debug icsdebug.py" + - Note the PID that is outputted to terminal (Can also add `os.getpid()` to watch window) +- Place a breakpoint inside the function you'd like to debug in `methods.cpp` +- launch "Debugger Attach" (`launch.json`) and enter the pid when prompted. + +*NOTE: As of 2/5/24, it looks like MSVC 2022 does not build correctly with setuptools. + # License - MIT Copyright (c) Intrepid Control Systems, Inc. diff --git a/src/icsdebug.py b/src/icsdebug.py index 4fce630c4..8d808e65a 100644 --- a/src/icsdebug.py +++ b/src/icsdebug.py @@ -2,9 +2,7 @@ print(os.getpid()) import ics -for i in range(100): - print(i) - devices = ics.find_devices() +devices = ics.find_devices() print(f"Found {len(devices)} devices...") for device in devices: print(device) From c766d9740a0d8cdbe6594867664f9823cf40016b Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 6 Feb 2024 10:06:28 -0500 Subject: [PATCH 143/201] updated readme --- README.md | 58 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index f6971df1f..3ac74cfc5 100644 --- a/README.md +++ b/README.md @@ -34,26 +34,58 @@ http://python-ics.readthedocs.io/ # Building from source - Building from source requires clang and clang-format to be present on the build machine. +- python_ics has submodules, please be sure to initial all submodules also. +```powershell +PS > git clone git@github.com:intrepidcs/python_ics.git -# Debugging on Windows +PS > cd python_ics + +PS > git submodule update --init + +PS > clang --version +clang version 11.1.0 +Target: x86_64-pc-windows-msvc +Thread model: posix +InstalledDir: C:\Program Files\LLVM\bin + +PS > clang-format --version +clang-format version 11.1.0 + +PS > python -m pip install . +``` + +# Debugging on Windows with Visual Studio Code - Build and install python_ics for debug. When installing python choose the following: - Customize Installation -> Advanced Options - Check Download debugging symbols - Check Download debug binaries - Build python with debug: - - `python -m menv .env` - - `.\.venv\Scripts\Activate.ps1` - - `python -m pip install -r requirements.txt` - - `python setup.py build -g` - - `python setup.py install --force` -- Place a breakpoint in `src/icsdebug.py` -- launch "Python: Debug icsdebug.py" - - Note the PID that is outputted to terminal (Can also add `os.getpid()` to watch window) -- Place a breakpoint inside the function you'd like to debug in `methods.cpp` -- launch "Debugger Attach" (`launch.json`) and enter the pid when prompted. - -*NOTE: As of 2/5/24, it looks like MSVC 2022 does not build correctly with setuptools. + - Install Visual Studio 2019 build tools(NOTE: As of 2/5/24, it looks like MSVC 2022 does not build correctly with setuptools and debug configurations). You should be able to build from source already. + - Create virtual environment and activate it (powershell): + - `python -m venv .venv` + - `.\.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` + - Inside visual studio code: + - Open the root python_ics directory + - `code C:\Path\To\python_ics` + - Make sure the python extension is installed (ctrl+shift+x) + - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python]) + - [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy) + - Select the python interpreter from our virtual environment. + - Open and place a breakpoint in `src/icsdebug.py` + - launch "Python: Debug icsdebug.py" + - Note the PID that is outputted to terminal (Can also add `os.getpid()` to watch window) + - Place a breakpoint inside the function you'd like to debug in `methods.cpp` + - launch "Debugger Attach" (`launch.json`) and enter the pid when prompted. + - enjoy! + +* # License - MIT From 1b36297579016ad38244c3d1e9e0eae5f91bddc9 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 6 Feb 2024 10:08:09 -0500 Subject: [PATCH 144/201] formatting --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 3ac74cfc5..5174165cb 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ PS > python -m pip install . - Make sure the python extension is installed (ctrl+shift+x) - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python]) - [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy) - - Select the python interpreter from our virtual environment. + - Select the python interpreter from our virtual environment (bottom right with a python file open in the editor). - Open and place a breakpoint in `src/icsdebug.py` - launch "Python: Debug icsdebug.py" - Note the PID that is outputted to terminal (Can also add `os.getpid()` to watch window) @@ -85,8 +85,6 @@ PS > python -m pip install . - launch "Debugger Attach" (`launch.json`) and enter the pid when prompted. - enjoy! -* - # License - MIT Copyright (c) Intrepid Control Systems, Inc. From b6761b3eea91f7a82613727d430b5efdf2cdff4c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 6 Feb 2024 10:31:23 -0500 Subject: [PATCH 145/201] fixed typo in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5174165cb..2cfba0a16 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ PS > python -m pip install . - Open the root python_ics directory - `code C:\Path\To\python_ics` - Make sure the python extension is installed (ctrl+shift+x) - - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python]) + - [Python](https://marketplace.visualstudio.com/items?itemName=ms-python.python) - [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy) - Select the python interpreter from our virtual environment (bottom right with a python file open in the editor). - Open and place a breakpoint in `src/icsdebug.py` From 91e6943d5a26ba2e85f9059f649009e4506d1abd Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 6 Feb 2024 11:27:19 -0500 Subject: [PATCH 146/201] added vscode configuration for c++ --- .vscode/c_cpp_properties.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .vscode/c_cpp_properties.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 000000000..2e8a29b09 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,25 @@ +{ + "configurations": [ + { + "name": "Win32", + "includePath": [ + "${default}", + "${workspaceFolder}/include", + "${workspaceFolder}/include/ics", + "${workspaceFolder}/src/ice/include" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE", + "EXTERNAL_PROJECT" + ], + "windowsSdkVersion": "10.0.19041.0", + "compilerPath": "cl.exe", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "windows-msvc-x64" + } + ], + "version": 4 +} \ No newline at end of file From 0522529f64638106687e363993353684537557ab Mon Sep 17 00:00:00 2001 From: kschwarz-intrepidcs <69472447+kschwarz-intrepidcs@users.noreply.github.com> Date: Thu, 15 Feb 2024 07:23:33 -0500 Subject: [PATCH 147/201] update libicsneo & refactor build_libicsneo.py (#171) --- .gitignore | 3 +- .readthedocs.yaml | 5 +- build_libicsneo.py | 150 ++++++++++++++++++++++++++--------------- build_mac.sh | 6 +- doc/source/header.rst | 4 +- pyproject.toml | 4 +- travis/build-wheels.sh | 2 +- 7 files changed, 108 insertions(+), 66 deletions(-) diff --git a/.gitignore b/.gitignore index b637a0147..45d93fe76 100644 --- a/.gitignore +++ b/.gitignore @@ -102,4 +102,5 @@ msvc/ipch* # in-tree builds /libusb -/libicsneo \ No newline at end of file +/libicsneo +/libpcap \ No newline at end of file diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 1ab2c6318..4f9e1b244 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,11 +8,12 @@ version: 2 build: os: ubuntu-22.04 apt_packages: + - curl + - flex + - bison - clang - clang-format - build-essential - - libpcap0.8-dev - - libusb-1.0-0-dev - cmake tools: python: "3.11" diff --git a/build_libicsneo.py b/build_libicsneo.py index 4d7e08518..83c24c075 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -3,103 +3,143 @@ import os import shutil import sys +from pathlib import Path -LIBICSNEO_COMMIT = "9ef93eb73e1ada72ccc7a571744b9db1a564f18b" -LIBUSB_COMMIT = "4239bc3a50014b8e6a5a2a59df1fff3b7469543b" +ROOT = Path.cwd() CPUS = str(multiprocessing.cpu_count()) +LIBUSB_VERSION = "1.0.27" +LIBUSB_ROOT = f"{ROOT}/libusb/{LIBUSB_VERSION}" +LIBUSB_SOURCE = f"{LIBUSB_ROOT}/source" +LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" +LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" -def checkout(): - if not os.path.isdir("libicsneo"): - subprocess.check_output(["git", "clone", "https://github.com/intrepidcs/libicsneo.git"]) - subprocess.check_output(["git", "checkout", LIBICSNEO_COMMIT], cwd="libicsneo") +LIBICSNEO_VERSION = "e37d939" +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" - if not os.path.isdir("libusb") and sys.platform == "darwin": - subprocess.check_output(["git", "clone", "https://github.com/libusb/libusb.git"]) - subprocess.check_output(["git", "checkout", LIBUSB_COMMIT], cwd="libusb") +LIBPCAP_VERSION = "1.10.4" +LIBPCAP_ROOT = f"{ROOT}/libpcap/{LIBPCAP_VERSION}" +LIBPCAP_SOURCE = f"{LIBPCAP_ROOT}/source" +LIBPCAP_BUILD = f"{LIBPCAP_ROOT}/build" +LIBPCAP_INSTALL = f"{LIBPCAP_ROOT}/install" +def checkout(): + if not os.path.isdir(LIBICSNEO_SOURCE): + os.makedirs(LIBICSNEO_ROOT, exist_ok=True) + subprocess.check_output(["git", "clone", "https://github.com/intrepidcs/libicsneo.git", LIBICSNEO_SOURCE], cwd=LIBICSNEO_ROOT) + subprocess.check_output(["git", "checkout", LIBICSNEO_VERSION], cwd=LIBICSNEO_SOURCE) + + if not os.path.isdir(LIBUSB_SOURCE): + os.makedirs(LIBUSB_ROOT, exist_ok=True) + subprocess.check_output(["curl", "-LO", f"https://github.com/libusb/libusb/releases/download/v{LIBUSB_VERSION}/libusb-{LIBUSB_VERSION}.tar.bz2"], cwd=LIBUSB_ROOT) + subprocess.check_output(["tar", "-xf", f"libusb-{LIBUSB_VERSION}.tar.bz2"], cwd=LIBUSB_ROOT) + subprocess.check_output(["mv", f"libusb-{LIBUSB_VERSION}", "source"], cwd=LIBUSB_ROOT) + subprocess.check_output(["rm", f"libusb-{LIBUSB_VERSION}.tar.bz2"], cwd=LIBUSB_ROOT) + + if not os.path.isdir(LIBPCAP_SOURCE): + os.makedirs(LIBPCAP_ROOT, exist_ok=True) + subprocess.check_output(["curl", "-LO", f"https://www.tcpdump.org/release/libpcap-{LIBPCAP_VERSION}.tar.gz"], cwd=LIBPCAP_ROOT) + subprocess.check_output(["tar", "-xf", f"libpcap-{LIBPCAP_VERSION}.tar.gz"], cwd=LIBPCAP_ROOT) + subprocess.check_output(["mv", f"libpcap-{LIBPCAP_VERSION}", "source"], cwd=LIBPCAP_ROOT) + subprocess.check_output(["rm", f"libpcap-{LIBPCAP_VERSION}.tar.gz"], cwd=LIBPCAP_ROOT) def _build_libusb(): - subprocess.check_output(["git", "clean", "-xdf"], cwd="libusb") - - subprocess.check_output(["./bootstrap.sh"], cwd="libusb") - + os.makedirs(LIBUSB_BUILD, exist_ok=True) env = os.environ.copy() - env["CFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" - env["CXXFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" - subprocess.check_output(["./configure", "--disable-static", "--prefix=/tmp/libusb"], cwd="libusb", env=env) - - subprocess.check_output(["make", "-j" + CPUS], cwd="libusb") - subprocess.check_output(["make", "install"], cwd="libusb") - - -def _build_icsneo_linux(): + if sys.platform == "darwin": + env["CFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" + env["CXXFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" + else: + env["CFLAGS"] = "-fPIC" + env["CXXFLAGS"] = "-fPIC" + subprocess.check_output([ + f"{LIBUSB_SOURCE}/configure", + "--disable-shared", + "--enable-static", + f"--prefix={LIBUSB_INSTALL}", + "--disable-udev" + ], cwd=LIBUSB_BUILD, env=env) + + subprocess.check_output(["make", "-j" + CPUS], cwd=LIBUSB_BUILD) + subprocess.check_output(["make", "install"], cwd=LIBUSB_BUILD) + +def _build_libpcap(): + os.makedirs(LIBPCAP_BUILD, exist_ok=True) + env = os.environ.copy() + if sys.platform == "darwin": + env["CFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" + env["CXXFLAGS"] = "-arch x86_64 -arch arm64 -mmacosx-version-min=10.13" + else: + env["CFLAGS"] = "-fPIC" + env["CXXFLAGS"] = "-fPIC" + subprocess.check_output([ + f"{LIBPCAP_SOURCE}/configure", + "--disable-shared", + f"--prefix={LIBPCAP_INSTALL}", + ], cwd=LIBPCAP_BUILD, env=env) + + subprocess.check_output(["make", "-j" + CPUS], cwd=LIBPCAP_BUILD) + subprocess.check_output(["make", "install"], cwd=LIBPCAP_BUILD) + +def _build_libicsneo_linux(): subprocess.check_output(["git", "clean", "-xdf"], cwd="libicsneo") subprocess.check_output(["mkdir", "-p", "libicsneo/build"]) subprocess.check_output( - ["cmake", "..", "-DCMAKE_BUILD_TYPE=Release", "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON"], cwd="libicsneo/build" + [ + "cmake", + "-DCMAKE_BUILD_TYPE=Release", + "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON", + f"-DCMAKE_PREFIX_PATH={LIBUSB_INSTALL};{LIBPCAP_INSTALL}", + "-S", LIBICSNEO_SOURCE, + "-B", LIBICSNEO_BUILD + ] ) subprocess.check_output( - ["cmake", "--build", ".", "--target", "icsneolegacy", "--parallel", CPUS], cwd="libicsneo/build" + ["cmake", "--build", LIBICSNEO_BUILD, "--target", "icsneolegacy", "--parallel", CPUS] ) - -def _build_icsneo_macos(): - subprocess.check_output(["git", "clean", "-xdf"], cwd="libicsneo") - subprocess.check_output(["mkdir", "-p", "libicsneo/build"]) - +def _build_libicsneo_macos(): subprocess.check_output( [ "cmake", - "..", "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64", "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON", "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13", - "-DLIBUSB_LIBRARIES=/tmp/libusb/lib/libusb-1.0.0.dylib", - "-DLIBUSB_INCLUDE_DIR=/tmp/libusb/include/libusb-1.0", - ], - cwd="libicsneo/build", + f"-DCMAKE_PREFIX_PATH={LIBUSB_INSTALL};{LIBPCAP_INSTALL}", + "-S", LIBICSNEO_SOURCE, + "-B", LIBICSNEO_BUILD + ] ) subprocess.check_output( - ["cmake", "--build", ".", "--target", "icsneolegacy", "--parallel", CPUS], cwd="libicsneo/build" - ) - subprocess.check_output( - [ - "install_name_tool", - "-change", - "/tmp/libusb/lib/libusb-1.0.0.dylib", - "@loader_path/libusb-1.0.0.dylib", - "libicsneolegacy.dylib", - ], - cwd="libicsneo/build", + ["cmake", "--build", LIBICSNEO_BUILD, "--target", "icsneolegacy", "--parallel", CPUS] ) - def build(): print("Building libicsneo...") + _build_libusb() + _build_libpcap() if sys.platform == "darwin": - _build_libusb() - _build_icsneo_macos() + _build_libicsneo_macos() elif sys.platform == "linux": - _build_icsneo_linux() - + _build_libicsneo_linux() def copy(): if sys.platform == "darwin": - shutil.copyfile("/tmp/libusb/lib/libusb-1.0.0.dylib", "ics/libusb-1.0.0.dylib") - shutil.copyfile("libicsneo/build/libicsneolegacy.dylib", "ics/libicsneolegacy.dylib") + shutil.copyfile(f"{LIBICSNEO_BUILD}/libicsneolegacy.dylib", "ics/libicsneolegacy.dylib") elif sys.platform == "linux": - shutil.copyfile("libicsneo/build/libicsneolegacy.so", "ics/libicsneolegacy.so") + shutil.copyfile(f"{LIBICSNEO_BUILD}/libicsneolegacy.so", "ics/libicsneolegacy.so") def clean(): shutil.rmtree("libicsneo") shutil.rmtree("libusb") - shutil.rmtree("/tmp/libusb") - + shutil.rmtree("libpcap") if __name__ == "__main__": if "--clean" in sys.argv: diff --git a/build_mac.sh b/build_mac.sh index 0c7b9514c..06d0ba033 100644 --- a/build_mac.sh +++ b/build_mac.sh @@ -3,11 +3,11 @@ python_directory="/Library/Frameworks/Python.framework/Versions" python_versions=("3.7" "3.8" "3.9" "3.10" "3.11") -# libusb dependencies -brew install automake libtool cmake clang-format +# dependencies +brew install cmake clang-format ret_value=$? if [ $ret_value -ne 0 ]; then - echo "Failed to install automake/libtoolgit..." + echo "Failed to install clang/clang-format..." exit $ret_value fi diff --git a/doc/source/header.rst b/doc/source/header.rst index ee9f201f5..4443bf2ce 100644 --- a/doc/source/header.rst +++ b/doc/source/header.rst @@ -173,12 +173,12 @@ python_ics does not provide binaries for linux distributions so we will have to Fedora Dependencies (FC28) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``sudo dnf install redhat-rpm-config gcc g++ python3-devel clang clang-tools-extra`` +``sudo dnf install redhat-rpm-config gcc g++ python3-devel clang clang-tools-extra flex bison`` Debian/Ubuntu Dependencies ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -``sudo apt install build-essential python-dev clang-format`` +``sudo apt install build-essential python-dev clang-format flex bison`` libicsneo library ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/pyproject.toml b/pyproject.toml index ecbffedae..e899ff5da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,11 +6,11 @@ before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" [tool.cibuildwheel.linux] -before-build = "dnf install -y libpcap-devel cmake libusbx-devel clang clang-tools-extra" +before-build = "dnf install -y cmake clang clang-tools-extra flex bison" [tool.cibuildwheel.macos] archs = ["universal2"] -before-build = "brew install automake libtool cmake clang-format" +before-build = "brew install cmake clang-format" [tool.cibuildwheel.windows] before-build = "choco install llvm" diff --git a/travis/build-wheels.sh b/travis/build-wheels.sh index 1328210cf..b1a59fe61 100644 --- a/travis/build-wheels.sh +++ b/travis/build-wheels.sh @@ -12,7 +12,7 @@ function repair_wheel { # Install a system package required by our library -dnf install -y clang clang-tools-extra +dnf install -y clang clang-tools-extra flex bison # Compile wheels for PYBIN in /opt/python/*/bin; do From 3111e6fdb07c41285477d7508087e3bcdcce1c4e Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 15 Feb 2024 07:28:05 -0500 Subject: [PATCH 148/201] 914.14.post1 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 29d218d9a..ae4b56c77 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ MAJOR_VERSION = 914 MINOR_VERSION = 14 -POST_VERSION = None +POST_VERSION = 1 if POST_VERSION: VERSION_STRING = "%d.%d-%d" % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) From d77258849893d53449ba825b080d4a61a541abab Mon Sep 17 00:00:00 2001 From: kschwarz-intrepidcs <69472447+kschwarz-intrepidcs@users.noreply.github.com> Date: Fri, 16 Feb 2024 09:09:32 -0500 Subject: [PATCH 149/201] fix libpcap build to omit external libs (#172) --- build_libicsneo.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build_libicsneo.py b/build_libicsneo.py index 83c24c075..1a8080fb6 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -78,6 +78,17 @@ def _build_libpcap(): subprocess.check_output([ f"{LIBPCAP_SOURCE}/configure", "--disable-shared", + "--disable-usb", + "--disable-netmap", + "--disable-bluetooth", + "--disable-dbus", + "--disable-rdma", + "--without-dag", + "--without-septel", + "--without-snf", + "--without-turbocap", + "--without-dpdk", + "--without-libnl", f"--prefix={LIBPCAP_INSTALL}", ], cwd=LIBPCAP_BUILD, env=env) From 14c26c5f7b302938b9c4f40209ae4101227b8f05 Mon Sep 17 00:00:00 2001 From: FairosAws <118416535+FairosAws@users.noreply.github.com> Date: Wed, 21 Feb 2024 11:04:54 -0500 Subject: [PATCH 150/201] Adding new accessory api support (#167) * update ics/icsnVC40.h --- doc/source/index.rst | 12 +- include/ics/icsnVC40.h | 370 ++++++++++++++++++++++++++--------------- include/methods.h | 40 ++--- src/methods.cpp | 185 +++++++++++---------- 4 files changed, 362 insertions(+), 245 deletions(-) diff --git a/doc/source/index.rst b/doc/source/index.rst index 3b2c0fbc2..5ad44b1f5 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -41,7 +41,7 @@ Module Functions ics.enable_network_com ics.find_devices ics.firmware_update_required - ics.flash_phy_firmware + ics.flash_accessory_firmware ics.force_firmware_update ics.generic_api_get_status ics.generic_api_read_data @@ -65,7 +65,7 @@ Module Functions ics.get_messages ics.get_pcb_serial_number ics.get_performance_parameters - ics.get_phy_firmware_version + ics.get_accessory_firmware_version ics.get_rtc ics.get_script_status ics.get_serial_number @@ -109,7 +109,7 @@ Module Functions ics.EnableNetworkCom ics.FindNeoDevices ics.FirmwareUpdateRequired - ics.FlashPhyFirmware + ics.FlashAccessoryFirmware ics.ForceFirmwareUpdate ics.GenericAPIGetStatus ics.GenericAPIReadData @@ -130,7 +130,7 @@ Module Functions ics.GetMessages ics.GetPCBSerialNumber ics.GetPerformanceParameters - ics.GetPhyFwVersion + ics.GetAccessoryFwVersion ics.GetRTC ics.GetSerialNumber ics.GetTimeStampForMsg @@ -188,7 +188,7 @@ Module Functions ics.icsneoEnableNetworkCom ics.icsneoFindNeoDevices ics.icsneoFirmwareUpdateRequired - ics.icsneoFlashPhyFirmware + ics.icsneoFlashAccessoryFirmware ics.icsneoForceFirmwareUpdate ics.icsneoGenericAPIGetStatus ics.icsneoGenericAPIReadData @@ -209,7 +209,7 @@ Module Functions ics.icsneoGetMessages ics.icsneoGetPCBSerialNumber ics.icsneoGetPerformanceParameters - ics.icsneoGetPhyFwVersion + ics.icsneoGetAccessoryFwVersion ics.icsneoGetRTC ics.icsneoGetSerialNumber ics.icsneoGetTimeStampForMsg diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index d45b2a8e8..2a5b48b84 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -175,6 +175,12 @@ 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 + /* Upper boundry of Network IDs */ #define NETID_MAX 100 #define NETID_INVALID 0xffff @@ -516,6 +522,12 @@ typedef unsigned __int64 uint64_t; #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) @@ -1393,25 +1405,26 @@ typedef struct ETHERNET10T1S_SETTINGS_t * @brief Structure of Vlan tag * */ -typedef struct MACSEC_VLANTAG_t +#pragma pack(push, 1) +typedef struct { uint16_t VID; /*!< 12 bits */ uint8_t PRI_CFI; /*!< PRI - 3 bits, CFI - 1bit */ -} MACSEC_VLANTAG; +} MACSEC_VLANTAG_t; /** * @brief Structure of MPLS * */ -typedef struct MACSEC_MPLS_OUTER_t +typedef struct { uint32_t MPLS_label; /*!< 20 bits */ uint8_t exp; /*!< 3 bits */ -} MACSEC_MPLS_OUTER; +} MACSEC_MPLS_OUTER_t; /** * @brief Define Encoded Packet Type from the parser * */ -typedef enum MACSEC_PACKET_TYPE_t +typedef enum { MACSEC_PACKET_NO_VLAN_OR_MPLS = 0, MACSEC_PACKET_SINGLE_VLAN = 1, @@ -1422,64 +1435,72 @@ typedef enum MACSEC_PACKET_TYPE_t MACSEC_PACKET_UNSUPPORTED_TYPE = 6 } MACSEC_PACKET_TYPE; #define MACSEC_SETTINGS_RULE_SIZE (88) -typedef struct MACSecRule_t +typedef union _MACSecRule { - 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 key_vlantag_outer1; /*!< outermost/1st VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ - MACSEC_MPLS_OUTER key_MPLS_outer1; - MACSEC_VLANTAG mask_vlantag_outer1; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - MACSEC_MPLS_OUTER mask_MPLS_outer1; - MACSEC_VLANTAG key_vlantag_outer2; /*!< 2nd outermost VLAN ID {8'd0, VLAN_ID[11:0]}, or 20-bit MPLS label. */ - MACSEC_MPLS_OUTER key_MPLS_outer2; - MACSEC_VLANTAG mask_vlantag_outer2; /*!< Set bits to 1 to mask/exclude corresponding flowid_tcam_data bit from compare */ - MACSEC_MPLS_OUTER 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 */ - MACSEC_PACKET_TYPE 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; -} 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 struct MACSecMap_t +typedef union _MACSecMap { - 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; -} 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_VALIDATEFRAME_t +typedef enum { MACSEC_VF_DISABLED = 0, /*!< Disable validation */ MACSEC_VF_CHECK = 1, /*!< Enable validation, do not discard invalid frames*/ @@ -1490,7 +1511,7 @@ typedef enum MACSEC_VALIDATEFRAME_t * @brief Define SecTag and ICV configuration. * */ -typedef enum MACSEC_STRIP_SECTAG_ICV_t +typedef enum { MACSEC_SECTAG_ICV_BOTH_STRIP = 0, /*!< Strip both SecTag and ICV from packet */ MACSEC_SECTAG_ICV_RESERVED = 1, @@ -1501,7 +1522,7 @@ typedef enum MACSEC_STRIP_SECTAG_ICV_t * @brief Define the cipher suite to use for this SecY * */ -typedef enum MACSEC_CIPHER_SUITE_t +typedef enum { MACSEC_CIPHER_GCM_AES_128 = 0, MACSEC_CIPHER_GCM_AES_256 = 1, @@ -1509,65 +1530,81 @@ typedef enum MACSEC_CIPHER_SUITE_t MACSEC_CIPHER_GCM_AES_256_XPN = 3 } MACSEC_CIPHER_SUITE; #define MACSEC_SETTINGS_SECY_SIZE (24) -typedef struct MACSecSecY_t -{ - 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 */ - MACSEC_VALIDATEFRAME validate_frames; /*!< see MACSEC_VALIDATEFRAME */ - MACSEC_STRIP_SECTAG_ICV strip_sectag_icv; /*!< see MACSEC_STRIP_SECTAG_ICV */ - MACSEC_CIPHER_SUITE cipher; /*!< Define the cipher suite to use for this SecY */ - 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; -} MACSecSecY; +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 struct MACSecSc_t -{ - 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; -} MACSecSc; +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 struct MACSecSa_t +typedef union _MACSecSa { - 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; -} 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 struct MACSecFlags_t +typedef union _MACSecFlags { - uint32_t en : 1; // '1' = enable; '0' = disable - uint32_t reserved : 31; -} 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) @@ -1577,19 +1614,35 @@ typedef struct MACSecFlags_t #define MACSEC_NUM_SA_PER_CONFIG (4) typedef struct MACSEC_CONFIG_t { - MACSecFlags flags; - MACSecRule rule[MACSEC_NUM_RULES_PER_CONFIG]; - MACSecMap map[MACSEC_NUM_MAPS_PER_CONFIG]; - MACSecSecY secy[MACSEC_NUM_SECY_PER_CONFIG]; - MACSecSc sc[MACSEC_NUM_SC_PER_CONFIG]; - MACSecSa sa[MACSEC_NUM_SA_PER_CONFIG]; + 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; -#define MACSEC_SETTINGS_SIZE (2 * sizeof(MACSEC_CONFIG)) -typedef struct MACSEC_SETTINGS_t +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 { - MACSEC_CONFIG rx; - MACSEC_CONFIG tx; + struct + { + MACSecGlobalFlags_t flags; + MACSEC_CONFIG rx; + MACSEC_CONFIG tx; + }; + uint8_t byte[MACSEC_SETTINGS_SIZE]; } MACSEC_SETTINGS; +#pragma pack(pop) /* * END - MACsec Definitions */ @@ -4425,8 +4478,18 @@ 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]; @@ -5468,7 +5531,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus[RADEPSILON_NUM_PORTS]; + ethernetNetworkStatus_t ethernetStatus[PROXIMA_NUM_PORTS]; } icsRadEpsilonDeviceStatus; typedef struct @@ -5603,21 +5666,60 @@ 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; + +#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; // Update this assert when we add features to this enum //static_assert(NUM_VALID_DEVICE_FEATURES == (networkTerminationDWCAN08 + 1)); @@ -5720,6 +5822,8 @@ CHECK_STRUCT_SIZE(SRADMoon3Settings); CHECK_STRUCT_SIZE(SFire3FlexraySettings); CHECK_STRUCT_SIZE(CANHubSettings); CHECK_STRUCT_SIZE(SRADCometSettings); +CHECK_STRUCT_SIZE(FlashAccessoryFirmwareParams); + #endif /* INTREPID_NO_CHECK_STRUCT_SIZE */ #endif /* _ICSNVC40_H */ diff --git a/include/methods.h b/include/methods.h index 3dee305f1..2b5a1e103 100644 --- a/include/methods.h +++ b/include/methods.h @@ -99,8 +99,8 @@ extern "C" PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args); PyObject* meth_get_gptp_status(PyObject* self, PyObject* args); // icsneoGetGPTPStatus PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args); // icsneoGetAllChipVersions - PyObject* meth_flash_phy_firmware(PyObject* self, PyObject* args); - PyObject* meth_get_phy_firmware_version(PyObject* self, PyObject* args); + PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args); + PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args); #ifdef _cplusplus } @@ -1872,10 +1872,10 @@ extern "C" "(:class:`ics.structures.st_chip_versions.st_chip_versions`)\n\n" \ "\n" -#define _DOC_FLASH_PHY_FIRMWARE \ - MODULE_NAME ".flash_phy_firmware(device, data, phy_index[, check_success])\n" \ +#define _DOC_FLASH_ACCESSORY_FIRMWARE \ + MODULE_NAME ".flash_accessory_firmware(device, data, index[, check_success])\n" \ "\n" \ - "Flashes PHY 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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ @@ -1883,7 +1883,7 @@ extern "C" "\n" \ "\tdata (:class:`bytes`): :class:`bytes`: data of the firmware binary.\n\n" \ "\n" \ - "\tphy_index (:class:`int`): :class:`int`: phy 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" \ @@ -1894,16 +1894,16 @@ extern "C" "\tNone\n" \ "\n" -#define _DOC_GET_PHY_FIRMWARE_VERSION \ - MODULE_NAME ".get_phy_firmware_version(device, phy_index[, check_success])\n" \ +#define _DOC_GET_ACCESSORY_FIRMWARE_VERSION \ + MODULE_NAME ".get_Accessory_firmware_version(device, index[, check_success])\n" \ "\n" \ - "Gets PHY 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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ "\n" \ - "\tphy_index (:class:`int`): :class:`int`: phy 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" \ @@ -2411,18 +2411,18 @@ static PyMethodDef IcsMethods[] = { METH_VARARGS, _DOC_GET_ALL_CHIP_VERSIONS), - _EZ_ICS_STRUCT_METHOD("flash_phy_firmware", - "icsneoFlashPhyFirmware", - "FlashPhyFirmware", - meth_flash_phy_firmware, + _EZ_ICS_STRUCT_METHOD("flash_accessory_firmware", + "icsneoFlashAccessoryFirmware", + "FlashAccessoryFirmware", + meth_flash_accessory_firmware, METH_VARARGS, - _DOC_FLASH_PHY_FIRMWARE), - _EZ_ICS_STRUCT_METHOD("get_phy_firmware_version", - "icsneoGetPhyFwVersion", - "GetPhyFwVersion", - meth_get_phy_firmware_version, + _DOC_FLASH_ACCESSORY_FIRMWARE), + _EZ_ICS_STRUCT_METHOD("get_accessory_firmware_version", + "icsneoGetAccessoryFwVersion", + "GetAccessoryFwVersion", + meth_get_accessory_firmware_version, METH_VARARGS, - _DOC_GET_PHY_FIRMWARE_VERSION), + _DOC_GET_ACCESSORY_FIRMWARE_VERSION), { "override_library_name", (PyCFunction)meth_override_library_name, METH_VARARGS, _DOC_OVERRIDE_LIBRARY_NAME }, { "get_library_path", (PyCFunction)meth_get_library_path, METH_NOARGS, "" }, diff --git a/src/methods.cpp b/src/methods.cpp index c8a08cb9a..f51c0a127 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -3272,94 +3272,99 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), "This is a bug!"); } -PyObject* meth_flash_phy_firmware(PyObject* self, PyObject* args) +PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) { PyObject* obj = NULL; - char phy_indx = 0; - PyObject* bytes_obj = NULL; + PyObject* parms = NULL; bool check_success = true; - if (!PyArg_ParseTuple(args, arg_parse("OiO|b:", __FUNCTION__), &obj, &phy_indx, &bytes_obj, &check_success)) { + 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; + }*/ - if (!PyBytes_CheckExact(bytes_obj)) { - return set_ics_exception(exception_runtime_error(), "Argument must be of Bytes type "); - } if (!PyNeoDevice_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); } ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); - // Convert the object to a bytes object - PyObject* bytes = PyBytes_FromObject(bytes_obj); - // Grab the byte size - Py_ssize_t bsize = PyBytes_Size(bytes); - // Grab the data out of the bytes - unsigned char* bytes_str = (unsigned char*)PyBytes_AsString(bytes); - if (!bytes_str) - 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 function_error = (int)PhyOperationError; - // int __stdcall icsneoFlashPhyFirmware(void* hObject, unsigned char phyIndx, unsigned char* fileData, size_t - // fileDataSize, int* errorCode) - ice::Function icsneoFlashPhyFirmware( - lib, "icsneoFlashPhyFirmware"); + 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) + ice::Function icsneoFlashAccessoryFirmware( + lib, "icsneoFlashAccessoryFirmware"); + + Py_buffer parms_buffer = {}; + PyObject_GetBuffer(parms, &parms_buffer, PyBUF_C_CONTIGUOUS); + Py_BEGIN_ALLOW_THREADS; - if (!icsneoFlashPhyFirmware(handle, phy_indx, bytes_str, bsize, &function_error)) { + if (!icsneoFlashAccessoryFirmware(handle, (FlashAccessoryFirmwareParams*)parms_buffer.buf, &function_error)) { Py_BLOCK_THREADS; - return set_ics_exception(exception_runtime_error(), "icsneoFlashPhyFirmware() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoFlashAccessoryFirmware() Failed"); } // check the return value to make sure we are good - if (check_success && function_error != PhyOperationSuccess) { + if (check_success && function_error != AccessoryOperationSuccess) { std::stringstream ss; - ss << "icsneoFlashPhyFirmware() Failed with error code: " << function_error << " ("; + ss << "icsneoFlashAccessoryFirmware() Failed with error code: " << function_error << " ("; switch (function_error) { - case PhyOperationError: - ss << "PhyOperationError"; + case AccessoryOperationError: + ss << "AccessoryOperationError"; + break; + case AccessoryOperationSuccess: + ss << "AccessoryOperationSuccess"; + break; + case AccessoryFlashingInitError: + ss << "AccessoryFlashingInitError"; + break; + case AccessoryFlashingEraseError: + ss << "AccessoryFlashingEraseError"; break; - case PhyOperationSuccess: - ss << "PhyOperationSuccess"; + case AccessoryFlashingWriteError: + ss << "AccessoryFlashingWriteError"; break; - case PhyFlashingInitError: - ss << "PhyFlashingInitError"; + case AccessoryFlashingReadError: + ss << "AccessoryFlashingReadError"; break; - case PhyFlashingEraseError: - ss << "PhyFlashingEraseError"; + case AccessoryFlashingVerifyError: + ss << "AccessoryFlashingVerifyError"; break; - case PhyFlashingWriteError: - ss << "PhyFlashingWriteError"; + case AccessoryFlashingDeinitError: + ss << "AccessoryFlashingDeinitError"; break; - case PhyFlashingReadError: - ss << "PhyFlashingReadError"; + case AccessoryFlashingInvalidHardware: + ss << "AccessoryFlashingInvalidHardware"; break; - case PhyFlashingVerifyError: - ss << "PhyFlashingVerifyError"; + case AccessoryFlashingInvalidDataFile: + ss << "AccessoryFlashingInvalidDataFile"; break; - case PhyFlashingDeinitError: - ss << "PhyFlashingDeinitError"; + case AccessoryGetVersionError: + ss << "AccessoryGetVersionError"; break; - case PhyFlashingInvalidHardware: - ss << "PhyFlashingInvalidHardware"; + case AccessoryIndexError: + ss << "AccessoryIndexError"; break; - case PhyFlashingInvalidDataFile: - ss << "PhyFlashingInvalidDataFile"; + case AccessoryParamApiVersionError : + ss << "AccessoryParamApiVersionError "; break; - case PhyGetVersionError: - ss << "PhyGetVersionError"; + case AccessoryParamSizeMismatchError: + ss << "AccessoryParamSizeMismatchError"; break; - case PhyIndexError: - ss << "PhyIndexError"; + case AccessoryParameterNull: + ss << "AccessoryParameterNull"; break; default: ss << "Unknown"; break; }; - ss << ")"; return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); } Py_END_ALLOW_THREADS; @@ -3370,12 +3375,12 @@ PyObject* meth_flash_phy_firmware(PyObject* self, PyObject* args) } } -PyObject* meth_get_phy_firmware_version(PyObject* self, PyObject* args) +PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) { PyObject* obj = NULL; - char phy_indx = 0; + char accessory_indx = 0; bool check_success = true; - if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &phy_indx, &check_success)) { + if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &accessory_indx, &check_success)) { return NULL; } @@ -3391,58 +3396,66 @@ PyObject* meth_get_phy_firmware_version(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - // int __stdcall icsneoGetPhyFwVersion(void* hObject, unsigned char phyIndx, unsigned int* phyFwVers, int* - // errorCode) - ice::Function icsneoGetPhyFwVersion( - lib, "icsneoGetPhyFwVersion"); + // int __stdcall icsneoGetAccessoryFirmwareVersion(void* hObject, unsigned char index, unsigned int* fwVers, int* errorCode) + ice::Function icsneoGetAccessoryFirmwareVersion( + lib, "icsneoGetAccessoryFirmwareVersion"); - unsigned int phy_version = 0; + unsigned int accessory_version = 0; int function_error = 0; Py_BEGIN_ALLOW_THREADS; - if (!icsneoGetPhyFwVersion(handle, phy_indx, &phy_version, &function_error)) { - Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), "icsneoGetPhyFwVersion() Failed"); + if (!icsneoGetAccessoryFirmwareVersion(handle, accessory_indx, &accessory_version, &function_error)) { + 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 - if (check_success && function_error != PhyOperationSuccess) { + if (check_success && function_error != AccessoryOperationSuccess) { std::stringstream ss; - ss << "icsneoGetPhyFwVersion() Failed with error code: " << function_error << " ("; + ss << "icsneoFlashAccessoryFirmware() Failed with error code: " << function_error << " ("; switch (function_error) { - case PhyOperationError: - ss << "PhyOperationError"; + case AccessoryOperationError: + ss << "AccessoryOperationError"; + break; + case AccessoryOperationSuccess: + ss << "AccessoryOperationSuccess"; + break; + case AccessoryFlashingInitError: + ss << "AccessoryFlashingInitError"; + break; + case AccessoryFlashingEraseError: + ss << "AccessoryFlashingEraseError"; break; - case PhyOperationSuccess: - ss << "PhyOperationSuccess"; + case AccessoryFlashingWriteError: + ss << "AccessoryFlashingWriteError"; break; - case PhyFlashingInitError: - ss << "PhyFlashingInitError"; + case AccessoryFlashingReadError: + ss << "AccessoryFlashingReadError"; break; - case PhyFlashingEraseError: - ss << "PhyFlashingEraseError"; + case AccessoryFlashingVerifyError: + ss << "AccessoryFlashingVerifyError"; break; - case PhyFlashingWriteError: - ss << "PhyFlashingWriteError"; + case AccessoryFlashingDeinitError: + ss << "AccessoryFlashingDeinitError"; break; - case PhyFlashingReadError: - ss << "PhyFlashingReadError"; + case AccessoryFlashingInvalidHardware: + ss << "AccessoryFlashingInvalidHardware"; break; - case PhyFlashingVerifyError: - ss << "PhyFlashingVerifyError"; + case AccessoryFlashingInvalidDataFile: + ss << "AccessoryFlashingInvalidDataFile"; break; - case PhyFlashingDeinitError: - ss << "PhyFlashingDeinitError"; + case AccessoryGetVersionError: + ss << "AccessoryGetVersionError"; break; - case PhyFlashingInvalidHardware: - ss << "PhyFlashingInvalidHardware"; + case AccessoryIndexError: + ss << "AccessoryIndexError"; break; - case PhyFlashingInvalidDataFile: - ss << "PhyFlashingInvalidDataFile"; + case AccessoryParamApiVersionError : + ss << "AccessoryParamApiVersionError "; break; - case PhyGetVersionError: - ss << "PhyGetVersionError"; + case AccessoryParamSizeMismatchError: + ss << "AccessoryParamSizeMismatchError"; break; - case PhyIndexError: - ss << "PhyIndexError"; + case AccessoryParameterNull: + ss << "AccessoryParameterNull"; break; default: ss << "Unknown"; @@ -3451,7 +3464,7 @@ PyObject* meth_get_phy_firmware_version(PyObject* self, PyObject* args) ss << ")"; return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); } - return Py_BuildValue("Ii", phy_version, function_error); + return Py_BuildValue("Ii", accessory_version, function_error); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } From c676c954464e22ca036755bfb6045f5af41cf60c Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 21 Feb 2024 14:15:50 -0500 Subject: [PATCH 151/201] Cleanup generated directory and fixed some python 3.12 warnings (#173) * fix regex warning * fixed SyntaxWarning: invalid escape sequence * added a requirements.txt for python 3.12+ * moved ics directory into gen directory * packages fix * in progress changes * fixed init file * fixed pathing issue * update libicsneolegacy output directory * silenced debug messages * always generate files now * update gen file * added package metadata and auto versioning * remove version requirement of cibuildwheel * specify python version * fix for artifacts v4 error. * ci fix * more CI fixes --- .github/workflows/wheels.yml | 31 +- LICENSE.md | 21 + build_libicsneo.py | 4 +- create_version.py | 41 ++ extract_icsneo40_defines.py | 2 +- gen/ics/__init__.py | 20 + gen/ics/__version.py | 2 + {ics => gen/ics}/hiddenimports.py | 0 {ics => gen/ics}/structures/__init__.py | 0 .../ics}/structures/a2_b_monitor_settings.py | 0 {ics => gen/ics}/structures/a2_b_node_type.py | 0 {ics => gen/ics}/structures/a2_btdm_mode.py | 0 {ics => gen/ics}/structures/can_settings.py | 0 {ics => gen/ics}/structures/canfd_settings.py | 0 .../ics}/structures/canterm_settings.py | 0 {ics => gen/ics}/structures/clock_quality_.py | 0 {ics => gen/ics}/structures/device_feature.py | 0 {ics => gen/ics}/structures/disk_settings.py | 0 .../ics}/structures/e_device_settings_type.py | 0 {ics => gen/ics}/structures/e_disk_format.py | 0 {ics => gen/ics}/structures/e_disk_layout.py | 0 .../ics}/structures/e_generic_api_options.py | 0 {ics => gen/ics}/structures/e_gptp_port.py | 0 {ics => gen/ics}/structures/e_gptp_role.py | 0 .../structures/e_plasma_ion_vnet_channel_t.py | 0 {ics => gen/ics}/structures/e_uart_port_t.py | 0 .../ics}/structures/ethernet10_g_settings.py | 0 .../structures/ethernet10_t1_s_settings.py | 0 .../structures/ethernet_network_status_t.py | 0 .../ics}/structures/ethernet_settings.py | 0 .../ics}/structures/ethernet_settings2.py | 0 .../ics}/structures/ew_bms_instance_t.py | 0 .../structures/ew_bms_manager_lock_state_t.py | 0 .../ics}/structures/ew_bms_manager_port_t.py | 0 .../ics}/structures/extended_response_code.py | 0 .../structures/extended_response_generic.py | 0 .../ics}/structures/fire3_linux_settings.py | 0 {ics => gen/ics}/structures/flex_vnet_mode.py | 0 .../ics}/structures/generic_api_data.py | 0 .../ics}/structures/generic_api_data_old.py | 0 .../ics}/structures/generic_api_selector.py | 0 .../ics}/structures/generic_api_status.py | 0 .../ics}/structures/generic_binary_status.py | 0 .../ics}/structures/get_component_versions.py | 0 .../get_component_versions_response.py | 0 .../get_supported_features_response.py | 0 .../ics}/structures/global_settings.py | 0 {ics => gen/ics}/structures/gptp_status.py | 0 .../ics}/structures/hw_eth_settings.py | 0 .../ics}/structures/ics_device_status.py | 0 .../structures/ics_fire2_device_status.py | 0 .../ics_fire2_vnet_device_status.py | 0 .../structures/ics_fire3_device_status.py | 0 .../ics_flex_vnetz_device_status.py | 0 .../structures/ics_obd2_pro_device_status.py | 0 .../structures/ics_rad_bms_device_status.py | 0 .../ics_rad_epsilon_device_status.py | 0 .../ics_rad_jupiter_device_status.py | 0 .../ics_rad_moon_duo_device_status.py | 0 .../structures/ics_rad_pluto_device_status.py | 0 .../structures/ics_spy_message_flex_ray.py | 0 .../ics}/structures/ics_spy_message_long.py | 0 .../ics}/structures/ics_spy_message_mdio.py | 0 .../ics}/structures/ics_spy_message_vsb.py | 0 .../ics}/structures/ics_spy_messagew_bms.py | 0 .../structures/ics_vcan4_device_status.py | 0 .../ics_vcan4_industrial_device_status.py | 0 .../structures/iso15765_2015_tx_message.py | 0 .../iso9141_keyword2000_init_step.py | 0 .../iso9141_keyword2000_settings.py | 0 {ics => gen/ics}/structures/j1708_settings.py | 0 {ics => gen/ics}/structures/lin_settings.py | 0 .../ics}/structures/logger_settings.py | 0 {ics => gen/ics}/structures/mac_sec_flags.py | 0 {ics => gen/ics}/structures/mac_sec_map.py | 0 {ics => gen/ics}/structures/mac_sec_rule.py | 0 {ics => gen/ics}/structures/mac_sec_sa.py | 0 {ics => gen/ics}/structures/mac_sec_sc.py | 0 {ics => gen/ics}/structures/mac_sec_sec_y.py | 0 .../ics}/structures/macsec_cipher_suite.py | 0 {ics => gen/ics}/structures/macsec_config.py | 0 .../ics}/structures/macsec_mpls_outer.py | 0 .../ics}/structures/macsec_packet_type.py | 0 .../ics}/structures/macsec_settings.py | 0 .../structures/macsec_strip_sectag_icv.py | 0 .../ics}/structures/macsec_validateframe.py | 0 {ics => gen/ics}/structures/macsec_vlantag.py | 0 .../structures/op_eth_general_settings.py | 0 .../ics}/structures/op_eth_link_mode.py | 0 .../ics}/structures/op_eth_settings.py | 0 {ics => gen/ics}/structures/phy_error_type.py | 0 {ics => gen/ics}/structures/port_identity.py | 0 .../ics}/structures/priority_vector.py | 0 .../rad_moon_duo_converter_settings.py | 0 .../ics}/structures/rad_reporting_settings.py | 0 .../ics}/structures/s_cm_probe_settings.py | 0 .../ics}/structures/s_cyan_settings.py | 0 .../ics}/structures/s_device_settings.py | 0 {ics => gen/ics}/structures/s_disk_details.py | 0 .../ics}/structures/s_disk_format_progress.py | 0 {ics => gen/ics}/structures/s_disk_status.py | 0 .../ics}/structures/s_disk_structure.py | 0 .../ics}/structures/s_ether_badge_settings.py | 0 .../ics}/structures/s_ext_sub_cmd_hdr.py | 0 .../s_extended_data_flash_header.py | 0 .../structures/s_fire3_flexray_settings.py | 0 .../ics}/structures/s_fire3_settings.py | 0 .../ics}/structures/s_fire_settings.py | 0 .../ics}/structures/s_fire_vnet_settings.py | 0 .../ics}/structures/s_flex_vnetz_settings.py | 0 .../ics}/structures/s_jupiter_ptp_params_s.py | 0 .../ics}/structures/s_neo_ecu12_settings.py | 0 .../structures/s_neo_most_gateway_settings.py | 0 .../ics}/structures/s_pendant_settings.py | 0 {ics => gen/ics}/structures/s_phy_reg_pkt.py | 0 .../structures/s_phy_reg_pkt_clause22_mess.py | 0 .../structures/s_phy_reg_pkt_clause45_mess.py | 0 .../ics}/structures/s_phy_reg_pkt_hdr.py | 0 .../ics}/structures/s_phy_reg_pkt_rw.py | 0 .../ics}/structures/s_phy_reg_pkt_status.py | 0 .../ics}/structures/s_pluto_avb_params_s.py | 0 .../structures/s_pluto_clock_sync_params_s.py | 0 .../structures/s_pluto_custom_params_s.py | 0 .../structures/s_pluto_general_params_s.py | 0 .../s_pluto_l2_address_lookup_entry_s.py | 0 .../s_pluto_l2_address_lookup_params_s.py | 0 .../s_pluto_l2_forwarding_entry_s.py | 0 .../s_pluto_l2_forwarding_params_s.py | 0 .../ics}/structures/s_pluto_l2_policing_s.py | 0 .../ics}/structures/s_pluto_mac_config_s.py | 0 .../ics}/structures/s_pluto_ptp_params_s.py | 0 .../structures/s_pluto_retagging_entry_s.py | 0 .../structures/s_pluto_switch_settings_s.py | 0 .../s_pluto_vl_forwarding_entry_s.py | 0 .../s_pluto_vl_forwarding_params_s.py | 0 .../structures/s_pluto_vl_lookup_entry_s.py | 0 .../structures/s_pluto_vl_policing_entry_s.py | 0 .../ics}/structures/s_pluto_vlan_lookup_s.py | 0 .../structures/s_rad_moon_duo_settings.py | 0 .../ics}/structures/s_red2_settings.py | 0 {ics => gen/ics}/structures/s_red_settings.py | 0 .../ics}/structures/s_spi_port_setting.py | 0 .../ics}/structures/s_spi_port_settings.py | 0 .../ics}/structures/s_text_api_settings.py | 0 .../ics}/structures/s_vivid_can_settings.py | 0 .../ics}/structures/s_wil_bridge_config.py | 0 .../structures/s_wil_connection_settings.py | 0 .../s_wil_fault_servicing_settings.py | 0 .../s_wil_network_data_capture_settings.py | 0 .../ics}/structures/scan_hub_settings.py | 0 {ics => gen/ics}/structures/scan_sleep_id.py | 0 .../ics}/structures/secu_avb_settings.py | 0 {ics => gen/ics}/structures/secu_settings.py | 0 {ics => gen/ics}/structures/seevb_settings.py | 0 .../ics}/structures/serdescam_settings.py | 0 .../ics}/structures/serdesgen_settings.py | 0 .../ics}/structures/serdespoc_settings.py | 0 {ics => gen/ics}/structures/sfp_id.py | 0 {ics => gen/ics}/structures/sievb_settings.py | 0 .../ics}/structures/sobd2_lc_settings.py | 0 .../ics}/structures/sobd2_pro_settings.py | 0 .../ics}/structures/sobd2_sim_settings.py | 0 .../structures/software_update_command.py | 0 .../ics}/structures/spy_filter_long.py | 0 .../ics}/structures/srad_comet_settings.py | 0 .../ics}/structures/srad_epsilon_settings.py | 0 .../srad_epsilon_switch_settings.py | 0 .../ics}/structures/srad_galaxy_settings.py | 0 .../ics}/structures/srad_gigalog_settings.py | 0 .../ics}/structures/srad_gigastar_settings.py | 0 .../srad_gptp_and_tap_settings_s.py | 0 .../ics}/structures/srad_gptp_settings_s.py | 0 .../ics}/structures/srad_jupiter_settings.py | 0 .../srad_jupiter_switch_settings.py | 0 .../ics}/structures/srad_moon2_settings.py | 0 .../ics}/structures/srad_moon3_settings.py | 0 .../ics}/structures/srad_pluto_settings.py | 0 .../ics}/structures/srad_star2_settings.py | 0 .../structures/srad_super_moon_settings.py | 0 .../ics}/structures/srada2_b_settings.py | 0 .../ics}/structures/sradbms_settings.py | 0 .../ics}/structures/st_api_firmware_info.py | 0 .../ics}/structures/st_chip_versions.py | 0 .../structures/st_cm_iso157652_rx_message.py | 0 .../structures/st_cm_iso157652_tx_message.py | 0 .../structures/start_dhcp_server_command.py | 0 .../structures/stop_dhcp_server_command.py | 0 .../ics}/structures/svcan3_settings.py | 0 .../ics}/structures/svcan412_settings.py | 0 .../ics}/structures/svcan4_ind_settings.py | 0 .../ics}/structures/svcan4_settings.py | 0 .../ics}/structures/svcanrf_settings.py | 0 {ics => gen/ics}/structures/swcan_settings.py | 0 .../ics}/structures/system_identity.py | 0 .../structures/tag_options_find_neo_ex.py | 0 .../structures/tag_options_open_neo_ex.py | 0 .../ics}/structures/tagicsneo_vi_command.py | 0 {ics => gen/ics}/structures/timestamp_.py | 0 .../timesync_icshardware_settings.py | 0 .../ics}/structures/uart_port_config.py | 0 {ics => gen/ics}/structures/uart_port_data.py | 0 .../ics}/structures/uart_port_port_bytes.py | 0 {ics => gen/ics}/structures/uart_settings.py | 0 {ics => gen/ics}/structures/version_report.py | 0 .../ics}/structures/w_bms_manager_reset.py | 0 .../ics}/structures/w_bms_manager_set_lock.py | 0 .../ics}/structures/wbms_gateway_settings.py | 0 generate_icsneo40_structs.py | 119 ++-- ics/__init__.py | 14 - icsnVC40_processed.h | 620 ++++++++++++++++++ pyproject.toml | 44 ++ requirements.txt | 2 + setup.py | 49 +- 213 files changed, 874 insertions(+), 95 deletions(-) create mode 100644 LICENSE.md create mode 100644 create_version.py create mode 100644 gen/ics/__init__.py create mode 100644 gen/ics/__version.py rename {ics => gen/ics}/hiddenimports.py (100%) rename {ics => gen/ics}/structures/__init__.py (100%) rename {ics => gen/ics}/structures/a2_b_monitor_settings.py (100%) rename {ics => gen/ics}/structures/a2_b_node_type.py (100%) rename {ics => gen/ics}/structures/a2_btdm_mode.py (100%) rename {ics => gen/ics}/structures/can_settings.py (100%) rename {ics => gen/ics}/structures/canfd_settings.py (100%) rename {ics => gen/ics}/structures/canterm_settings.py (100%) rename {ics => gen/ics}/structures/clock_quality_.py (100%) rename {ics => gen/ics}/structures/device_feature.py (100%) rename {ics => gen/ics}/structures/disk_settings.py (100%) rename {ics => gen/ics}/structures/e_device_settings_type.py (100%) rename {ics => gen/ics}/structures/e_disk_format.py (100%) rename {ics => gen/ics}/structures/e_disk_layout.py (100%) rename {ics => gen/ics}/structures/e_generic_api_options.py (100%) rename {ics => gen/ics}/structures/e_gptp_port.py (100%) rename {ics => gen/ics}/structures/e_gptp_role.py (100%) rename {ics => gen/ics}/structures/e_plasma_ion_vnet_channel_t.py (100%) rename {ics => gen/ics}/structures/e_uart_port_t.py (100%) rename {ics => gen/ics}/structures/ethernet10_g_settings.py (100%) rename {ics => gen/ics}/structures/ethernet10_t1_s_settings.py (100%) rename {ics => gen/ics}/structures/ethernet_network_status_t.py (100%) rename {ics => gen/ics}/structures/ethernet_settings.py (100%) rename {ics => gen/ics}/structures/ethernet_settings2.py (100%) rename {ics => gen/ics}/structures/ew_bms_instance_t.py (100%) rename {ics => gen/ics}/structures/ew_bms_manager_lock_state_t.py (100%) rename {ics => gen/ics}/structures/ew_bms_manager_port_t.py (100%) rename {ics => gen/ics}/structures/extended_response_code.py (100%) rename {ics => gen/ics}/structures/extended_response_generic.py (100%) rename {ics => gen/ics}/structures/fire3_linux_settings.py (100%) rename {ics => gen/ics}/structures/flex_vnet_mode.py (100%) rename {ics => gen/ics}/structures/generic_api_data.py (100%) rename {ics => gen/ics}/structures/generic_api_data_old.py (100%) rename {ics => gen/ics}/structures/generic_api_selector.py (100%) rename {ics => gen/ics}/structures/generic_api_status.py (100%) rename {ics => gen/ics}/structures/generic_binary_status.py (100%) rename {ics => gen/ics}/structures/get_component_versions.py (100%) rename {ics => gen/ics}/structures/get_component_versions_response.py (100%) rename {ics => gen/ics}/structures/get_supported_features_response.py (100%) rename {ics => gen/ics}/structures/global_settings.py (100%) rename {ics => gen/ics}/structures/gptp_status.py (100%) rename {ics => gen/ics}/structures/hw_eth_settings.py (100%) rename {ics => gen/ics}/structures/ics_device_status.py (100%) rename {ics => gen/ics}/structures/ics_fire2_device_status.py (100%) rename {ics => gen/ics}/structures/ics_fire2_vnet_device_status.py (100%) rename {ics => gen/ics}/structures/ics_fire3_device_status.py (100%) rename {ics => gen/ics}/structures/ics_flex_vnetz_device_status.py (100%) rename {ics => gen/ics}/structures/ics_obd2_pro_device_status.py (100%) rename {ics => gen/ics}/structures/ics_rad_bms_device_status.py (100%) rename {ics => gen/ics}/structures/ics_rad_epsilon_device_status.py (100%) rename {ics => gen/ics}/structures/ics_rad_jupiter_device_status.py (100%) rename {ics => gen/ics}/structures/ics_rad_moon_duo_device_status.py (100%) rename {ics => gen/ics}/structures/ics_rad_pluto_device_status.py (100%) rename {ics => gen/ics}/structures/ics_spy_message_flex_ray.py (100%) rename {ics => gen/ics}/structures/ics_spy_message_long.py (100%) rename {ics => gen/ics}/structures/ics_spy_message_mdio.py (100%) rename {ics => gen/ics}/structures/ics_spy_message_vsb.py (100%) rename {ics => gen/ics}/structures/ics_spy_messagew_bms.py (100%) rename {ics => gen/ics}/structures/ics_vcan4_device_status.py (100%) rename {ics => gen/ics}/structures/ics_vcan4_industrial_device_status.py (100%) rename {ics => gen/ics}/structures/iso15765_2015_tx_message.py (100%) rename {ics => gen/ics}/structures/iso9141_keyword2000_init_step.py (100%) rename {ics => gen/ics}/structures/iso9141_keyword2000_settings.py (100%) rename {ics => gen/ics}/structures/j1708_settings.py (100%) rename {ics => gen/ics}/structures/lin_settings.py (100%) rename {ics => gen/ics}/structures/logger_settings.py (100%) rename {ics => gen/ics}/structures/mac_sec_flags.py (100%) rename {ics => gen/ics}/structures/mac_sec_map.py (100%) rename {ics => gen/ics}/structures/mac_sec_rule.py (100%) rename {ics => gen/ics}/structures/mac_sec_sa.py (100%) rename {ics => gen/ics}/structures/mac_sec_sc.py (100%) rename {ics => gen/ics}/structures/mac_sec_sec_y.py (100%) rename {ics => gen/ics}/structures/macsec_cipher_suite.py (100%) rename {ics => gen/ics}/structures/macsec_config.py (100%) rename {ics => gen/ics}/structures/macsec_mpls_outer.py (100%) rename {ics => gen/ics}/structures/macsec_packet_type.py (100%) rename {ics => gen/ics}/structures/macsec_settings.py (100%) rename {ics => gen/ics}/structures/macsec_strip_sectag_icv.py (100%) rename {ics => gen/ics}/structures/macsec_validateframe.py (100%) rename {ics => gen/ics}/structures/macsec_vlantag.py (100%) rename {ics => gen/ics}/structures/op_eth_general_settings.py (100%) rename {ics => gen/ics}/structures/op_eth_link_mode.py (100%) rename {ics => gen/ics}/structures/op_eth_settings.py (100%) rename {ics => gen/ics}/structures/phy_error_type.py (100%) rename {ics => gen/ics}/structures/port_identity.py (100%) rename {ics => gen/ics}/structures/priority_vector.py (100%) rename {ics => gen/ics}/structures/rad_moon_duo_converter_settings.py (100%) rename {ics => gen/ics}/structures/rad_reporting_settings.py (100%) rename {ics => gen/ics}/structures/s_cm_probe_settings.py (100%) rename {ics => gen/ics}/structures/s_cyan_settings.py (100%) rename {ics => gen/ics}/structures/s_device_settings.py (100%) rename {ics => gen/ics}/structures/s_disk_details.py (100%) rename {ics => gen/ics}/structures/s_disk_format_progress.py (100%) rename {ics => gen/ics}/structures/s_disk_status.py (100%) rename {ics => gen/ics}/structures/s_disk_structure.py (100%) rename {ics => gen/ics}/structures/s_ether_badge_settings.py (100%) rename {ics => gen/ics}/structures/s_ext_sub_cmd_hdr.py (100%) rename {ics => gen/ics}/structures/s_extended_data_flash_header.py (100%) rename {ics => gen/ics}/structures/s_fire3_flexray_settings.py (100%) rename {ics => gen/ics}/structures/s_fire3_settings.py (100%) rename {ics => gen/ics}/structures/s_fire_settings.py (100%) rename {ics => gen/ics}/structures/s_fire_vnet_settings.py (100%) rename {ics => gen/ics}/structures/s_flex_vnetz_settings.py (100%) rename {ics => gen/ics}/structures/s_jupiter_ptp_params_s.py (100%) rename {ics => gen/ics}/structures/s_neo_ecu12_settings.py (100%) rename {ics => gen/ics}/structures/s_neo_most_gateway_settings.py (100%) rename {ics => gen/ics}/structures/s_pendant_settings.py (100%) rename {ics => gen/ics}/structures/s_phy_reg_pkt.py (100%) rename {ics => gen/ics}/structures/s_phy_reg_pkt_clause22_mess.py (100%) rename {ics => gen/ics}/structures/s_phy_reg_pkt_clause45_mess.py (100%) rename {ics => gen/ics}/structures/s_phy_reg_pkt_hdr.py (100%) rename {ics => gen/ics}/structures/s_phy_reg_pkt_rw.py (100%) rename {ics => gen/ics}/structures/s_phy_reg_pkt_status.py (100%) rename {ics => gen/ics}/structures/s_pluto_avb_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_clock_sync_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_custom_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_general_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_l2_address_lookup_entry_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_l2_address_lookup_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_l2_forwarding_entry_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_l2_forwarding_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_l2_policing_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_mac_config_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_ptp_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_retagging_entry_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_switch_settings_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_vl_forwarding_entry_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_vl_forwarding_params_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_vl_lookup_entry_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_vl_policing_entry_s.py (100%) rename {ics => gen/ics}/structures/s_pluto_vlan_lookup_s.py (100%) rename {ics => gen/ics}/structures/s_rad_moon_duo_settings.py (100%) rename {ics => gen/ics}/structures/s_red2_settings.py (100%) rename {ics => gen/ics}/structures/s_red_settings.py (100%) rename {ics => gen/ics}/structures/s_spi_port_setting.py (100%) rename {ics => gen/ics}/structures/s_spi_port_settings.py (100%) rename {ics => gen/ics}/structures/s_text_api_settings.py (100%) rename {ics => gen/ics}/structures/s_vivid_can_settings.py (100%) rename {ics => gen/ics}/structures/s_wil_bridge_config.py (100%) rename {ics => gen/ics}/structures/s_wil_connection_settings.py (100%) rename {ics => gen/ics}/structures/s_wil_fault_servicing_settings.py (100%) rename {ics => gen/ics}/structures/s_wil_network_data_capture_settings.py (100%) rename {ics => gen/ics}/structures/scan_hub_settings.py (100%) rename {ics => gen/ics}/structures/scan_sleep_id.py (100%) rename {ics => gen/ics}/structures/secu_avb_settings.py (100%) rename {ics => gen/ics}/structures/secu_settings.py (100%) rename {ics => gen/ics}/structures/seevb_settings.py (100%) rename {ics => gen/ics}/structures/serdescam_settings.py (100%) rename {ics => gen/ics}/structures/serdesgen_settings.py (100%) rename {ics => gen/ics}/structures/serdespoc_settings.py (100%) rename {ics => gen/ics}/structures/sfp_id.py (100%) rename {ics => gen/ics}/structures/sievb_settings.py (100%) rename {ics => gen/ics}/structures/sobd2_lc_settings.py (100%) rename {ics => gen/ics}/structures/sobd2_pro_settings.py (100%) rename {ics => gen/ics}/structures/sobd2_sim_settings.py (100%) rename {ics => gen/ics}/structures/software_update_command.py (100%) rename {ics => gen/ics}/structures/spy_filter_long.py (100%) rename {ics => gen/ics}/structures/srad_comet_settings.py (100%) rename {ics => gen/ics}/structures/srad_epsilon_settings.py (100%) rename {ics => gen/ics}/structures/srad_epsilon_switch_settings.py (100%) rename {ics => gen/ics}/structures/srad_galaxy_settings.py (100%) rename {ics => gen/ics}/structures/srad_gigalog_settings.py (100%) rename {ics => gen/ics}/structures/srad_gigastar_settings.py (100%) rename {ics => gen/ics}/structures/srad_gptp_and_tap_settings_s.py (100%) rename {ics => gen/ics}/structures/srad_gptp_settings_s.py (100%) rename {ics => gen/ics}/structures/srad_jupiter_settings.py (100%) rename {ics => gen/ics}/structures/srad_jupiter_switch_settings.py (100%) rename {ics => gen/ics}/structures/srad_moon2_settings.py (100%) rename {ics => gen/ics}/structures/srad_moon3_settings.py (100%) rename {ics => gen/ics}/structures/srad_pluto_settings.py (100%) rename {ics => gen/ics}/structures/srad_star2_settings.py (100%) rename {ics => gen/ics}/structures/srad_super_moon_settings.py (100%) rename {ics => gen/ics}/structures/srada2_b_settings.py (100%) rename {ics => gen/ics}/structures/sradbms_settings.py (100%) rename {ics => gen/ics}/structures/st_api_firmware_info.py (100%) rename {ics => gen/ics}/structures/st_chip_versions.py (100%) rename {ics => gen/ics}/structures/st_cm_iso157652_rx_message.py (100%) rename {ics => gen/ics}/structures/st_cm_iso157652_tx_message.py (100%) rename {ics => gen/ics}/structures/start_dhcp_server_command.py (100%) rename {ics => gen/ics}/structures/stop_dhcp_server_command.py (100%) rename {ics => gen/ics}/structures/svcan3_settings.py (100%) rename {ics => gen/ics}/structures/svcan412_settings.py (100%) rename {ics => gen/ics}/structures/svcan4_ind_settings.py (100%) rename {ics => gen/ics}/structures/svcan4_settings.py (100%) rename {ics => gen/ics}/structures/svcanrf_settings.py (100%) rename {ics => gen/ics}/structures/swcan_settings.py (100%) rename {ics => gen/ics}/structures/system_identity.py (100%) rename {ics => gen/ics}/structures/tag_options_find_neo_ex.py (100%) rename {ics => gen/ics}/structures/tag_options_open_neo_ex.py (100%) rename {ics => gen/ics}/structures/tagicsneo_vi_command.py (100%) rename {ics => gen/ics}/structures/timestamp_.py (100%) rename {ics => gen/ics}/structures/timesync_icshardware_settings.py (100%) rename {ics => gen/ics}/structures/uart_port_config.py (100%) rename {ics => gen/ics}/structures/uart_port_data.py (100%) rename {ics => gen/ics}/structures/uart_port_port_bytes.py (100%) rename {ics => gen/ics}/structures/uart_settings.py (100%) rename {ics => gen/ics}/structures/version_report.py (100%) rename {ics => gen/ics}/structures/w_bms_manager_reset.py (100%) rename {ics => gen/ics}/structures/w_bms_manager_set_lock.py (100%) rename {ics => gen/ics}/structures/wbms_gateway_settings.py (100%) delete mode 100644 ics/__init__.py diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 745caa987..808c7fa33 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -11,20 +11,41 @@ jobs: os: [ubuntu-20.04, windows-2019, macOS-13] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive + fetch-depth: 0 # needed for history/tags # Used to host cibuildwheel - - uses: actions/setup-python@v3 + - 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 cibuildwheel - run: python -m pip install cibuildwheel==2.16.2 + run: python -m pip install cibuildwheel - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse - - uses: actions/upload-artifact@v3 + - name: Upload Artifacts + uses: actions/upload-artifact@v4 with: + name: python_ics-${{ matrix.os }}-${{ env.PYTHON_ICS_VERSION }} path: ./wheelhouse/*.whl - if-no-files-found: error \ No newline at end of file + if-no-files-found: error + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + pattern: python_ics-* + merge-multiple: true + path: ./wheelhouse/ diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..b7a5698f9 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/build_libicsneo.py b/build_libicsneo.py index 1a8080fb6..fd61fc9fc 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -142,9 +142,9 @@ def build(): def copy(): if sys.platform == "darwin": - shutil.copyfile(f"{LIBICSNEO_BUILD}/libicsneolegacy.dylib", "ics/libicsneolegacy.dylib") + shutil.copyfile(f"{LIBICSNEO_BUILD}/libicsneolegacy.dylib", "gen/ics/libicsneolegacy.dylib") elif sys.platform == "linux": - shutil.copyfile(f"{LIBICSNEO_BUILD}/libicsneolegacy.so", "ics/libicsneolegacy.so") + shutil.copyfile(f"{LIBICSNEO_BUILD}/libicsneolegacy.so", "gen/ics/libicsneolegacy.so") def clean(): diff --git a/create_version.py b/create_version.py new file mode 100644 index 000000000..8f1e685b1 --- /dev/null +++ b/create_version.py @@ -0,0 +1,41 @@ +import os +import dunamai +import pathlib + + +def get_pkg_version() -> str: + """ + Get the package version. + + 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 + +def create_version_py(path: pathlib.Path = pathlib.Path("gen/ics/__version.py")) -> None: + """ + Create a version.py file with the package version and full version. + + Args: + path (pathlib.Path, optional): The path to the version.py file. Defaults to pathlib.Path("gen/ics/__version.py"). + + Returns: + None + """ + pkg_version = get_pkg_version() + full_version = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") + print(f"Creating '{path}' with version {pkg_version} and full version {full_version}...") + # Write the version file to disk + with open(path, "w+") as f: + f.write(f"""__version__ = "{pkg_version}"\n""") + f.write(f"""__full_version__ = "{full_version}"\n""") + + +if __name__ == "__main__": + create_version_py() diff --git a/extract_icsneo40_defines.py b/extract_icsneo40_defines.py index 5163abe11..7c4cc210f 100644 --- a/extract_icsneo40_defines.py +++ b/extract_icsneo40_defines.py @@ -133,7 +133,7 @@ def extract(): # DEBUG: print('\t\t' + str(line_number) + '\t' + str(sline)) if any(x in sline[1] for x in ignores): continue - if len(sline) >= 3 and re.match("^\d+?\.\d+?$", sline[2]) is not None: + 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( diff --git a/gen/ics/__init__.py b/gen/ics/__init__.py new file mode 100644 index 000000000..c8fd30efa --- /dev/null +++ b/gen/ics/__init__.py @@ -0,0 +1,20 @@ +try: + import ics.__version + __version__ = ics.__version.__version__ + __full_version__ = ics.__version.__full_version__ +except Exception as ex: + print(ex) + +try: + # Release environment + #print("Release") + from ics.ics import * + from ics.structures import * + from ics.hiddenimports import hidden_imports +except Exception as ex: + # Build environment + #print("Debug", ex) + from ics import * + from ics.structures import * + from ics.hiddenimports import hidden_imports + diff --git a/gen/ics/__version.py b/gen/ics/__version.py new file mode 100644 index 000000000..cd90ea222 --- /dev/null +++ b/gen/ics/__version.py @@ -0,0 +1,2 @@ +__version__ = "914.14" +__full_version__ = "v914.14-3ac87bb-20240219195124" diff --git a/ics/hiddenimports.py b/gen/ics/hiddenimports.py similarity index 100% rename from ics/hiddenimports.py rename to gen/ics/hiddenimports.py diff --git a/ics/structures/__init__.py b/gen/ics/structures/__init__.py similarity index 100% rename from ics/structures/__init__.py rename to gen/ics/structures/__init__.py diff --git a/ics/structures/a2_b_monitor_settings.py b/gen/ics/structures/a2_b_monitor_settings.py similarity index 100% rename from ics/structures/a2_b_monitor_settings.py rename to gen/ics/structures/a2_b_monitor_settings.py diff --git a/ics/structures/a2_b_node_type.py b/gen/ics/structures/a2_b_node_type.py similarity index 100% rename from ics/structures/a2_b_node_type.py rename to gen/ics/structures/a2_b_node_type.py diff --git a/ics/structures/a2_btdm_mode.py b/gen/ics/structures/a2_btdm_mode.py similarity index 100% rename from ics/structures/a2_btdm_mode.py rename to gen/ics/structures/a2_btdm_mode.py diff --git a/ics/structures/can_settings.py b/gen/ics/structures/can_settings.py similarity index 100% rename from ics/structures/can_settings.py rename to gen/ics/structures/can_settings.py diff --git a/ics/structures/canfd_settings.py b/gen/ics/structures/canfd_settings.py similarity index 100% rename from ics/structures/canfd_settings.py rename to gen/ics/structures/canfd_settings.py diff --git a/ics/structures/canterm_settings.py b/gen/ics/structures/canterm_settings.py similarity index 100% rename from ics/structures/canterm_settings.py rename to gen/ics/structures/canterm_settings.py diff --git a/ics/structures/clock_quality_.py b/gen/ics/structures/clock_quality_.py similarity index 100% rename from ics/structures/clock_quality_.py rename to gen/ics/structures/clock_quality_.py diff --git a/ics/structures/device_feature.py b/gen/ics/structures/device_feature.py similarity index 100% rename from ics/structures/device_feature.py rename to gen/ics/structures/device_feature.py diff --git a/ics/structures/disk_settings.py b/gen/ics/structures/disk_settings.py similarity index 100% rename from ics/structures/disk_settings.py rename to gen/ics/structures/disk_settings.py diff --git a/ics/structures/e_device_settings_type.py b/gen/ics/structures/e_device_settings_type.py similarity index 100% rename from ics/structures/e_device_settings_type.py rename to gen/ics/structures/e_device_settings_type.py diff --git a/ics/structures/e_disk_format.py b/gen/ics/structures/e_disk_format.py similarity index 100% rename from ics/structures/e_disk_format.py rename to gen/ics/structures/e_disk_format.py diff --git a/ics/structures/e_disk_layout.py b/gen/ics/structures/e_disk_layout.py similarity index 100% rename from ics/structures/e_disk_layout.py rename to gen/ics/structures/e_disk_layout.py diff --git a/ics/structures/e_generic_api_options.py b/gen/ics/structures/e_generic_api_options.py similarity index 100% rename from ics/structures/e_generic_api_options.py rename to gen/ics/structures/e_generic_api_options.py diff --git a/ics/structures/e_gptp_port.py b/gen/ics/structures/e_gptp_port.py similarity index 100% rename from ics/structures/e_gptp_port.py rename to gen/ics/structures/e_gptp_port.py diff --git a/ics/structures/e_gptp_role.py b/gen/ics/structures/e_gptp_role.py similarity index 100% rename from ics/structures/e_gptp_role.py rename to gen/ics/structures/e_gptp_role.py diff --git a/ics/structures/e_plasma_ion_vnet_channel_t.py b/gen/ics/structures/e_plasma_ion_vnet_channel_t.py similarity index 100% rename from ics/structures/e_plasma_ion_vnet_channel_t.py rename to gen/ics/structures/e_plasma_ion_vnet_channel_t.py diff --git a/ics/structures/e_uart_port_t.py b/gen/ics/structures/e_uart_port_t.py similarity index 100% rename from ics/structures/e_uart_port_t.py rename to gen/ics/structures/e_uart_port_t.py diff --git a/ics/structures/ethernet10_g_settings.py b/gen/ics/structures/ethernet10_g_settings.py similarity index 100% rename from ics/structures/ethernet10_g_settings.py rename to gen/ics/structures/ethernet10_g_settings.py diff --git a/ics/structures/ethernet10_t1_s_settings.py b/gen/ics/structures/ethernet10_t1_s_settings.py similarity index 100% rename from ics/structures/ethernet10_t1_s_settings.py rename to gen/ics/structures/ethernet10_t1_s_settings.py diff --git a/ics/structures/ethernet_network_status_t.py b/gen/ics/structures/ethernet_network_status_t.py similarity index 100% rename from ics/structures/ethernet_network_status_t.py rename to gen/ics/structures/ethernet_network_status_t.py diff --git a/ics/structures/ethernet_settings.py b/gen/ics/structures/ethernet_settings.py similarity index 100% rename from ics/structures/ethernet_settings.py rename to gen/ics/structures/ethernet_settings.py diff --git a/ics/structures/ethernet_settings2.py b/gen/ics/structures/ethernet_settings2.py similarity index 100% rename from ics/structures/ethernet_settings2.py rename to gen/ics/structures/ethernet_settings2.py diff --git a/ics/structures/ew_bms_instance_t.py b/gen/ics/structures/ew_bms_instance_t.py similarity index 100% rename from ics/structures/ew_bms_instance_t.py rename to gen/ics/structures/ew_bms_instance_t.py diff --git a/ics/structures/ew_bms_manager_lock_state_t.py b/gen/ics/structures/ew_bms_manager_lock_state_t.py similarity index 100% rename from ics/structures/ew_bms_manager_lock_state_t.py rename to gen/ics/structures/ew_bms_manager_lock_state_t.py diff --git a/ics/structures/ew_bms_manager_port_t.py b/gen/ics/structures/ew_bms_manager_port_t.py similarity index 100% rename from ics/structures/ew_bms_manager_port_t.py rename to gen/ics/structures/ew_bms_manager_port_t.py diff --git a/ics/structures/extended_response_code.py b/gen/ics/structures/extended_response_code.py similarity index 100% rename from ics/structures/extended_response_code.py rename to gen/ics/structures/extended_response_code.py diff --git a/ics/structures/extended_response_generic.py b/gen/ics/structures/extended_response_generic.py similarity index 100% rename from ics/structures/extended_response_generic.py rename to gen/ics/structures/extended_response_generic.py diff --git a/ics/structures/fire3_linux_settings.py b/gen/ics/structures/fire3_linux_settings.py similarity index 100% rename from ics/structures/fire3_linux_settings.py rename to gen/ics/structures/fire3_linux_settings.py diff --git a/ics/structures/flex_vnet_mode.py b/gen/ics/structures/flex_vnet_mode.py similarity index 100% rename from ics/structures/flex_vnet_mode.py rename to gen/ics/structures/flex_vnet_mode.py diff --git a/ics/structures/generic_api_data.py b/gen/ics/structures/generic_api_data.py similarity index 100% rename from ics/structures/generic_api_data.py rename to gen/ics/structures/generic_api_data.py diff --git a/ics/structures/generic_api_data_old.py b/gen/ics/structures/generic_api_data_old.py similarity index 100% rename from ics/structures/generic_api_data_old.py rename to gen/ics/structures/generic_api_data_old.py diff --git a/ics/structures/generic_api_selector.py b/gen/ics/structures/generic_api_selector.py similarity index 100% rename from ics/structures/generic_api_selector.py rename to gen/ics/structures/generic_api_selector.py diff --git a/ics/structures/generic_api_status.py b/gen/ics/structures/generic_api_status.py similarity index 100% rename from ics/structures/generic_api_status.py rename to gen/ics/structures/generic_api_status.py diff --git a/ics/structures/generic_binary_status.py b/gen/ics/structures/generic_binary_status.py similarity index 100% rename from ics/structures/generic_binary_status.py rename to gen/ics/structures/generic_binary_status.py diff --git a/ics/structures/get_component_versions.py b/gen/ics/structures/get_component_versions.py similarity index 100% rename from ics/structures/get_component_versions.py rename to gen/ics/structures/get_component_versions.py diff --git a/ics/structures/get_component_versions_response.py b/gen/ics/structures/get_component_versions_response.py similarity index 100% rename from ics/structures/get_component_versions_response.py rename to gen/ics/structures/get_component_versions_response.py diff --git a/ics/structures/get_supported_features_response.py b/gen/ics/structures/get_supported_features_response.py similarity index 100% rename from ics/structures/get_supported_features_response.py rename to gen/ics/structures/get_supported_features_response.py diff --git a/ics/structures/global_settings.py b/gen/ics/structures/global_settings.py similarity index 100% rename from ics/structures/global_settings.py rename to gen/ics/structures/global_settings.py diff --git a/ics/structures/gptp_status.py b/gen/ics/structures/gptp_status.py similarity index 100% rename from ics/structures/gptp_status.py rename to gen/ics/structures/gptp_status.py diff --git a/ics/structures/hw_eth_settings.py b/gen/ics/structures/hw_eth_settings.py similarity index 100% rename from ics/structures/hw_eth_settings.py rename to gen/ics/structures/hw_eth_settings.py diff --git a/ics/structures/ics_device_status.py b/gen/ics/structures/ics_device_status.py similarity index 100% rename from ics/structures/ics_device_status.py rename to gen/ics/structures/ics_device_status.py diff --git a/ics/structures/ics_fire2_device_status.py b/gen/ics/structures/ics_fire2_device_status.py similarity index 100% rename from ics/structures/ics_fire2_device_status.py rename to gen/ics/structures/ics_fire2_device_status.py diff --git a/ics/structures/ics_fire2_vnet_device_status.py b/gen/ics/structures/ics_fire2_vnet_device_status.py similarity index 100% rename from ics/structures/ics_fire2_vnet_device_status.py rename to gen/ics/structures/ics_fire2_vnet_device_status.py diff --git a/ics/structures/ics_fire3_device_status.py b/gen/ics/structures/ics_fire3_device_status.py similarity index 100% rename from ics/structures/ics_fire3_device_status.py rename to gen/ics/structures/ics_fire3_device_status.py diff --git a/ics/structures/ics_flex_vnetz_device_status.py b/gen/ics/structures/ics_flex_vnetz_device_status.py similarity index 100% rename from ics/structures/ics_flex_vnetz_device_status.py rename to gen/ics/structures/ics_flex_vnetz_device_status.py diff --git a/ics/structures/ics_obd2_pro_device_status.py b/gen/ics/structures/ics_obd2_pro_device_status.py similarity index 100% rename from ics/structures/ics_obd2_pro_device_status.py rename to gen/ics/structures/ics_obd2_pro_device_status.py diff --git a/ics/structures/ics_rad_bms_device_status.py b/gen/ics/structures/ics_rad_bms_device_status.py similarity index 100% rename from ics/structures/ics_rad_bms_device_status.py rename to gen/ics/structures/ics_rad_bms_device_status.py diff --git a/ics/structures/ics_rad_epsilon_device_status.py b/gen/ics/structures/ics_rad_epsilon_device_status.py similarity index 100% rename from ics/structures/ics_rad_epsilon_device_status.py rename to gen/ics/structures/ics_rad_epsilon_device_status.py diff --git a/ics/structures/ics_rad_jupiter_device_status.py b/gen/ics/structures/ics_rad_jupiter_device_status.py similarity index 100% rename from ics/structures/ics_rad_jupiter_device_status.py rename to gen/ics/structures/ics_rad_jupiter_device_status.py diff --git a/ics/structures/ics_rad_moon_duo_device_status.py b/gen/ics/structures/ics_rad_moon_duo_device_status.py similarity index 100% rename from ics/structures/ics_rad_moon_duo_device_status.py rename to gen/ics/structures/ics_rad_moon_duo_device_status.py diff --git a/ics/structures/ics_rad_pluto_device_status.py b/gen/ics/structures/ics_rad_pluto_device_status.py similarity index 100% rename from ics/structures/ics_rad_pluto_device_status.py rename to gen/ics/structures/ics_rad_pluto_device_status.py diff --git a/ics/structures/ics_spy_message_flex_ray.py b/gen/ics/structures/ics_spy_message_flex_ray.py similarity index 100% rename from ics/structures/ics_spy_message_flex_ray.py rename to gen/ics/structures/ics_spy_message_flex_ray.py diff --git a/ics/structures/ics_spy_message_long.py b/gen/ics/structures/ics_spy_message_long.py similarity index 100% rename from ics/structures/ics_spy_message_long.py rename to gen/ics/structures/ics_spy_message_long.py diff --git a/ics/structures/ics_spy_message_mdio.py b/gen/ics/structures/ics_spy_message_mdio.py similarity index 100% rename from ics/structures/ics_spy_message_mdio.py rename to gen/ics/structures/ics_spy_message_mdio.py diff --git a/ics/structures/ics_spy_message_vsb.py b/gen/ics/structures/ics_spy_message_vsb.py similarity index 100% rename from ics/structures/ics_spy_message_vsb.py rename to gen/ics/structures/ics_spy_message_vsb.py diff --git a/ics/structures/ics_spy_messagew_bms.py b/gen/ics/structures/ics_spy_messagew_bms.py similarity index 100% rename from ics/structures/ics_spy_messagew_bms.py rename to gen/ics/structures/ics_spy_messagew_bms.py diff --git a/ics/structures/ics_vcan4_device_status.py b/gen/ics/structures/ics_vcan4_device_status.py similarity index 100% rename from ics/structures/ics_vcan4_device_status.py rename to gen/ics/structures/ics_vcan4_device_status.py diff --git a/ics/structures/ics_vcan4_industrial_device_status.py b/gen/ics/structures/ics_vcan4_industrial_device_status.py similarity index 100% rename from ics/structures/ics_vcan4_industrial_device_status.py rename to gen/ics/structures/ics_vcan4_industrial_device_status.py diff --git a/ics/structures/iso15765_2015_tx_message.py b/gen/ics/structures/iso15765_2015_tx_message.py similarity index 100% rename from ics/structures/iso15765_2015_tx_message.py rename to gen/ics/structures/iso15765_2015_tx_message.py diff --git a/ics/structures/iso9141_keyword2000_init_step.py b/gen/ics/structures/iso9141_keyword2000_init_step.py similarity index 100% rename from ics/structures/iso9141_keyword2000_init_step.py rename to gen/ics/structures/iso9141_keyword2000_init_step.py diff --git a/ics/structures/iso9141_keyword2000_settings.py b/gen/ics/structures/iso9141_keyword2000_settings.py similarity index 100% rename from ics/structures/iso9141_keyword2000_settings.py rename to gen/ics/structures/iso9141_keyword2000_settings.py diff --git a/ics/structures/j1708_settings.py b/gen/ics/structures/j1708_settings.py similarity index 100% rename from ics/structures/j1708_settings.py rename to gen/ics/structures/j1708_settings.py diff --git a/ics/structures/lin_settings.py b/gen/ics/structures/lin_settings.py similarity index 100% rename from ics/structures/lin_settings.py rename to gen/ics/structures/lin_settings.py diff --git a/ics/structures/logger_settings.py b/gen/ics/structures/logger_settings.py similarity index 100% rename from ics/structures/logger_settings.py rename to gen/ics/structures/logger_settings.py diff --git a/ics/structures/mac_sec_flags.py b/gen/ics/structures/mac_sec_flags.py similarity index 100% rename from ics/structures/mac_sec_flags.py rename to gen/ics/structures/mac_sec_flags.py diff --git a/ics/structures/mac_sec_map.py b/gen/ics/structures/mac_sec_map.py similarity index 100% rename from ics/structures/mac_sec_map.py rename to gen/ics/structures/mac_sec_map.py diff --git a/ics/structures/mac_sec_rule.py b/gen/ics/structures/mac_sec_rule.py similarity index 100% rename from ics/structures/mac_sec_rule.py rename to gen/ics/structures/mac_sec_rule.py diff --git a/ics/structures/mac_sec_sa.py b/gen/ics/structures/mac_sec_sa.py similarity index 100% rename from ics/structures/mac_sec_sa.py rename to gen/ics/structures/mac_sec_sa.py diff --git a/ics/structures/mac_sec_sc.py b/gen/ics/structures/mac_sec_sc.py similarity index 100% rename from ics/structures/mac_sec_sc.py rename to gen/ics/structures/mac_sec_sc.py diff --git a/ics/structures/mac_sec_sec_y.py b/gen/ics/structures/mac_sec_sec_y.py similarity index 100% rename from ics/structures/mac_sec_sec_y.py rename to gen/ics/structures/mac_sec_sec_y.py diff --git a/ics/structures/macsec_cipher_suite.py b/gen/ics/structures/macsec_cipher_suite.py similarity index 100% rename from ics/structures/macsec_cipher_suite.py rename to gen/ics/structures/macsec_cipher_suite.py diff --git a/ics/structures/macsec_config.py b/gen/ics/structures/macsec_config.py similarity index 100% rename from ics/structures/macsec_config.py rename to gen/ics/structures/macsec_config.py diff --git a/ics/structures/macsec_mpls_outer.py b/gen/ics/structures/macsec_mpls_outer.py similarity index 100% rename from ics/structures/macsec_mpls_outer.py rename to gen/ics/structures/macsec_mpls_outer.py diff --git a/ics/structures/macsec_packet_type.py b/gen/ics/structures/macsec_packet_type.py similarity index 100% rename from ics/structures/macsec_packet_type.py rename to gen/ics/structures/macsec_packet_type.py diff --git a/ics/structures/macsec_settings.py b/gen/ics/structures/macsec_settings.py similarity index 100% rename from ics/structures/macsec_settings.py rename to gen/ics/structures/macsec_settings.py diff --git a/ics/structures/macsec_strip_sectag_icv.py b/gen/ics/structures/macsec_strip_sectag_icv.py similarity index 100% rename from ics/structures/macsec_strip_sectag_icv.py rename to gen/ics/structures/macsec_strip_sectag_icv.py diff --git a/ics/structures/macsec_validateframe.py b/gen/ics/structures/macsec_validateframe.py similarity index 100% rename from ics/structures/macsec_validateframe.py rename to gen/ics/structures/macsec_validateframe.py diff --git a/ics/structures/macsec_vlantag.py b/gen/ics/structures/macsec_vlantag.py similarity index 100% rename from ics/structures/macsec_vlantag.py rename to gen/ics/structures/macsec_vlantag.py diff --git a/ics/structures/op_eth_general_settings.py b/gen/ics/structures/op_eth_general_settings.py similarity index 100% rename from ics/structures/op_eth_general_settings.py rename to gen/ics/structures/op_eth_general_settings.py diff --git a/ics/structures/op_eth_link_mode.py b/gen/ics/structures/op_eth_link_mode.py similarity index 100% rename from ics/structures/op_eth_link_mode.py rename to gen/ics/structures/op_eth_link_mode.py diff --git a/ics/structures/op_eth_settings.py b/gen/ics/structures/op_eth_settings.py similarity index 100% rename from ics/structures/op_eth_settings.py rename to gen/ics/structures/op_eth_settings.py diff --git a/ics/structures/phy_error_type.py b/gen/ics/structures/phy_error_type.py similarity index 100% rename from ics/structures/phy_error_type.py rename to gen/ics/structures/phy_error_type.py diff --git a/ics/structures/port_identity.py b/gen/ics/structures/port_identity.py similarity index 100% rename from ics/structures/port_identity.py rename to gen/ics/structures/port_identity.py diff --git a/ics/structures/priority_vector.py b/gen/ics/structures/priority_vector.py similarity index 100% rename from ics/structures/priority_vector.py rename to gen/ics/structures/priority_vector.py diff --git a/ics/structures/rad_moon_duo_converter_settings.py b/gen/ics/structures/rad_moon_duo_converter_settings.py similarity index 100% rename from ics/structures/rad_moon_duo_converter_settings.py rename to gen/ics/structures/rad_moon_duo_converter_settings.py diff --git a/ics/structures/rad_reporting_settings.py b/gen/ics/structures/rad_reporting_settings.py similarity index 100% rename from ics/structures/rad_reporting_settings.py rename to gen/ics/structures/rad_reporting_settings.py diff --git a/ics/structures/s_cm_probe_settings.py b/gen/ics/structures/s_cm_probe_settings.py similarity index 100% rename from ics/structures/s_cm_probe_settings.py rename to gen/ics/structures/s_cm_probe_settings.py diff --git a/ics/structures/s_cyan_settings.py b/gen/ics/structures/s_cyan_settings.py similarity index 100% rename from ics/structures/s_cyan_settings.py rename to gen/ics/structures/s_cyan_settings.py diff --git a/ics/structures/s_device_settings.py b/gen/ics/structures/s_device_settings.py similarity index 100% rename from ics/structures/s_device_settings.py rename to gen/ics/structures/s_device_settings.py diff --git a/ics/structures/s_disk_details.py b/gen/ics/structures/s_disk_details.py similarity index 100% rename from ics/structures/s_disk_details.py rename to gen/ics/structures/s_disk_details.py diff --git a/ics/structures/s_disk_format_progress.py b/gen/ics/structures/s_disk_format_progress.py similarity index 100% rename from ics/structures/s_disk_format_progress.py rename to gen/ics/structures/s_disk_format_progress.py diff --git a/ics/structures/s_disk_status.py b/gen/ics/structures/s_disk_status.py similarity index 100% rename from ics/structures/s_disk_status.py rename to gen/ics/structures/s_disk_status.py diff --git a/ics/structures/s_disk_structure.py b/gen/ics/structures/s_disk_structure.py similarity index 100% rename from ics/structures/s_disk_structure.py rename to gen/ics/structures/s_disk_structure.py diff --git a/ics/structures/s_ether_badge_settings.py b/gen/ics/structures/s_ether_badge_settings.py similarity index 100% rename from ics/structures/s_ether_badge_settings.py rename to gen/ics/structures/s_ether_badge_settings.py diff --git a/ics/structures/s_ext_sub_cmd_hdr.py b/gen/ics/structures/s_ext_sub_cmd_hdr.py similarity index 100% rename from ics/structures/s_ext_sub_cmd_hdr.py rename to gen/ics/structures/s_ext_sub_cmd_hdr.py diff --git a/ics/structures/s_extended_data_flash_header.py b/gen/ics/structures/s_extended_data_flash_header.py similarity index 100% rename from ics/structures/s_extended_data_flash_header.py rename to gen/ics/structures/s_extended_data_flash_header.py diff --git a/ics/structures/s_fire3_flexray_settings.py b/gen/ics/structures/s_fire3_flexray_settings.py similarity index 100% rename from ics/structures/s_fire3_flexray_settings.py rename to gen/ics/structures/s_fire3_flexray_settings.py diff --git a/ics/structures/s_fire3_settings.py b/gen/ics/structures/s_fire3_settings.py similarity index 100% rename from ics/structures/s_fire3_settings.py rename to gen/ics/structures/s_fire3_settings.py diff --git a/ics/structures/s_fire_settings.py b/gen/ics/structures/s_fire_settings.py similarity index 100% rename from ics/structures/s_fire_settings.py rename to gen/ics/structures/s_fire_settings.py diff --git a/ics/structures/s_fire_vnet_settings.py b/gen/ics/structures/s_fire_vnet_settings.py similarity index 100% rename from ics/structures/s_fire_vnet_settings.py rename to gen/ics/structures/s_fire_vnet_settings.py diff --git a/ics/structures/s_flex_vnetz_settings.py b/gen/ics/structures/s_flex_vnetz_settings.py similarity index 100% rename from ics/structures/s_flex_vnetz_settings.py rename to gen/ics/structures/s_flex_vnetz_settings.py diff --git a/ics/structures/s_jupiter_ptp_params_s.py b/gen/ics/structures/s_jupiter_ptp_params_s.py similarity index 100% rename from ics/structures/s_jupiter_ptp_params_s.py rename to gen/ics/structures/s_jupiter_ptp_params_s.py diff --git a/ics/structures/s_neo_ecu12_settings.py b/gen/ics/structures/s_neo_ecu12_settings.py similarity index 100% rename from ics/structures/s_neo_ecu12_settings.py rename to gen/ics/structures/s_neo_ecu12_settings.py diff --git a/ics/structures/s_neo_most_gateway_settings.py b/gen/ics/structures/s_neo_most_gateway_settings.py similarity index 100% rename from ics/structures/s_neo_most_gateway_settings.py rename to gen/ics/structures/s_neo_most_gateway_settings.py diff --git a/ics/structures/s_pendant_settings.py b/gen/ics/structures/s_pendant_settings.py similarity index 100% rename from ics/structures/s_pendant_settings.py rename to gen/ics/structures/s_pendant_settings.py diff --git a/ics/structures/s_phy_reg_pkt.py b/gen/ics/structures/s_phy_reg_pkt.py similarity index 100% rename from ics/structures/s_phy_reg_pkt.py rename to gen/ics/structures/s_phy_reg_pkt.py diff --git a/ics/structures/s_phy_reg_pkt_clause22_mess.py b/gen/ics/structures/s_phy_reg_pkt_clause22_mess.py similarity index 100% rename from ics/structures/s_phy_reg_pkt_clause22_mess.py rename to gen/ics/structures/s_phy_reg_pkt_clause22_mess.py diff --git a/ics/structures/s_phy_reg_pkt_clause45_mess.py b/gen/ics/structures/s_phy_reg_pkt_clause45_mess.py similarity index 100% rename from ics/structures/s_phy_reg_pkt_clause45_mess.py rename to gen/ics/structures/s_phy_reg_pkt_clause45_mess.py diff --git a/ics/structures/s_phy_reg_pkt_hdr.py b/gen/ics/structures/s_phy_reg_pkt_hdr.py similarity index 100% rename from ics/structures/s_phy_reg_pkt_hdr.py rename to gen/ics/structures/s_phy_reg_pkt_hdr.py diff --git a/ics/structures/s_phy_reg_pkt_rw.py b/gen/ics/structures/s_phy_reg_pkt_rw.py similarity index 100% rename from ics/structures/s_phy_reg_pkt_rw.py rename to gen/ics/structures/s_phy_reg_pkt_rw.py diff --git a/ics/structures/s_phy_reg_pkt_status.py b/gen/ics/structures/s_phy_reg_pkt_status.py similarity index 100% rename from ics/structures/s_phy_reg_pkt_status.py rename to gen/ics/structures/s_phy_reg_pkt_status.py diff --git a/ics/structures/s_pluto_avb_params_s.py b/gen/ics/structures/s_pluto_avb_params_s.py similarity index 100% rename from ics/structures/s_pluto_avb_params_s.py rename to gen/ics/structures/s_pluto_avb_params_s.py diff --git a/ics/structures/s_pluto_clock_sync_params_s.py b/gen/ics/structures/s_pluto_clock_sync_params_s.py similarity index 100% rename from ics/structures/s_pluto_clock_sync_params_s.py rename to gen/ics/structures/s_pluto_clock_sync_params_s.py diff --git a/ics/structures/s_pluto_custom_params_s.py b/gen/ics/structures/s_pluto_custom_params_s.py similarity index 100% rename from ics/structures/s_pluto_custom_params_s.py rename to gen/ics/structures/s_pluto_custom_params_s.py diff --git a/ics/structures/s_pluto_general_params_s.py b/gen/ics/structures/s_pluto_general_params_s.py similarity index 100% rename from ics/structures/s_pluto_general_params_s.py rename to gen/ics/structures/s_pluto_general_params_s.py diff --git a/ics/structures/s_pluto_l2_address_lookup_entry_s.py b/gen/ics/structures/s_pluto_l2_address_lookup_entry_s.py similarity index 100% rename from ics/structures/s_pluto_l2_address_lookup_entry_s.py rename to gen/ics/structures/s_pluto_l2_address_lookup_entry_s.py diff --git a/ics/structures/s_pluto_l2_address_lookup_params_s.py b/gen/ics/structures/s_pluto_l2_address_lookup_params_s.py similarity index 100% rename from ics/structures/s_pluto_l2_address_lookup_params_s.py rename to gen/ics/structures/s_pluto_l2_address_lookup_params_s.py diff --git a/ics/structures/s_pluto_l2_forwarding_entry_s.py b/gen/ics/structures/s_pluto_l2_forwarding_entry_s.py similarity index 100% rename from ics/structures/s_pluto_l2_forwarding_entry_s.py rename to gen/ics/structures/s_pluto_l2_forwarding_entry_s.py diff --git a/ics/structures/s_pluto_l2_forwarding_params_s.py b/gen/ics/structures/s_pluto_l2_forwarding_params_s.py similarity index 100% rename from ics/structures/s_pluto_l2_forwarding_params_s.py rename to gen/ics/structures/s_pluto_l2_forwarding_params_s.py diff --git a/ics/structures/s_pluto_l2_policing_s.py b/gen/ics/structures/s_pluto_l2_policing_s.py similarity index 100% rename from ics/structures/s_pluto_l2_policing_s.py rename to gen/ics/structures/s_pluto_l2_policing_s.py diff --git a/ics/structures/s_pluto_mac_config_s.py b/gen/ics/structures/s_pluto_mac_config_s.py similarity index 100% rename from ics/structures/s_pluto_mac_config_s.py rename to gen/ics/structures/s_pluto_mac_config_s.py diff --git a/ics/structures/s_pluto_ptp_params_s.py b/gen/ics/structures/s_pluto_ptp_params_s.py similarity index 100% rename from ics/structures/s_pluto_ptp_params_s.py rename to gen/ics/structures/s_pluto_ptp_params_s.py diff --git a/ics/structures/s_pluto_retagging_entry_s.py b/gen/ics/structures/s_pluto_retagging_entry_s.py similarity index 100% rename from ics/structures/s_pluto_retagging_entry_s.py rename to gen/ics/structures/s_pluto_retagging_entry_s.py diff --git a/ics/structures/s_pluto_switch_settings_s.py b/gen/ics/structures/s_pluto_switch_settings_s.py similarity index 100% rename from ics/structures/s_pluto_switch_settings_s.py rename to gen/ics/structures/s_pluto_switch_settings_s.py diff --git a/ics/structures/s_pluto_vl_forwarding_entry_s.py b/gen/ics/structures/s_pluto_vl_forwarding_entry_s.py similarity index 100% rename from ics/structures/s_pluto_vl_forwarding_entry_s.py rename to gen/ics/structures/s_pluto_vl_forwarding_entry_s.py diff --git a/ics/structures/s_pluto_vl_forwarding_params_s.py b/gen/ics/structures/s_pluto_vl_forwarding_params_s.py similarity index 100% rename from ics/structures/s_pluto_vl_forwarding_params_s.py rename to gen/ics/structures/s_pluto_vl_forwarding_params_s.py diff --git a/ics/structures/s_pluto_vl_lookup_entry_s.py b/gen/ics/structures/s_pluto_vl_lookup_entry_s.py similarity index 100% rename from ics/structures/s_pluto_vl_lookup_entry_s.py rename to gen/ics/structures/s_pluto_vl_lookup_entry_s.py diff --git a/ics/structures/s_pluto_vl_policing_entry_s.py b/gen/ics/structures/s_pluto_vl_policing_entry_s.py similarity index 100% rename from ics/structures/s_pluto_vl_policing_entry_s.py rename to gen/ics/structures/s_pluto_vl_policing_entry_s.py diff --git a/ics/structures/s_pluto_vlan_lookup_s.py b/gen/ics/structures/s_pluto_vlan_lookup_s.py similarity index 100% rename from ics/structures/s_pluto_vlan_lookup_s.py rename to gen/ics/structures/s_pluto_vlan_lookup_s.py diff --git a/ics/structures/s_rad_moon_duo_settings.py b/gen/ics/structures/s_rad_moon_duo_settings.py similarity index 100% rename from ics/structures/s_rad_moon_duo_settings.py rename to gen/ics/structures/s_rad_moon_duo_settings.py diff --git a/ics/structures/s_red2_settings.py b/gen/ics/structures/s_red2_settings.py similarity index 100% rename from ics/structures/s_red2_settings.py rename to gen/ics/structures/s_red2_settings.py diff --git a/ics/structures/s_red_settings.py b/gen/ics/structures/s_red_settings.py similarity index 100% rename from ics/structures/s_red_settings.py rename to gen/ics/structures/s_red_settings.py diff --git a/ics/structures/s_spi_port_setting.py b/gen/ics/structures/s_spi_port_setting.py similarity index 100% rename from ics/structures/s_spi_port_setting.py rename to gen/ics/structures/s_spi_port_setting.py diff --git a/ics/structures/s_spi_port_settings.py b/gen/ics/structures/s_spi_port_settings.py similarity index 100% rename from ics/structures/s_spi_port_settings.py rename to gen/ics/structures/s_spi_port_settings.py diff --git a/ics/structures/s_text_api_settings.py b/gen/ics/structures/s_text_api_settings.py similarity index 100% rename from ics/structures/s_text_api_settings.py rename to gen/ics/structures/s_text_api_settings.py diff --git a/ics/structures/s_vivid_can_settings.py b/gen/ics/structures/s_vivid_can_settings.py similarity index 100% rename from ics/structures/s_vivid_can_settings.py rename to gen/ics/structures/s_vivid_can_settings.py diff --git a/ics/structures/s_wil_bridge_config.py b/gen/ics/structures/s_wil_bridge_config.py similarity index 100% rename from ics/structures/s_wil_bridge_config.py rename to gen/ics/structures/s_wil_bridge_config.py diff --git a/ics/structures/s_wil_connection_settings.py b/gen/ics/structures/s_wil_connection_settings.py similarity index 100% rename from ics/structures/s_wil_connection_settings.py rename to gen/ics/structures/s_wil_connection_settings.py diff --git a/ics/structures/s_wil_fault_servicing_settings.py b/gen/ics/structures/s_wil_fault_servicing_settings.py similarity index 100% rename from ics/structures/s_wil_fault_servicing_settings.py rename to gen/ics/structures/s_wil_fault_servicing_settings.py diff --git a/ics/structures/s_wil_network_data_capture_settings.py b/gen/ics/structures/s_wil_network_data_capture_settings.py similarity index 100% rename from ics/structures/s_wil_network_data_capture_settings.py rename to gen/ics/structures/s_wil_network_data_capture_settings.py diff --git a/ics/structures/scan_hub_settings.py b/gen/ics/structures/scan_hub_settings.py similarity index 100% rename from ics/structures/scan_hub_settings.py rename to gen/ics/structures/scan_hub_settings.py diff --git a/ics/structures/scan_sleep_id.py b/gen/ics/structures/scan_sleep_id.py similarity index 100% rename from ics/structures/scan_sleep_id.py rename to gen/ics/structures/scan_sleep_id.py diff --git a/ics/structures/secu_avb_settings.py b/gen/ics/structures/secu_avb_settings.py similarity index 100% rename from ics/structures/secu_avb_settings.py rename to gen/ics/structures/secu_avb_settings.py diff --git a/ics/structures/secu_settings.py b/gen/ics/structures/secu_settings.py similarity index 100% rename from ics/structures/secu_settings.py rename to gen/ics/structures/secu_settings.py diff --git a/ics/structures/seevb_settings.py b/gen/ics/structures/seevb_settings.py similarity index 100% rename from ics/structures/seevb_settings.py rename to gen/ics/structures/seevb_settings.py diff --git a/ics/structures/serdescam_settings.py b/gen/ics/structures/serdescam_settings.py similarity index 100% rename from ics/structures/serdescam_settings.py rename to gen/ics/structures/serdescam_settings.py diff --git a/ics/structures/serdesgen_settings.py b/gen/ics/structures/serdesgen_settings.py similarity index 100% rename from ics/structures/serdesgen_settings.py rename to gen/ics/structures/serdesgen_settings.py diff --git a/ics/structures/serdespoc_settings.py b/gen/ics/structures/serdespoc_settings.py similarity index 100% rename from ics/structures/serdespoc_settings.py rename to gen/ics/structures/serdespoc_settings.py diff --git a/ics/structures/sfp_id.py b/gen/ics/structures/sfp_id.py similarity index 100% rename from ics/structures/sfp_id.py rename to gen/ics/structures/sfp_id.py diff --git a/ics/structures/sievb_settings.py b/gen/ics/structures/sievb_settings.py similarity index 100% rename from ics/structures/sievb_settings.py rename to gen/ics/structures/sievb_settings.py diff --git a/ics/structures/sobd2_lc_settings.py b/gen/ics/structures/sobd2_lc_settings.py similarity index 100% rename from ics/structures/sobd2_lc_settings.py rename to gen/ics/structures/sobd2_lc_settings.py diff --git a/ics/structures/sobd2_pro_settings.py b/gen/ics/structures/sobd2_pro_settings.py similarity index 100% rename from ics/structures/sobd2_pro_settings.py rename to gen/ics/structures/sobd2_pro_settings.py diff --git a/ics/structures/sobd2_sim_settings.py b/gen/ics/structures/sobd2_sim_settings.py similarity index 100% rename from ics/structures/sobd2_sim_settings.py rename to gen/ics/structures/sobd2_sim_settings.py diff --git a/ics/structures/software_update_command.py b/gen/ics/structures/software_update_command.py similarity index 100% rename from ics/structures/software_update_command.py rename to gen/ics/structures/software_update_command.py diff --git a/ics/structures/spy_filter_long.py b/gen/ics/structures/spy_filter_long.py similarity index 100% rename from ics/structures/spy_filter_long.py rename to gen/ics/structures/spy_filter_long.py diff --git a/ics/structures/srad_comet_settings.py b/gen/ics/structures/srad_comet_settings.py similarity index 100% rename from ics/structures/srad_comet_settings.py rename to gen/ics/structures/srad_comet_settings.py diff --git a/ics/structures/srad_epsilon_settings.py b/gen/ics/structures/srad_epsilon_settings.py similarity index 100% rename from ics/structures/srad_epsilon_settings.py rename to gen/ics/structures/srad_epsilon_settings.py diff --git a/ics/structures/srad_epsilon_switch_settings.py b/gen/ics/structures/srad_epsilon_switch_settings.py similarity index 100% rename from ics/structures/srad_epsilon_switch_settings.py rename to gen/ics/structures/srad_epsilon_switch_settings.py diff --git a/ics/structures/srad_galaxy_settings.py b/gen/ics/structures/srad_galaxy_settings.py similarity index 100% rename from ics/structures/srad_galaxy_settings.py rename to gen/ics/structures/srad_galaxy_settings.py diff --git a/ics/structures/srad_gigalog_settings.py b/gen/ics/structures/srad_gigalog_settings.py similarity index 100% rename from ics/structures/srad_gigalog_settings.py rename to gen/ics/structures/srad_gigalog_settings.py diff --git a/ics/structures/srad_gigastar_settings.py b/gen/ics/structures/srad_gigastar_settings.py similarity index 100% rename from ics/structures/srad_gigastar_settings.py rename to gen/ics/structures/srad_gigastar_settings.py diff --git a/ics/structures/srad_gptp_and_tap_settings_s.py b/gen/ics/structures/srad_gptp_and_tap_settings_s.py similarity index 100% rename from ics/structures/srad_gptp_and_tap_settings_s.py rename to gen/ics/structures/srad_gptp_and_tap_settings_s.py diff --git a/ics/structures/srad_gptp_settings_s.py b/gen/ics/structures/srad_gptp_settings_s.py similarity index 100% rename from ics/structures/srad_gptp_settings_s.py rename to gen/ics/structures/srad_gptp_settings_s.py diff --git a/ics/structures/srad_jupiter_settings.py b/gen/ics/structures/srad_jupiter_settings.py similarity index 100% rename from ics/structures/srad_jupiter_settings.py rename to gen/ics/structures/srad_jupiter_settings.py diff --git a/ics/structures/srad_jupiter_switch_settings.py b/gen/ics/structures/srad_jupiter_switch_settings.py similarity index 100% rename from ics/structures/srad_jupiter_switch_settings.py rename to gen/ics/structures/srad_jupiter_switch_settings.py diff --git a/ics/structures/srad_moon2_settings.py b/gen/ics/structures/srad_moon2_settings.py similarity index 100% rename from ics/structures/srad_moon2_settings.py rename to gen/ics/structures/srad_moon2_settings.py diff --git a/ics/structures/srad_moon3_settings.py b/gen/ics/structures/srad_moon3_settings.py similarity index 100% rename from ics/structures/srad_moon3_settings.py rename to gen/ics/structures/srad_moon3_settings.py diff --git a/ics/structures/srad_pluto_settings.py b/gen/ics/structures/srad_pluto_settings.py similarity index 100% rename from ics/structures/srad_pluto_settings.py rename to gen/ics/structures/srad_pluto_settings.py diff --git a/ics/structures/srad_star2_settings.py b/gen/ics/structures/srad_star2_settings.py similarity index 100% rename from ics/structures/srad_star2_settings.py rename to gen/ics/structures/srad_star2_settings.py diff --git a/ics/structures/srad_super_moon_settings.py b/gen/ics/structures/srad_super_moon_settings.py similarity index 100% rename from ics/structures/srad_super_moon_settings.py rename to gen/ics/structures/srad_super_moon_settings.py diff --git a/ics/structures/srada2_b_settings.py b/gen/ics/structures/srada2_b_settings.py similarity index 100% rename from ics/structures/srada2_b_settings.py rename to gen/ics/structures/srada2_b_settings.py diff --git a/ics/structures/sradbms_settings.py b/gen/ics/structures/sradbms_settings.py similarity index 100% rename from ics/structures/sradbms_settings.py rename to gen/ics/structures/sradbms_settings.py diff --git a/ics/structures/st_api_firmware_info.py b/gen/ics/structures/st_api_firmware_info.py similarity index 100% rename from ics/structures/st_api_firmware_info.py rename to gen/ics/structures/st_api_firmware_info.py diff --git a/ics/structures/st_chip_versions.py b/gen/ics/structures/st_chip_versions.py similarity index 100% rename from ics/structures/st_chip_versions.py rename to gen/ics/structures/st_chip_versions.py diff --git a/ics/structures/st_cm_iso157652_rx_message.py b/gen/ics/structures/st_cm_iso157652_rx_message.py similarity index 100% rename from ics/structures/st_cm_iso157652_rx_message.py rename to gen/ics/structures/st_cm_iso157652_rx_message.py diff --git a/ics/structures/st_cm_iso157652_tx_message.py b/gen/ics/structures/st_cm_iso157652_tx_message.py similarity index 100% rename from ics/structures/st_cm_iso157652_tx_message.py rename to gen/ics/structures/st_cm_iso157652_tx_message.py diff --git a/ics/structures/start_dhcp_server_command.py b/gen/ics/structures/start_dhcp_server_command.py similarity index 100% rename from ics/structures/start_dhcp_server_command.py rename to gen/ics/structures/start_dhcp_server_command.py diff --git a/ics/structures/stop_dhcp_server_command.py b/gen/ics/structures/stop_dhcp_server_command.py similarity index 100% rename from ics/structures/stop_dhcp_server_command.py rename to gen/ics/structures/stop_dhcp_server_command.py diff --git a/ics/structures/svcan3_settings.py b/gen/ics/structures/svcan3_settings.py similarity index 100% rename from ics/structures/svcan3_settings.py rename to gen/ics/structures/svcan3_settings.py diff --git a/ics/structures/svcan412_settings.py b/gen/ics/structures/svcan412_settings.py similarity index 100% rename from ics/structures/svcan412_settings.py rename to gen/ics/structures/svcan412_settings.py diff --git a/ics/structures/svcan4_ind_settings.py b/gen/ics/structures/svcan4_ind_settings.py similarity index 100% rename from ics/structures/svcan4_ind_settings.py rename to gen/ics/structures/svcan4_ind_settings.py diff --git a/ics/structures/svcan4_settings.py b/gen/ics/structures/svcan4_settings.py similarity index 100% rename from ics/structures/svcan4_settings.py rename to gen/ics/structures/svcan4_settings.py diff --git a/ics/structures/svcanrf_settings.py b/gen/ics/structures/svcanrf_settings.py similarity index 100% rename from ics/structures/svcanrf_settings.py rename to gen/ics/structures/svcanrf_settings.py diff --git a/ics/structures/swcan_settings.py b/gen/ics/structures/swcan_settings.py similarity index 100% rename from ics/structures/swcan_settings.py rename to gen/ics/structures/swcan_settings.py diff --git a/ics/structures/system_identity.py b/gen/ics/structures/system_identity.py similarity index 100% rename from ics/structures/system_identity.py rename to gen/ics/structures/system_identity.py diff --git a/ics/structures/tag_options_find_neo_ex.py b/gen/ics/structures/tag_options_find_neo_ex.py similarity index 100% rename from ics/structures/tag_options_find_neo_ex.py rename to gen/ics/structures/tag_options_find_neo_ex.py diff --git a/ics/structures/tag_options_open_neo_ex.py b/gen/ics/structures/tag_options_open_neo_ex.py similarity index 100% rename from ics/structures/tag_options_open_neo_ex.py rename to gen/ics/structures/tag_options_open_neo_ex.py diff --git a/ics/structures/tagicsneo_vi_command.py b/gen/ics/structures/tagicsneo_vi_command.py similarity index 100% rename from ics/structures/tagicsneo_vi_command.py rename to gen/ics/structures/tagicsneo_vi_command.py diff --git a/ics/structures/timestamp_.py b/gen/ics/structures/timestamp_.py similarity index 100% rename from ics/structures/timestamp_.py rename to gen/ics/structures/timestamp_.py diff --git a/ics/structures/timesync_icshardware_settings.py b/gen/ics/structures/timesync_icshardware_settings.py similarity index 100% rename from ics/structures/timesync_icshardware_settings.py rename to gen/ics/structures/timesync_icshardware_settings.py diff --git a/ics/structures/uart_port_config.py b/gen/ics/structures/uart_port_config.py similarity index 100% rename from ics/structures/uart_port_config.py rename to gen/ics/structures/uart_port_config.py diff --git a/ics/structures/uart_port_data.py b/gen/ics/structures/uart_port_data.py similarity index 100% rename from ics/structures/uart_port_data.py rename to gen/ics/structures/uart_port_data.py diff --git a/ics/structures/uart_port_port_bytes.py b/gen/ics/structures/uart_port_port_bytes.py similarity index 100% rename from ics/structures/uart_port_port_bytes.py rename to gen/ics/structures/uart_port_port_bytes.py diff --git a/ics/structures/uart_settings.py b/gen/ics/structures/uart_settings.py similarity index 100% rename from ics/structures/uart_settings.py rename to gen/ics/structures/uart_settings.py diff --git a/ics/structures/version_report.py b/gen/ics/structures/version_report.py similarity index 100% rename from ics/structures/version_report.py rename to gen/ics/structures/version_report.py diff --git a/ics/structures/w_bms_manager_reset.py b/gen/ics/structures/w_bms_manager_reset.py similarity index 100% rename from ics/structures/w_bms_manager_reset.py rename to gen/ics/structures/w_bms_manager_reset.py diff --git a/ics/structures/w_bms_manager_set_lock.py b/gen/ics/structures/w_bms_manager_set_lock.py similarity index 100% rename from ics/structures/w_bms_manager_set_lock.py rename to gen/ics/structures/w_bms_manager_set_lock.py diff --git a/ics/structures/wbms_gateway_settings.py b/gen/ics/structures/wbms_gateway_settings.py similarity index 100% rename from ics/structures/wbms_gateway_settings.py rename to gen/ics/structures/wbms_gateway_settings.py diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 128ff0ef6..8e836593b 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -2,14 +2,18 @@ import re import os.path from collections import OrderedDict -import sys from subprocess import STDOUT, CalledProcessError, run, PIPE from enum import Enum, auto import random -import ctypes +from pathlib import Path +import sys +import ctypes #used with eval... debug_print = False + +OUTPUT_DIR = Path("./gen/ics") + __unique_numbers = [] @@ -136,7 +140,7 @@ def is_line_start_of_object(line): for regex in _start_of_obj_blacklist: if bool(regex.search(line)): return False - return bool(re.search("\btypedef struct$|struct$|struct \S*$|enum$|enum |union$|union ", line)) + return bool(re.search(r"\btypedef struct$|struct$|struct \S*$|enum$|enum |union$|union ", line)) # This contains all the objects that don't pass convert_to_ctype_object @@ -173,7 +177,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): new_obj = CObject() new_obj.packing = pack_size # Grab the object name - name = re.sub("typedef|struct|enum|union|\{|\s*", "", line) + name = re.sub(r"typedef|struct|enum|union|\{|\s*", "", line) # Only append the name if its not anonymous if name: new_obj.names.append(name) @@ -206,7 +210,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): opening_bracket_count -= line.count("}") assert opening_bracket_count >= 0 # Determine if we are at the end of the struct - if opening_bracket_count == 0 and re.match("}.*;", line): + if opening_bracket_count == 0 and re.match(r"}.*;", line): extra_names = "".join(line.split()).strip("};").split(",") try: # Remove dangling empty string @@ -219,7 +223,7 @@ def parse_object(f, pos=-1, pack_size=None, is_embedded=False): finished = True break # Nothing to do with this line anymore - if re.match(".*{.*", line): + if re.match(r".*{.*", line): continue # Parse the member if new_obj.data_type == DataType.Enum: @@ -275,18 +279,18 @@ def parse_struct_member(buffered_line): # for line in buffered_line.split('\n'): # new_buffered_line += re.sub('{|union|}|;', '', line) + '\n' # buffered_line = new_buffered_line - buffered_line = re.sub("\s*\[", "[", " ".join(buffered_line.split())) + buffered_line = re.sub(r"\s*\[", "[", " ".join(buffered_line.split())) # print("DEBUG AFTER:", buffered_line) # Figure out if we are an array type and get the array length - array_subsection = re.search("\[.*\]", buffered_line) + array_subsection = re.search(r"\[.*\]", buffered_line) is_array = array_subsection is not None if is_array: array_length = int(eval(array_subsection.group(0).strip("[]"))) else: array_length = 0 # Remove the array portion - buffered_line = re.sub("\[.*\]", "", buffered_line) + buffered_line = re.sub(r"\[.*\]", "", buffered_line) # split up the remaining words = buffered_line.split() if not len(words): @@ -294,7 +298,7 @@ def parse_struct_member(buffered_line): if ":" in words: # we are a bitfield ;( try: - bitwise_length = int(re.search("\d*", words[words.index(":") + 1]).group(0)) + bitwise_length = int(re.search(r"\d*", words[words.index(":") + 1]).group(0)) except Exception as ex: if debug_print: print("EXCEPTION:", ex) @@ -320,15 +324,15 @@ def parse_struct_member(buffered_line): # print("DEBUG:", words, buffered_line) # remove stuff that shouldn't be in the name - data_name = re.sub("{|{|}|\s*", "", data_name) - data_type = re.sub("union|{|{|}|^struct", "", data_type) + data_name = re.sub(r"{|{|}|\s*", "", data_name) + data_type = re.sub(r"union|{|{|}|^struct", "", data_type) data_type = data_type.strip() if not data_type: data_name = "" # Any object that starts with _ won't be imported with import * statement so lets push it to the end if data_type.startswith("_") and not convert_to_ctype_object(data_type): data_type = reverse_leading_underscores(data_type) - return re.sub("\[.*\]|;", "", data_name), data_type, array_length, bitwise_length + return re.sub(r"\[.*\]|;", "", data_name), data_type, array_length, bitwise_length def parse_enum_member(buffered_line): @@ -336,12 +340,12 @@ def parse_enum_member(buffered_line): # VARIABLE_NAME = 0, # remove all unneeded whitespace - buffered_line = re.sub("\s*\[", "[", " ".join(buffered_line.split())) + buffered_line = re.sub(r"\s*\[", "[", " ".join(buffered_line.split())) if "=" in buffered_line: name = buffered_line.split("=")[0] value = buffered_line.split("=")[1] - value = re.sub("{|{|}|,|\s*", "", value) + value = re.sub(r"{|{|}|,|\s*", "", value) try: value = int(value) except ValueError as ex: @@ -350,14 +354,14 @@ def parse_enum_member(buffered_line): elif "0B" in value.upper(): value = int(value, 2) else: - name = re.sub(",", "", buffered_line) + name = re.sub(r",", "", buffered_line) value = None return name, value def get_struct_name_from_header(line): # line.split('struct ')[-1] - struct_name = re.sub("typedef|struct|enum|union|\{|\s*", "", line) + struct_name = re.sub(r"typedef|struct|enum|union|\{|\s*", "", line) if not struct_name: # == 'typedef struct': anonymous_struct = True struct_name = "anonymous" @@ -389,9 +393,9 @@ def get_struct_names(data): def get_preferred_struct_name(_names): # Remove the reference names = _names[:] - r = re.compile("^[sS].*") - r_underscore = re.compile("^(?![_]).*") - r_end_t = re.compile("^.*(_[tT])$") + r = re.compile(r"^[sS].*") + r_underscore = re.compile(r"^(?![_]).*") + r_end_t = re.compile(r"^.*(_[tT])$") # Remove all instances of _t at end unless that is all we have setting_structures_with_t = list(filter(r_end_t.match, names)) if len(setting_structures_with_t): @@ -415,8 +419,8 @@ def get_preferred_struct_name(_names): def convert_to_snake_case(name): # return name - s1 = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name) - s2 = re.sub("([a-z0-9])([A-Z])", r"\1_\2", s1).lower() + s1 = re.sub(r"(.)([A-Z][a-z]+)", r"\1_\2", name) + s2 = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", s1).lower() return re.sub(r"(_)\1{1,}", "_", s2) @@ -535,16 +539,16 @@ def parse_header_file(filename): # Remove preprocessor statements if line.startswith("#"): # get the pack size - if re.match("#pragma.*pack.*.*pop.*", line): + if re.match(r"#pragma.*pack.*.*pop.*", line): if pack_size_stack: pack_size = pack_size_stack.pop() else: pack_size = 0 - elif re.match("#pragma.*pack.*.*push.*", line) or re.match("#pragma.*pack\(\d\)", line): + elif re.match(r"#pragma.*pack.*.*push.*", line) or re.match(r"#pragma.*pack\(\d\)", line): pushing = "push" in line try: last = pack_size - pack_size = int(re.search("\d{1,}", line).group(0)) + pack_size = int(re.search(r"\d{1,}", line).group(0)) if pushing: pack_size_stack.append(last) except AttributeError: @@ -554,7 +558,7 @@ def parse_header_file(filename): if debug_print: print("PACK SIZE:", pack_size) elif ( - re.match("#define.*", line) + re.match(r"#define.*", line) and len(line.split(" ")) == 3 and not "\\" in line and not "sizeof" in line @@ -624,13 +628,14 @@ def generate(filename="include/ics/icsnVC40.h"): with open(f"{basename}.enums.json", "w+") as f: f.write(j) # generate the python files - output_dir = "./ics/structures" + output_dir = OUTPUT_DIR / "structures" print(f"Removing {output_dir}...") try: shutil.rmtree(output_dir) except FileNotFoundError: pass ignore_names = [ + "fsid_t__", "__fsid_t", "__darwin_pthread_handler_rec", "_mbstate_t", @@ -709,8 +714,8 @@ def generate(filename="include/ics/icsnVC40.h"): with open(os.path.join(output_dir, "__init__.py"), "w+") as f: f.write("__all__ = [\n") for file_name in file_names: - fname = re.sub("(\.py)", "", file_name) - r = re.compile("(" + fname + ")") + fname = re.sub(r"(\.py)", "", file_name) + r = re.compile(r"(" + fname + ")") if list(filter(r.match, ignore_names)): # print("IGNORING:", fname) continue @@ -719,11 +724,12 @@ def generate(filename="include/ics/icsnVC40.h"): f.write('",\n') f.write("]\n") # write a hidden_import python file for pyinstaller - with open("./ics/hiddenimports.py", "w+") as f: + hidden_imports_path = OUTPUT_DIR / "hiddenimports.py" + with open(hidden_imports_path, "w+") as f: f.write("hidden_imports = [\n") for file_name in file_names: - fname = re.sub("(\.py)", "", file_name) - r = re.compile("(" + fname + ")") + fname = re.sub(r"(\.py)", "", file_name) + r = re.compile(r"(" + fname + ")") if list(filter(r.match, ignore_names)): # print("IGNORING:", fname) continue @@ -731,18 +737,20 @@ def generate(filename="include/ics/icsnVC40.h"): f.write("]\n\n") # Verify We can at least import all of the modules - quick check to make sure parser worked. - # TODO: This is broke - """ - sys.path.insert(0, output_dir) + ics_module_path = OUTPUT_DIR.parent.resolve() + # Add the module to the eval sys.path. + eval("""sys.path.insert(0, f"{ics_module_path}")""") for file_name in file_names: + if file_name.startswith("__"): + continue import_line = "from ics.structures import {}".format( - re.sub('(\.py)', '', file_name)) + re.sub(r'(\.py)', '', file_name)) try: - print("Importing / Verifying {}...".format(file_name)) + print(f"Importing / Verifying {output_dir / file_name}...") exec(import_line) except Exception as ex: - print("ERROR: ", ex, 'IMPORT LINE:', import_line) - """ + print(f"""ERROR: {ex} IMPORT LINE: '{import_line}'""") + raise ex print("Done.") @@ -835,7 +843,7 @@ def _write_member(f, member, is_struct_or_union=False): # Ignore the actual object name if name == c_object.preferred_name: continue - f.write("{} = {}\n".format(re.sub("^\*", "", name), c_object.preferred_name)) + f.write("{} = {}\n".format(re.sub(r"^\*", "", name), c_object.preferred_name)) f.write("\n") @@ -900,12 +908,42 @@ def _generate_inner_objects(f, c_object): _write_c_object(f, c_object) return fname, fname_with_path +def create_ics_init(): + fdata = \ +"""try: + import ics.__version + __version__ = ics.__version.__version__ + __full_version__ = ics.__version.__full_version__ +except Exception as ex: + print(ex) + +try: + # Release environment + #print("Release") + from ics.ics import * + from ics.structures import * + from ics.hiddenimports import hidden_imports +except Exception as ex: + # Build environment + #print("Debug", ex) + from ics import * + from ics.structures import * + from ics.hiddenimports import hidden_imports + +""" + init_path = OUTPUT_DIR / "__init__.py" + print(f"Creating '{init_path}'...") + with open(init_path, "w+") as f: + f.write(fdata) def generate_all_files(): import sys import os import pathlib + print(f"Creating directory '{OUTPUT_DIR}'...") + OUTPUT_DIR.mkdir(parents=True, exist_ok=True) + create_ics_init() filenames = ("icsnVC40.h", "icsnVC40Internal.h") for filename in filenames: path = pathlib.Path("include/ics/") @@ -916,6 +954,5 @@ def generate_all_files(): print(f"Parsing {str(path)}...") generate(str(path)) - if __name__ == "__main__": generate_all_files() diff --git a/ics/__init__.py b/ics/__init__.py deleted file mode 100644 index d7797467f..000000000 --- a/ics/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ - -from ics.structures import * - -try: - from ics import * - from ics.ics import * - from ics.structures import * - from ics.hiddenimports import hidden_imports -except Exception as ex: - print(ex) - from ics.ics import * - from ics.ics.ics import * - from ics.ics.structures import * - from ics.ics.hiddenimports import hidden_imports \ No newline at end of file diff --git a/icsnVC40_processed.h b/icsnVC40_processed.h index 1a4ab2108..1ea9a38f6 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -18,11 +18,16 @@ 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) + typedef signed char int8_t; typedef short int16_t; typedef int int32_t; @@ -31,6 +36,7 @@ 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; @@ -39,6 +45,7 @@ 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; @@ -47,9 +54,11 @@ 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) + #pragma warning(disable : 4200) typedef struct SExtendedDataFlashHeader { @@ -57,6 +66,7 @@ typedef struct SExtendedDataFlashHeader uint16_t chksum; uint32_t len; } ExtendedDataFlashHeader_t; + typedef struct { uint32_t DeviceType; @@ -64,17 +74,24 @@ typedef struct int32_t NumberOfClients; int32_t SerialNumber; int32_t MaxAllowedClients; + } NeoDevice; + typedef struct _NeoDeviceEx { NeoDevice neoDevice; + uint32_t FirmwareMajor; uint32_t FirmwareMinor; + uint32_t Status; uint32_t Options; + void* pAvailWIFINetwork; void* pWIFIInterfaceInfo; + int isEthernetDevice; + uint8_t MACAddress[6]; uint16_t hardwareRev; uint16_t revReserved; @@ -82,15 +99,19 @@ typedef struct _NeoDeviceEx uint16_t tcpPort; uint16_t Reserved0; uint32_t Reserved1; + } NeoDeviceEx; + typedef union tagOptionsOpenNeoEx { struct { int32_t iNetworkID; } CANOptions; + uint32_t Reserved[16]; } OptionsOpenNeoEx, *POptionsOpenNeoEx; + typedef union tagOptionsFindNeoEx { struct @@ -98,17 +119,22 @@ typedef union tagOptionsFindNeoEx int32_t iNetworkID; } CANOptions; uint32_t Reserved[16]; + } 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; + int32_t iMainFirmDateDay; int32_t iMainFirmDateMonth; int32_t iMainFirmDateYear; @@ -116,27 +142,36 @@ typedef struct _stAPIFirmwareInfo int32_t iMainFirmDateMin; int32_t iMainFirmDateSecond; int32_t iMainFirmChkSum; + 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) + #pragma pack(push, 2) + enum { AUTO, USE_TQ }; + enum { BPS20, @@ -158,6 +193,7 @@ enum CAN_BPS8000, CAN_BPS10000, }; + enum { NORMAL = 0, @@ -166,6 +202,7 @@ enum LISTEN_ONLY = 3, LISTEN_ALL = 7 }; + typedef struct { uint8_t Mode; @@ -180,6 +217,7 @@ typedef struct uint8_t auto_baud; uint8_t innerFrameDelay25us; } CAN_SETTINGS; + enum { NO_CANFD, @@ -188,6 +226,7 @@ enum CANFD_ENABLED_ISO, CANFD_BRS_ENABLED_ISO }; + typedef struct _CANFD_SETTINGS { uint8_t FDMode; @@ -200,6 +239,7 @@ typedef struct _CANFD_SETTINGS uint8_t FDTDC; uint8_t reserved; } CANFD_SETTINGS; + enum { SWCAN_AUTOSWITCH_DISABLED, @@ -207,6 +247,7 @@ enum SWCAN_AUTOSWITCH_WITH_RESISTOR, SWCAN_AUTOSWITCH_DISABLED_RESISTOR_ENABLED }; + typedef struct { uint8_t Mode; @@ -222,6 +263,7 @@ typedef struct uint8_t auto_baud; uint8_t RESERVED; } SWCAN_SETTINGS; + enum { BPS5000, @@ -234,11 +276,13 @@ enum BPS100000, BPS117647 }; + enum { RESISTOR_ON, RESISTOR_OFF }; + enum { SLEEP_MODE, @@ -246,6 +290,7 @@ enum NORMAL_MODE, FAST_MODE }; + typedef struct _LIN_SETTINGS { uint32_t Baudrate; @@ -255,12 +300,14 @@ typedef struct _LIN_SETTINGS uint8_t MasterResistor; uint8_t Mode; } LIN_SETTINGS; + typedef struct { uint16_t time_500us; uint16_t k; uint16_t l; } ISO9141_KEYWORD2000__INIT_STEP; + typedef struct { uint32_t Baudrate; @@ -273,6 +320,7 @@ typedef struct uint16_t p4_500us; uint16_t chksum_enabled; } ISO9141_KEYWORD2000_SETTINGS; + typedef struct _UART_SETTINGS { uint16_t Baudrate; @@ -295,10 +343,12 @@ typedef struct _UART_SETTINGS }; }; } UART_SETTINGS; + typedef struct { uint16_t enable_convert_mode; } J1708_SETTINGS; + typedef struct _SRedSettings { CAN_SETTINGS can1; @@ -306,6 +356,7 @@ typedef struct _SRedSettings LIN_SETTINGS lin1; LIN_SETTINGS lin2; } SRedSettings; + typedef struct _STextAPISettings { uint32_t can1_tx_id; @@ -330,7 +381,9 @@ typedef struct _STextAPISettings }; uint32_t DWord; } can2_options; + uint32_t network_enables; + uint32_t can3_tx_id; uint32_t can3_rx_id; union @@ -342,6 +395,7 @@ typedef struct _STextAPISettings }; uint32_t DWord; } can3_options; + uint32_t can4_tx_id; uint32_t can4_rx_id; union @@ -353,8 +407,11 @@ typedef struct _STextAPISettings }; uint32_t DWord; } can4_options; + uint32_t reserved[5]; + } STextAPISettings; + typedef union _stChipVersions { struct @@ -368,6 +425,7 @@ typedef union _stChipVersions uint8_t jpic_maj; uint8_t jpic_min; } fire_versions; + struct { uint8_t mpic_maj; @@ -379,26 +437,31 @@ typedef union _stChipVersions 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 mpic_maj; uint8_t mpic_min; } vcanrf_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; @@ -408,11 +471,13 @@ typedef union _stChipVersions 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; @@ -422,11 +487,13 @@ typedef union _stChipVersions 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; @@ -467,21 +534,25 @@ typedef union _stChipVersions 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 mchip_major; @@ -494,6 +565,7 @@ typedef union _stChipVersions uint8_t mchip_major; uint8_t mchip_minor; } jupiter_versions; + struct { uint8_t zchip_major; @@ -521,11 +593,13 @@ typedef union _stChipVersions 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; @@ -533,21 +607,25 @@ typedef union _stChipVersions 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; @@ -555,18 +633,22 @@ typedef union _stChipVersions 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; + } stChipVersions; + typedef struct _SNeoMostGatewaySettings { uint16_t netId; uint8_t zero0; uint8_t Config; } SNeoMostGatewaySettings; + enum { OPETH_FUNC_TAP = 0, @@ -576,6 +658,7 @@ enum OPETH_FUNC_RAW_MEDIA_CONVERTER2, OPETH_FUNC_RAW_MEDIA_CONVERTER2_LOW_LATENCY, }; + typedef struct OP_ETH_GENERAL_SETTINGS_t { uint8_t ucInterfaceType; @@ -599,6 +682,7 @@ typedef struct OP_ETH_GENERAL_SETTINGS_t uint32_t uFlags; }; } OP_ETH_GENERAL_SETTINGS; + typedef struct SRAD_GPTP_SETTINGS_s { uint32_t neighborPropDelayThresh; @@ -617,26 +701,31 @@ typedef struct SRAD_GPTP_SETTINGS_s uint8_t enableClockSyntonization; uint8_t rsvd[15]; } RAD_GPTP_SETTINGS; + typedef struct SRAD_GPTP_AND_TAP_SETTINGS_s { RAD_GPTP_SETTINGS gPTP; OP_ETH_GENERAL_SETTINGS tap; } RAD_GPTP_AND_TAP_SETTINGS; + typedef struct HW_ETH_SETTINGS_t { OP_ETH_GENERAL_SETTINGS General_Settings; } HW_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; @@ -645,6 +734,7 @@ typedef struct OP_ETH_SETTINGS_t { struct { + unsigned char mac_addr1[6]; unsigned char mac_addr2[6]; unsigned short mac_spoofing_en : 1; @@ -656,6 +746,7 @@ typedef struct OP_ETH_SETTINGS_t unsigned char reserved0[14]; }; } OP_ETH_SETTINGS; + typedef struct ETHERNET_SETTINGS_t { uint8_t duplex; @@ -672,8 +763,10 @@ typedef enum SFP_ID_ICS_MV2112A2, SFP_ID_ICS_MV2221MB1, SFP_ID_ICS_MV3244, + SFP_ID_MAX, } SfpId; + typedef struct ETHERNET_SETTINGS2_t { uint8_t flags; @@ -693,6 +786,7 @@ typedef struct ETHERNET10G_SETTINGS_t uint8_t link_speed; uint8_t rsvd2[7]; } ETHERNET10G_SETTINGS; + typedef struct ETHERNET10T1S_SETTINGS_t { uint8_t max_burst_count; @@ -709,11 +803,13 @@ typedef struct MACSEC_VLANTAG_t uint16_t VID; uint8_t PRI_CFI; } MACSEC_VLANTAG; + typedef struct MACSEC_MPLS_OUTER_t { uint32_t MPLS_label; uint8_t exp; } MACSEC_MPLS_OUTER; + typedef enum MACSEC_PACKET_TYPE_t { MACSEC_PACKET_NO_VLAN_OR_MPLS = 0, @@ -724,6 +820,7 @@ typedef enum MACSEC_PACKET_TYPE_t MACSEC_PACKET_DUAL_VLAN_FOLLOW_BY_MPLS = 5, MACSEC_PACKET_UNSUPPORTED_TYPE = 6 } MACSEC_PACKET_TYPE; + typedef struct MACSecRule_t { uint8_t index; @@ -759,6 +856,7 @@ typedef struct MACSecRule_t uint8_t rsvd[5]; uint8_t enable; } MACSecRule; + typedef struct MACSecMap_t { uint8_t index; @@ -771,6 +869,7 @@ typedef struct MACSecMap_t uint8_t rsvd[5]; uint8_t enable; } MACSecMap; + typedef enum MACSEC_VALIDATEFRAME_t { MACSEC_VF_DISABLED = 0, @@ -778,6 +877,7 @@ typedef enum MACSEC_VALIDATEFRAME_t MACSEC_VF_STRICT = 2, MACSEC_VF_NA = 3 } MACSEC_VALIDATEFRAME; + typedef enum MACSEC_STRIP_SECTAG_ICV_t { MACSEC_SECTAG_ICV_BOTH_STRIP = 0, @@ -785,6 +885,7 @@ typedef enum MACSEC_STRIP_SECTAG_ICV_t MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2, MACSEC_SECTAG_ICV_NO_STRIP = 3 } MACSEC_STRIP_SECTAG_ICV; + typedef enum MACSEC_CIPHER_SUITE_t { MACSEC_CIPHER_GCM_AES_128 = 0, @@ -792,6 +893,7 @@ typedef enum MACSEC_CIPHER_SUITE_t MACSEC_CIPHER_GCM_AES_128_XPN = 2, MACSEC_CIPHER_GCM_AES_256_XPN = 3 } MACSEC_CIPHER_SUITE; + typedef struct MACSecSecY_t { uint8_t index; @@ -810,6 +912,7 @@ typedef struct MACSecSecY_t uint8_t rsvd[6]; uint8_t enable; } MACSecSecY; + typedef struct MACSecSc_t { uint8_t index; @@ -824,6 +927,7 @@ typedef struct MACSecSc_t uint8_t rsvd[7]; uint8_t enable; } MACSecSc; + typedef struct MACSecSa_t { uint8_t index; @@ -836,11 +940,13 @@ typedef struct MACSecSa_t uint8_t rsvd[5]; uint8_t enable; } MACSecSa; + typedef struct MACSecFlags_t { uint32_t en : 1; uint32_t reserved : 31; } MACSecFlags; + typedef struct MACSEC_CONFIG_t { MACSecFlags flags; @@ -850,16 +956,20 @@ typedef struct MACSEC_CONFIG_t MACSecSc sc[(2)]; MACSecSa sa[(4)]; } MACSEC_CONFIG; + typedef struct MACSEC_SETTINGS_t { MACSEC_CONFIG rx; MACSEC_CONFIG tx; } MACSEC_SETTINGS; + typedef struct LOGGER_SETTINGS_t { + uint8_t extraction_timeout; uint8_t rsvd[3]; } LOGGER_SETTINGS; + typedef struct DISK_SETTINGS_t { uint8_t disk_layout; @@ -867,12 +977,14 @@ typedef struct DISK_SETTINGS_t uint32_t disk_enables; uint8_t rsvd[8]; } DISK_SETTINGS; + typedef struct { uint8_t term_enabled; uint8_t term_network; uint16_t reserved[2]; } CANTERM_SETTINGS; + typedef struct { uint8_t MasterEnable; @@ -880,12 +992,14 @@ typedef struct uint8_t MasterNetwork; uint8_t SlaveNetwork; } TIMESYNC_ICSHARDWARE_SETTINGS; + typedef enum _EDiskFormat { DiskFormatUnknown = 0, DiskFormatFAT32, DiskFormatexFAT, } EDiskFormat; + typedef enum _EDiskLayout { DiskLayoutSpanned = 0, @@ -894,27 +1008,32 @@ typedef enum _EDiskLayout DiskLayoutRAID5, DiskLayoutIndividual, } EDiskLayout; + typedef struct _SDiskStatus { uint16_t status; uint8_t sectors[8]; uint8_t bytesPerSector[4]; } SDiskStatus; + typedef struct _SDiskStructure { DISK_SETTINGS settings; uint16_t options; } SDiskStructure; + typedef struct _SDiskDetails { SDiskStructure structure; SDiskStatus status[12]; } SDiskDetails; + typedef struct _SDiskFormatProgress { uint16_t state; uint8_t sectorsRemaining[8]; } SDiskFormatProgress; + typedef struct _StartDHCPServerCommand { uint16_t networkId; @@ -926,30 +1045,40 @@ typedef struct _StartDHCPServerCommand uint32_t leaseTime; uint32_t overwrite; } StartDHCPServerCommand; + typedef struct _StopDHCPServerCommand { uint16_t networkId; } StopDHCPServerCommand; + typedef enum _ExtendedResponseCode { EXTENDED_RESPONSE_OK = 0, + EXTENDED_RESPONSE_INVALID_COMMAND = -1, + EXTENDED_RESPONSE_INVALID_STATE = -2, + EXTENDED_RESPONSE_OPERATION_FAILED = -3, + EXTENDED_RESPONSE_OPERATION_PENDING = -4, + EXTENDED_RESPONSE_INVALID_PARAMETER = -5, } ExtendedResponseCode; + typedef struct _ExtendedResponseGeneric { uint16_t commandType; int32_t returnCode; } ExtendedResponseGeneric; + typedef struct _GenericAPISelector { uint8_t apiIndex; uint8_t instance; uint8_t functionID; } GenericAPISelector; + typedef struct _GenericAPIStatus { GenericAPISelector api; @@ -957,51 +1086,60 @@ typedef struct _GenericAPIStatus uint8_t calbackError; uint8_t finishedProcessing; } GenericAPIStatus; + typedef struct _GenericAPIData { uint16_t length; GenericAPISelector api; uint8_t bData[513]; } GenericAPIData; + typedef struct _GenericAPIData_OLD { GenericAPISelector api; uint8_t bData[513]; 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; + typedef struct { uint16_t cmdVersion; uint16_t numValidBits; uint32_t featureBitfields[0]; } GetSupportedFeaturesResponse; + typedef struct _VersionReport { uint8_t valid; @@ -1012,15 +1150,18 @@ typedef struct _VersionReport uint32_t dotVersion; uint32_t commitHash; } VersionReport; + typedef struct _GetComponentVersions { uint32_t reserved[2]; } GetComponentVersions; + typedef struct _ExtendedGetVersionsResponse { uint16_t numVersions; VersionReport versions[(16)]; } GetComponentVersionsResponse; + enum { swUpdateWrite = 0, @@ -1033,6 +1174,7 @@ enum swUpdateFinalize = 7, swUpdateGetCommunicationVersion = 8, }; + typedef struct { uint32_t componentIdentifier; @@ -1041,19 +1183,24 @@ typedef struct uint32_t commandSizeOrProgress; uint8_t commandData[0]; } SoftwareUpdateCommand; + typedef struct _SExtSubCmdHdr { uint16_t command; uint16_t length; } SExtSubCmdHdr; + #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; @@ -1079,16 +1226,19 @@ struct priority_vector 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; @@ -1099,6 +1249,7 @@ typedef struct _GenericBinaryStatus uint16_t status; uint8_t reserved[8]; } GenericBinaryStatus; + #pragma pack(pop) enum { @@ -1106,8 +1257,10 @@ enum SERDESCAM_MODE_SPLITTER, SERDESCAM_MODE_LOG_ONLY, SERDESCAM_MODE_CUSTOM, + SERDESCAM_MODE_COUNT, }; + enum { SERDESCAM_PIXEL_BIT_POS_0 = 0, @@ -1115,6 +1268,7 @@ enum SERDESCAM_PIXEL_BIT_POS_2, SERDESCAM_PIXEL_BIT_POS_3, }; + enum { SERDESCAM_VIDEO_FORMAT_NONE = -1, @@ -1153,6 +1307,7 @@ enum 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, @@ -1183,6 +1338,7 @@ enum SERDESCAM_VIDEO_FORMAT_CSI2_RAW_30, SERDESCAM_VIDEO_FORMAT_CSI2_RAW_32, 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, @@ -1191,6 +1347,7 @@ enum 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_BAYER_GBRG_8, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_10LE_PACKED, SERDESCAM_VIDEO_FORMAT_BAYER_GBRG_12LE_PACKED, @@ -1199,6 +1356,7 @@ enum 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_BAYER_GRBG_8, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_10LE_PACKED, SERDESCAM_VIDEO_FORMAT_BAYER_GRBG_12LE_PACKED, @@ -1207,8 +1365,10 @@ enum 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_COUNT, }; + typedef struct SERDESCAM_SETTINGS_t { uint32_t flags; @@ -1221,6 +1381,7 @@ typedef struct SERDESCAM_SETTINGS_t uint8_t frameSkip; uint8_t rsvd2[19]; } SERDESCAM_SETTINGS; + typedef struct SERDESPOC_SETTINGS_t { uint8_t mode; @@ -1228,6 +1389,7 @@ typedef struct SERDESPOC_SETTINGS_t uint8_t voltage; uint16_t chksum; } SERDESPOC_SETTINGS; + enum { SERDESGEN_MOD_ID_NONE = 0, @@ -1235,22 +1397,30 @@ enum SERDESGEN_MOD_ID_GMSL2_2x2 = 2, SERDESGEN_MOD_ID_GMSL1_4x4 = 3, SERDESGEN_MOD_ID_FPD3_TO_GMSL2_2x2 = 4, + SERDESGEN_MOD_ID_UNKNOWN = -1, }; + typedef struct SERDESGEN_SETTINGS_t { + uint16_t flags; uint8_t rsvd1; uint8_t mod_id; uint16_t tx_speed; uint16_t rx_speed; + uint8_t rsvd2[24]; } SERDESGEN_SETTINGS; + typedef struct _RadMoonDuoConverterSettings { + uint8_t linkMode0; uint8_t linkMode1; + uint8_t converter1Mode; + uint32_t ipAddress; uint32_t ipMask; uint32_t ipGateway; @@ -1265,6 +1435,7 @@ typedef struct RAD_REPORTING_SETTINGS_t uint16_t fan_speed_interval_ms; uint8_t rsvd[2]; } RAD_REPORTING_SETTINGS; + enum { REPORT_ON_PERIODIC, @@ -1284,80 +1455,107 @@ enum REPORT_ON_PWM_IN1, REPORT_ON_GPS, }; + 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; + 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; uint16_t vnetBits; } SFireSettings; + 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; + uint16_t misc_io_initial_ddr; uint16_t misc_io_initial_latch; uint16_t misc_io_analog_enable; @@ -1365,38 +1563,53 @@ typedef struct _SFireVnetSettings 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; + 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; uint16_t vnetBits; + CAN_SETTINGS can5; CAN_SETTINGS can6; LIN_SETTINGS lin5; SWCAN_SETTINGS swcan2; } SFireVnetSettings; + typedef struct _SCyanSettings { uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -1413,12 +1626,15 @@ typedef struct _SCyanSettings CANFD_SETTINGS canfd7; CAN_SETTINGS can8; CANFD_SETTINGS canfd8; + 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; @@ -1431,27 +1647,38 @@ typedef struct _SCyanSettings 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; + uint16_t network_enables_3; uint16_t idle_wakeup_network_enables_3; + uint16_t can_switch_mode; STextAPISettings text_api; uint64_t termination_enables; @@ -1475,20 +1702,27 @@ typedef struct _SCyanSettings DISK_SETTINGS disk; ETHERNET_SETTINGS2 ethernet2; } 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; + typedef struct _SVCAN4Settings { uint16_t perf_en; @@ -1523,59 +1757,82 @@ typedef struct _SVCAN4Settings uint16_t pwr_man_timeout; ETHERNET_SETTINGS2 ethernet2; } SVCAN4Settings; + 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; + typedef struct _SECUSettings { + uint32_t ecu_id; + uint16_t selected_network; + 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; @@ -1583,34 +1840,48 @@ typedef struct _SECUSettings 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; + typedef struct _SPendantSettings { + uint32_t ecu_id; + uint16_t selected_network; + 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; @@ -1618,23 +1889,32 @@ typedef struct _SPendantSettings 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; + typedef struct _SIEVBSettings { + uint32_t ecu_id; + uint16_t selected_network; + 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; @@ -1642,39 +1922,58 @@ typedef struct _SIEVBSettings 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; + 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; + enum eGPTPPort { ePortDisabled = 0, @@ -1693,6 +1992,7 @@ enum eGPTPPort ePortStdEth1 = 13, ePortStdEth2 = 14, }; + enum eGPTPRole { eRoleDisabled = 0, @@ -1700,9 +2000,11 @@ enum eGPTPRole eRoleMaster = 2, eRoleSlave = 3, }; + typedef struct _SRADGalaxySettings { uint16_t perf_en; + OP_ETH_GENERAL_SETTINGS opEthGen; OP_ETH_SETTINGS opEth1; OP_ETH_SETTINGS opEth2; @@ -1716,6 +2018,7 @@ typedef struct _SRADGalaxySettings OP_ETH_SETTINGS opEth10; OP_ETH_SETTINGS opEth11; OP_ETH_SETTINGS opEth12; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -1732,10 +2035,12 @@ typedef struct _SRADGalaxySettings CANFD_SETTINGS canfd7; CAN_SETTINGS can8; CANFD_SETTINGS canfd8; + 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; @@ -1744,18 +2049,26 @@ typedef struct _SRADGalaxySettings 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; @@ -1763,24 +2076,31 @@ typedef struct _SRADGalaxySettings RAD_REPORTING_SETTINGS reporting; DISK_SETTINGS disk; LOGGER_SETTINGS logger; + ETHERNET_SETTINGS2 ethernet1; ETHERNET_SETTINGS2 ethernet2; uint16_t network_enables_4; + RAD_GPTP_SETTINGS gPTP; uint64_t network_enables_5; } SRADGalaxySettings; + 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; @@ -1789,18 +2109,26 @@ typedef struct _SRADStar2Settings 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; @@ -1808,26 +2136,35 @@ typedef struct _SRADStar2Settings uint16_t hwComLatencyTestEn; RAD_REPORTING_SETTINGS reporting; ETHERNET_SETTINGS2 ethernet; + RAD_GPTP_SETTINGS gPTP; uint64_t network_enables_5; } SRADStar2Settings; + 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; + typedef enum { tdmModeTDM2 = 0, @@ -1839,21 +2176,25 @@ typedef enum tdmModeTDM24, tdmModeTDM32, } A2BTDMMode; + typedef enum { a2bNodeTypeMonitor = 0, a2bNodeTypeMaster, a2bNodeTypeSlave, } A2BNodeType; + typedef struct { uint8_t tdmMode; uint8_t upstreamChannelOffset; uint8_t downstreamChannelOffset; uint8_t nodeType; + uint8_t flags; uint8_t reserved[15]; } A2BMonitorSettings; + typedef struct _SRADA2BSettings { uint16_t perf_en; @@ -1887,31 +2228,41 @@ typedef struct _SRADA2BSettings RAD_GPTP_SETTINGS gPTP; uint64_t network_enables_5; } SRADA2BSettings; + 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; + typedef struct _SRADMoon3Settings { uint16_t perf_en; + ETHERNET10G_SETTINGS autoEth10g; ETHERNET10G_SETTINGS eth10g; + uint16_t network_enables; uint16_t network_enables_2; uint16_t network_enabled_on_boot; uint16_t network_enables_3; + struct { uint16_t enableLatencyTest : 1; @@ -1919,10 +2270,13 @@ typedef struct _SRADMoon3Settings } flags; uint64_t network_enables_5; } SRADMoon3Settings; + typedef struct _SRADGigalogSettings { uint32_t ecu_id; + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -1939,25 +2293,36 @@ typedef struct _SRADGigalogSettings 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]; uint8_t rsvd2[8]; + DISK_SETTINGS disk; + TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings; struct { @@ -1966,24 +2331,31 @@ typedef struct _SRADGigalogSettings 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; + typedef struct _SRADGigastarSettings { uint32_t ecu_id; + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -1996,23 +2368,34 @@ typedef struct _SRADGigastarSettings 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 { @@ -2022,10 +2405,13 @@ typedef struct _SRADGigastarSettings } 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; @@ -2035,23 +2421,32 @@ typedef struct _SRADGigastarSettings RAD_REPORTING_SETTINGS reporting; uint16_t network_enables_4; SERDESGEN_SETTINGS serdesgen; + RAD_GPTP_SETTINGS gPTP; uint64_t network_enables_5; } SRADGigastarSettings; + typedef struct _SVividCANSettings { uint32_t ecu_id; + CAN_SETTINGS can1; SWCAN_SETTINGS swcan1; CAN_SETTINGS lsftcan1; + 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; @@ -2059,16 +2454,21 @@ typedef struct _SVividCANSettings uint32_t reserved : 30; } flags; } SVividCANSettings; + 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; @@ -2076,22 +2476,30 @@ typedef struct _SOBD2SimSettings 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; + typedef struct _CmProbeSettings { + uint16_t network_enables; uint16_t network_enabled_on_boot; + } CmProbeSettings, SCmProbeSettings; + typedef struct _OBD2ProSettings { + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; @@ -2100,21 +2508,31 @@ typedef struct _OBD2ProSettings CANFD_SETTINGS canfd3; CAN_SETTINGS can4; CANFD_SETTINGS canfd4; + SWCAN_SETTINGS swcan1; + LIN_SETTINGS lin1; LIN_SETTINGS lin2; + ETHERNET_SETTINGS ethernet; + 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; + int16_t iso15765_separation_time_offset; + STextAPISettings text_api; struct { @@ -2123,22 +2541,31 @@ typedef struct _OBD2ProSettings uint32_t reserved : 30; } flags; uint16_t can_switch_mode; + uint16_t misc_io_analog_enable; ETHERNET_SETTINGS2 ethernet2; } OBD2ProSettings, SOBD2ProSettings; + typedef struct _VCAN412Settings { + 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; + int16_t iso15765_separation_time_offset; + STextAPISettings text_api; struct { @@ -2147,19 +2574,27 @@ typedef struct _VCAN412Settings uint32_t reserved : 30; } flags; } VCAN412Settings, SVCAN412Settings; + typedef struct _neoECU_AVBSettings { + 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; + int16_t iso15765_separation_time_offset; + STextAPISettings text_api; struct { @@ -2180,6 +2615,7 @@ typedef struct SPluto_L2AddressLookupEntry_s uint8_t pad2; uint8_t pad3; } SPluto_L2AddressLookupEntry; + typedef struct SPluto_L2AddressLookupParams_s { uint16_t maxage; @@ -2190,12 +2626,14 @@ typedef struct SPluto_L2AddressLookupParams_s uint8_t no_mgmt_learn; uint8_t pad; } SPluto_L2AddressLookupParams; + typedef struct SPluto_L2ForwardingParams_s { uint16_t part_spc[8]; uint8_t max_dynp; uint8_t pad; } SPluto_L2ForwardingParams; + typedef struct SPluto_L2ForwardingEntry_s { uint8_t vlan_pmap[8]; @@ -2204,6 +2642,7 @@ typedef struct SPluto_L2ForwardingEntry_s uint8_t fl_domain; uint8_t pad; } SPluto_L2ForwardingEntry; + typedef struct SPluto_L2Policing_s { uint16_t smax; @@ -2212,6 +2651,7 @@ typedef struct SPluto_L2Policing_s uint8_t sharindx; uint8_t partition; } SPluto_L2Policing; + typedef struct SPluto_VlanLookup_s { uint16_t vlanid; @@ -2222,6 +2662,7 @@ typedef struct SPluto_VlanLookup_s uint8_t tag_port; uint8_t pad; } SPluto_VlanLookup; + typedef struct SPluto_MacConfig_s { uint16_t top[8]; @@ -2245,6 +2686,7 @@ typedef struct SPluto_MacConfig_s uint8_t ingress; uint8_t pad; } SPluto_MacConfig; + typedef struct SPluto_RetaggingEntry_s { uint16_t vlan_egr; @@ -2256,6 +2698,7 @@ typedef struct SPluto_RetaggingEntry_s uint8_t destports; uint8_t pad; } SPluto_RetaggingEntry; + typedef struct SPluto_GeneralParams_s { uint64_t mac_fltres1; @@ -2279,10 +2722,12 @@ typedef struct SPluto_GeneralParams_s uint8_t mirr_port; uint8_t ignore2stf; } SPluto_GeneralParams; + typedef struct SPluto_VlLookupEntry_s { union { + struct { uint64_t macaddr; @@ -2292,6 +2737,7 @@ typedef struct SPluto_VlLookupEntry_s uint8_t port; uint8_t vlanprior; } vllupformat0; + struct { uint16_t vlid; @@ -2301,6 +2747,7 @@ typedef struct SPluto_VlLookupEntry_s } vllupformat1; }; } SPluto_VlLookupEntry; + typedef struct SPluto_VlPolicingEntry_s { uint64_t type; @@ -2309,12 +2756,14 @@ typedef struct SPluto_VlPolicingEntry_s uint64_t bag; uint64_t jitter; } SPluto_VlPolicingEntry; + typedef struct SPluto_VlForwardingParams_s { uint16_t partspc[8]; uint8_t debugen; uint8_t pad; } SPluto_VlForwardingParams; + typedef struct SPluto_VlForwardingEntry_s { uint8_t type; @@ -2322,11 +2771,13 @@ typedef struct SPluto_VlForwardingEntry_s uint8_t partition; uint8_t destports; } SPluto_VlForwardingEntry; + typedef struct SPluto_AVBParams_s { uint64_t destmeta; uint64_t srcmeta; } SPluto_AVBParams; + typedef struct SPluto_ClockSyncParams_s { uint64_t etssrcpcf; @@ -2391,6 +2842,7 @@ typedef struct SPlutoPtpParams_s uint8_t gPTPportRole[5 - 1]; uint8_t portEnable[5 - 1]; } PlutoPtpParams_t; + typedef struct SPluto_CustomParams_s { uint8_t mode[5]; @@ -2401,6 +2853,7 @@ typedef struct SPluto_CustomParams_s uint8_t pad; PlutoPtpParams_t ptpParams; } SPluto_CustomParams; + typedef struct SPlutoSwitchSettings_s { ExtendedDataFlashHeader_t flashHeader; @@ -2413,23 +2866,31 @@ typedef struct SPlutoSwitchSettings_s SPluto_MacConfig macConfig[5]; SPluto_GeneralParams generalParams; SPluto_RetaggingEntry retagging[32]; + } SPlutoSwitchSettings; + typedef struct _RADPlutoSettings { + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + int16_t iso15765_separation_time_offset; uint16_t iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -2437,6 +2898,7 @@ typedef struct _RADPlutoSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; + STextAPISettings text_api; struct { @@ -2445,9 +2907,11 @@ typedef struct _RADPlutoSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; + SPluto_CustomParams custom; ETHERNET_SETTINGS2 ethernet2; } SRADPlutoSettings; + typedef union { uint32_t word; @@ -2471,6 +2935,7 @@ typedef struct uint32_t ecu_id; SCANSleepID sleep_id; } CANHubSettings, SCANHubSettings; + typedef struct _SFlexVnetzSettings { uint16_t perf_en; @@ -2524,6 +2989,7 @@ typedef struct _SFlexVnetzSettings DISK_SETTINGS disk; ETHERNET_SETTINGS2 ethernet2; } SFlexVnetzSettings; + typedef enum _flexVnetMode { flexVnetModeDisabled, @@ -2532,6 +2998,7 @@ typedef enum _flexVnetMode flexVnetModeTwoSingle, flexVnetModeColdStart } flexVnetMode; + typedef struct _NeoECU12Settings { uint32_t ecu_id; @@ -2544,14 +3011,18 @@ typedef struct _NeoECU12Settings 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; + 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; @@ -2572,6 +3043,7 @@ typedef struct _NeoECU12Settings } flags; uint32_t reserved_field[2]; } SNeoECU12Settings; + typedef struct _VCAN4IndSettings { CAN_SETTINGS can1; @@ -2583,11 +3055,13 @@ typedef struct _VCAN4IndSettings 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; @@ -2609,8 +3083,10 @@ typedef struct _VCAN4IndSettings } flags; ETHERNET_SETTINGS2 ethernet2; } VCAN4IndSettings, SVCAN4IndSettings; + typedef struct _SOBD2LCSettings { + uint16_t perf_en; CAN_SETTINGS can1; CANFD_SETTINGS canfd1; @@ -2622,6 +3098,7 @@ typedef struct _SOBD2LCSettings CANFD_SETTINGS canfd4; SWCAN_SETTINGS swcan1; LIN_SETTINGS lin1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; uint16_t iso_parity; uint16_t iso_msg_termination; @@ -2638,6 +3115,7 @@ typedef struct _SOBD2LCSettings uint32_t pwr_man_timeout; uint16_t pwr_man_enable; uint16_t network_enabled_on_boot; + int16_t iso15765_separation_time_offset; STextAPISettings text_api; struct @@ -2657,6 +3135,7 @@ typedef struct _SOBD2LCSettings ETHERNET_SETTINGS2 ethernet2; uint16_t iso_tester_pullup_enable; } OBD2LCSettings, SOBD2LCSettings; + typedef struct SJupiterPtpParams_s { uint32_t neighborPropDelay; @@ -2666,6 +3145,7 @@ typedef struct SJupiterPtpParams_s int8_t operationLogSyncInterval; uint8_t gPTPportRole[8]; } JupiterPtpParams_t; + typedef struct _SRADJupiterSwitchSettings { uint8_t phyMode[8]; @@ -2679,22 +3159,29 @@ typedef struct _SRADJupiterSwitchSettings uint8_t pad; JupiterPtpParams_t ptpParams_unused; } SRADJupiterSwitchSettings; + typedef struct _SRADJupiterSettings { + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + int16_t iso15765_separation_time_offset; uint16_t iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -2702,7 +3189,9 @@ typedef struct _SRADJupiterSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; + STextAPISettings text_api; + struct { uint32_t disableUsbCheckOnBoot : 1; @@ -2710,6 +3199,7 @@ typedef struct _SRADJupiterSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; + SRADJupiterSwitchSettings switchSettings; ETHERNET_SETTINGS2 ethernet2; } SRADJupiterSettings; @@ -2720,6 +3210,7 @@ typedef struct uint8_t ethConfigurationPort; uint8_t reserved[5]; } Fire3LinuxSettings; + typedef struct _SRed2Settings { uint16_t perf_en; @@ -2794,6 +3285,7 @@ typedef struct _SRed2Settings RAD_GPTP_SETTINGS gPTP; uint16_t iso_tester_pullup_enable; } SRed2Settings; + typedef struct _SFire3Settings { uint16_t perf_en; @@ -2902,6 +3394,7 @@ typedef struct _SFire3Settings uint64_t termination_enables_2; uint16_t iso_tester_pullup_enable; } SFire3Settings; + typedef struct _SFire3FlexraySettings { uint16_t perf_en; @@ -2994,6 +3487,7 @@ typedef struct _SFire3FlexraySettings uint16_t flex_termination; uint16_t iso_tester_pullup_enable; } SFire3FlexraySettings; + typedef struct { uint16_t perf_en; @@ -3009,21 +3503,28 @@ typedef struct uint32_t reserved : 30; } flags; } RadMoonDuoSettings, SRadMoonDuoSettings; + typedef struct _SEtherBadgeSettings { + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; + uint16_t network_enables; uint16_t network_enables_2; uint16_t network_enables_3; 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 iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -3031,6 +3532,7 @@ typedef struct _SEtherBadgeSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; + uint16_t misc_io_initial_ddr; uint16_t misc_io_initial_latch; uint16_t misc_io_report_period; @@ -3038,7 +3540,9 @@ typedef struct _SEtherBadgeSettings uint16_t misc_io_analog_enable; uint16_t ain_sample_period; uint16_t ain_threshold; + STextAPISettings text_api; + struct { uint32_t disableUsbCheckOnBoot : 1; @@ -3046,8 +3550,10 @@ typedef struct _SEtherBadgeSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; + ETHERNET_SETTINGS2 ethernet2; } SEtherBadgeSettings; + typedef struct _SRADEpsilonSwitchSettings { uint8_t phyMode[18]; @@ -3058,22 +3564,29 @@ typedef struct _SRADEpsilonSwitchSettings uint8_t spoofMacFlag; uint8_t pad; } SRADEpsilonSwitchSettings; + typedef struct _SRADEpsilonSettings { + uint16_t perf_en; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; CAN_SETTINGS can2; CANFD_SETTINGS canfd2; LIN_SETTINGS lin1; + 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; + uint16_t network_enabled_on_boot; + int16_t iso15765_separation_time_offset; uint16_t iso9141_kwp_enable_reserved; uint16_t iso_tester_pullup_enable; @@ -3081,7 +3594,9 @@ typedef struct _SRADEpsilonSettings uint16_t iso_msg_termination; ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings; ETHERNET_SETTINGS ethernet; + STextAPISettings text_api; + struct { uint32_t disableUsbCheckOnBoot : 1; @@ -3089,19 +3604,23 @@ typedef struct _SRADEpsilonSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; + SRADEpsilonSwitchSettings switchSettings; ETHERNET_SETTINGS2 ethernet2; uint16_t misc_io_on_report_events; } SRADEpsilonSettings; + typedef struct { uint8_t wBMSDeviceID; uint8_t enabled; } sWIL_FAULT_SERVICING_SETTINGS; + typedef struct { uint8_t enabled; } sWIL_NETWORK_DATA_CAPTURE_SETTINGS; + typedef struct _sWIL_CONNECTION_SETTINGS { uint8_t using_port_a; @@ -3111,6 +3630,7 @@ typedef struct _sWIL_CONNECTION_SETTINGS sWIL_NETWORK_DATA_CAPTURE_SETTINGS network_data_capture_config; uint16_t sensor_buffer_size; } sWIL_CONNECTION_SETTINGS; + enum { enumWILPortConfig_Single_Port_A = 0, @@ -3119,22 +3639,26 @@ enum 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; @@ -3146,6 +3670,7 @@ typedef union uint64_t reserved : 18; } config; } sWILBridgeConfig; + typedef union { uint8_t byte; @@ -3157,6 +3682,7 @@ typedef union uint8_t reserved : 3; } config; } sSPI_PORT_SETTING; + typedef struct { sSPI_PORT_SETTING port_a; @@ -3170,18 +3696,26 @@ typedef struct uint8_t wbms2_canfd_enable; uint16_t reserved[6]; } WBMSGatewaySettings; + typedef struct _SRADBMSSettings { + uint16_t perf_en; + uint64_t termination_enables; + CAN_SETTINGS can1; CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; CANFD_SETTINGS canfd2; + uint16_t network_enables; uint16_t network_enables_2; uint16_t network_enables_3; + int16_t iso15765_separation_time_offset; + struct { uint32_t disableUsbCheckOnBoot : 1; @@ -3189,23 +3723,33 @@ typedef struct _SRADBMSSettings uint32_t enablePcEthernetComm : 1; uint32_t reserved : 29; } flags; + ETHERNET_SETTINGS ethernet; ETHERNET_SETTINGS2 ethernet2; + uint32_t pwr_man_timeout; uint16_t pwr_man_enable; uint16_t network_enabled_on_boot; + uint8_t rsvd[10]; + sSPI_PORT_SETTINGS spi_config; + sWIL_CONNECTION_SETTINGS wbms_wil_1; sWIL_CONNECTION_SETTINGS wbms_wil_2; + uint16_t wil1_nwk_metadata_buff_count; uint16_t wil2_nwk_metadata_buff_count; + WBMSGatewaySettings gateway; + uint16_t network_enables_4; uint64_t network_enables_5; } SRADBMSSettings; + typedef struct _SRADCometSettings { + uint32_t ecu_id; uint16_t perf_en; struct @@ -3241,17 +3785,23 @@ typedef struct _SRADCometSettings uint16_t pwr_man_enable; RAD_GPTP_SETTINGS gPTP; STextAPISettings text_api; + ETHERNET_SETTINGS2 ethernet; + OP_ETH_GENERAL_SETTINGS opEthGen; + ETHERNET_SETTINGS2 ethT1; OP_ETH_SETTINGS opEth1; + ETHERNET_SETTINGS2 ethT1s1; ETHERNET10T1S_SETTINGS t1s1; + ETHERNET_SETTINGS2 ethT1s2; ETHERNET10T1S_SETTINGS t1s2; uint64_t network_enables_5; LIN_SETTINGS lin1; } SRADCometSettings; + typedef struct _GLOBAL_SETTINGS { uint16_t version; @@ -3302,6 +3852,7 @@ typedef struct _GLOBAL_SETTINGS SRADCometSettings radcomet; }; } GLOBAL_SETTINGS; + typedef enum _EDeviceSettingsType { DeviceFireSettingsType, @@ -3344,9 +3895,11 @@ typedef enum _EDeviceSettingsType DeviceFire3FlexraySettingsType, DeviceRADCometSettingsType, DeviceRed2OemSettingsType, + DeviceSettingsTypeMax, DeviceSettingsNone = 0xFFFFFFFF } EDeviceSettingsType; + typedef struct _SDeviceSettings { EDeviceSettingsType DeviceSettingType; @@ -3394,8 +3947,10 @@ typedef struct _SDeviceSettings SRADMoon3Settings radmoon3; SFire3FlexraySettings fire3Flexray; SRADCometSettings radcomet; + } Settings; } SDeviceSettings; + typedef enum _EPlasmaIonVnetChannel_t { PlasmaIonVnetChannelMain, @@ -3404,47 +3959,61 @@ typedef enum _EPlasmaIonVnetChannel_t 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; + uint8_t padding; + uint8_t tx_index; + uint32_t id; uint32_t fc_id; uint32_t fc_id_mask; + uint8_t stMin; uint8_t blockSize; uint8_t flowControlExtendedAddress; uint8_t extendedAddress; + uint16_t fs_timeout; uint16_t fs_wait; + uint8_t data[4 * 1024]; + uint32_t num_bytes; + union { struct @@ -3453,6 +4022,7 @@ typedef struct _stCM_ISO157652_TxMessage 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; @@ -3464,23 +4034,32 @@ typedef struct _stCM_ISO157652_TxMessage uint32_t flags; }; } stCM_ISO157652_TxMessage; + typedef struct { uint16_t vs_netid; uint8_t padding; + uint8_t tx_index; + uint32_t id; uint32_t fc_id; uint32_t fc_id_mask; + uint8_t stMin; uint8_t blockSize; + uint8_t flowControlExtendedAddress; uint8_t extendedAddress; + uint16_t fs_timeout; uint16_t fs_wait; + uint8_t* data; uint32_t num_bytes; + uint8_t tx_dl; + union { struct @@ -3499,18 +4078,25 @@ typedef struct uint16_t flags; }; } ISO15765_2015_TxMessage; + typedef struct _stCM_ISO157652_RxMessage { uint16_t vs_netid; + uint8_t padding; + uint32_t id; uint32_t id_mask; uint32_t fc_id; + uint8_t flowControlExtendedAddress; uint8_t extendedAddress; + uint8_t blockSize; uint8_t stMin; + uint16_t cf_timeout; + union { struct @@ -3528,7 +4114,9 @@ typedef struct _stCM_ISO157652_RxMessage }; uint8_t reserved[16]; } stCM_ISO157652_RxMessage; + #pragma pack(pop) + typedef struct { uint32_t StatusValue; @@ -3552,7 +4140,9 @@ typedef struct uint32_t ExpectedLength; uint32_t NodeID; } spyFilterLong; + typedef int16_t descIdType; + typedef struct _icsSpyMessage { uint32_t StatusBitField; @@ -3587,6 +4177,7 @@ typedef struct _icsSpyMessage uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessage; + typedef struct _icsSpyMessageFlexRay { uint32_t StatusBitField; @@ -3649,6 +4240,7 @@ typedef struct _icsSpyMessageFlexRay uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageFlexRay; + typedef struct _icsSpyMessageMdio { uint32_t StatusBitField; @@ -3693,6 +4285,7 @@ typedef struct _icsSpyMessageMdio uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageMdio; + typedef struct _icsSpyMessagewBMS { uint32_t StatusBitField; @@ -3780,6 +4373,7 @@ typedef struct _icsSpyMessageLong uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageLong; + typedef struct _icsSpyMessageJ1850 { uint32_t StatusBitField; @@ -3814,6 +4408,7 @@ typedef struct _icsSpyMessageJ1850 uint8_t MiscData; uint8_t Reserved[3]; } icsSpyMessageJ1850; + typedef struct _icsSpyMessageVSB { uint32_t StatusBitField; @@ -3859,6 +4454,7 @@ typedef struct _ethernetNetworkStatus_t uint8_t linkMode; } ethernetNetworkStatus_t; #pragma pack(pop) + typedef struct { uint8_t backupPowerGood; @@ -3867,60 +4463,73 @@ typedef struct 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[8 - 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[9]; } icsRadEpsilonDeviceStatus; + typedef struct { ethernetNetworkStatus_t ethernetStatus; } icsRadBMSDeviceStatus; + #pragma pack(push) #pragma pack(4) + typedef union { icsFire2DeviceStatus fire2Status; @@ -3935,7 +4544,9 @@ typedef union icsVcan4IndustrialDeviceStatus vcan4indStatus; icsRadBMSDeviceStatus radBMSStatus; } icsDeviceStatus; + #pragma pack(pop) + typedef struct { char szName[128]; @@ -3946,12 +4557,14 @@ typedef struct unsigned char bIPV4_Address[4]; unsigned long EthernetPinConfig; } NDIS_ADAPTER_INFORMATION; + typedef struct SPhyRegPktHdr { uint16_t numEntries; uint8_t version; uint8_t entryBytes; } PhyRegPktHdr_t; + typedef struct SPhyRegPktClause22Mess { uint8_t phyAddr; @@ -3959,6 +4572,7 @@ typedef struct SPhyRegPktClause22Mess uint16_t regAddr; uint16_t regVal; } PhyRegPktClause22Mess_t; + typedef struct SPhyRegPktClause45Mess { uint8_t port; @@ -3966,6 +4580,7 @@ typedef struct SPhyRegPktClause45Mess uint16_t regAddr; uint16_t regVal; } PhyRegPktClause45Mess_t; + typedef enum SPhyRegPktStatus { PHYREG_SUCCESS = 0, @@ -3977,12 +4592,14 @@ typedef enum SPhyRegPktStatus PHYREG_RESERVED2, PHYREG_RESERVED3 } PhyRegPktStatus_t; + typedef enum SPhyRegPktRw { PHYREG_READ = 0, PHYREG_WRITE, PHYREG_BOTH } PhyRegPktRw_t; + typedef struct SPhyRegPkt { union @@ -3999,12 +4616,14 @@ typedef struct SPhyRegPkt }; uint16_t flags; }; + union { PhyRegPktClause22Mess_t clause22; PhyRegPktClause45Mess_t clause45; }; } PhyRegPkt_t; + typedef enum { networkDWCAN01, @@ -4027,6 +4646,7 @@ typedef enum NUM_VALID_DEVICE_FEATURES, supportedFeatureMax = 0xFFFF, } DeviceFeature; + typedef enum PhyErrorType { PhyOperationError = 0, diff --git a/pyproject.toml b/pyproject.toml index e899ff5da..41e300243 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,47 @@ +[project] +name = "ics" +dynamic = ["version"] +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"} +requires-python = ">=3.8" +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.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + ] +license = {file = "LICENSE"} + +[project.urls] +Homepage = "https://intrepidcs.com" +Documentation = "http://python-ics.readthedocs.io/" +Repository = "https://github.com/intrepidcs/python_ics/" +Issues = "https://github.com/intrepidcs/python_ics/issues" + +[tool.setuptools.dynamic] +version = {attr = "ics.__version__"} + +[build-system] +requires = [ + "setuptools", + "wheel", + "dunamai", +] [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" skip = "cp36-* pp* *-manylinux_i686 *-musllinux_*" diff --git a/requirements.txt b/requirements.txt index e69de29bb..f275a1925 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1,2 @@ +setuptools >= 69 +dunamai >= 1.19.2 \ No newline at end of file diff --git a/setup.py b/setup.py index ae4b56c77..cd85333f5 100644 --- a/setup.py +++ b/setup.py @@ -7,15 +7,22 @@ import sys import unittest import shutil +from pathlib import Path +import codecs +import os.path +import extract_icsneo40_defines +import generate_icsneo40_structs +from create_version import get_pkg_version, create_version_py -MAJOR_VERSION = 914 -MINOR_VERSION = 14 -POST_VERSION = 1 +# force this to happen every single time, fixes sync issues. +extract_icsneo40_defines.extract() +generate_icsneo40_structs.generate_all_files() -if POST_VERSION: - VERSION_STRING = "%d.%d-%d" % (MAJOR_VERSION, MINOR_VERSION, POST_VERSION) -else: - VERSION_STRING = "%d.%d" % (MAJOR_VERSION, MINOR_VERSION) + +create_version_py() + +MAJOR_VERSION = int(get_pkg_version().split(".")[0]) +MINOR_VERSION = int(get_pkg_version().split(".")[1]) def _run_tests(): @@ -54,13 +61,9 @@ def run(self): _run_tests() + class build(build_module.build): def run(self): - import extract_icsneo40_defines - import generate_icsneo40_structs - - extract_icsneo40_defines.extract() - generate_icsneo40_structs.generate_all_files() if platform.system().upper() in ("DARWIN", "LINUX"): import build_libicsneo @@ -137,33 +140,15 @@ def read(fname): setup( name="python_ics", - version=VERSION_STRING, - description="Library for interfacing with Intrepid devices in Python", - long_description=read("README.md"), - long_description_content_type="text/markdown", - license="MIT", - author="David Rebbe", - author_email="drebbe@intrepidcs.com", - maintainer="David Rebbe", - maintainer_email="drebbe@intrepidcs.com", - url="https://github.com/intrepidcs/python_ics/", + version=get_pkg_version(), cmdclass={ "build": build, "test": UnitTests, }, download_url="https://github.com/intrepidcs/python_ics/releases", packages=["ics", "ics.structures"], + package_dir={"ics": "gen/ics", "ics.structures": "gen/ics/structures"}, package_data=package_data, include_package_data=True, ext_modules=[ics_extension], - classifiers=[ - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - ], ) From c07589f86fd8f6308f9ccf45af611f1ad30f7bfd Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 23 Feb 2024 10:51:11 -0500 Subject: [PATCH 152/201] Fixed ics.get_error_messages() (#176) * updated debugging stuff for linux * Fixed issue #175. GIL issue on error. --- .vscode/extensions.json | 9 +++++++++ .vscode/launch.json | 8 +++++++- src/methods.cpp | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..914f72365 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,9 @@ +{ + "recommendations": [ + "ms-python.python", + "charliermarsh.ruff", + "mikoz.black-py", + "xaver.clang-format", + "webfreak.debug" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index 4e4683a1b..e4f70b772 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -41,7 +41,7 @@ "name": "Python: Debug icsdebug.py", "type": "debugpy", "request": "launch", - "program": "src\\icsdebug.py", + "program": "src/icsdebug.py", "console": "integratedTerminal" }, { @@ -50,5 +50,11 @@ "request": "attach", "pid": "${command:pickProcess}", } + { + "name": "Debugger Attach lldb", + "type": "lldb", + "request": "attach", + "pid": "${command:pickProcess}", + } ] } \ No newline at end of file diff --git a/src/methods.cpp b/src/methods.cpp index f51c0a127..6d30e76b7 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -1150,8 +1150,8 @@ 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_UNBLOCK_THREADS return set_ics_exception(exception_runtime_error(), - "icsneoScriptGetScriptStatusEx() Failed"); + Py_BLOCK_THREADS return set_ics_exception(exception_runtime_error(), + "icsneoGetErrorMessages() Failed"); } Py_END_ALLOW_THREADS; ice::Function icsneoGetErrorInfo( From 90e05edab19a9d74e62a751b54b77344aafafbd6 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 11 Mar 2024 10:06:17 -0400 Subject: [PATCH 153/201] updated auto generated files Signed-off-by: David Rebbe --- gen/ics/__version.py | 2 +- gen/ics/hiddenimports.py | 23 +- gen/ics/structures/__init__.py | 23 +- 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 + gen/ics/structures/global_settings.py | 6 +- .../ics_rad_epsilon_device_status.py | 2 +- .../structures/ics_spy_message_flex_ray.py | 26 +- gen/ics/structures/ics_spy_message_long.py | 12 +- gen/ics/structures/ics_spy_message_mdio.py | 22 +- gen/ics/structures/ics_spy_message_vsb.py | 12 +- gen/ics/structures/ics_spy_messagew_bms.py | 34 +- .../structures/iso15765_2015_tx_message.py | 12 +- gen/ics/structures/mac_sec_flags.py | 17 - gen/ics/structures/mac_sec_flags_.py | 28 + gen/ics/structures/mac_sec_global_flags_.py | 29 + .../{mac_sec_map.py => mac_sec_map_.py} | 19 +- .../{mac_sec_rule.py => mac_sec_rule_.py} | 42 +- .../{mac_sec_sa.py => mac_sec_sa_.py} | 19 +- .../{mac_sec_sc.py => mac_sec_sc_.py} | 19 +- .../{mac_sec_sec_y.py => mac_sec_sec_y_.py} | 28 +- gen/ics/structures/macsec_cipher_suite.py | 1 - gen/ics/structures/macsec_config.py | 26 +- ...c_mpls_outer.py => macsec_mpls_outer_t.py} | 7 +- gen/ics/structures/macsec_packet_type.py | 1 - gen/ics/structures/macsec_settings.py | 18 +- gen/ics/structures/macsec_strip_sectag_icv.py | 1 - gen/ics/structures/macsec_validateframe.py | 1 - ...{macsec_vlantag.py => macsec_vlantag_t.py} | 7 +- gen/ics/structures/phy_error_type.py | 29 - gen/ics/structures/s_flex_vnetz_settings.py | 6 +- gen/ics/structures/s_phy_reg_pkt.py | 16 +- .../structures/s_pluto_vl_lookup_entry_s.py | 6 +- gen/ics/structures/s_red2_settings.py | 6 +- gen/ics/structures/sobd2_lc_settings.py | 6 +- gen/ics/structures/srad_comet_settings.py | 6 +- .../structures/st_cm_iso157652_rx_message.py | 12 +- .../structures/st_cm_iso157652_tx_message.py | 12 +- gen/ics/structures/svcan4_ind_settings.py | 6 +- icsnVC40.h.enums.json | 332 ++-- icsnVC40.h.json | 1517 ++++++++++------- icsnVC40_processed.h | 488 +++--- src/setup_module_auto_defines.cpp | 56 +- 46 files changed, 1853 insertions(+), 1192 deletions(-) create mode 100644 gen/ics/structures/accessory_error_type.py create mode 100644 gen/ics/structures/epsilon10_gphyfw.py create mode 100644 gen/ics/structures/epsilon_10_g_phy_select.py create mode 100644 gen/ics/structures/flash_accessory_firmware_params.py create mode 100644 gen/ics/structures/flash_accessory_index.py delete mode 100644 gen/ics/structures/mac_sec_flags.py create mode 100644 gen/ics/structures/mac_sec_flags_.py create mode 100644 gen/ics/structures/mac_sec_global_flags_.py rename gen/ics/structures/{mac_sec_map.py => mac_sec_map_.py} (59%) rename gen/ics/structures/{mac_sec_rule.py => mac_sec_rule_.py} (56%) rename gen/ics/structures/{mac_sec_sa.py => mac_sec_sa_.py} (58%) rename gen/ics/structures/{mac_sec_sc.py => mac_sec_sc_.py} (64%) rename gen/ics/structures/{mac_sec_sec_y.py => mac_sec_sec_y_.py} (57%) rename gen/ics/structures/{macsec_mpls_outer.py => macsec_mpls_outer_t.py} (59%) rename gen/ics/structures/{macsec_vlantag.py => macsec_vlantag_t.py} (62%) delete mode 100644 gen/ics/structures/phy_error_type.py diff --git a/gen/ics/__version.py b/gen/ics/__version.py index cd90ea222..290d54aae 100644 --- a/gen/ics/__version.py +++ b/gen/ics/__version.py @@ -1,2 +1,2 @@ __version__ = "914.14" -__full_version__ = "v914.14-3ac87bb-20240219195124" +__full_version__ = "v914.14-c07589f-20240223155111" diff --git a/gen/ics/hiddenimports.py b/gen/ics/hiddenimports.py index e7cee5628..504d8a035 100644 --- a/gen/ics/hiddenimports.py +++ b/gen/ics/hiddenimports.py @@ -25,15 +25,16 @@ "ics.structures.ethernet_settings2", "ics.structures.ethernet10_g_settings", "ics.structures.ethernet10_t1_s_settings", - "ics.structures.macsec_vlantag", - "ics.structures.macsec_mpls_outer", - "ics.structures.mac_sec_rule", - "ics.structures.mac_sec_map", - "ics.structures.mac_sec_sec_y", - "ics.structures.mac_sec_sc", - "ics.structures.mac_sec_sa", - "ics.structures.mac_sec_flags", + "ics.structures.macsec_vlantag_t", + "ics.structures.macsec_mpls_outer_t", + "ics.structures.mac_sec_rule_", + "ics.structures.mac_sec_map_", + "ics.structures.mac_sec_sec_y_", + "ics.structures.mac_sec_sc_", + "ics.structures.mac_sec_sa_", + "ics.structures.mac_sec_flags_", "ics.structures.macsec_config", + "ics.structures.mac_sec_global_flags_", "ics.structures.macsec_settings", "ics.structures.logger_settings", "ics.structures.disk_settings", @@ -172,6 +173,7 @@ "ics.structures.s_phy_reg_pkt_clause22_mess", "ics.structures.s_phy_reg_pkt_clause45_mess", "ics.structures.s_phy_reg_pkt", + "ics.structures.flash_accessory_firmware_params", "ics.structures.op_eth_link_mode", "ics.structures.sfp_id", "ics.structures.macsec_packet_type", @@ -186,6 +188,7 @@ "ics.structures.a2_btdm_mode", "ics.structures.a2_b_node_type", "ics.structures.flex_vnet_mode", + "ics.structures.epsilon_10_g_phy_select", "ics.structures.e_device_settings_type", "ics.structures.e_plasma_ion_vnet_channel_t", "ics.structures.ew_bms_manager_port_t", @@ -196,6 +199,8 @@ "ics.structures.s_phy_reg_pkt_status", "ics.structures.s_phy_reg_pkt_rw", "ics.structures.device_feature", - "ics.structures.phy_error_type", + "ics.structures.accessory_error_type", + "ics.structures.flash_accessory_index", + "ics.structures.epsilon10_gphyfw", ] diff --git a/gen/ics/structures/__init__.py b/gen/ics/structures/__init__.py index 10712364f..ecde62062 100644 --- a/gen/ics/structures/__init__.py +++ b/gen/ics/structures/__init__.py @@ -25,15 +25,16 @@ "ethernet_settings2", "ethernet10_g_settings", "ethernet10_t1_s_settings", - "macsec_vlantag", - "macsec_mpls_outer", - "mac_sec_rule", - "mac_sec_map", - "mac_sec_sec_y", - "mac_sec_sc", - "mac_sec_sa", - "mac_sec_flags", + "macsec_vlantag_t", + "macsec_mpls_outer_t", + "mac_sec_rule_", + "mac_sec_map_", + "mac_sec_sec_y_", + "mac_sec_sc_", + "mac_sec_sa_", + "mac_sec_flags_", "macsec_config", + "mac_sec_global_flags_", "macsec_settings", "logger_settings", "disk_settings", @@ -172,6 +173,7 @@ "s_phy_reg_pkt_clause22_mess", "s_phy_reg_pkt_clause45_mess", "s_phy_reg_pkt", + "flash_accessory_firmware_params", "op_eth_link_mode", "sfp_id", "macsec_packet_type", @@ -186,6 +188,7 @@ "a2_btdm_mode", "a2_b_node_type", "flex_vnet_mode", + "epsilon_10_g_phy_select", "e_device_settings_type", "e_plasma_ion_vnet_channel_t", "ew_bms_manager_port_t", @@ -196,5 +199,7 @@ "s_phy_reg_pkt_status", "s_phy_reg_pkt_rw", "device_feature", - "phy_error_type", + "accessory_error_type", + "flash_accessory_index", + "epsilon10_gphyfw", ] diff --git a/gen/ics/structures/accessory_error_type.py b/gen/ics/structures/accessory_error_type.py new file mode 100644 index 000000000..b017c6722 --- /dev/null +++ b/gen/ics/structures/accessory_error_type.py @@ -0,0 +1,32 @@ +# 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 new file mode 100644 index 000000000..924698785 --- /dev/null +++ b/gen/ics/structures/epsilon10_gphyfw.py @@ -0,0 +1,18 @@ +# 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 new file mode 100644 index 000000000..34cedbcb7 --- /dev/null +++ b/gen/ics/structures/epsilon_10_g_phy_select.py @@ -0,0 +1,18 @@ +# 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 new file mode 100644 index 000000000..b569c2595 --- /dev/null +++ b/gen/ics/structures/flash_accessory_firmware_params.py @@ -0,0 +1,20 @@ +# 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 new file mode 100644 index 000000000..c4b26bc22 --- /dev/null +++ b/gen/ics/structures/flash_accessory_index.py @@ -0,0 +1,22 @@ +# 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/gen/ics/structures/global_settings.py b/gen/ics/structures/global_settings.py index a3c0ab6b4..cfc22874f 100644 --- a/gen/ics/structures/global_settings.py +++ b/gen/ics/structures/global_settings.py @@ -44,7 +44,7 @@ from ics.structures.svcanrf_settings import * -class Nameless59426(ctypes.Union): +class Nameless21903(ctypes.Union): _pack_ = 2 _fields_ = [ ('red', SRedSettings), @@ -94,12 +94,12 @@ class Nameless59426(ctypes.Union): class global_settings(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless59426',) + _anonymous_ = ('Nameless21903',) _fields_ = [ ('version', ctypes.c_uint16), ('len', ctypes.c_uint16), ('chksum', ctypes.c_uint16), - ('Nameless59426', Nameless59426), + ('Nameless21903', Nameless21903), ] diff --git a/gen/ics/structures/ics_rad_epsilon_device_status.py b/gen/ics/structures/ics_rad_epsilon_device_status.py index 9e39bf62b..596545a9e 100644 --- a/gen/ics/structures/ics_rad_epsilon_device_status.py +++ b/gen/ics/structures/ics_rad_epsilon_device_status.py @@ -7,7 +7,7 @@ class ics_rad_epsilon_device_status(ctypes.Structure): _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t * 9), + ('ethernetStatus', ethernetNetworkStatus_t * 19), ] diff --git a/gen/ics/structures/ics_spy_message_flex_ray.py b/gen/ics/structures/ics_spy_message_flex_ray.py index aa99063ee..2ab49c3a2 100644 --- a/gen/ics/structures/ics_spy_message_flex_ray.py +++ b/gen/ics/structures/ics_spy_message_flex_ray.py @@ -4,7 +4,7 @@ -class Nameless7100(ctypes.Structure): +class Nameless45381(ctypes.Structure): _fields_ = [ ('id', ctypes.c_uint32, 12), ('res1', ctypes.c_uint32, 4), @@ -21,16 +21,16 @@ class Nameless7100(ctypes.Structure): -class Nameless9992(ctypes.Union): - _anonymous_ = ('Nameless7100',) +class Nameless14534(ctypes.Union): + _anonymous_ = ('Nameless45381',) _fields_ = [ ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless7100', Nameless7100), + ('Nameless45381', Nameless45381), ] -class Nameless65087(ctypes.Structure): +class Nameless18511(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -38,7 +38,7 @@ class Nameless65087(ctypes.Structure): -class Nameless21496(ctypes.Structure): +class Nameless40028(ctypes.Structure): _fields_ = [ ('hcrc_msbs', ctypes.c_uint32, 3), ('res2', ctypes.c_uint32, 5), @@ -52,18 +52,18 @@ class Nameless21496(ctypes.Structure): -class Nameless9872(ctypes.Union): - _anonymous_ = ('Nameless65087', 'Nameless21496') +class Nameless59525(ctypes.Union): + _anonymous_ = ('Nameless18511', 'Nameless40028') _fields_ = [ - ('Nameless65087', Nameless65087), + ('Nameless18511', Nameless18511), ('AckBytes', ctypes.c_uint8 * 8), - ('Nameless21496', Nameless21496), + ('Nameless40028', Nameless40028), ] class ics_spy_message_flex_ray(ctypes.Structure): - _anonymous_ = ('Nameless9992', 'Nameless9872') + _anonymous_ = ('Nameless14534', 'Nameless59525') _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -82,9 +82,9 @@ class ics_spy_message_flex_ray(ctypes.Structure): ('NumberBytesData', ctypes.c_uint8), ('NetworkID2', ctypes.c_uint8), ('DescriptionID', ctypes.c_uint16), - ('Nameless9992', Nameless9992), + ('Nameless14534', Nameless14534), ('Data', ctypes.c_uint8 * 8), - ('Nameless9872', Nameless9872), + ('Nameless59525', Nameless59525), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/gen/ics/structures/ics_spy_message_long.py b/gen/ics/structures/ics_spy_message_long.py index 1268ae3a8..6269b833c 100644 --- a/gen/ics/structures/ics_spy_message_long.py +++ b/gen/ics/structures/ics_spy_message_long.py @@ -4,7 +4,7 @@ -class Nameless36278(ctypes.Structure): +class Nameless5382(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless36278(ctypes.Structure): -class Nameless5269(ctypes.Union): - _anonymous_ = ('Nameless36278',) +class Nameless50617(ctypes.Union): + _anonymous_ = ('Nameless5382',) _fields_ = [ - ('Nameless36278', Nameless36278), + ('Nameless5382', Nameless5382), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_long(ctypes.Structure): - _anonymous_ = ('Nameless5269',) + _anonymous_ = ('Nameless50617',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -44,7 +44,7 @@ class ics_spy_message_long(ctypes.Structure): ('ArbIDOrHeader', ctypes.c_uint32), ('DataMsb', ctypes.c_uint32), ('DataLsb', ctypes.c_uint32), - ('Nameless5269', Nameless5269), + ('Nameless50617', Nameless50617), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/gen/ics/structures/ics_spy_message_mdio.py b/gen/ics/structures/ics_spy_message_mdio.py index c92673bc7..9a62b40df 100644 --- a/gen/ics/structures/ics_spy_message_mdio.py +++ b/gen/ics/structures/ics_spy_message_mdio.py @@ -4,7 +4,7 @@ -class Nameless28192(ctypes.Structure): +class Nameless5189(ctypes.Structure): _fields_ = [ ('RegAddr', ctypes.c_uint32, 16), ('PhyAddr', ctypes.c_uint32, 5), @@ -14,16 +14,16 @@ class Nameless28192(ctypes.Structure): -class Nameless18906(ctypes.Union): - _anonymous_ = ('Nameless28192',) +class Nameless54558(ctypes.Union): + _anonymous_ = ('Nameless5189',) _fields_ = [ ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless28192', Nameless28192), + ('Nameless5189', Nameless5189), ] -class Nameless3555(ctypes.Structure): +class Nameless36278(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -31,17 +31,17 @@ class Nameless3555(ctypes.Structure): -class Nameless45381(ctypes.Union): - _anonymous_ = ('Nameless3555',) +class Nameless5269(ctypes.Union): + _anonymous_ = ('Nameless36278',) _fields_ = [ - ('Nameless3555', Nameless3555), + ('Nameless36278', Nameless36278), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_mdio(ctypes.Structure): - _anonymous_ = ('Nameless18906', 'Nameless45381') + _anonymous_ = ('Nameless54558', 'Nameless5269') _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -60,9 +60,9 @@ class ics_spy_message_mdio(ctypes.Structure): ('NumberBytesData', ctypes.c_uint8), ('NetworkID2', ctypes.c_uint8), ('DescriptionID', ctypes.c_uint16), - ('Nameless18906', Nameless18906), + ('Nameless54558', Nameless54558), ('Data', ctypes.c_uint8 * 8), - ('Nameless45381', Nameless45381), + ('Nameless5269', Nameless5269), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/gen/ics/structures/ics_spy_message_vsb.py b/gen/ics/structures/ics_spy_message_vsb.py index 4cbb3ad51..9344c018b 100644 --- a/gen/ics/structures/ics_spy_message_vsb.py +++ b/gen/ics/structures/ics_spy_message_vsb.py @@ -4,7 +4,7 @@ -class Nameless20259(ctypes.Structure): +class Nameless44788(ctypes.Structure): _fields_ = [ ('StatusBitField3', ctypes.c_uint32), ('StatusBitField4', ctypes.c_uint32), @@ -12,17 +12,17 @@ class Nameless20259(ctypes.Structure): -class Nameless39357(ctypes.Union): - _anonymous_ = ('Nameless20259',) +class Nameless61357(ctypes.Union): + _anonymous_ = ('Nameless44788',) _fields_ = [ - ('Nameless20259', Nameless20259), + ('Nameless44788', Nameless44788), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_message_vsb(ctypes.Structure): - _anonymous_ = ('Nameless39357',) + _anonymous_ = ('Nameless61357',) _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -43,7 +43,7 @@ class ics_spy_message_vsb(ctypes.Structure): ('DescriptionID', ctypes.c_int16), ('ArbIDOrHeader', ctypes.c_uint32), ('Data', ctypes.c_uint8 * 8), - ('Nameless39357', Nameless39357), + ('Nameless61357', Nameless61357), ('ExtraDataPtr', ctypes.c_uint32), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/gen/ics/structures/ics_spy_messagew_bms.py b/gen/ics/structures/ics_spy_messagew_bms.py index a33b81684..c1d7cdb73 100644 --- a/gen/ics/structures/ics_spy_messagew_bms.py +++ b/gen/ics/structures/ics_spy_messagew_bms.py @@ -4,7 +4,7 @@ -class Nameless14534(ctypes.Structure): +class Nameless23244(ctypes.Structure): _fields_ = [ ('', ctypes.c_uint32, 8), ('PacketType', ctypes.c_uint32, 8), @@ -14,16 +14,16 @@ class Nameless14534(ctypes.Structure): -class Nameless18511(ctypes.Union): - _anonymous_ = ('Nameless14534',) +class Nameless35608(ctypes.Union): + _anonymous_ = ('Nameless23244',) _fields_ = [ ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless14534', Nameless14534), + ('Nameless23244', Nameless23244), ] -class Nameless40028(ctypes.Structure): +class Nameless20259(ctypes.Structure): _fields_ = [ ('APICode', ctypes.c_uint32, 8), ('', ctypes.c_uint32, 24), @@ -31,35 +31,35 @@ class Nameless40028(ctypes.Structure): -class Nameless59525(ctypes.Union): - _anonymous_ = ('Nameless40028',) +class Nameless39357(ctypes.Union): + _anonymous_ = ('Nameless20259',) _fields_ = [ ('StatusBitField3', ctypes.c_uint32), - ('Nameless40028', Nameless40028), + ('Nameless20259', Nameless20259), ] -class Nameless5189(ctypes.Structure): - _anonymous_ = ('Nameless59525',) +class Nameless20257(ctypes.Structure): + _anonymous_ = ('Nameless39357',) _fields_ = [ - ('Nameless59525', Nameless59525), + ('Nameless39357', Nameless39357), ('StatusBitField4', ctypes.c_uint32), ] -class Nameless54558(ctypes.Union): - _anonymous_ = ('Nameless5189',) +class Nameless60883(ctypes.Union): + _anonymous_ = ('Nameless20257',) _fields_ = [ - ('Nameless5189', Nameless5189), + ('Nameless20257', Nameless20257), ('AckBytes', ctypes.c_uint8 * 8), ] class ics_spy_messagew_bms(ctypes.Structure): - _anonymous_ = ('Nameless18511', 'Nameless54558') + _anonymous_ = ('Nameless35608', 'Nameless60883') _fields_ = [ ('StatusBitField', ctypes.c_uint32), ('StatusBitField2', ctypes.c_uint32), @@ -78,9 +78,9 @@ class ics_spy_messagew_bms(ctypes.Structure): ('NumberBytesData', ctypes.c_uint8), ('NetworkID2', ctypes.c_uint8), ('DescriptionID', ctypes.c_uint16), - ('Nameless18511', Nameless18511), + ('Nameless35608', Nameless35608), ('Data', ctypes.c_uint8 * 8), - ('Nameless54558', Nameless54558), + ('Nameless60883', Nameless60883), ('ExtraDataPtr', ctypes.c_void_p), ('MiscData', ctypes.c_uint8), ('Reserved', ctypes.c_uint8 * 3), diff --git a/gen/ics/structures/iso15765_2015_tx_message.py b/gen/ics/structures/iso15765_2015_tx_message.py index 868652571..ba7c44716 100644 --- a/gen/ics/structures/iso15765_2015_tx_message.py +++ b/gen/ics/structures/iso15765_2015_tx_message.py @@ -4,7 +4,7 @@ -class Nameless757(ctypes.Structure): +class Nameless65087(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint16, 1), @@ -21,11 +21,11 @@ class Nameless757(ctypes.Structure): -class Nameless43713(ctypes.Union): +class Nameless21496(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless757',) + _anonymous_ = ('Nameless65087',) _fields_ = [ - ('Nameless757', Nameless757), + ('Nameless65087', Nameless65087), ('flags', ctypes.c_uint16), ] @@ -33,7 +33,7 @@ class Nameless43713(ctypes.Union): class iso15765_2015_tx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless43713',) + _anonymous_ = ('Nameless21496',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -50,7 +50,7 @@ class iso15765_2015_tx_message(ctypes.Structure): ('data', ctypes.POINTER(ctypes.c_uint8)), ('num_bytes', ctypes.c_uint32), ('tx_dl', ctypes.c_uint8), - ('Nameless43713', Nameless43713), + ('Nameless21496', Nameless21496), ] diff --git a/gen/ics/structures/mac_sec_flags.py b/gen/ics/structures/mac_sec_flags.py deleted file mode 100644 index 026423106..000000000 --- a/gen/ics/structures/mac_sec_flags.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class mac_sec_flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('en', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 31), - ] - - -MACSecFlags_t = mac_sec_flags -MACSecFlags = mac_sec_flags - diff --git a/gen/ics/structures/mac_sec_flags_.py b/gen/ics/structures/mac_sec_flags_.py new file mode 100644 index 000000000..14f97de0c --- /dev/null +++ b/gen/ics/structures/mac_sec_flags_.py @@ -0,0 +1,28 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class Nameless8987(ctypes.Structure): + _pack_ = 1 + _fields_ = [ + ('en', ctypes.c_uint32, 1), + ('reserved', ctypes.c_uint32, 31), + ] + + + +class mac_sec_flags_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless8987',) + _fields_ = [ + ('Nameless8987', Nameless8987), + ('flags_32b', ctypes.c_uint32), + ] + + +_MACSecFlags = mac_sec_flags_ +MACSecFlags_t = mac_sec_flags_ +MACSecFlags_ = mac_sec_flags_ + diff --git a/gen/ics/structures/mac_sec_global_flags_.py b/gen/ics/structures/mac_sec_global_flags_.py new file mode 100644 index 000000000..45accbf0c --- /dev/null +++ b/gen/ics/structures/mac_sec_global_flags_.py @@ -0,0 +1,29 @@ +# This file was auto generated; Do not modify, if you value your sanity! +import ctypes +import enum + + + +class Nameless11656(ctypes.Structure): + _pack_ = 1 + _fields_ = [ + ('en', ctypes.c_uint32, 1), + ('nvm', ctypes.c_uint32, 1), + ('reserved', ctypes.c_uint32, 30), + ] + + + +class mac_sec_global_flags_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless11656',) + _fields_ = [ + ('Nameless11656', Nameless11656), + ('flags_32b', ctypes.c_uint32), + ] + + +_MACSecGlobalFlags = mac_sec_global_flags_ +MACSecGlobalFlags_t = mac_sec_global_flags_ +MACSecGlobalFlags_ = mac_sec_global_flags_ + diff --git a/gen/ics/structures/mac_sec_map.py b/gen/ics/structures/mac_sec_map_.py similarity index 59% rename from gen/ics/structures/mac_sec_map.py rename to gen/ics/structures/mac_sec_map_.py index 7dae31c19..4e9077ee8 100644 --- a/gen/ics/structures/mac_sec_map.py +++ b/gen/ics/structures/mac_sec_map_.py @@ -4,8 +4,8 @@ -class mac_sec_map(ctypes.Structure): - _pack_ = 2 +class Nameless63799(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('index', ctypes.c_uint8), ('sectag_sci', ctypes.c_uint64), @@ -19,6 +19,17 @@ class mac_sec_map(ctypes.Structure): ] -MACSecMap_t = mac_sec_map -MACSecMap = mac_sec_map + +class mac_sec_map_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless63799',) + _fields_ = [ + ('Nameless63799', Nameless63799), + ('byte', ctypes.c_uint8 * 20), + ] + + +_MACSecMap = mac_sec_map_ +MACSecMap_t = mac_sec_map_ +MACSecMap_ = mac_sec_map_ diff --git a/gen/ics/structures/mac_sec_rule.py b/gen/ics/structures/mac_sec_rule_.py similarity index 56% rename from gen/ics/structures/mac_sec_rule.py rename to gen/ics/structures/mac_sec_rule_.py index 8b463bed8..29353db42 100644 --- a/gen/ics/structures/mac_sec_rule.py +++ b/gen/ics/structures/mac_sec_rule_.py @@ -2,13 +2,12 @@ import ctypes import enum -from ics.structures.macsec_mpls_outer import * -from ics.structures.macsec_packet_type import * -from ics.structures.macsec_vlantag import * +from ics.structures.macsec_mpls_outer_t import * +from ics.structures.macsec_vlantag_t import * -class mac_sec_rule(ctypes.Structure): - _pack_ = 2 +class Nameless1916(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('index', ctypes.c_uint8), ('key_MAC_DA', ctypes.c_uint8 * 6), @@ -17,19 +16,19 @@ class mac_sec_rule(ctypes.Structure): ('mask_MAC_SA', ctypes.c_uint8 * 6), ('key_Ethertype', ctypes.c_uint16), ('mask_Ethertype', ctypes.c_uint16), - ('key_vlantag_outer1', MACSEC_VLANTAG), - ('key_MPLS_outer1', MACSEC_MPLS_OUTER), - ('mask_vlantag_outer1', MACSEC_VLANTAG), - ('mask_MPLS_outer1', MACSEC_MPLS_OUTER), - ('key_vlantag_outer2', MACSEC_VLANTAG), - ('key_MPLS_outer2', MACSEC_MPLS_OUTER), - ('mask_vlantag_outer2', MACSEC_VLANTAG), - ('mask_MPLS_outer2', MACSEC_MPLS_OUTER), + ('key_vlantag_outer1', MACSEC_VLANTAG_t), + ('key_MPLS_outer1', MACSEC_MPLS_OUTER_t), + ('mask_vlantag_outer1', MACSEC_VLANTAG_t), + ('mask_MPLS_outer1', MACSEC_MPLS_OUTER_t), + ('key_vlantag_outer2', MACSEC_VLANTAG_t), + ('key_MPLS_outer2', MACSEC_MPLS_OUTER_t), + ('mask_vlantag_outer2', MACSEC_VLANTAG_t), + ('mask_MPLS_outer2', MACSEC_MPLS_OUTER_t), ('key_bonus_data', ctypes.c_uint16), ('mask_bonus_data', ctypes.c_uint16), ('key_tag_match_bitmap', ctypes.c_uint8), ('mask_tag_match_bitmap', ctypes.c_uint8), - ('key_packet_type', ctypes.c_int32), + ('key_packet_type', ctypes.c_uint8), ('mask_packet_type', ctypes.c_uint8), ('key_inner_vlan_type', ctypes.c_uint16), ('mask_inner_vlan_type', ctypes.c_uint16), @@ -45,6 +44,17 @@ class mac_sec_rule(ctypes.Structure): ] -MACSecRule_t = mac_sec_rule -MACSecRule = mac_sec_rule + +class mac_sec_rule_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless1916',) + _fields_ = [ + ('Nameless1916', Nameless1916), + ('byte', ctypes.c_uint8 * 88), + ] + + +_MACSecRule = mac_sec_rule_ +MACSecRule_t = mac_sec_rule_ +MACSecRule_ = mac_sec_rule_ diff --git a/gen/ics/structures/mac_sec_sa.py b/gen/ics/structures/mac_sec_sa_.py similarity index 58% rename from gen/ics/structures/mac_sec_sa.py rename to gen/ics/structures/mac_sec_sa_.py index 2969ec92d..6cf44c169 100644 --- a/gen/ics/structures/mac_sec_sa.py +++ b/gen/ics/structures/mac_sec_sa_.py @@ -4,8 +4,8 @@ -class mac_sec_sa(ctypes.Structure): - _pack_ = 2 +class Nameless61066(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('index', ctypes.c_uint8), ('sak', ctypes.c_uint8 * 32), @@ -19,6 +19,17 @@ class mac_sec_sa(ctypes.Structure): ] -MACSecSa_t = mac_sec_sa -MACSecSa = mac_sec_sa + +class mac_sec_sa_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless61066',) + _fields_ = [ + ('Nameless61066', Nameless61066), + ('byte', ctypes.c_uint8 * 80), + ] + + +_MACSecSa = mac_sec_sa_ +MACSecSa_t = mac_sec_sa_ +MACSecSa_ = mac_sec_sa_ diff --git a/gen/ics/structures/mac_sec_sc.py b/gen/ics/structures/mac_sec_sc_.py similarity index 64% rename from gen/ics/structures/mac_sec_sc.py rename to gen/ics/structures/mac_sec_sc_.py index cc0ced87e..9ce20a99e 100644 --- a/gen/ics/structures/mac_sec_sc.py +++ b/gen/ics/structures/mac_sec_sc_.py @@ -4,8 +4,8 @@ -class mac_sec_sc(ctypes.Structure): - _pack_ = 2 +class Nameless8462(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('index', ctypes.c_uint8), ('secYIndex', ctypes.c_uint8), @@ -21,6 +21,17 @@ class mac_sec_sc(ctypes.Structure): ] -MACSecSc_t = mac_sec_sc -MACSecSc = mac_sec_sc + +class mac_sec_sc_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless8462',) + _fields_ = [ + ('Nameless8462', Nameless8462), + ('byte', ctypes.c_uint8 * 24), + ] + + +_MACSecSc = mac_sec_sc_ +MACSecSc_t = mac_sec_sc_ +MACSecSc_ = mac_sec_sc_ diff --git a/gen/ics/structures/mac_sec_sec_y.py b/gen/ics/structures/mac_sec_sec_y_.py similarity index 57% rename from gen/ics/structures/mac_sec_sec_y.py rename to gen/ics/structures/mac_sec_sec_y_.py index 75db8f191..67f0c3c9d 100644 --- a/gen/ics/structures/mac_sec_sec_y.py +++ b/gen/ics/structures/mac_sec_sec_y_.py @@ -2,19 +2,16 @@ import ctypes import enum -from ics.structures.macsec_cipher_suite import * -from ics.structures.macsec_strip_sectag_icv import * -from ics.structures.macsec_validateframe import * -class mac_sec_sec_y(ctypes.Structure): - _pack_ = 2 +class Nameless32745(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('index', ctypes.c_uint8), ('controlled_port_enabled', ctypes.c_uint8), - ('validate_frames', ctypes.c_int32), - ('strip_sectag_icv', ctypes.c_int32), - ('cipher', ctypes.c_int32), + ('validate_frames', ctypes.c_uint8), + ('strip_sectag_icv', ctypes.c_uint8), + ('cipher', ctypes.c_uint8), ('confidential_offset', ctypes.c_uint8), ('icv_includes_da_sa', ctypes.c_uint8), ('replay_protect', ctypes.c_uint8), @@ -28,6 +25,17 @@ class mac_sec_sec_y(ctypes.Structure): ] -MACSecSecY_t = mac_sec_sec_y -MACSecSecY = mac_sec_sec_y + +class mac_sec_sec_y_(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless32745',) + _fields_ = [ + ('Nameless32745', Nameless32745), + ('byte', ctypes.c_uint8 * 24), + ] + + +_MACSecSecY = mac_sec_sec_y_ +MACSecSecY_t = mac_sec_sec_y_ +MACSecSecY_ = mac_sec_sec_y_ diff --git a/gen/ics/structures/macsec_cipher_suite.py b/gen/ics/structures/macsec_cipher_suite.py index 1fbf23fd3..6534222f9 100644 --- a/gen/ics/structures/macsec_cipher_suite.py +++ b/gen/ics/structures/macsec_cipher_suite.py @@ -16,6 +16,5 @@ def from_param(cls, obj): MACSEC_CIPHER_GCM_AES_256_XPN = 3 -MACSEC_CIPHER_SUITE_t = macsec_cipher_suite MACSEC_CIPHER_SUITE = macsec_cipher_suite diff --git a/gen/ics/structures/macsec_config.py b/gen/ics/structures/macsec_config.py index 10aa1ce4b..b0a727680 100644 --- a/gen/ics/structures/macsec_config.py +++ b/gen/ics/structures/macsec_config.py @@ -2,23 +2,23 @@ import ctypes import enum -from ics.structures.mac_sec_flags import * -from ics.structures.mac_sec_map import * -from ics.structures.mac_sec_rule import * -from ics.structures.mac_sec_sa import * -from ics.structures.mac_sec_sc import * -from ics.structures.mac_sec_sec_y import * +from ics.structures.mac_sec_flags_ import * +from ics.structures.mac_sec_map_ import * +from ics.structures.mac_sec_rule_ import * +from ics.structures.mac_sec_sa_ import * +from ics.structures.mac_sec_sc_ import * +from ics.structures.mac_sec_sec_y_ import * class macsec_config(ctypes.Structure): - _pack_ = 2 + _pack_ = 1 _fields_ = [ - ('flags', MACSecFlags), - ('rule', MACSecRule * 2), - ('map', MACSecMap * 2), - ('secy', MACSecSecY * 2), - ('sc', MACSecSc * 2), - ('sa', MACSecSa * 4), + ('flags', MACSecFlags_t), + ('rule', MACSecRule_t * 2), + ('map', MACSecMap_t * 2), + ('secy', MACSecSecY_t * 2), + ('sc', MACSecSc_t * 2), + ('sa', MACSecSa_t * 4), ] diff --git a/gen/ics/structures/macsec_mpls_outer.py b/gen/ics/structures/macsec_mpls_outer_t.py similarity index 59% rename from gen/ics/structures/macsec_mpls_outer.py rename to gen/ics/structures/macsec_mpls_outer_t.py index d9b1b725f..2887c020e 100644 --- a/gen/ics/structures/macsec_mpls_outer.py +++ b/gen/ics/structures/macsec_mpls_outer_t.py @@ -4,14 +4,13 @@ -class macsec_mpls_outer(ctypes.Structure): - _pack_ = 2 +class macsec_mpls_outer_t(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('MPLS_label', ctypes.c_uint32), ('exp', ctypes.c_uint8), ] -MACSEC_MPLS_OUTER_t = macsec_mpls_outer -MACSEC_MPLS_OUTER = macsec_mpls_outer +MACSEC_MPLS_OUTER_t = macsec_mpls_outer_t diff --git a/gen/ics/structures/macsec_packet_type.py b/gen/ics/structures/macsec_packet_type.py index 5dbbec482..0286828a2 100644 --- a/gen/ics/structures/macsec_packet_type.py +++ b/gen/ics/structures/macsec_packet_type.py @@ -19,6 +19,5 @@ def from_param(cls, obj): MACSEC_PACKET_UNSUPPORTED_TYPE = 6 -MACSEC_PACKET_TYPE_t = macsec_packet_type MACSEC_PACKET_TYPE = macsec_packet_type diff --git a/gen/ics/structures/macsec_settings.py b/gen/ics/structures/macsec_settings.py index 8d5c93153..d076d87f3 100644 --- a/gen/ics/structures/macsec_settings.py +++ b/gen/ics/structures/macsec_settings.py @@ -2,17 +2,29 @@ import ctypes import enum +from ics.structures.mac_sec_global_flags_ import * from ics.structures.macsec_config import * -class macsec_settings(ctypes.Structure): - _pack_ = 2 +class Nameless6024(ctypes.Structure): + _pack_ = 1 _fields_ = [ + ('flags', MACSecGlobalFlags_t), ('rx', MACSEC_CONFIG), ('tx', MACSEC_CONFIG), ] -MACSEC_SETTINGS_t = macsec_settings + +class macsec_settings(ctypes.Union): + _pack_ = 1 + _anonymous_ = ('Nameless6024',) + _fields_ = [ + ('Nameless6024', Nameless6024), + ('byte', ctypes.c_uint8 * 2040), + ] + + +_MACSEC_SETTINGS = macsec_settings MACSEC_SETTINGS = macsec_settings diff --git a/gen/ics/structures/macsec_strip_sectag_icv.py b/gen/ics/structures/macsec_strip_sectag_icv.py index 91327795d..b4fa99249 100644 --- a/gen/ics/structures/macsec_strip_sectag_icv.py +++ b/gen/ics/structures/macsec_strip_sectag_icv.py @@ -16,6 +16,5 @@ def from_param(cls, obj): MACSEC_SECTAG_ICV_NO_STRIP = 3 -MACSEC_STRIP_SECTAG_ICV_t = macsec_strip_sectag_icv MACSEC_STRIP_SECTAG_ICV = macsec_strip_sectag_icv diff --git a/gen/ics/structures/macsec_validateframe.py b/gen/ics/structures/macsec_validateframe.py index 158d7b9d8..f396a2517 100644 --- a/gen/ics/structures/macsec_validateframe.py +++ b/gen/ics/structures/macsec_validateframe.py @@ -16,6 +16,5 @@ def from_param(cls, obj): MACSEC_VF_NA = 3 -MACSEC_VALIDATEFRAME_t = macsec_validateframe MACSEC_VALIDATEFRAME = macsec_validateframe diff --git a/gen/ics/structures/macsec_vlantag.py b/gen/ics/structures/macsec_vlantag_t.py similarity index 62% rename from gen/ics/structures/macsec_vlantag.py rename to gen/ics/structures/macsec_vlantag_t.py index 73c0e873e..14f320fe5 100644 --- a/gen/ics/structures/macsec_vlantag.py +++ b/gen/ics/structures/macsec_vlantag_t.py @@ -4,14 +4,13 @@ -class macsec_vlantag(ctypes.Structure): - _pack_ = 2 +class macsec_vlantag_t(ctypes.Structure): + _pack_ = 1 _fields_ = [ ('VID', ctypes.c_uint16), ('PRI_CFI', ctypes.c_uint8), ] -MACSEC_VLANTAG_t = macsec_vlantag -MACSEC_VLANTAG = macsec_vlantag +MACSEC_VLANTAG_t = macsec_vlantag_t diff --git a/gen/ics/structures/phy_error_type.py b/gen/ics/structures/phy_error_type.py deleted file mode 100644 index da0ed63ff..000000000 --- a/gen/ics/structures/phy_error_type.py +++ /dev/null @@ -1,29 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class phy_error_type(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - 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 = phy_error_type -PhyErrorType = phy_error_type - diff --git a/gen/ics/structures/s_flex_vnetz_settings.py b/gen/ics/structures/s_flex_vnetz_settings.py index da44cfc89..51cae6801 100644 --- a/gen/ics/structures/s_flex_vnetz_settings.py +++ b/gen/ics/structures/s_flex_vnetz_settings.py @@ -11,7 +11,7 @@ from ics.structures.timesync_icshardware_settings import * -class Nameless6024(ctypes.Structure): +class Nameless26218(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -23,10 +23,10 @@ class Nameless6024(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless6024',) + _anonymous_ = ('Nameless26218',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless6024', Nameless6024), + ('Nameless26218', Nameless26218), ] diff --git a/gen/ics/structures/s_phy_reg_pkt.py b/gen/ics/structures/s_phy_reg_pkt.py index b26cc738b..271f82a79 100644 --- a/gen/ics/structures/s_phy_reg_pkt.py +++ b/gen/ics/structures/s_phy_reg_pkt.py @@ -6,7 +6,7 @@ from ics.structures.s_phy_reg_pkt_clause45_mess import * -class Nameless20257(ctypes.Structure): +class Nameless62381(ctypes.Structure): _fields_ = [ ('Enabled', ctypes.c_uint16, 1), ('WriteEnable', ctypes.c_uint16, 1), @@ -19,16 +19,16 @@ class Nameless20257(ctypes.Structure): -class Nameless60883(ctypes.Union): - _anonymous_ = ('Nameless20257',) +class Nameless5941(ctypes.Union): + _anonymous_ = ('Nameless62381',) _fields_ = [ - ('Nameless20257', Nameless20257), + ('Nameless62381', Nameless62381), ('flags', ctypes.c_uint16), ] -class Nameless5382(ctypes.Union): +class Nameless61713(ctypes.Union): _fields_ = [ ('clause22', PhyRegPktClause22Mess_t), ('clause45', PhyRegPktClause45Mess_t), @@ -37,10 +37,10 @@ class Nameless5382(ctypes.Union): class s_phy_reg_pkt(ctypes.Structure): - _anonymous_ = ('Nameless60883', 'Nameless5382') + _anonymous_ = ('Nameless5941', 'Nameless61713') _fields_ = [ - ('Nameless60883', Nameless60883), - ('Nameless5382', Nameless5382), + ('Nameless5941', Nameless5941), + ('Nameless61713', Nameless61713), ] diff --git a/gen/ics/structures/s_pluto_vl_lookup_entry_s.py b/gen/ics/structures/s_pluto_vl_lookup_entry_s.py index 56e03a69e..eba9e0d21 100644 --- a/gen/ics/structures/s_pluto_vl_lookup_entry_s.py +++ b/gen/ics/structures/s_pluto_vl_lookup_entry_s.py @@ -28,7 +28,7 @@ class vllupformat1(ctypes.Structure): -class Nameless11656(ctypes.Union): +class Nameless32656(ctypes.Union): _pack_ = 2 _fields_ = [ ('vllupformat0', vllupformat0), @@ -39,9 +39,9 @@ class Nameless11656(ctypes.Union): class s_pluto_vl_lookup_entry_s(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless11656',) + _anonymous_ = ('Nameless32656',) _fields_ = [ - ('Nameless11656', Nameless11656), + ('Nameless32656', Nameless32656), ] diff --git a/gen/ics/structures/s_red2_settings.py b/gen/ics/structures/s_red2_settings.py index bb0b52f1f..5b25c6288 100644 --- a/gen/ics/structures/s_red2_settings.py +++ b/gen/ics/structures/s_red2_settings.py @@ -15,7 +15,7 @@ from ics.structures.timesync_icshardware_settings import * -class Nameless39639(ctypes.Structure): +class Nameless9252(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -28,10 +28,10 @@ class Nameless39639(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless39639',) + _anonymous_ = ('Nameless9252',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless39639', Nameless39639), + ('Nameless9252', Nameless9252), ] diff --git a/gen/ics/structures/sobd2_lc_settings.py b/gen/ics/structures/sobd2_lc_settings.py index 21a83f49c..86d3d2c14 100644 --- a/gen/ics/structures/sobd2_lc_settings.py +++ b/gen/ics/structures/sobd2_lc_settings.py @@ -13,7 +13,7 @@ from ics.structures.swcan_settings import * -class Nameless8267(ctypes.Structure): +class Nameless2529(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -25,10 +25,10 @@ class Nameless8267(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless8267',) + _anonymous_ = ('Nameless2529',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless8267', Nameless8267), + ('Nameless2529', Nameless2529), ] diff --git a/gen/ics/structures/srad_comet_settings.py b/gen/ics/structures/srad_comet_settings.py index 2fd36e228..f8427a633 100644 --- a/gen/ics/structures/srad_comet_settings.py +++ b/gen/ics/structures/srad_comet_settings.py @@ -26,7 +26,7 @@ class flags(ctypes.Structure): -class Nameless26218(ctypes.Structure): +class Nameless49459(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -39,10 +39,10 @@ class Nameless26218(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless26218',) + _anonymous_ = ('Nameless49459',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless26218', Nameless26218), + ('Nameless49459', Nameless49459), ] diff --git a/gen/ics/structures/st_cm_iso157652_rx_message.py b/gen/ics/structures/st_cm_iso157652_rx_message.py index 0116ffdda..a34f5625f 100644 --- a/gen/ics/structures/st_cm_iso157652_rx_message.py +++ b/gen/ics/structures/st_cm_iso157652_rx_message.py @@ -4,7 +4,7 @@ -class Nameless18844(ctypes.Structure): +class Nameless9872(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint, 1), @@ -19,11 +19,11 @@ class Nameless18844(ctypes.Structure): -class Nameless61974(ctypes.Union): +class Nameless28192(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless18844',) + _anonymous_ = ('Nameless9872',) _fields_ = [ - ('Nameless18844', Nameless18844), + ('Nameless9872', Nameless9872), ('flags', ctypes.c_uint32), ] @@ -31,7 +31,7 @@ class Nameless61974(ctypes.Union): class st_cm_iso157652_rx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless61974',) + _anonymous_ = ('Nameless28192',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -43,7 +43,7 @@ class st_cm_iso157652_rx_message(ctypes.Structure): ('blockSize', ctypes.c_uint8), ('stMin', ctypes.c_uint8), ('cf_timeout', ctypes.c_uint16), - ('Nameless61974', Nameless61974), + ('Nameless28192', Nameless28192), ('reserved', ctypes.c_uint8 * 16), ] diff --git a/gen/ics/structures/st_cm_iso157652_tx_message.py b/gen/ics/structures/st_cm_iso157652_tx_message.py index 3a1137596..7cc7d25e7 100644 --- a/gen/ics/structures/st_cm_iso157652_tx_message.py +++ b/gen/ics/structures/st_cm_iso157652_tx_message.py @@ -4,7 +4,7 @@ -class Nameless2529(ctypes.Structure): +class Nameless7100(ctypes.Structure): _pack_ = 2 _fields_ = [ ('id_29_bit_enable', ctypes.c_uint, 1), @@ -22,11 +22,11 @@ class Nameless2529(ctypes.Structure): -class Nameless9252(ctypes.Union): +class Nameless9992(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless2529',) + _anonymous_ = ('Nameless7100',) _fields_ = [ - ('Nameless2529', Nameless2529), + ('Nameless7100', Nameless7100), ('flags', ctypes.c_uint32), ] @@ -34,7 +34,7 @@ class Nameless9252(ctypes.Union): class st_cm_iso157652_tx_message(ctypes.Structure): _pack_ = 2 - _anonymous_ = ('Nameless9252',) + _anonymous_ = ('Nameless9992',) _fields_ = [ ('vs_netid', ctypes.c_uint16), ('padding', ctypes.c_uint8), @@ -50,7 +50,7 @@ class st_cm_iso157652_tx_message(ctypes.Structure): ('fs_wait', ctypes.c_uint16), ('data', ctypes.c_uint8 * 4096), ('num_bytes', ctypes.c_uint32), - ('Nameless9252', Nameless9252), + ('Nameless9992', Nameless9992), ] diff --git a/gen/ics/structures/svcan4_ind_settings.py b/gen/ics/structures/svcan4_ind_settings.py index 88ef347b2..e7622b527 100644 --- a/gen/ics/structures/svcan4_ind_settings.py +++ b/gen/ics/structures/svcan4_ind_settings.py @@ -10,7 +10,7 @@ from ics.structures.lin_settings import * -class Nameless35335(ctypes.Structure): +class Nameless59426(ctypes.Structure): _pack_ = 2 _fields_ = [ ('network_enables', ctypes.c_uint16), @@ -22,10 +22,10 @@ class Nameless35335(ctypes.Structure): class network_enables(ctypes.Union): _pack_ = 2 - _anonymous_ = ('Nameless35335',) + _anonymous_ = ('Nameless59426',) _fields_ = [ ('word', ctypes.c_uint64), - ('Nameless35335', Nameless35335), + ('Nameless59426', Nameless59426), ] diff --git a/icsnVC40.h.enums.json b/icsnVC40.h.enums.json index 0500c9e78..9926965f0 100644 --- a/icsnVC40.h.enums.json +++ b/icsnVC40.h.enums.json @@ -638,11 +638,10 @@ }, { "names": [ - "MACSEC_PACKET_TYPE_t", "MACSEC_PACKET_TYPE" ], "data_type": "Enum", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { @@ -705,11 +704,10 @@ }, { "names": [ - "MACSEC_VALIDATEFRAME_t", "MACSEC_VALIDATEFRAME" ], "data_type": "Enum", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { @@ -748,11 +746,10 @@ }, { "names": [ - "MACSEC_STRIP_SECTAG_ICV_t", "MACSEC_STRIP_SECTAG_ICV" ], "data_type": "Enum", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { @@ -791,11 +788,10 @@ }, { "names": [ - "MACSEC_CIPHER_SUITE_t", "MACSEC_CIPHER_SUITE" ], "data_type": "Enum", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { @@ -2404,6 +2400,32 @@ } ] }, + { + "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", @@ -3339,15 +3361,15 @@ }, { "names": [ - "PhyErrorType", - "PhyErrorType" + "AccessoryErrorType", + "AccessoryOperationErrorType" ], "data_type": "Enum", "packing": 0, "is_anonymous": false, "members": [ { - "name": "PhyOperationError ", + "name": "AccessoryOperationError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3355,7 +3377,7 @@ "enum_value": 0 }, { - "name": "PhyOperationSuccess ", + "name": "AccessoryOperationSuccess ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3363,7 +3385,7 @@ "enum_value": 1 }, { - "name": "PhyFlashingInitError ", + "name": "AccessoryFlashingInitError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3371,7 +3393,7 @@ "enum_value": 2 }, { - "name": "PhyFlashingEraseError ", + "name": "AccessoryFlashingEraseError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3379,7 +3401,7 @@ "enum_value": 3 }, { - "name": "PhyFlashingWriteError ", + "name": "AccessoryFlashingWriteError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3387,7 +3409,7 @@ "enum_value": 4 }, { - "name": "PhyFlashingReadError ", + "name": "AccessoryFlashingReadError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3395,7 +3417,7 @@ "enum_value": 5 }, { - "name": "PhyFlashingVerifyError ", + "name": "AccessoryFlashingVerifyError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3403,7 +3425,7 @@ "enum_value": 6 }, { - "name": "PhyFlashingDeinitError ", + "name": "AccessoryFlashingDeinitError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3411,7 +3433,7 @@ "enum_value": 7 }, { - "name": "PhyFlashingInvalidHardware ", + "name": "AccessoryFlashingInvalidHardware ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3419,7 +3441,7 @@ "enum_value": 8 }, { - "name": "PhyFlashingInvalidDataFile ", + "name": "AccessoryFlashingInvalidDataFile ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3427,7 +3449,7 @@ "enum_value": 9 }, { - "name": "PhyGetVersionError ", + "name": "AccessoryGetVersionError ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3435,12 +3457,106 @@ "enum_value": 10 }, { - "name": "PhyIndexError ", + "name": "AccessoryIndexError ", "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 } ] }, @@ -3451,7 +3567,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5645 ", + "name": "assert_line_5747 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3467,7 +3583,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5646 ", + "name": "assert_line_5748 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3483,7 +3599,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5647 ", + "name": "assert_line_5749 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3499,7 +3615,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5648 ", + "name": "assert_line_5750 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3515,7 +3631,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5649 ", + "name": "assert_line_5751 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3531,7 +3647,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5650 ", + "name": "assert_line_5752 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3547,7 +3663,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5651 ", + "name": "assert_line_5753 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3563,7 +3679,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5652 ", + "name": "assert_line_5754 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3579,7 +3695,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5653 ", + "name": "assert_line_5755 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3595,7 +3711,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5654 ", + "name": "assert_line_5756 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3611,7 +3727,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5655 ", + "name": "assert_line_5757 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3627,7 +3743,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5656 ", + "name": "assert_line_5758 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3643,7 +3759,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5657 ", + "name": "assert_line_5759 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3659,7 +3775,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5658 ", + "name": "assert_line_5760 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3675,7 +3791,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5659 ", + "name": "assert_line_5761 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3691,7 +3807,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5660 ", + "name": "assert_line_5762 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3707,7 +3823,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5661 ", + "name": "assert_line_5763 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3723,7 +3839,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5662 ", + "name": "assert_line_5764 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3739,7 +3855,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5663 ", + "name": "assert_line_5765 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3755,7 +3871,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5664 ", + "name": "assert_line_5766 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3771,7 +3887,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5665 ", + "name": "assert_line_5767 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3787,7 +3903,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5666 ", + "name": "assert_line_5768 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3803,7 +3919,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5667 ", + "name": "assert_line_5769 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3819,7 +3935,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5668 ", + "name": "assert_line_5770 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3835,7 +3951,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5669 ", + "name": "assert_line_5771 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3851,7 +3967,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5670 ", + "name": "assert_line_5772 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3867,7 +3983,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5671 ", + "name": "assert_line_5773 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3883,7 +3999,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5672 ", + "name": "assert_line_5774 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3899,7 +4015,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5673 ", + "name": "assert_line_5775 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3915,7 +4031,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5674 ", + "name": "assert_line_5776 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3931,7 +4047,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5675 ", + "name": "assert_line_5777 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3947,7 +4063,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5676 ", + "name": "assert_line_5778 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3963,7 +4079,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5677 ", + "name": "assert_line_5779 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3979,7 +4095,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5678 ", + "name": "assert_line_5780 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -3995,7 +4111,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5679 ", + "name": "assert_line_5781 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4011,7 +4127,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5680 ", + "name": "assert_line_5782 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4027,7 +4143,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5681 ", + "name": "assert_line_5783 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4043,7 +4159,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5682 ", + "name": "assert_line_5784 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4059,7 +4175,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5683 ", + "name": "assert_line_5785 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4075,7 +4191,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5684 ", + "name": "assert_line_5786 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4091,7 +4207,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5685 ", + "name": "assert_line_5787 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4107,7 +4223,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5686 ", + "name": "assert_line_5788 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4123,7 +4239,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5687 ", + "name": "assert_line_5789 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4139,7 +4255,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5688 ", + "name": "assert_line_5790 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4155,7 +4271,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5689 ", + "name": "assert_line_5791 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4171,7 +4287,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5690 ", + "name": "assert_line_5792 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4187,7 +4303,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5691 ", + "name": "assert_line_5793 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4203,7 +4319,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5692 ", + "name": "assert_line_5794 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4219,7 +4335,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5693 ", + "name": "assert_line_5795 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4235,7 +4351,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5694 ", + "name": "assert_line_5796 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4251,7 +4367,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5695 ", + "name": "assert_line_5797 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4267,7 +4383,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5696 ", + "name": "assert_line_5798 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4283,7 +4399,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5697 ", + "name": "assert_line_5799 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4299,7 +4415,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5698 ", + "name": "assert_line_5800 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4315,7 +4431,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5699 ", + "name": "assert_line_5801 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4331,7 +4447,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5700 ", + "name": "assert_line_5802 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4347,7 +4463,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5701 ", + "name": "assert_line_5803 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4363,7 +4479,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5702 ", + "name": "assert_line_5804 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4379,7 +4495,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5703 ", + "name": "assert_line_5805 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4395,7 +4511,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5704 ", + "name": "assert_line_5806 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4411,7 +4527,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5705 ", + "name": "assert_line_5807 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4427,7 +4543,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5706 ", + "name": "assert_line_5808 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4443,7 +4559,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5707 ", + "name": "assert_line_5809 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4459,7 +4575,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5708 ", + "name": "assert_line_5810 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4475,7 +4591,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5709 ", + "name": "assert_line_5811 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4491,7 +4607,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5710 ", + "name": "assert_line_5812 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4507,7 +4623,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5711 ", + "name": "assert_line_5813 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4523,7 +4639,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5712 ", + "name": "assert_line_5814 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4539,7 +4655,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5713 ", + "name": "assert_line_5815 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4555,7 +4671,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5714 ", + "name": "assert_line_5816 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4571,7 +4687,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5715 ", + "name": "assert_line_5817 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4587,7 +4703,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5716 ", + "name": "assert_line_5818 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4603,7 +4719,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5717 ", + "name": "assert_line_5819 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4619,7 +4735,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5718 ", + "name": "assert_line_5820 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4635,7 +4751,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5719 ", + "name": "assert_line_5821 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4651,7 +4767,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5720 ", + "name": "assert_line_5822 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4667,7 +4783,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5721 ", + "name": "assert_line_5823 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4683,7 +4799,7 @@ "is_anonymous": true, "members": [ { - "name": "assert_line_5722 ", + "name": "assert_line_5824 ", "data_type": "int", "array_length": 0, "bitfield_size": 0, @@ -4691,5 +4807,21 @@ "enum_value": "1/(int)(!!(sizeof(SRADCometSettings)" } ] + }, + { + "names": [], + "data_type": "Enum", + "packing": 0, + "is_anonymous": true, + "members": [ + { + "name": "assert_line_5825 ", + "data_type": "int", + "array_length": 0, + "bitfield_size": 0, + "is_enum": true, + "enum_value": "1/(int)(!!(sizeof(FlashAccessoryFirmwareParams)" + } + ] } ] \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json index 8d36834b3..e84aaba52 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -3305,11 +3305,10 @@ }, { "names": [ - "MACSEC_VLANTAG_t", - "MACSEC_VLANTAG" + "MACSEC_VLANTAG_t" ], "data_type": "Struct", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { @@ -3332,11 +3331,10 @@ }, { "names": [ - "MACSEC_MPLS_OUTER_t", - "MACSEC_MPLS_OUTER" + "MACSEC_MPLS_OUTER_t" ], "data_type": "Struct", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { @@ -3359,578 +3357,382 @@ }, { "names": [ + "_MACSecRule", "MACSecRule_t", - "MACSecRule" + "MACSecRule_" ], - "data_type": "Struct", - "packing": 2, + "data_type": "Union", + "packing": 1, "is_anonymous": false, "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 + "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": "mask_MAC_DA", + "name": "byte", "data_type": "uint8_t", - "array_length": 6, + "array_length": 88, "bitfield_size": 0, "is_enum": false, "enum_value": null - }, + } + ] + }, + { + "names": [ + "_MACSecMap", + "MACSecMap_t", + "MACSecMap_" + ], + "data_type": "Union", + "packing": 1, + "is_anonymous": false, + "members": [ { - "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", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_MPLS_outer1", - "data_type": "MACSEC_MPLS_OUTER", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_vlantag_outer1", - "data_type": "MACSEC_VLANTAG", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_MPLS_outer1", - "data_type": "MACSEC_MPLS_OUTER", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_vlantag_outer2", - "data_type": "MACSEC_VLANTAG", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "key_MPLS_outer2", - "data_type": "MACSEC_MPLS_OUTER", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_vlantag_outer2", - "data_type": "MACSEC_VLANTAG", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "mask_MPLS_outer2", - "data_type": "MACSEC_MPLS_OUTER", - "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": "MACSEC_PACKET_TYPE", - "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 - } - ] - }, - { - "names": [ - "MACSecMap_t", - "MACSecMap" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "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 - } - ] - }, - { - "names": [ - "MACSecSecY_t", - "MACSecSecY" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "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": "MACSEC_VALIDATEFRAME", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "strip_sectag_icv", - "data_type": "MACSEC_STRIP_SECTAG_ICV", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null - }, - { - "name": "cipher", - "data_type": "MACSEC_CIPHER_SUITE", - "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 - } - ] - }, - { - "names": [ - "MACSecSc_t", - "MACSecSc" - ], - "data_type": "Struct", - "packing": 2, - "is_anonymous": false, - "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 + "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": "enable", + "name": "byte", "data_type": "uint8_t", - "array_length": 0, + "array_length": 20, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -3939,81 +3741,362 @@ }, { "names": [ - "MACSecSa_t", - "MACSecSa" + "_MACSecSecY", + "MACSecSecY_t", + "MACSecSecY_" ], - "data_type": "Struct", - "packing": 2, + "data_type": "Union", + "packing": 1, "is_anonymous": false, "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 + "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": "salt", + "name": "byte", "data_type": "uint8_t", - "array_length": 12, + "array_length": 24, "bitfield_size": 0, "is_enum": false, "enum_value": null - }, + } + ] + }, + { + "names": [ + "_MACSecSc", + "MACSecSc_t", + "MACSecSc_" + ], + "data_type": "Union", + "packing": 1, + "is_anonymous": false, + "members": [ { - "name": "ssci", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "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": "AN", + "name": "byte", "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, + "array_length": 24, "bitfield_size": 0, "is_enum": false, "enum_value": null - }, + } + ] + }, + { + "names": [ + "_MACSecSa", + "MACSecSa_t", + "MACSecSa_" + ], + "data_type": "Union", + "packing": 1, + "is_anonymous": false, + "members": [ { - "name": "rsvd", - "data_type": "uint8_t", - "array_length": 5, - "bitfield_size": 0, - "is_enum": false, - "enum_value": null + "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": "enable", + "name": "byte", "data_type": "uint8_t", - "array_length": 0, + "array_length": 80, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -4022,26 +4105,43 @@ }, { "names": [ + "_MACSecFlags", "MACSecFlags_t", - "MACSecFlags" + "MACSecFlags_" ], - "data_type": "Struct", - "packing": 2, + "data_type": "Union", + "packing": 1, "is_anonymous": false, "members": [ { - "name": "en", - "data_type": "uint32_t", - "array_length": 0, - "bitfield_size": 1, - "is_enum": false, - "enum_value": null + "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": "reserved", + "name": "flags_32b", "data_type": "uint32_t", "array_length": 0, - "bitfield_size": 31, + "bitfield_size": 0, "is_enum": false, "enum_value": null } @@ -4053,12 +4153,12 @@ "MACSEC_CONFIG" ], "data_type": "Struct", - "packing": 2, + "packing": 1, "is_anonymous": false, "members": [ { "name": "flags", - "data_type": "MACSecFlags", + "data_type": "MACSecFlags_t", "array_length": 0, "bitfield_size": 0, "is_enum": false, @@ -4066,7 +4166,7 @@ }, { "name": "rule", - "data_type": "MACSecRule", + "data_type": "MACSecRule_t", "array_length": 2, "bitfield_size": 0, "is_enum": false, @@ -4074,7 +4174,7 @@ }, { "name": "map", - "data_type": "MACSecMap", + "data_type": "MACSecMap_t", "array_length": 2, "bitfield_size": 0, "is_enum": false, @@ -4082,7 +4182,7 @@ }, { "name": "secy", - "data_type": "MACSecSecY", + "data_type": "MACSecSecY_t", "array_length": 2, "bitfield_size": 0, "is_enum": false, @@ -4090,7 +4190,7 @@ }, { "name": "sc", - "data_type": "MACSecSc", + "data_type": "MACSecSc_t", "array_length": 2, "bitfield_size": 0, "is_enum": false, @@ -4098,7 +4198,7 @@ }, { "name": "sa", - "data_type": "MACSecSa", + "data_type": "MACSecSa_t", "array_length": 4, "bitfield_size": 0, "is_enum": false, @@ -4108,25 +4208,101 @@ }, { "names": [ - "MACSEC_SETTINGS_t", - "MACSEC_SETTINGS" + "_MACSecGlobalFlags", + "MACSecGlobalFlags_t", + "MACSecGlobalFlags_" ], - "data_type": "Struct", - "packing": 2, + "data_type": "Union", + "packing": 1, "is_anonymous": false, "members": [ { - "name": "rx", - "data_type": "MACSEC_CONFIG", + "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": "tx", - "data_type": "MACSEC_CONFIG", - "array_length": 0, + "name": "byte", + "data_type": "uint8_t", + "array_length": 2040, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -23110,7 +23286,7 @@ { "name": "ethernetStatus", "data_type": "ethernetNetworkStatus_t", - "array_length": 9, + "array_length": 19, "bitfield_size": 0, "is_enum": false, "enum_value": null @@ -23534,5 +23710,56 @@ ] } ] + }, + { + "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 1ea9a38f6..cf3238019 100644 --- a/icsnVC40_processed.h +++ b/icsnVC40_processed.h @@ -798,19 +798,20 @@ typedef struct ETHERNET10T1S_SETTINGS_t uint8_t local_id_alternate; uint8_t rsvd[5]; } ETHERNET10T1S_SETTINGS; -typedef struct MACSEC_VLANTAG_t +#pragma pack(push, 1) +typedef struct { uint16_t VID; uint8_t PRI_CFI; -} MACSEC_VLANTAG; +} MACSEC_VLANTAG_t; -typedef struct MACSEC_MPLS_OUTER_t +typedef struct { uint32_t MPLS_label; uint8_t exp; -} MACSEC_MPLS_OUTER; +} MACSEC_MPLS_OUTER_t; -typedef enum MACSEC_PACKET_TYPE_t +typedef enum { MACSEC_PACKET_NO_VLAN_OR_MPLS = 0, MACSEC_PACKET_SINGLE_VLAN = 1, @@ -821,56 +822,64 @@ typedef enum MACSEC_PACKET_TYPE_t MACSEC_PACKET_UNSUPPORTED_TYPE = 6 } MACSEC_PACKET_TYPE; -typedef struct MACSecRule_t +typedef union _MACSecRule { - 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 key_vlantag_outer1; - MACSEC_MPLS_OUTER key_MPLS_outer1; - MACSEC_VLANTAG mask_vlantag_outer1; - MACSEC_MPLS_OUTER mask_MPLS_outer1; - MACSEC_VLANTAG key_vlantag_outer2; - MACSEC_MPLS_OUTER key_MPLS_outer2; - MACSEC_VLANTAG mask_vlantag_outer2; - MACSEC_MPLS_OUTER 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; - MACSEC_PACKET_TYPE 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; - uint8_t isMPLS; - uint8_t rsvd[5]; - uint8_t enable; -} 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; + MACSEC_MPLS_OUTER_t key_MPLS_outer1; + MACSEC_VLANTAG_t mask_vlantag_outer1; + MACSEC_MPLS_OUTER_t mask_MPLS_outer1; + MACSEC_VLANTAG_t key_vlantag_outer2; + MACSEC_MPLS_OUTER_t key_MPLS_outer2; + MACSEC_VLANTAG_t mask_vlantag_outer2; + 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; + uint8_t isMPLS; + uint8_t rsvd[5]; + uint8_t enable; + }; + uint8_t byte[(88)]; +} MACSecRule_t; -typedef struct MACSecMap_t +typedef union _MACSecMap { - uint8_t index; - uint64_t sectag_sci; - uint8_t secYIndex; - uint8_t isControlPacket; - uint8_t scIndex; - uint8_t auxiliary_plcy; - uint8_t ruleId; - uint8_t rsvd[5]; - uint8_t enable; -} 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; + uint8_t rsvd[5]; + uint8_t enable; + }; + uint8_t byte[(20)]; +} MACSecMap_t; -typedef enum MACSEC_VALIDATEFRAME_t +typedef enum { MACSEC_VF_DISABLED = 0, MACSEC_VF_CHECK = 1, @@ -878,7 +887,7 @@ typedef enum MACSEC_VALIDATEFRAME_t MACSEC_VF_NA = 3 } MACSEC_VALIDATEFRAME; -typedef enum MACSEC_STRIP_SECTAG_ICV_t +typedef enum { MACSEC_SECTAG_ICV_BOTH_STRIP = 0, MACSEC_SECTAG_ICV_RESERVED = 1, @@ -886,7 +895,7 @@ typedef enum MACSEC_STRIP_SECTAG_ICV_t MACSEC_SECTAG_ICV_NO_STRIP = 3 } MACSEC_STRIP_SECTAG_ICV; -typedef enum MACSEC_CIPHER_SUITE_t +typedef enum { MACSEC_CIPHER_GCM_AES_128 = 0, MACSEC_CIPHER_GCM_AES_256 = 1, @@ -894,74 +903,106 @@ typedef enum MACSEC_CIPHER_SUITE_t MACSEC_CIPHER_GCM_AES_256_XPN = 3 } MACSEC_CIPHER_SUITE; -typedef struct MACSecSecY_t +typedef union _MACSecSecY { - uint8_t index; - uint8_t controlled_port_enabled; - MACSEC_VALIDATEFRAME validate_frames; - MACSEC_STRIP_SECTAG_ICV strip_sectag_icv; - MACSEC_CIPHER_SUITE 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 rsvd[6]; - uint8_t enable; -} 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 rsvd[6]; + uint8_t enable; + }; + uint8_t byte[(24)]; +} MACSecSecY_t; -typedef struct MACSecSc_t +typedef union _MACSecSc { - 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 rsvd[7]; - uint8_t enable; -} MACSecSc; - -typedef struct MACSecSa_t + 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 rsvd[7]; + uint8_t enable; + }; + uint8_t byte[(24)]; +} MACSecSc_t; + +typedef union _MACSecSa { - 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 rsvd[5]; - uint8_t enable; -} 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 rsvd[5]; + uint8_t enable; + }; + uint8_t byte[(80)]; +} MACSecSa_t; -typedef struct MACSecFlags_t +typedef union _MACSecFlags { - uint32_t en : 1; - uint32_t reserved : 31; -} MACSecFlags; + struct + { + uint32_t en : 1; + uint32_t reserved : 31; + }; + uint32_t flags_32b; +} MACSecFlags_t; typedef struct MACSEC_CONFIG_t { - MACSecFlags flags; - MACSecRule rule[(2)]; - MACSecMap map[(2)]; - MACSecSecY secy[(2)]; - MACSecSc sc[(2)]; - MACSecSa sa[(4)]; + MACSecFlags_t flags; + MACSecRule_t rule[(2)]; + MACSecMap_t map[(2)]; + MACSecSecY_t secy[(2)]; + MACSecSc_t sc[(2)]; + MACSecSa_t sa[(4)]; } MACSEC_CONFIG; +typedef union _MACSecGlobalFlags +{ + struct + { + uint32_t en : 1; + uint32_t nvm : 1; + uint32_t reserved : 30; + }; + uint32_t flags_32b; +} MACSecGlobalFlags_t; -typedef struct MACSEC_SETTINGS_t +typedef union _MACSEC_SETTINGS { - MACSEC_CONFIG rx; - MACSEC_CONFIG tx; + struct + { + MACSecGlobalFlags_t flags; + MACSEC_CONFIG rx; + MACSEC_CONFIG tx; + }; + uint8_t byte[(2040)]; } MACSEC_SETTINGS; +#pragma pack(pop) typedef struct LOGGER_SETTINGS_t { @@ -3553,6 +3594,11 @@ typedef struct _SEtherBadgeSettings ETHERNET_SETTINGS2 ethernet2; } SEtherBadgeSettings; +typedef enum +{ + EPSILON_10G_PHY1 = (1 << 0), + EPSILON_10G_PHY2 = (1 << 1), +} Epsilon_10G_PHY_select; typedef struct _SRADEpsilonSwitchSettings { @@ -4519,7 +4565,7 @@ typedef struct typedef struct { - ethernetNetworkStatus_t ethernetStatus[9]; + ethernetNetworkStatus_t ethernetStatus[19]; } icsRadEpsilonDeviceStatus; typedef struct @@ -4647,407 +4693,445 @@ 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; + +#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_5645 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) + assert_line_5747 = 1 / (int)(!!(sizeof(CAN_SETTINGS) == 12)) }; ; enum { - assert_line_5646 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) + assert_line_5748 = 1 / (int)(!!(sizeof(CANFD_SETTINGS) == 10)) }; ; enum { - assert_line_5647 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) + assert_line_5749 = 1 / (int)(!!(sizeof(SWCAN_SETTINGS) == 14)) }; ; enum { - assert_line_5648 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) + assert_line_5750 = 1 / (int)(!!(sizeof(LIN_SETTINGS) == 10)) }; ; enum { - assert_line_5649 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) + assert_line_5751 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000__INIT_STEP) == 6)) }; ; enum { - assert_line_5650 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) + assert_line_5752 = 1 / (int)(!!(sizeof(ISO9141_KEYWORD2000_SETTINGS) == 114)) }; ; enum { - assert_line_5651 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) + assert_line_5753 = 1 / (int)(!!(sizeof(UART_SETTINGS) == 16)) }; ; enum { - assert_line_5652 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) + assert_line_5754 = 1 / (int)(!!(sizeof(J1708_SETTINGS) == 2)) }; ; enum { - assert_line_5653 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) + assert_line_5755 = 1 / (int)(!!(sizeof(SRedSettings) == 44)) }; ; enum { - assert_line_5654 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) + assert_line_5756 = 1 / (int)(!!(sizeof(STextAPISettings) == 72)) }; ; enum { - assert_line_5655 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) + assert_line_5757 = 1 / (int)(!!(sizeof(stChipVersions) == 8)) }; ; enum { - assert_line_5656 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) + assert_line_5758 = 1 / (int)(!!(sizeof(SNeoMostGatewaySettings) == 4)) }; ; enum { - assert_line_5657 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) + assert_line_5759 = 1 / (int)(!!(sizeof(OP_ETH_GENERAL_SETTINGS) == 20)) }; ; enum { - assert_line_5658 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) + assert_line_5760 = 1 / (int)(!!(sizeof(OP_ETH_SETTINGS) == 16)) }; ; enum { - assert_line_5659 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) + assert_line_5761 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS) == 8)) }; ; enum { - assert_line_5660 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) + assert_line_5762 = 1 / (int)(!!(sizeof(ETHERNET_SETTINGS2) == 16)) }; ; enum { - assert_line_5661 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) + assert_line_5763 = 1 / (int)(!!(sizeof(ETHERNET10G_SETTINGS) == 24)) }; ; enum { - assert_line_5662 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) + assert_line_5764 = 1 / (int)(!!(sizeof(ETHERNET10T1S_SETTINGS) == 12)) }; ; enum { - assert_line_5663 = 1 / (int)(!!(sizeof(MACSEC_SETTINGS) == (2 * sizeof(MACSEC_CONFIG)))) + assert_line_5765 = 1 / (int)(!!(sizeof(MACSEC_SETTINGS) == (2040))) }; ; enum { - assert_line_5664 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) + assert_line_5766 = 1 / (int)(!!(sizeof(LOGGER_SETTINGS) == 4)) }; ; enum { - assert_line_5665 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) + assert_line_5767 = 1 / (int)(!!(sizeof(DISK_SETTINGS) == 14)) }; ; enum { - assert_line_5666 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) + assert_line_5768 = 1 / (int)(!!(sizeof(SERDESCAM_SETTINGS) == 32)) }; ; enum { - assert_line_5667 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) + assert_line_5769 = 1 / (int)(!!(sizeof(SERDESPOC_SETTINGS) == 10)) }; ; enum { - assert_line_5668 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) + assert_line_5770 = 1 / (int)(!!(sizeof(SERDESGEN_SETTINGS) == 32)) }; ; enum { - assert_line_5669 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) + assert_line_5771 = 1 / (int)(!!(sizeof(RAD_REPORTING_SETTINGS) == 16)) }; ; enum { - assert_line_5670 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) + assert_line_5772 = 1 / (int)(!!(sizeof(CANTERM_SETTINGS) == 6)) }; ; enum { - assert_line_5671 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) + assert_line_5773 = 1 / (int)(!!(sizeof(SFireSettings) == 744)) }; ; enum { - assert_line_5672 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) + assert_line_5774 = 1 / (int)(!!(sizeof(SFireVnetSettings) == 792)) }; ; enum { - assert_line_5673 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) + assert_line_5775 = 1 / (int)(!!(sizeof(SCyanSettings) == 936)) }; ; enum { - assert_line_5674 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) + assert_line_5776 = 1 / (int)(!!(sizeof(SVCAN3Settings) == 40)) }; ; enum { - assert_line_5675 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) + assert_line_5777 = 1 / (int)(!!(sizeof(SVCAN4Settings) == 342)) }; ; enum { - assert_line_5676 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) + assert_line_5778 = 1 / (int)(!!(sizeof(SVCANRFSettings) == 340)) }; ; enum { - assert_line_5677 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) + assert_line_5779 = 1 / (int)(!!(sizeof(SECUSettings) == 470)) }; ; enum { - assert_line_5678 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) + assert_line_5780 = 1 / (int)(!!(sizeof(SPendantSettings) == 470)) }; ; enum { - assert_line_5679 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) + assert_line_5781 = 1 / (int)(!!(sizeof(SIEVBSettings) == 434)) }; ; enum { - assert_line_5680 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) + assert_line_5782 = 1 / (int)(!!(sizeof(SEEVBSettings) == 32)) }; ; enum { - assert_line_5681 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) + assert_line_5783 = 1 / (int)(!!(sizeof(SRADGalaxySettings) == 776)) }; ; enum { - assert_line_5682 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) + assert_line_5784 = 1 / (int)(!!(sizeof(SRADStar2Settings) == 422)) }; ; enum { - assert_line_5683 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) + assert_line_5785 = 1 / (int)(!!(sizeof(SOBD2SimSettings) == 148)) }; enum { - assert_line_5684 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) + assert_line_5786 = 1 / (int)(!!(sizeof(CmProbeSettings) == 4)) +}; +; +enum +{ + assert_line_5787 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1474) + 6))) }; ; enum { - assert_line_5685 = 1 / (int)(!!(sizeof(GLOBAL_SETTINGS) == ((1474) + 6))) + assert_line_5788 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) }; ; enum { - assert_line_5686 = 1 / (int)(!!(sizeof(stCM_ISO157652_TxMessage) == 4128)) + assert_line_5789 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) }; ; enum { - assert_line_5687 = 1 / (int)(!!(sizeof(stCM_ISO157652_RxMessage) == 42)) + assert_line_5790 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) }; ; enum { - assert_line_5688 = 1 / (int)(!!(sizeof(spyFilterLong) == 72)) + assert_line_5791 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) }; ; enum { - assert_line_5689 = 1 / (int)(!!(sizeof(icsSpyMessage) == 72)) + assert_line_5792 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) }; ; enum { - assert_line_5690 = 1 / (int)(!!(sizeof(icsSpyMessageLong) == 72)) + assert_line_5793 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) }; ; enum { - assert_line_5691 = 1 / (int)(!!(sizeof(icsSpyMessageJ1850) == 72)) + assert_line_5794 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) }; ; enum { - assert_line_5692 = 1 / (int)(!!(sizeof(icsSpyMessageVSB) == 64)) + assert_line_5795 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) }; ; enum { - assert_line_5693 = 1 / (int)(!!(sizeof(OBD2ProSettings) == 482)) + assert_line_5796 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) }; ; enum { - assert_line_5694 = 1 / (int)(!!(sizeof(ISO15765_2015_TxMessage) == (32 + sizeof(uint8_t*)))) + assert_line_5797 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) }; ; enum { - assert_line_5695 = 1 / (int)(!!(sizeof(TIMESYNC_ICSHARDWARE_SETTINGS) == 4)) + assert_line_5798 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) }; ; enum { - assert_line_5696 = 1 / (int)(!!(sizeof(SRADSuperMoonSettings) == 186)) + assert_line_5799 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) }; ; enum { - assert_line_5697 = 1 / (int)(!!(sizeof(SRADMoon2Settings) == 170)) + assert_line_5800 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) }; ; enum { - assert_line_5698 = 1 / (int)(!!(sizeof(SRADGigalogSettings) == 706)) + assert_line_5801 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) }; ; enum { - assert_line_5699 = 1 / (int)(!!(sizeof(SRADGigastarSettings) == 710)) + assert_line_5802 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) }; ; enum { - assert_line_5700 = 1 / (int)(!!(sizeof(SExtSubCmdHdr) == 4)) + assert_line_5803 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) }; ; enum { - assert_line_5701 = 1 / (int)(!!(sizeof(SDiskStructure) == 16)) + assert_line_5804 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) }; ; enum { - assert_line_5702 = 1 / (int)(!!(sizeof(SDiskFormatProgress) == 10)) + assert_line_5805 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) }; ; enum { - assert_line_5703 = 1 / (int)(!!(sizeof(SDiskStatus) == 14)) + assert_line_5806 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) }; ; enum { - assert_line_5704 = 1 / (int)(!!(sizeof(SRADPlutoSettings) == 348)) + assert_line_5807 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5705 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5808 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) }; ; enum { - assert_line_5706 = 1 / (int)(!!(sizeof(SNeoECU12Settings) == 358)) + assert_line_5809 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) }; ; enum { - assert_line_5707 = 1 / (int)(!!(sizeof(SPlutoSwitchSettings) == 50378)) + assert_line_5810 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) }; ; enum { - assert_line_5708 = 1 / (int)(!!(sizeof(VCAN4IndSettings) == (228))) + assert_line_5811 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) }; ; enum { - assert_line_5709 = 1 / (int)(!!(sizeof(SRADJupiterSettings) == 348)) + assert_line_5812 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) }; ; enum { - assert_line_5710 = 1 / (int)(!!(sizeof(RadMoonDuoSettings) == 38)) + assert_line_5813 = 1 / (int)(!!(sizeof(SFire3Settings) == (1474))) }; ; enum { - assert_line_5711 = 1 / (int)(!!(sizeof(SFire3Settings) == (1474))) + assert_line_5814 = 1 / (int)(!!(sizeof(SRed2Settings) == (670))) }; ; enum { - assert_line_5712 = 1 / (int)(!!(sizeof(SRed2Settings) == (670))) + assert_line_5815 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) }; ; enum { - assert_line_5713 = 1 / (int)(!!(sizeof(SEtherBadgeSettings) == 316)) + assert_line_5816 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) }; ; enum { - assert_line_5714 = 1 / (int)(!!(sizeof(SRADA2BSettings) == 340)) + assert_line_5817 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) }; ; enum { - assert_line_5715 = 1 / (int)(!!(sizeof(A2BMonitorSettings) == 20)) + assert_line_5818 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) }; ; enum { - assert_line_5716 = 1 / (int)(!!(sizeof(SRADEpsilonSettings) == 386)) + assert_line_5819 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) }; ; enum { - assert_line_5717 = 1 / (int)(!!(sizeof(RAD_GPTP_SETTINGS) == 36)) + assert_line_5820 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) }; ; enum { - assert_line_5718 = 1 / (int)(!!(sizeof(SRADBMSSettings) == 156)) + assert_line_5821 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) }; ; enum { - assert_line_5719 = 1 / (int)(!!(sizeof(SRADMoon3Settings) == 68)) + assert_line_5822 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1124))) }; ; enum { - assert_line_5720 = 1 / (int)(!!(sizeof(SFire3FlexraySettings) == (1124))) + assert_line_5823 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) }; ; enum { - assert_line_5721 = 1 / (int)(!!(sizeof(CANHubSettings) == 56)) + assert_line_5824 = 1 / (int)(!!(sizeof(SRADCometSettings) == 466)) }; ; enum { - assert_line_5722 = 1 / (int)(!!(sizeof(SRADCometSettings) == 466)) + assert_line_5825 = 1 / (int)(!!(sizeof(FlashAccessoryFirmwareParams) == (21))) }; ; diff --git a/src/setup_module_auto_defines.cpp b/src/setup_module_auto_defines.cpp index 050d1525e..82a993bcf 100644 --- a/src/setup_module_auto_defines.cpp +++ b/src/setup_module_auto_defines.cpp @@ -129,6 +129,10 @@ int setup_module_auto_defines(PyObject * module) 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_MAX); result += PyModule_AddIntMacro(module, NETID_INVALID); result += PyModule_AddIntMacro(module, NEODEVICE_UNKNOWN); @@ -409,6 +413,7 @@ int setup_module_auto_defines(PyObject * module) 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); @@ -967,7 +972,15 @@ int setup_module_auto_defines(PyObject * module) 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); @@ -1135,19 +1148,36 @@ 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; + + 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, NUM_DEVICE_FEATURE_BITFIELDS); // enum From 0940f447fd915c0c6d8835236548a5f3c9594799 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 21 May 2024 14:24:41 -0400 Subject: [PATCH 154/201] Arm runner (#177) * unit test start * Completion of PyNeoDeviceEx support in C. didn't compile yet. * add some console messages for libicsneo building * update settings test. * add device settings type check * Network Test should be functional now * update test to only run on arm named branches for now * Update macOS runner. * force minimum macos version --- .github/workflows/tests.yml | 32 + .github/workflows/wheels.yml | 2 +- .gitignore | 1 + .vscode/launch.json | 15 +- build_libicsneo.py | 16 +- gen/ics/__init__.py | 20 - gen/ics/__version.py | 2 - gen/ics/hiddenimports.py | 206 --- gen/ics/structures/__init__.py | 205 --- gen/ics/structures/a2_b_monitor_settings.py | 20 - gen/ics/structures/a2_b_node_type.py | 19 - gen/ics/structures/a2_btdm_mode.py | 24 - gen/ics/structures/can_settings.py | 25 - gen/ics/structures/canfd_settings.py | 24 - gen/ics/structures/canterm_settings.py | 17 - gen/ics/structures/clock_quality_.py | 17 - gen/ics/structures/device_feature.py | 35 - gen/ics/structures/disk_settings.py | 19 - gen/ics/structures/e_device_settings_type.py | 59 - gen/ics/structures/e_disk_format.py | 20 - gen/ics/structures/e_disk_layout.py | 22 - gen/ics/structures/e_generic_api_options.py | 19 - gen/ics/structures/e_gptp_port.py | 31 - gen/ics/structures/e_gptp_role.py | 20 - .../structures/e_plasma_ion_vnet_channel_t.py | 22 - gen/ics/structures/e_uart_port_t.py | 19 - gen/ics/structures/ethernet10_g_settings.py | 21 - .../structures/ethernet10_t1_s_settings.py | 23 - .../structures/ethernet_network_status_t.py | 20 - gen/ics/structures/ethernet_settings.py | 20 - gen/ics/structures/ethernet_settings2.py | 22 - gen/ics/structures/ew_bms_instance_t.py | 19 - .../structures/ew_bms_manager_lock_state_t.py | 19 - gen/ics/structures/ew_bms_manager_port_t.py | 19 - gen/ics/structures/extended_response_code.py | 23 - .../structures/extended_response_generic.py | 17 - gen/ics/structures/fire3_linux_settings.py | 18 - gen/ics/structures/flex_vnet_mode.py | 22 - gen/ics/structures/generic_api_data.py | 19 - gen/ics/structures/generic_api_data_old.py | 19 - gen/ics/structures/generic_api_selector.py | 18 - gen/ics/structures/generic_api_status.py | 20 - gen/ics/structures/generic_binary_status.py | 19 - gen/ics/structures/get_component_versions.py | 16 - .../get_component_versions_response.py | 18 - .../get_supported_features_response.py | 17 - gen/ics/structures/global_settings.py | 108 -- gen/ics/structures/gptp_status.py | 27 - gen/ics/structures/hw_eth_settings.py | 17 - gen/ics/structures/ics_device_status.py | 36 - gen/ics/structures/ics_fire2_device_status.py | 19 - .../ics_fire2_vnet_device_status.py | 17 - gen/ics/structures/ics_fire3_device_status.py | 17 - .../ics_flex_vnetz_device_status.py | 17 - .../structures/ics_obd2_pro_device_status.py | 15 - .../structures/ics_rad_bms_device_status.py | 15 - .../ics_rad_epsilon_device_status.py | 15 - .../ics_rad_jupiter_device_status.py | 15 - .../ics_rad_moon_duo_device_status.py | 15 - .../structures/ics_rad_pluto_device_status.py | 15 - .../structures/ics_spy_message_flex_ray.py | 96 -- gen/ics/structures/ics_spy_message_long.py | 56 - gen/ics/structures/ics_spy_message_mdio.py | 74 - gen/ics/structures/ics_spy_message_vsb.py | 55 - gen/ics/structures/ics_spy_messagew_bms.py | 92 -- gen/ics/structures/ics_vcan4_device_status.py | 17 - .../ics_vcan4_industrial_device_status.py | 15 - .../structures/iso15765_2015_tx_message.py | 58 - .../iso9141_keyword2000_init_step.py | 17 - .../iso9141_keyword2000_settings.py | 24 - gen/ics/structures/j1708_settings.py | 15 - gen/ics/structures/lin_settings.py | 21 - gen/ics/structures/logger_settings.py | 17 - gen/ics/structures/mac_sec_map_.py | 35 - gen/ics/structures/mac_sec_rule_.py | 60 - gen/ics/structures/mac_sec_sa_.py | 35 - gen/ics/structures/mac_sec_sc_.py | 37 - gen/ics/structures/mac_sec_sec_y_.py | 41 - gen/ics/structures/macsec_cipher_suite.py | 20 - gen/ics/structures/macsec_config.py | 27 - gen/ics/structures/macsec_mpls_outer_t.py | 16 - gen/ics/structures/macsec_packet_type.py | 23 - gen/ics/structures/macsec_settings.py | 30 - gen/ics/structures/macsec_strip_sectag_icv.py | 20 - gen/ics/structures/macsec_validateframe.py | 20 - gen/ics/structures/macsec_vlantag_t.py | 16 - gen/ics/structures/op_eth_general_settings.py | 46 - gen/ics/structures/op_eth_link_mode.py | 20 - gen/ics/structures/op_eth_settings.py | 43 - gen/ics/structures/port_identity.py | 15 - gen/ics/structures/priority_vector.py | 19 - .../rad_moon_duo_converter_settings.py | 21 - gen/ics/structures/rad_reporting_settings.py | 22 - gen/ics/structures/s_cm_probe_settings.py | 18 - gen/ics/structures/s_cyan_settings.py | 108 -- gen/ics/structures/s_device_settings.py | 108 -- gen/ics/structures/s_disk_details.py | 19 - gen/ics/structures/s_disk_format_progress.py | 17 - gen/ics/structures/s_disk_status.py | 18 - gen/ics/structures/s_disk_structure.py | 18 - gen/ics/structures/s_ether_badge_settings.py | 63 - gen/ics/structures/s_ext_sub_cmd_hdr.py | 17 - .../s_extended_data_flash_header.py | 17 - .../structures/s_fire3_flexray_settings.py | 120 -- gen/ics/structures/s_fire3_settings.py | 137 -- gen/ics/structures/s_fire_settings.py | 72 - gen/ics/structures/s_fire_vnet_settings.py | 76 - gen/ics/structures/s_flex_vnetz_settings.py | 88 -- gen/ics/structures/s_jupiter_ptp_params_s.py | 21 - gen/ics/structures/s_neo_ecu12_settings.py | 63 - .../structures/s_neo_most_gateway_settings.py | 18 - gen/ics/structures/s_pendant_settings.py | 53 - gen/ics/structures/s_phy_reg_pkt.py | 49 - .../structures/s_phy_reg_pkt_clause22_mess.py | 18 - .../structures/s_phy_reg_pkt_clause45_mess.py | 18 - gen/ics/structures/s_phy_reg_pkt_hdr.py | 17 - gen/ics/structures/s_phy_reg_pkt_rw.py | 20 - gen/ics/structures/s_phy_reg_pkt_status.py | 25 - gen/ics/structures/s_pluto_avb_params_s.py | 17 - .../structures/s_pluto_clock_sync_params_s.py | 60 - gen/ics/structures/s_pluto_custom_params_s.py | 23 - .../structures/s_pluto_general_params_s.py | 35 - .../s_pluto_l2_address_lookup_entry_s.py | 24 - .../s_pluto_l2_address_lookup_params_s.py | 22 - .../s_pluto_l2_forwarding_entry_s.py | 20 - .../s_pluto_l2_forwarding_params_s.py | 18 - gen/ics/structures/s_pluto_l2_policing_s.py | 20 - gen/ics/structures/s_pluto_mac_config_s.py | 35 - gen/ics/structures/s_pluto_ptp_params_s.py | 28 - .../structures/s_pluto_retagging_entry_s.py | 23 - .../structures/s_pluto_switch_settings_s.py | 35 - .../s_pluto_vl_forwarding_entry_s.py | 19 - .../s_pluto_vl_forwarding_params_s.py | 18 - .../structures/s_pluto_vl_lookup_entry_s.py | 50 - .../structures/s_pluto_vl_policing_entry_s.py | 20 - gen/ics/structures/s_pluto_vlan_lookup_s.py | 22 - gen/ics/structures/s_rad_moon_duo_settings.py | 33 - gen/ics/structures/s_red2_settings.py | 113 -- gen/ics/structures/s_red_settings.py | 21 - gen/ics/structures/s_spi_port_setting.py | 27 - gen/ics/structures/s_spi_port_settings.py | 17 - gen/ics/structures/s_text_api_settings.py | 105 -- gen/ics/structures/s_vivid_can_settings.py | 40 - gen/ics/structures/s_wil_bridge_config.py | 27 - .../structures/s_wil_connection_settings.py | 23 - .../s_wil_fault_servicing_settings.py | 16 - .../s_wil_network_data_capture_settings.py | 15 - gen/ics/structures/scan_hub_settings.py | 28 - gen/ics/structures/scan_sleep_id.py | 26 - gen/ics/structures/secu_avb_settings.py | 42 - gen/ics/structures/secu_settings.py | 53 - gen/ics/structures/seevb_settings.py | 25 - gen/ics/structures/serdescam_settings.py | 24 - gen/ics/structures/serdesgen_settings.py | 21 - gen/ics/structures/serdespoc_settings.py | 19 - gen/ics/structures/sfp_id.py | 23 - gen/ics/structures/sievb_settings.py | 54 - gen/ics/structures/sobd2_lc_settings.py | 86 -- gen/ics/structures/sobd2_pro_settings.py | 63 - gen/ics/structures/sobd2_sim_settings.py | 45 - gen/ics/structures/software_update_command.py | 19 - gen/ics/structures/spy_filter_long.py | 33 - gen/ics/structures/srad_comet_settings.py | 88 -- gen/ics/structures/srad_epsilon_settings.py | 60 - .../srad_epsilon_switch_settings.py | 22 - gen/ics/structures/srad_galaxy_settings.py | 95 -- gen/ics/structures/srad_gigalog_settings.py | 92 -- gen/ics/structures/srad_gigastar_settings.py | 91 -- .../srad_gptp_and_tap_settings_s.py | 19 - gen/ics/structures/srad_gptp_settings_s.py | 30 - gen/ics/structures/srad_jupiter_settings.py | 59 - .../srad_jupiter_switch_settings.py | 26 - gen/ics/structures/srad_moon2_settings.py | 33 - gen/ics/structures/srad_moon3_settings.py | 34 - gen/ics/structures/srad_pluto_settings.py | 59 - gen/ics/structures/srad_star2_settings.py | 65 - .../structures/srad_super_moon_settings.py | 35 - gen/ics/structures/srada2_b_settings.py | 61 - gen/ics/structures/sradbms_settings.py | 58 - gen/ics/structures/st_api_firmware_info.py | 36 - gen/ics/structures/st_chip_versions.py | 383 ----- .../structures/st_cm_iso157652_rx_message.py | 53 - .../structures/st_cm_iso157652_tx_message.py | 59 - .../structures/start_dhcp_server_command.py | 23 - .../structures/stop_dhcp_server_command.py | 16 - gen/ics/structures/svcan3_settings.py | 26 - gen/ics/structures/svcan412_settings.py | 42 - gen/ics/structures/svcan4_ind_settings.py | 72 - gen/ics/structures/svcan4_settings.py | 58 - gen/ics/structures/svcanrf_settings.py | 48 - gen/ics/structures/swcan_settings.py | 26 - gen/ics/structures/system_identity.py | 18 - gen/ics/structures/tag_options_find_neo_ex.py | 24 - gen/ics/structures/tag_options_open_neo_ex.py | 24 - gen/ics/structures/tagicsneo_vi_command.py | 17 - gen/ics/structures/timestamp_.py | 17 - .../timesync_icshardware_settings.py | 18 - gen/ics/structures/uart_port_config.py | 18 - gen/ics/structures/uart_port_data.py | 18 - gen/ics/structures/uart_port_port_bytes.py | 18 - gen/ics/structures/uart_settings.py | 46 - gen/ics/structures/version_report.py | 22 - gen/ics/structures/w_bms_manager_reset.py | 16 - gen/ics/structures/w_bms_manager_set_lock.py | 17 - gen/ics/structures/wbms_gateway_settings.py | 19 - generate_icsneo40_structs.py | 51 +- create_version.py => ics_utility.py | 38 + icsnVC40.h.json | 19 + include/exceptions.h | 2 - include/methods.h | 317 +++-- include/object_neo_device.h | 166 --- msvc/python_ics.vcxproj | 4 +- pyproject.toml | 4 +- requirements.txt | 3 +- setup.py | 192 ++- src/exceptions.cpp | 34 - src/ics/py_neo_device_ex.py | 483 +++++++ src/icsdebug.py | 30 +- src/main.cpp | 13 +- src/methods.cpp | 1260 +++++++++++------ src/object_neo_device.cpp | 52 - tests/__init__.py | 0 {test => tests}/obsolete/cmvspy.h | 0 {test => tests}/obsolete/cmvspy.py | 0 {test => tests}/obsolete/cmvspyconvert.py | 0 {test => tests}/obsolete/test_coremini.py | 0 {test => tests/obsolete}/test_find_devices.py | 0 .../obsolete/test_get_device_status.py | 0 {test => tests}/obsolete/test_network_fire.py | 0 {test => tests}/obsolete/test_open_close.py | 8 +- {test => tests/obsolete}/test_structs.py | 0 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 + 236 files changed, 2070 insertions(+), 8440 deletions(-) create mode 100644 .github/workflows/tests.yml delete mode 100644 gen/ics/__init__.py delete mode 100644 gen/ics/__version.py delete mode 100644 gen/ics/hiddenimports.py delete mode 100644 gen/ics/structures/__init__.py delete mode 100644 gen/ics/structures/a2_b_monitor_settings.py delete mode 100644 gen/ics/structures/a2_b_node_type.py delete mode 100644 gen/ics/structures/a2_btdm_mode.py delete mode 100644 gen/ics/structures/can_settings.py delete mode 100644 gen/ics/structures/canfd_settings.py delete mode 100644 gen/ics/structures/canterm_settings.py delete mode 100644 gen/ics/structures/clock_quality_.py delete mode 100644 gen/ics/structures/device_feature.py delete mode 100644 gen/ics/structures/disk_settings.py delete mode 100644 gen/ics/structures/e_device_settings_type.py delete mode 100644 gen/ics/structures/e_disk_format.py delete mode 100644 gen/ics/structures/e_disk_layout.py delete mode 100644 gen/ics/structures/e_generic_api_options.py delete mode 100644 gen/ics/structures/e_gptp_port.py delete mode 100644 gen/ics/structures/e_gptp_role.py delete mode 100644 gen/ics/structures/e_plasma_ion_vnet_channel_t.py delete mode 100644 gen/ics/structures/e_uart_port_t.py delete mode 100644 gen/ics/structures/ethernet10_g_settings.py delete mode 100644 gen/ics/structures/ethernet10_t1_s_settings.py delete mode 100644 gen/ics/structures/ethernet_network_status_t.py delete mode 100644 gen/ics/structures/ethernet_settings.py delete mode 100644 gen/ics/structures/ethernet_settings2.py delete mode 100644 gen/ics/structures/ew_bms_instance_t.py delete mode 100644 gen/ics/structures/ew_bms_manager_lock_state_t.py delete mode 100644 gen/ics/structures/ew_bms_manager_port_t.py delete mode 100644 gen/ics/structures/extended_response_code.py delete mode 100644 gen/ics/structures/extended_response_generic.py delete mode 100644 gen/ics/structures/fire3_linux_settings.py delete mode 100644 gen/ics/structures/flex_vnet_mode.py delete mode 100644 gen/ics/structures/generic_api_data.py delete mode 100644 gen/ics/structures/generic_api_data_old.py delete mode 100644 gen/ics/structures/generic_api_selector.py delete mode 100644 gen/ics/structures/generic_api_status.py delete mode 100644 gen/ics/structures/generic_binary_status.py delete mode 100644 gen/ics/structures/get_component_versions.py delete mode 100644 gen/ics/structures/get_component_versions_response.py delete mode 100644 gen/ics/structures/get_supported_features_response.py delete mode 100644 gen/ics/structures/global_settings.py delete mode 100644 gen/ics/structures/gptp_status.py delete mode 100644 gen/ics/structures/hw_eth_settings.py delete mode 100644 gen/ics/structures/ics_device_status.py delete mode 100644 gen/ics/structures/ics_fire2_device_status.py delete mode 100644 gen/ics/structures/ics_fire2_vnet_device_status.py delete mode 100644 gen/ics/structures/ics_fire3_device_status.py delete mode 100644 gen/ics/structures/ics_flex_vnetz_device_status.py delete mode 100644 gen/ics/structures/ics_obd2_pro_device_status.py delete mode 100644 gen/ics/structures/ics_rad_bms_device_status.py delete mode 100644 gen/ics/structures/ics_rad_epsilon_device_status.py delete mode 100644 gen/ics/structures/ics_rad_jupiter_device_status.py delete mode 100644 gen/ics/structures/ics_rad_moon_duo_device_status.py delete mode 100644 gen/ics/structures/ics_rad_pluto_device_status.py delete mode 100644 gen/ics/structures/ics_spy_message_flex_ray.py delete mode 100644 gen/ics/structures/ics_spy_message_long.py delete mode 100644 gen/ics/structures/ics_spy_message_mdio.py delete mode 100644 gen/ics/structures/ics_spy_message_vsb.py delete mode 100644 gen/ics/structures/ics_spy_messagew_bms.py delete mode 100644 gen/ics/structures/ics_vcan4_device_status.py delete mode 100644 gen/ics/structures/ics_vcan4_industrial_device_status.py delete mode 100644 gen/ics/structures/iso15765_2015_tx_message.py delete mode 100644 gen/ics/structures/iso9141_keyword2000_init_step.py delete mode 100644 gen/ics/structures/iso9141_keyword2000_settings.py delete mode 100644 gen/ics/structures/j1708_settings.py delete mode 100644 gen/ics/structures/lin_settings.py delete mode 100644 gen/ics/structures/logger_settings.py delete mode 100644 gen/ics/structures/mac_sec_map_.py delete mode 100644 gen/ics/structures/mac_sec_rule_.py delete mode 100644 gen/ics/structures/mac_sec_sa_.py delete mode 100644 gen/ics/structures/mac_sec_sc_.py delete mode 100644 gen/ics/structures/mac_sec_sec_y_.py delete mode 100644 gen/ics/structures/macsec_cipher_suite.py delete mode 100644 gen/ics/structures/macsec_config.py delete mode 100644 gen/ics/structures/macsec_mpls_outer_t.py delete mode 100644 gen/ics/structures/macsec_packet_type.py delete mode 100644 gen/ics/structures/macsec_settings.py delete mode 100644 gen/ics/structures/macsec_strip_sectag_icv.py delete mode 100644 gen/ics/structures/macsec_validateframe.py delete mode 100644 gen/ics/structures/macsec_vlantag_t.py delete mode 100644 gen/ics/structures/op_eth_general_settings.py delete mode 100644 gen/ics/structures/op_eth_link_mode.py delete mode 100644 gen/ics/structures/op_eth_settings.py delete mode 100644 gen/ics/structures/port_identity.py delete mode 100644 gen/ics/structures/priority_vector.py delete mode 100644 gen/ics/structures/rad_moon_duo_converter_settings.py delete mode 100644 gen/ics/structures/rad_reporting_settings.py delete mode 100644 gen/ics/structures/s_cm_probe_settings.py delete mode 100644 gen/ics/structures/s_cyan_settings.py delete mode 100644 gen/ics/structures/s_device_settings.py delete mode 100644 gen/ics/structures/s_disk_details.py delete mode 100644 gen/ics/structures/s_disk_format_progress.py delete mode 100644 gen/ics/structures/s_disk_status.py delete mode 100644 gen/ics/structures/s_disk_structure.py delete mode 100644 gen/ics/structures/s_ether_badge_settings.py delete mode 100644 gen/ics/structures/s_ext_sub_cmd_hdr.py delete mode 100644 gen/ics/structures/s_extended_data_flash_header.py delete mode 100644 gen/ics/structures/s_fire3_flexray_settings.py delete mode 100644 gen/ics/structures/s_fire3_settings.py delete mode 100644 gen/ics/structures/s_fire_settings.py delete mode 100644 gen/ics/structures/s_fire_vnet_settings.py delete mode 100644 gen/ics/structures/s_flex_vnetz_settings.py delete mode 100644 gen/ics/structures/s_jupiter_ptp_params_s.py delete mode 100644 gen/ics/structures/s_neo_ecu12_settings.py delete mode 100644 gen/ics/structures/s_neo_most_gateway_settings.py delete mode 100644 gen/ics/structures/s_pendant_settings.py delete mode 100644 gen/ics/structures/s_phy_reg_pkt.py delete mode 100644 gen/ics/structures/s_phy_reg_pkt_clause22_mess.py delete mode 100644 gen/ics/structures/s_phy_reg_pkt_clause45_mess.py delete mode 100644 gen/ics/structures/s_phy_reg_pkt_hdr.py delete mode 100644 gen/ics/structures/s_phy_reg_pkt_rw.py delete mode 100644 gen/ics/structures/s_phy_reg_pkt_status.py delete mode 100644 gen/ics/structures/s_pluto_avb_params_s.py delete mode 100644 gen/ics/structures/s_pluto_clock_sync_params_s.py delete mode 100644 gen/ics/structures/s_pluto_custom_params_s.py delete mode 100644 gen/ics/structures/s_pluto_general_params_s.py delete mode 100644 gen/ics/structures/s_pluto_l2_address_lookup_entry_s.py delete mode 100644 gen/ics/structures/s_pluto_l2_address_lookup_params_s.py delete mode 100644 gen/ics/structures/s_pluto_l2_forwarding_entry_s.py delete mode 100644 gen/ics/structures/s_pluto_l2_forwarding_params_s.py delete mode 100644 gen/ics/structures/s_pluto_l2_policing_s.py delete mode 100644 gen/ics/structures/s_pluto_mac_config_s.py delete mode 100644 gen/ics/structures/s_pluto_ptp_params_s.py delete mode 100644 gen/ics/structures/s_pluto_retagging_entry_s.py delete mode 100644 gen/ics/structures/s_pluto_switch_settings_s.py delete mode 100644 gen/ics/structures/s_pluto_vl_forwarding_entry_s.py delete mode 100644 gen/ics/structures/s_pluto_vl_forwarding_params_s.py delete mode 100644 gen/ics/structures/s_pluto_vl_lookup_entry_s.py delete mode 100644 gen/ics/structures/s_pluto_vl_policing_entry_s.py delete mode 100644 gen/ics/structures/s_pluto_vlan_lookup_s.py delete mode 100644 gen/ics/structures/s_rad_moon_duo_settings.py delete mode 100644 gen/ics/structures/s_red2_settings.py delete mode 100644 gen/ics/structures/s_red_settings.py delete mode 100644 gen/ics/structures/s_spi_port_setting.py delete mode 100644 gen/ics/structures/s_spi_port_settings.py delete mode 100644 gen/ics/structures/s_text_api_settings.py delete mode 100644 gen/ics/structures/s_vivid_can_settings.py delete mode 100644 gen/ics/structures/s_wil_bridge_config.py delete mode 100644 gen/ics/structures/s_wil_connection_settings.py delete mode 100644 gen/ics/structures/s_wil_fault_servicing_settings.py delete mode 100644 gen/ics/structures/s_wil_network_data_capture_settings.py delete mode 100644 gen/ics/structures/scan_hub_settings.py delete mode 100644 gen/ics/structures/scan_sleep_id.py delete mode 100644 gen/ics/structures/secu_avb_settings.py delete mode 100644 gen/ics/structures/secu_settings.py delete mode 100644 gen/ics/structures/seevb_settings.py delete mode 100644 gen/ics/structures/serdescam_settings.py delete mode 100644 gen/ics/structures/serdesgen_settings.py delete mode 100644 gen/ics/structures/serdespoc_settings.py delete mode 100644 gen/ics/structures/sfp_id.py delete mode 100644 gen/ics/structures/sievb_settings.py delete mode 100644 gen/ics/structures/sobd2_lc_settings.py delete mode 100644 gen/ics/structures/sobd2_pro_settings.py delete mode 100644 gen/ics/structures/sobd2_sim_settings.py delete mode 100644 gen/ics/structures/software_update_command.py delete mode 100644 gen/ics/structures/spy_filter_long.py delete mode 100644 gen/ics/structures/srad_comet_settings.py delete mode 100644 gen/ics/structures/srad_epsilon_settings.py delete mode 100644 gen/ics/structures/srad_epsilon_switch_settings.py delete mode 100644 gen/ics/structures/srad_galaxy_settings.py delete mode 100644 gen/ics/structures/srad_gigalog_settings.py delete mode 100644 gen/ics/structures/srad_gigastar_settings.py delete mode 100644 gen/ics/structures/srad_gptp_and_tap_settings_s.py delete mode 100644 gen/ics/structures/srad_gptp_settings_s.py delete mode 100644 gen/ics/structures/srad_jupiter_settings.py delete mode 100644 gen/ics/structures/srad_jupiter_switch_settings.py delete mode 100644 gen/ics/structures/srad_moon2_settings.py delete mode 100644 gen/ics/structures/srad_moon3_settings.py delete mode 100644 gen/ics/structures/srad_pluto_settings.py delete mode 100644 gen/ics/structures/srad_star2_settings.py delete mode 100644 gen/ics/structures/srad_super_moon_settings.py delete mode 100644 gen/ics/structures/srada2_b_settings.py delete mode 100644 gen/ics/structures/sradbms_settings.py delete mode 100644 gen/ics/structures/st_api_firmware_info.py delete mode 100644 gen/ics/structures/st_chip_versions.py delete mode 100644 gen/ics/structures/st_cm_iso157652_rx_message.py delete mode 100644 gen/ics/structures/st_cm_iso157652_tx_message.py delete mode 100644 gen/ics/structures/start_dhcp_server_command.py delete mode 100644 gen/ics/structures/stop_dhcp_server_command.py delete mode 100644 gen/ics/structures/svcan3_settings.py delete mode 100644 gen/ics/structures/svcan412_settings.py delete mode 100644 gen/ics/structures/svcan4_ind_settings.py delete mode 100644 gen/ics/structures/svcan4_settings.py delete mode 100644 gen/ics/structures/svcanrf_settings.py delete mode 100644 gen/ics/structures/swcan_settings.py delete mode 100644 gen/ics/structures/system_identity.py delete mode 100644 gen/ics/structures/tag_options_find_neo_ex.py delete mode 100644 gen/ics/structures/tag_options_open_neo_ex.py delete mode 100644 gen/ics/structures/tagicsneo_vi_command.py delete mode 100644 gen/ics/structures/timestamp_.py delete mode 100644 gen/ics/structures/timesync_icshardware_settings.py delete mode 100644 gen/ics/structures/uart_port_config.py delete mode 100644 gen/ics/structures/uart_port_data.py delete mode 100644 gen/ics/structures/uart_port_port_bytes.py delete mode 100644 gen/ics/structures/uart_settings.py delete mode 100644 gen/ics/structures/version_report.py delete mode 100644 gen/ics/structures/w_bms_manager_reset.py delete mode 100644 gen/ics/structures/w_bms_manager_set_lock.py delete mode 100644 gen/ics/structures/wbms_gateway_settings.py rename create_version.py => ics_utility.py (56%) delete mode 100644 include/object_neo_device.h create mode 100644 src/ics/py_neo_device_ex.py delete mode 100644 src/object_neo_device.cpp create mode 100644 tests/__init__.py rename {test => tests}/obsolete/cmvspy.h (100%) rename {test => tests}/obsolete/cmvspy.py (100%) rename {test => tests}/obsolete/cmvspyconvert.py (100%) rename {test => tests}/obsolete/test_coremini.py (100%) rename {test => tests/obsolete}/test_find_devices.py (100%) rename {test => tests}/obsolete/test_get_device_status.py (100%) rename {test => tests}/obsolete/test_network_fire.py (100%) rename {test => tests}/obsolete/test_open_close.py (86%) rename {test => tests/obsolete}/test_structs.py (100%) create mode 100644 tests/runner/Readme.md create mode 100644 tests/runner/__init__.py create mode 100644 tests/runner/test_network.py create mode 100644 tests/runner/test_open_close.py create mode 100644 tests/runner/test_settings.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..9437fb748 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,32 @@ +name: Run Unit Tests +on: + push: + branches: + -'arm/**' + 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 + + - 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 diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 808c7fa33..e3c7b9f74 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04, windows-2019, macOS-13] + os: [ubuntu-22.04, windows-2022, macOS-14] steps: - uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index 45d93fe76..1fcb4f10f 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ lib64/ parts/ sdist/ var/ +gen/ *.egg-info/ .installed.cfg *.egg diff --git a/.vscode/launch.json b/.vscode/launch.json index e4f70b772..d01294534 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -49,12 +49,25 @@ "type": "cppvsdbg", "request": "attach", "pid": "${command:pickProcess}", - } + }, + /* { "name": "Debugger Attach lldb", "type": "lldb", "request": "attach", "pid": "${command:pickProcess}", } + */ + { + "name": "Debugger attach gdbserver", + "type": "gdb", + "request": "attach", + "executable": "python icsdebug.py", + "target": "127.0.0.1:1234", + "remote": true, + "cwd": "${workspaceRoot}", + "gdbpath": "gdb", + "autorun": [] + }, ] } \ No newline at end of file diff --git a/build_libicsneo.py b/build_libicsneo.py index fd61fc9fc..c2501f0cc 100644 --- a/build_libicsneo.py +++ b/build_libicsneo.py @@ -14,11 +14,12 @@ LIBUSB_BUILD = f"{LIBUSB_ROOT}/build" LIBUSB_INSTALL = f"{LIBUSB_ROOT}/install" -LIBICSNEO_VERSION = "e37d939" +LIBICSNEO_VERSION = "06f6861" 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}") LIBPCAP_VERSION = "1.10.4" LIBPCAP_ROOT = f"{ROOT}/libpcap/{LIBPCAP_VERSION}" @@ -96,9 +97,11 @@ def _build_libpcap(): subprocess.check_output(["make", "install"], cwd=LIBPCAP_BUILD) def _build_libicsneo_linux(): + print("Cleaning libicsneo...") subprocess.check_output(["git", "clean", "-xdf"], cwd="libicsneo") subprocess.check_output(["mkdir", "-p", "libicsneo/build"]) + print("cmake libicsneo...") subprocess.check_output( [ "cmake", @@ -106,9 +109,11 @@ def _build_libicsneo_linux(): "-DLIBICSNEO_BUILD_ICSNEOLEGACY=ON", f"-DCMAKE_PREFIX_PATH={LIBUSB_INSTALL};{LIBPCAP_INSTALL}", "-S", LIBICSNEO_SOURCE, - "-B", LIBICSNEO_BUILD + "-B", LIBICSNEO_BUILD, + "-Wno-dev", ] ) + print("cmake build libicsneo...") subprocess.check_output( ["cmake", "--build", LIBICSNEO_BUILD, "--target", "icsneolegacy", "--parallel", CPUS] ) @@ -132,8 +137,9 @@ def _build_libicsneo_macos(): ) def build(): - print("Building libicsneo...") + print("Building libusb...") _build_libusb() + print("Building libpcap...") _build_libpcap() if sys.platform == "darwin": _build_libicsneo_macos() @@ -156,6 +162,10 @@ def clean(): if "--clean" in sys.argv: clean() exit(0) + + print("Checking out libicsneo...") checkout() + print("Building libicsneo...") build() + print("Copy libicsneo...") copy() diff --git a/gen/ics/__init__.py b/gen/ics/__init__.py deleted file mode 100644 index c8fd30efa..000000000 --- a/gen/ics/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -try: - import ics.__version - __version__ = ics.__version.__version__ - __full_version__ = ics.__version.__full_version__ -except Exception as ex: - print(ex) - -try: - # Release environment - #print("Release") - from ics.ics import * - from ics.structures import * - from ics.hiddenimports import hidden_imports -except Exception as ex: - # Build environment - #print("Debug", ex) - from ics import * - from ics.structures import * - from ics.hiddenimports import hidden_imports - diff --git a/gen/ics/__version.py b/gen/ics/__version.py deleted file mode 100644 index 290d54aae..000000000 --- a/gen/ics/__version.py +++ /dev/null @@ -1,2 +0,0 @@ -__version__ = "914.14" -__full_version__ = "v914.14-c07589f-20240223155111" diff --git a/gen/ics/hiddenimports.py b/gen/ics/hiddenimports.py deleted file mode 100644 index 504d8a035..000000000 --- a/gen/ics/hiddenimports.py +++ /dev/null @@ -1,206 +0,0 @@ -hidden_imports = [ - "ics.structures.s_extended_data_flash_header", - "ics.structures.tag_options_open_neo_ex", - "ics.structures.tag_options_find_neo_ex", - "ics.structures.tagicsneo_vi_command", - "ics.structures.st_api_firmware_info", - "ics.structures.can_settings", - "ics.structures.canfd_settings", - "ics.structures.swcan_settings", - "ics.structures.lin_settings", - "ics.structures.iso9141_keyword2000_init_step", - "ics.structures.iso9141_keyword2000_settings", - "ics.structures.uart_settings", - "ics.structures.j1708_settings", - "ics.structures.s_red_settings", - "ics.structures.s_text_api_settings", - "ics.structures.st_chip_versions", - "ics.structures.s_neo_most_gateway_settings", - "ics.structures.op_eth_general_settings", - "ics.structures.srad_gptp_settings_s", - "ics.structures.srad_gptp_and_tap_settings_s", - "ics.structures.hw_eth_settings", - "ics.structures.op_eth_settings", - "ics.structures.ethernet_settings", - "ics.structures.ethernet_settings2", - "ics.structures.ethernet10_g_settings", - "ics.structures.ethernet10_t1_s_settings", - "ics.structures.macsec_vlantag_t", - "ics.structures.macsec_mpls_outer_t", - "ics.structures.mac_sec_rule_", - "ics.structures.mac_sec_map_", - "ics.structures.mac_sec_sec_y_", - "ics.structures.mac_sec_sc_", - "ics.structures.mac_sec_sa_", - "ics.structures.mac_sec_flags_", - "ics.structures.macsec_config", - "ics.structures.mac_sec_global_flags_", - "ics.structures.macsec_settings", - "ics.structures.logger_settings", - "ics.structures.disk_settings", - "ics.structures.canterm_settings", - "ics.structures.timesync_icshardware_settings", - "ics.structures.s_disk_status", - "ics.structures.s_disk_structure", - "ics.structures.s_disk_details", - "ics.structures.s_disk_format_progress", - "ics.structures.start_dhcp_server_command", - "ics.structures.stop_dhcp_server_command", - "ics.structures.extended_response_generic", - "ics.structures.generic_api_selector", - "ics.structures.generic_api_status", - "ics.structures.generic_api_data", - "ics.structures.generic_api_data_old", - "ics.structures.w_bms_manager_set_lock", - "ics.structures.w_bms_manager_reset", - "ics.structures.uart_port_data", - "ics.structures.uart_port_port_bytes", - "ics.structures.uart_port_config", - "ics.structures.get_supported_features_response", - "ics.structures.version_report", - "ics.structures.get_component_versions", - "ics.structures.get_component_versions_response", - "ics.structures.software_update_command", - "ics.structures.s_ext_sub_cmd_hdr", - "ics.structures.timestamp_", - "ics.structures.port_identity", - "ics.structures.clock_quality_", - "ics.structures.system_identity", - "ics.structures.priority_vector", - "ics.structures.gptp_status", - "ics.structures.generic_binary_status", - "ics.structures.serdescam_settings", - "ics.structures.serdespoc_settings", - "ics.structures.serdesgen_settings", - "ics.structures.rad_moon_duo_converter_settings", - "ics.structures.rad_reporting_settings", - "ics.structures.s_fire_settings", - "ics.structures.s_fire_vnet_settings", - "ics.structures.s_cyan_settings", - "ics.structures.svcan3_settings", - "ics.structures.svcan4_settings", - "ics.structures.svcanrf_settings", - "ics.structures.secu_settings", - "ics.structures.s_pendant_settings", - "ics.structures.sievb_settings", - "ics.structures.seevb_settings", - "ics.structures.srad_galaxy_settings", - "ics.structures.srad_star2_settings", - "ics.structures.srad_super_moon_settings", - "ics.structures.a2_b_monitor_settings", - "ics.structures.srada2_b_settings", - "ics.structures.srad_moon2_settings", - "ics.structures.srad_moon3_settings", - "ics.structures.srad_gigalog_settings", - "ics.structures.srad_gigastar_settings", - "ics.structures.s_vivid_can_settings", - "ics.structures.sobd2_sim_settings", - "ics.structures.s_cm_probe_settings", - "ics.structures.sobd2_pro_settings", - "ics.structures.svcan412_settings", - "ics.structures.secu_avb_settings", - "ics.structures.s_pluto_l2_address_lookup_entry_s", - "ics.structures.s_pluto_l2_address_lookup_params_s", - "ics.structures.s_pluto_l2_forwarding_params_s", - "ics.structures.s_pluto_l2_forwarding_entry_s", - "ics.structures.s_pluto_l2_policing_s", - "ics.structures.s_pluto_vlan_lookup_s", - "ics.structures.s_pluto_mac_config_s", - "ics.structures.s_pluto_retagging_entry_s", - "ics.structures.s_pluto_general_params_s", - "ics.structures.s_pluto_vl_lookup_entry_s", - "ics.structures.s_pluto_vl_policing_entry_s", - "ics.structures.s_pluto_vl_forwarding_params_s", - "ics.structures.s_pluto_vl_forwarding_entry_s", - "ics.structures.s_pluto_avb_params_s", - "ics.structures.s_pluto_clock_sync_params_s", - "ics.structures.s_pluto_ptp_params_s", - "ics.structures.s_pluto_custom_params_s", - "ics.structures.s_pluto_switch_settings_s", - "ics.structures.srad_pluto_settings", - "ics.structures.scan_sleep_id", - "ics.structures.scan_hub_settings", - "ics.structures.s_flex_vnetz_settings", - "ics.structures.s_neo_ecu12_settings", - "ics.structures.svcan4_ind_settings", - "ics.structures.sobd2_lc_settings", - "ics.structures.s_jupiter_ptp_params_s", - "ics.structures.srad_jupiter_switch_settings", - "ics.structures.srad_jupiter_settings", - "ics.structures.fire3_linux_settings", - "ics.structures.s_red2_settings", - "ics.structures.s_fire3_settings", - "ics.structures.s_fire3_flexray_settings", - "ics.structures.s_rad_moon_duo_settings", - "ics.structures.s_ether_badge_settings", - "ics.structures.srad_epsilon_switch_settings", - "ics.structures.srad_epsilon_settings", - "ics.structures.s_wil_fault_servicing_settings", - "ics.structures.s_wil_network_data_capture_settings", - "ics.structures.s_wil_connection_settings", - "ics.structures.s_wil_bridge_config", - "ics.structures.s_spi_port_setting", - "ics.structures.s_spi_port_settings", - "ics.structures.wbms_gateway_settings", - "ics.structures.sradbms_settings", - "ics.structures.srad_comet_settings", - "ics.structures.global_settings", - "ics.structures.s_device_settings", - "ics.structures.st_cm_iso157652_tx_message", - "ics.structures.iso15765_2015_tx_message", - "ics.structures.st_cm_iso157652_rx_message", - "ics.structures.spy_filter_long", - "ics.structures.ics_spy_message_flex_ray", - "ics.structures.ics_spy_message_mdio", - "ics.structures.ics_spy_messagew_bms", - "ics.structures.ics_spy_message_long", - "ics.structures.ics_spy_message_vsb", - "ics.structures.ethernet_network_status_t", - "ics.structures.ics_fire2_device_status", - "ics.structures.ics_fire2_vnet_device_status", - "ics.structures.ics_vcan4_device_status", - "ics.structures.ics_flex_vnetz_device_status", - "ics.structures.ics_fire3_device_status", - "ics.structures.ics_rad_moon_duo_device_status", - "ics.structures.ics_rad_jupiter_device_status", - "ics.structures.ics_obd2_pro_device_status", - "ics.structures.ics_rad_pluto_device_status", - "ics.structures.ics_vcan4_industrial_device_status", - "ics.structures.ics_rad_epsilon_device_status", - "ics.structures.ics_rad_bms_device_status", - "ics.structures.ics_device_status", - "ics.structures.s_phy_reg_pkt_hdr", - "ics.structures.s_phy_reg_pkt_clause22_mess", - "ics.structures.s_phy_reg_pkt_clause45_mess", - "ics.structures.s_phy_reg_pkt", - "ics.structures.flash_accessory_firmware_params", - "ics.structures.op_eth_link_mode", - "ics.structures.sfp_id", - "ics.structures.macsec_packet_type", - "ics.structures.macsec_validateframe", - "ics.structures.macsec_strip_sectag_icv", - "ics.structures.macsec_cipher_suite", - "ics.structures.e_disk_format", - "ics.structures.e_disk_layout", - "ics.structures.extended_response_code", - "ics.structures.e_gptp_port", - "ics.structures.e_gptp_role", - "ics.structures.a2_btdm_mode", - "ics.structures.a2_b_node_type", - "ics.structures.flex_vnet_mode", - "ics.structures.epsilon_10_g_phy_select", - "ics.structures.e_device_settings_type", - "ics.structures.e_plasma_ion_vnet_channel_t", - "ics.structures.ew_bms_manager_port_t", - "ics.structures.ew_bms_manager_lock_state_t", - "ics.structures.e_uart_port_t", - "ics.structures.e_generic_api_options", - "ics.structures.ew_bms_instance_t", - "ics.structures.s_phy_reg_pkt_status", - "ics.structures.s_phy_reg_pkt_rw", - "ics.structures.device_feature", - "ics.structures.accessory_error_type", - "ics.structures.flash_accessory_index", - "ics.structures.epsilon10_gphyfw", -] - diff --git a/gen/ics/structures/__init__.py b/gen/ics/structures/__init__.py deleted file mode 100644 index ecde62062..000000000 --- a/gen/ics/structures/__init__.py +++ /dev/null @@ -1,205 +0,0 @@ -__all__ = [ - "s_extended_data_flash_header", - "tag_options_open_neo_ex", - "tag_options_find_neo_ex", - "tagicsneo_vi_command", - "st_api_firmware_info", - "can_settings", - "canfd_settings", - "swcan_settings", - "lin_settings", - "iso9141_keyword2000_init_step", - "iso9141_keyword2000_settings", - "uart_settings", - "j1708_settings", - "s_red_settings", - "s_text_api_settings", - "st_chip_versions", - "s_neo_most_gateway_settings", - "op_eth_general_settings", - "srad_gptp_settings_s", - "srad_gptp_and_tap_settings_s", - "hw_eth_settings", - "op_eth_settings", - "ethernet_settings", - "ethernet_settings2", - "ethernet10_g_settings", - "ethernet10_t1_s_settings", - "macsec_vlantag_t", - "macsec_mpls_outer_t", - "mac_sec_rule_", - "mac_sec_map_", - "mac_sec_sec_y_", - "mac_sec_sc_", - "mac_sec_sa_", - "mac_sec_flags_", - "macsec_config", - "mac_sec_global_flags_", - "macsec_settings", - "logger_settings", - "disk_settings", - "canterm_settings", - "timesync_icshardware_settings", - "s_disk_status", - "s_disk_structure", - "s_disk_details", - "s_disk_format_progress", - "start_dhcp_server_command", - "stop_dhcp_server_command", - "extended_response_generic", - "generic_api_selector", - "generic_api_status", - "generic_api_data", - "generic_api_data_old", - "w_bms_manager_set_lock", - "w_bms_manager_reset", - "uart_port_data", - "uart_port_port_bytes", - "uart_port_config", - "get_supported_features_response", - "version_report", - "get_component_versions", - "get_component_versions_response", - "software_update_command", - "s_ext_sub_cmd_hdr", - "timestamp_", - "port_identity", - "clock_quality_", - "system_identity", - "priority_vector", - "gptp_status", - "generic_binary_status", - "serdescam_settings", - "serdespoc_settings", - "serdesgen_settings", - "rad_moon_duo_converter_settings", - "rad_reporting_settings", - "s_fire_settings", - "s_fire_vnet_settings", - "s_cyan_settings", - "svcan3_settings", - "svcan4_settings", - "svcanrf_settings", - "secu_settings", - "s_pendant_settings", - "sievb_settings", - "seevb_settings", - "srad_galaxy_settings", - "srad_star2_settings", - "srad_super_moon_settings", - "a2_b_monitor_settings", - "srada2_b_settings", - "srad_moon2_settings", - "srad_moon3_settings", - "srad_gigalog_settings", - "srad_gigastar_settings", - "s_vivid_can_settings", - "sobd2_sim_settings", - "s_cm_probe_settings", - "sobd2_pro_settings", - "svcan412_settings", - "secu_avb_settings", - "s_pluto_l2_address_lookup_entry_s", - "s_pluto_l2_address_lookup_params_s", - "s_pluto_l2_forwarding_params_s", - "s_pluto_l2_forwarding_entry_s", - "s_pluto_l2_policing_s", - "s_pluto_vlan_lookup_s", - "s_pluto_mac_config_s", - "s_pluto_retagging_entry_s", - "s_pluto_general_params_s", - "s_pluto_vl_lookup_entry_s", - "s_pluto_vl_policing_entry_s", - "s_pluto_vl_forwarding_params_s", - "s_pluto_vl_forwarding_entry_s", - "s_pluto_avb_params_s", - "s_pluto_clock_sync_params_s", - "s_pluto_ptp_params_s", - "s_pluto_custom_params_s", - "s_pluto_switch_settings_s", - "srad_pluto_settings", - "scan_sleep_id", - "scan_hub_settings", - "s_flex_vnetz_settings", - "s_neo_ecu12_settings", - "svcan4_ind_settings", - "sobd2_lc_settings", - "s_jupiter_ptp_params_s", - "srad_jupiter_switch_settings", - "srad_jupiter_settings", - "fire3_linux_settings", - "s_red2_settings", - "s_fire3_settings", - "s_fire3_flexray_settings", - "s_rad_moon_duo_settings", - "s_ether_badge_settings", - "srad_epsilon_switch_settings", - "srad_epsilon_settings", - "s_wil_fault_servicing_settings", - "s_wil_network_data_capture_settings", - "s_wil_connection_settings", - "s_wil_bridge_config", - "s_spi_port_setting", - "s_spi_port_settings", - "wbms_gateway_settings", - "sradbms_settings", - "srad_comet_settings", - "global_settings", - "s_device_settings", - "st_cm_iso157652_tx_message", - "iso15765_2015_tx_message", - "st_cm_iso157652_rx_message", - "spy_filter_long", - "ics_spy_message_flex_ray", - "ics_spy_message_mdio", - "ics_spy_messagew_bms", - "ics_spy_message_long", - "ics_spy_message_vsb", - "ethernet_network_status_t", - "ics_fire2_device_status", - "ics_fire2_vnet_device_status", - "ics_vcan4_device_status", - "ics_flex_vnetz_device_status", - "ics_fire3_device_status", - "ics_rad_moon_duo_device_status", - "ics_rad_jupiter_device_status", - "ics_obd2_pro_device_status", - "ics_rad_pluto_device_status", - "ics_vcan4_industrial_device_status", - "ics_rad_epsilon_device_status", - "ics_rad_bms_device_status", - "ics_device_status", - "s_phy_reg_pkt_hdr", - "s_phy_reg_pkt_clause22_mess", - "s_phy_reg_pkt_clause45_mess", - "s_phy_reg_pkt", - "flash_accessory_firmware_params", - "op_eth_link_mode", - "sfp_id", - "macsec_packet_type", - "macsec_validateframe", - "macsec_strip_sectag_icv", - "macsec_cipher_suite", - "e_disk_format", - "e_disk_layout", - "extended_response_code", - "e_gptp_port", - "e_gptp_role", - "a2_btdm_mode", - "a2_b_node_type", - "flex_vnet_mode", - "epsilon_10_g_phy_select", - "e_device_settings_type", - "e_plasma_ion_vnet_channel_t", - "ew_bms_manager_port_t", - "ew_bms_manager_lock_state_t", - "e_uart_port_t", - "e_generic_api_options", - "ew_bms_instance_t", - "s_phy_reg_pkt_status", - "s_phy_reg_pkt_rw", - "device_feature", - "accessory_error_type", - "flash_accessory_index", - "epsilon10_gphyfw", -] diff --git a/gen/ics/structures/a2_b_monitor_settings.py b/gen/ics/structures/a2_b_monitor_settings.py deleted file mode 100644 index cbe87739a..000000000 --- a/gen/ics/structures/a2_b_monitor_settings.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 a2_b_monitor_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('tdmMode', ctypes.c_uint8), - ('upstreamChannelOffset', ctypes.c_uint8), - ('downstreamChannelOffset', ctypes.c_uint8), - ('nodeType', ctypes.c_uint8), - ('flags', ctypes.c_uint8), - ('reserved', ctypes.c_uint8 * 15), - ] - - -A2BMonitorSettings = a2_b_monitor_settings - diff --git a/gen/ics/structures/a2_b_node_type.py b/gen/ics/structures/a2_b_node_type.py deleted file mode 100644 index 1719206cc..000000000 --- a/gen/ics/structures/a2_b_node_type.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class a2_b_node_type(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - a2bNodeTypeMonitor = 0 - a2bNodeTypeMaster = enum.auto() - a2bNodeTypeSlave = enum.auto() - - -A2BNodeType = a2_b_node_type - diff --git a/gen/ics/structures/a2_btdm_mode.py b/gen/ics/structures/a2_btdm_mode.py deleted file mode 100644 index abb8b0c14..000000000 --- a/gen/ics/structures/a2_btdm_mode.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class a2_btdm_mode(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - tdmModeTDM2 = 0 - tdmModeTDM4 = enum.auto() - tdmModeTDM8 = enum.auto() - tdmModeTDM12 = enum.auto() - tdmModeTDM16 = enum.auto() - tdmModeTDM20 = enum.auto() - tdmModeTDM24 = enum.auto() - tdmModeTDM32 = enum.auto() - - -A2BTDMMode = a2_btdm_mode - diff --git a/gen/ics/structures/can_settings.py b/gen/ics/structures/can_settings.py deleted file mode 100644 index d5af3f4ea..000000000 --- a/gen/ics/structures/can_settings.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class can_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('Mode', ctypes.c_uint8), - ('SetBaudrate', ctypes.c_uint8), - ('Baudrate', ctypes.c_uint8), - ('transceiver_mode', ctypes.c_uint8), - ('TqSeg1', ctypes.c_uint8), - ('TqSeg2', ctypes.c_uint8), - ('TqProp', ctypes.c_uint8), - ('TqSync', ctypes.c_uint8), - ('BRP', ctypes.c_uint16), - ('auto_baud', ctypes.c_uint8), - ('innerFrameDelay25us', ctypes.c_uint8), - ] - - -CAN_SETTINGS = can_settings - diff --git a/gen/ics/structures/canfd_settings.py b/gen/ics/structures/canfd_settings.py deleted file mode 100644 index c963f5178..000000000 --- a/gen/ics/structures/canfd_settings.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class canfd_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('FDMode', ctypes.c_uint8), - ('FDBaudrate', ctypes.c_uint8), - ('FDTqSeg1', ctypes.c_uint8), - ('FDTqSeg2', ctypes.c_uint8), - ('FDTqProp', ctypes.c_uint8), - ('FDTqSync', ctypes.c_uint8), - ('FDBRP', ctypes.c_uint16), - ('FDTDC', ctypes.c_uint8), - ('reserved', ctypes.c_uint8), - ] - - -_CANFD_SETTINGS = canfd_settings -CANFD_SETTINGS = canfd_settings - diff --git a/gen/ics/structures/canterm_settings.py b/gen/ics/structures/canterm_settings.py deleted file mode 100644 index ad9f8f648..000000000 --- a/gen/ics/structures/canterm_settings.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class canterm_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('term_enabled', ctypes.c_uint8), - ('term_network', ctypes.c_uint8), - ('reserved', ctypes.c_uint16 * 2), - ] - - -CANTERM_SETTINGS = canterm_settings - diff --git a/gen/ics/structures/clock_quality_.py b/gen/ics/structures/clock_quality_.py deleted file mode 100644 index a44a70613..000000000 --- a/gen/ics/structures/clock_quality_.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class clock_quality_(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('clock_class', ctypes.c_uint8), - ('clock_accuracy', ctypes.c_uint8), - ('offset_scaled_log_variance', ctypes.c_uint16), - ] - - -_clock_quality = clock_quality_ - diff --git a/gen/ics/structures/device_feature.py b/gen/ics/structures/device_feature.py deleted file mode 100644 index 1b7aa2bba..000000000 --- a/gen/ics/structures/device_feature.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class device_feature(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - networkDWCAN01 = 0 - networkDWCAN02 = enum.auto() - networkDWCAN03 = enum.auto() - networkDWCAN04 = enum.auto() - networkDWCAN05 = enum.auto() - networkDWCAN06 = enum.auto() - networkDWCAN07 = enum.auto() - networkDWCAN08 = enum.auto() - networkTerminationDWCAN01 = enum.auto() - networkTerminationDWCAN02 = enum.auto() - networkTerminationDWCAN03 = enum.auto() - networkTerminationDWCAN04 = enum.auto() - networkTerminationDWCAN05 = enum.auto() - networkTerminationDWCAN06 = enum.auto() - networkTerminationDWCAN07 = enum.auto() - networkTerminationDWCAN08 = enum.auto() - enhancedFlashDriver = enum.auto() - NUM_VALID_DEVICE_FEATURES = enum.auto() - supportedFeatureMax = 65535 - - -DeviceFeature = device_feature - diff --git a/gen/ics/structures/disk_settings.py b/gen/ics/structures/disk_settings.py deleted file mode 100644 index 789382607..000000000 --- a/gen/ics/structures/disk_settings.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class disk_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disk_layout', ctypes.c_uint8), - ('disk_format', ctypes.c_uint8), - ('disk_enables', ctypes.c_uint32), - ('rsvd', ctypes.c_uint8 * 8), - ] - - -DISK_SETTINGS_t = disk_settings -DISK_SETTINGS = disk_settings - diff --git a/gen/ics/structures/e_device_settings_type.py b/gen/ics/structures/e_device_settings_type.py deleted file mode 100644 index fa55bd5c4..000000000 --- a/gen/ics/structures/e_device_settings_type.py +++ /dev/null @@ -1,59 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class e_device_settings_type(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - DeviceFireSettingsType = 0 - DeviceFireVnetSettingsType = enum.auto() - DeviceFire2SettingsType = enum.auto() - DeviceVCAN3SettingsType = enum.auto() - DeviceRADGalaxySettingsType = enum.auto() - DeviceRADStar2SettingsType = enum.auto() - DeviceVCAN4SettingsType = enum.auto() - DeviceVCAN412SettingsType = enum.auto() - DeviceVividCANSettingsType = enum.auto() - DeviceECU_AVBSettingsType = enum.auto() - DeviceRADSuperMoonSettingsType = enum.auto() - DeviceRADMoon2SettingsType = enum.auto() - DeviceRADPlutoSettingsType = enum.auto() - DeviceRADGigalogSettingsType = enum.auto() - DeviceVCANRFSettingsType = enum.auto() - DeviceEEVBSettingsType = enum.auto() - DeviceVCAN4IndSettingsType = enum.auto() - DeviceNeoECU12SettingsType = enum.auto() - DeviceFlexVnetzSettingsType = enum.auto() - DeviceCANHUBSettingsType = enum.auto() - DeviceIEVBSettingsType = enum.auto() - DeviceOBD2SimSettingsType = enum.auto() - DeviceCMProbeSettingsType = enum.auto() - DeviceOBD2ProSettingsType = enum.auto() - DeviceRedSettingsType = enum.auto() - DeviceRADPlutoSwitchSettingsType = enum.auto() - DeviceRADGigastarSettingsType = enum.auto() - DeviceRADJupiterSettingsType = enum.auto() - DeviceRed2SettingsType = enum.auto() - DeviceRadMoonDuoSettingsType = enum.auto() - DeviceEtherBadgeSettingsType = enum.auto() - DeviceRADA2BSettingsType = enum.auto() - DeviceRADEpsilonSettingsType = enum.auto() - DeviceOBD2LCSettingsType = enum.auto() - DeviceRADBMSSettingsType = enum.auto() - DeviceRADMoon3SettingsType = enum.auto() - DeviceFire3SettingsType = enum.auto() - DeviceFire3FlexraySettingsType = enum.auto() - DeviceRADCometSettingsType = enum.auto() - DeviceRed2OemSettingsType = enum.auto() - DeviceSettingsTypeMax = enum.auto() - DeviceSettingsNone = 4294967295 - - -_EDeviceSettingsType = e_device_settings_type -EDeviceSettingsType = e_device_settings_type - diff --git a/gen/ics/structures/e_disk_format.py b/gen/ics/structures/e_disk_format.py deleted file mode 100644 index 5057a6306..000000000 --- a/gen/ics/structures/e_disk_format.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 e_disk_format(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - DiskFormatUnknown = 0 - DiskFormatFAT32 = enum.auto() - DiskFormatexFAT = enum.auto() - - -_EDiskFormat = e_disk_format -EDiskFormat = e_disk_format - diff --git a/gen/ics/structures/e_disk_layout.py b/gen/ics/structures/e_disk_layout.py deleted file mode 100644 index 601c94c21..000000000 --- a/gen/ics/structures/e_disk_layout.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 e_disk_layout(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - DiskLayoutSpanned = 0 - DiskLayoutRAID0 = enum.auto() - DiskLayoutRAID1 = enum.auto() - DiskLayoutRAID5 = enum.auto() - DiskLayoutIndividual = enum.auto() - - -_EDiskLayout = e_disk_layout -EDiskLayout = e_disk_layout - diff --git a/gen/ics/structures/e_generic_api_options.py b/gen/ics/structures/e_generic_api_options.py deleted file mode 100644 index 765aab9a9..000000000 --- a/gen/ics/structures/e_generic_api_options.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class e_generic_api_options(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - eGENERIC_API = 0 - eADI_WIL_API = 1 - - -_eGenericAPIOptions = e_generic_api_options -eGenericAPIOptions = e_generic_api_options - diff --git a/gen/ics/structures/e_gptp_port.py b/gen/ics/structures/e_gptp_port.py deleted file mode 100644 index 8d257daea..000000000 --- a/gen/ics/structures/e_gptp_port.py +++ /dev/null @@ -1,31 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class e_gptp_port(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - 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 - - -eGPTPPort = e_gptp_port - diff --git a/gen/ics/structures/e_gptp_role.py b/gen/ics/structures/e_gptp_role.py deleted file mode 100644 index 25891c5d2..000000000 --- a/gen/ics/structures/e_gptp_role.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 e_gptp_role(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - eRoleDisabled = 0 - eRolePassive = 1 - eRoleMaster = 2 - eRoleSlave = 3 - - -eGPTPRole = e_gptp_role - diff --git a/gen/ics/structures/e_plasma_ion_vnet_channel_t.py b/gen/ics/structures/e_plasma_ion_vnet_channel_t.py deleted file mode 100644 index 14e0e7b3d..000000000 --- a/gen/ics/structures/e_plasma_ion_vnet_channel_t.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 e_plasma_ion_vnet_channel_t(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - PlasmaIonVnetChannelMain = 0 - PlasmaIonVnetChannelA = enum.auto() - PlasmaIonVnetChannelB = enum.auto() - eSoftCore = enum.auto() - eFpgaStatusResp = enum.auto() - - -_EPlasmaIonVnetChannel_t = e_plasma_ion_vnet_channel_t -EPlasmaIonVnetChannel_t = e_plasma_ion_vnet_channel_t - diff --git a/gen/ics/structures/e_uart_port_t.py b/gen/ics/structures/e_uart_port_t.py deleted file mode 100644 index 3f53510e2..000000000 --- a/gen/ics/structures/e_uart_port_t.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class e_uart_port_t(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - eUART0 = 0 - eUART1 = enum.auto() - - -_EUartPort_t = e_uart_port_t -EUartPort_t = e_uart_port_t - diff --git a/gen/ics/structures/ethernet10_g_settings.py b/gen/ics/structures/ethernet10_g_settings.py deleted file mode 100644 index afff83cc8..000000000 --- a/gen/ics/structures/ethernet10_g_settings.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class ethernet10_g_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('flags', ctypes.c_uint32), - ('ip_addr', ctypes.c_uint32), - ('netmask', ctypes.c_uint32), - ('gateway', ctypes.c_uint32), - ('link_speed', ctypes.c_uint8), - ('rsvd2', ctypes.c_uint8 * 7), - ] - - -ETHERNET10G_SETTINGS_t = ethernet10_g_settings -ETHERNET10G_SETTINGS = ethernet10_g_settings - diff --git a/gen/ics/structures/ethernet10_t1_s_settings.py b/gen/ics/structures/ethernet10_t1_s_settings.py deleted file mode 100644 index d79200f87..000000000 --- a/gen/ics/structures/ethernet10_t1_s_settings.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class ethernet10_t1_s_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('max_burst_count', ctypes.c_uint8), - ('burst_timer', ctypes.c_uint8), - ('max_num_nodes', ctypes.c_uint8), - ('local_id', ctypes.c_uint8), - ('to_timer', ctypes.c_uint8), - ('flags', ctypes.c_uint8), - ('local_id_alternate', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 5), - ] - - -ETHERNET10T1S_SETTINGS_t = ethernet10_t1_s_settings -ETHERNET10T1S_SETTINGS = ethernet10_t1_s_settings - diff --git a/gen/ics/structures/ethernet_network_status_t.py b/gen/ics/structures/ethernet_network_status_t.py deleted file mode 100644 index 4611fa66e..000000000 --- a/gen/ics/structures/ethernet_network_status_t.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 ethernet_network_status_t(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('networkId', ctypes.c_uint16), - ('linkStatus', ctypes.c_uint8), - ('linkFullDuplex', ctypes.c_uint8), - ('linkSpeed', ctypes.c_uint8), - ('linkMode', ctypes.c_uint8), - ] - - -_ethernetNetworkStatus_t = ethernet_network_status_t -ethernetNetworkStatus_t = ethernet_network_status_t - diff --git a/gen/ics/structures/ethernet_settings.py b/gen/ics/structures/ethernet_settings.py deleted file mode 100644 index 15159d3d8..000000000 --- a/gen/ics/structures/ethernet_settings.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 ethernet_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('duplex', ctypes.c_uint8), - ('link_speed', ctypes.c_uint8), - ('auto_neg', ctypes.c_uint8), - ('led_mode', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 4), - ] - - -ETHERNET_SETTINGS_t = ethernet_settings -ETHERNET_SETTINGS = ethernet_settings - diff --git a/gen/ics/structures/ethernet_settings2.py b/gen/ics/structures/ethernet_settings2.py deleted file mode 100644 index 4979f2a3d..000000000 --- a/gen/ics/structures/ethernet_settings2.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 ethernet_settings2(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('flags', ctypes.c_uint8), - ('link_speed', ctypes.c_uint8), - ('ip_addr', ctypes.c_uint32), - ('netmask', ctypes.c_uint32), - ('gateway', ctypes.c_uint32), - ('flags2', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8), - ] - - -ETHERNET_SETTINGS2_t = ethernet_settings2 -ETHERNET_SETTINGS2 = ethernet_settings2 - diff --git a/gen/ics/structures/ew_bms_instance_t.py b/gen/ics/structures/ew_bms_instance_t.py deleted file mode 100644 index f4b37854f..000000000 --- a/gen/ics/structures/ew_bms_instance_t.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class ew_bms_instance_t(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - ewBMSInstance0 = 0 - ewBMSInstance1 = enum.auto() - - -_EwBMSInstance_t = ew_bms_instance_t -EwBMSInstance_t = ew_bms_instance_t - diff --git a/gen/ics/structures/ew_bms_manager_lock_state_t.py b/gen/ics/structures/ew_bms_manager_lock_state_t.py deleted file mode 100644 index e874d9ac2..000000000 --- a/gen/ics/structures/ew_bms_manager_lock_state_t.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class ew_bms_manager_lock_state_t(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - eLockManager = 0 - eUnlockManager = enum.auto() - - -_EwBMSManagerLockState_t = ew_bms_manager_lock_state_t -EwBMSManagerLockState_t = ew_bms_manager_lock_state_t - diff --git a/gen/ics/structures/ew_bms_manager_port_t.py b/gen/ics/structures/ew_bms_manager_port_t.py deleted file mode 100644 index 2c5220795..000000000 --- a/gen/ics/structures/ew_bms_manager_port_t.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class ew_bms_manager_port_t(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - eManagerPortA = 0 - eManagerPortB = enum.auto() - - -_EwBMSManagerPort_t = ew_bms_manager_port_t -EwBMSManagerPort_t = ew_bms_manager_port_t - diff --git a/gen/ics/structures/extended_response_code.py b/gen/ics/structures/extended_response_code.py deleted file mode 100644 index 23b22ab56..000000000 --- a/gen/ics/structures/extended_response_code.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class extended_response_code(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - EXTENDED_RESPONSE_OK = 0 - EXTENDED_RESPONSE_INVALID_COMMAND = -1 - EXTENDED_RESPONSE_INVALID_STATE = -2 - EXTENDED_RESPONSE_OPERATION_FAILED = -3 - EXTENDED_RESPONSE_OPERATION_PENDING = -4 - EXTENDED_RESPONSE_INVALID_PARAMETER = -5 - - -_ExtendedResponseCode = extended_response_code -ExtendedResponseCode = extended_response_code - diff --git a/gen/ics/structures/extended_response_generic.py b/gen/ics/structures/extended_response_generic.py deleted file mode 100644 index 0f990553e..000000000 --- a/gen/ics/structures/extended_response_generic.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class extended_response_generic(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('commandType', ctypes.c_uint16), - ('returnCode', ctypes.c_int32), - ] - - -_ExtendedResponseGeneric = extended_response_generic -ExtendedResponseGeneric = extended_response_generic - diff --git a/gen/ics/structures/fire3_linux_settings.py b/gen/ics/structures/fire3_linux_settings.py deleted file mode 100644 index ec57e882a..000000000 --- a/gen/ics/structures/fire3_linux_settings.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 fire3_linux_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('allowBoot', ctypes.c_uint8), - ('useExternalWifiAntenna', ctypes.c_uint8), - ('ethConfigurationPort', ctypes.c_uint8), - ('reserved', ctypes.c_uint8 * 5), - ] - - -Fire3LinuxSettings = fire3_linux_settings - diff --git a/gen/ics/structures/flex_vnet_mode.py b/gen/ics/structures/flex_vnet_mode.py deleted file mode 100644 index 0f9f4bf5b..000000000 --- a/gen/ics/structures/flex_vnet_mode.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 flex_vnet_mode(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - flexVnetModeDisabled = 0 - flexVnetModeOneSingle = enum.auto() - flexVnetModeOneDual = enum.auto() - flexVnetModeTwoSingle = enum.auto() - flexVnetModeColdStart = enum.auto() - - -_flexVnetMode = flex_vnet_mode -flexVnetMode = flex_vnet_mode - diff --git a/gen/ics/structures/generic_api_data.py b/gen/ics/structures/generic_api_data.py deleted file mode 100644 index fec356b70..000000000 --- a/gen/ics/structures/generic_api_data.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.generic_api_selector import * - - -class generic_api_data(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('length', ctypes.c_uint16), - ('api', GenericAPISelector), - ('bData', ctypes.c_uint8 * 513), - ] - - -_GenericAPIData = generic_api_data -GenericAPIData = generic_api_data - diff --git a/gen/ics/structures/generic_api_data_old.py b/gen/ics/structures/generic_api_data_old.py deleted file mode 100644 index bd17c5345..000000000 --- a/gen/ics/structures/generic_api_data_old.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.generic_api_selector import * - - -class generic_api_data_old(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('api', GenericAPISelector), - ('bData', ctypes.c_uint8 * 513), - ('length', ctypes.c_uint16), - ] - - -_GenericAPIData_OLD = generic_api_data_old -GenericAPIData_OLD = generic_api_data_old - diff --git a/gen/ics/structures/generic_api_selector.py b/gen/ics/structures/generic_api_selector.py deleted file mode 100644 index a60899b44..000000000 --- a/gen/ics/structures/generic_api_selector.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 generic_api_selector(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('apiIndex', ctypes.c_uint8), - ('instance', ctypes.c_uint8), - ('functionID', ctypes.c_uint8), - ] - - -_GenericAPISelector = generic_api_selector -GenericAPISelector = generic_api_selector - diff --git a/gen/ics/structures/generic_api_status.py b/gen/ics/structures/generic_api_status.py deleted file mode 100644 index fa0a076f0..000000000 --- a/gen/ics/structures/generic_api_status.py +++ /dev/null @@ -1,20 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.generic_api_selector import * - - -class generic_api_status(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('api', GenericAPISelector), - ('functionError', ctypes.c_uint8), - ('calbackError', ctypes.c_uint8), - ('finishedProcessing', ctypes.c_uint8), - ] - - -_GenericAPIStatus = generic_api_status -GenericAPIStatus = generic_api_status - diff --git a/gen/ics/structures/generic_binary_status.py b/gen/ics/structures/generic_binary_status.py deleted file mode 100644 index 1538a7bb9..000000000 --- a/gen/ics/structures/generic_binary_status.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class generic_binary_status(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('size', ctypes.c_uint32), - ('index', ctypes.c_uint16), - ('status', ctypes.c_uint16), - ('reserved', ctypes.c_uint8 * 8), - ] - - -_GenericBinaryStatus = generic_binary_status -GenericBinaryStatus = generic_binary_status - diff --git a/gen/ics/structures/get_component_versions.py b/gen/ics/structures/get_component_versions.py deleted file mode 100644 index 8bce84cfd..000000000 --- a/gen/ics/structures/get_component_versions.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class get_component_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('reserved', ctypes.c_uint32 * 2), - ] - - -_GetComponentVersions = get_component_versions -GetComponentVersions = get_component_versions - diff --git a/gen/ics/structures/get_component_versions_response.py b/gen/ics/structures/get_component_versions_response.py deleted file mode 100644 index 89ca2cd9c..000000000 --- a/gen/ics/structures/get_component_versions_response.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.version_report import * - - -class get_component_versions_response(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('numVersions', ctypes.c_uint16), - ('versions', VersionReport * 16), - ] - - -_ExtendedGetVersionsResponse = get_component_versions_response -GetComponentVersionsResponse = get_component_versions_response - diff --git a/gen/ics/structures/get_supported_features_response.py b/gen/ics/structures/get_supported_features_response.py deleted file mode 100644 index 8b9712715..000000000 --- a/gen/ics/structures/get_supported_features_response.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class get_supported_features_response(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('cmdVersion', ctypes.c_uint16), - ('numValidBits', ctypes.c_uint16), - ('featureBitfields', ctypes.c_uint32), - ] - - -GetSupportedFeaturesResponse = get_supported_features_response - diff --git a/gen/ics/structures/global_settings.py b/gen/ics/structures/global_settings.py deleted file mode 100644 index cfc22874f..000000000 --- a/gen/ics/structures/global_settings.py +++ /dev/null @@ -1,108 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_cm_probe_settings import * -from ics.structures.s_cyan_settings import * -from ics.structures.s_ether_badge_settings import * -from ics.structures.s_fire3_flexray_settings import * -from ics.structures.s_fire3_settings import * -from ics.structures.s_fire_settings import * -from ics.structures.s_fire_vnet_settings import * -from ics.structures.s_flex_vnetz_settings import * -from ics.structures.s_neo_ecu12_settings import * -from ics.structures.s_pendant_settings import * -from ics.structures.s_rad_moon_duo_settings import * -from ics.structures.s_red2_settings import * -from ics.structures.s_red_settings import * -from ics.structures.s_vivid_can_settings import * -from ics.structures.scan_hub_settings import * -from ics.structures.secu_avb_settings import * -from ics.structures.secu_settings import * -from ics.structures.seevb_settings import * -from ics.structures.sievb_settings import * -from ics.structures.sobd2_lc_settings import * -from ics.structures.sobd2_pro_settings import * -from ics.structures.sobd2_sim_settings import * -from ics.structures.srad_comet_settings import * -from ics.structures.srad_epsilon_settings import * -from ics.structures.srad_galaxy_settings import * -from ics.structures.srad_gigalog_settings import * -from ics.structures.srad_gigastar_settings import * -from ics.structures.srad_jupiter_settings import * -from ics.structures.srad_moon2_settings import * -from ics.structures.srad_moon3_settings import * -from ics.structures.srad_pluto_settings import * -from ics.structures.srad_star2_settings import * -from ics.structures.srad_super_moon_settings import * -from ics.structures.srada2_b_settings import * -from ics.structures.sradbms_settings import * -from ics.structures.svcan3_settings import * -from ics.structures.svcan412_settings import * -from ics.structures.svcan4_ind_settings import * -from ics.structures.svcan4_settings import * -from ics.structures.svcanrf_settings import * - - -class Nameless21903(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('red', SRedSettings), - ('fire', SFireSettings), - ('firevnet', SFireVnetSettings), - ('cyan', SCyanSettings), - ('vcan3', SVCAN3Settings), - ('vcan4', SVCAN4Settings), - ('ecu', SECUSettings), - ('ievb', SIEVBSettings), - ('pendant', SPendantSettings), - ('radgalaxy', SRADGalaxySettings), - ('radstar2', SRADStar2Settings), - ('neoobd2_sim', SOBD2SimSettings), - ('cmprobe', SCmProbeSettings), - ('obd2pro', SOBD2ProSettings), - ('vcan412', SVCAN412Settings), - ('vcan4_12', SVCAN412Settings), - ('neoecu_avb', SECU_AVBSettings), - ('radsupermoon', SRADSuperMoonSettings), - ('radmoon2', SRADMoon2Settings), - ('pluto', SRADPlutoSettings), - ('radgigalog', SRADGigalogSettings), - ('canhub', SCANHubSettings), - ('neoecu12', SNeoECU12Settings), - ('vcanrf', SVCANRFSettings), - ('eevb', SEEVBSettings), - ('flexvnetz', SFlexVnetzSettings), - ('vividcan', SVividCANSettings), - ('vcan4_ind', SVCAN4IndSettings), - ('obd2lc', SOBD2LCSettings), - ('radgigastar', SRADGigastarSettings), - ('jupiter', SRADJupiterSettings), - ('red2', SRed2Settings), - ('fire3', SFire3Settings), - ('fire3fr', SFire3FlexraySettings), - ('radmoonduo', SRadMoonDuoSettings), - ('etherBadge', SEtherBadgeSettings), - ('rad_a2b', SRADA2BSettings), - ('epsilon', SRADEpsilonSettings), - ('rad_bms', SRADBMSSettings), - ('radmoon3', SRADMoon3Settings), - ('radcomet', SRADCometSettings), - ] - - - -class global_settings(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless21903',) - _fields_ = [ - ('version', ctypes.c_uint16), - ('len', ctypes.c_uint16), - ('chksum', ctypes.c_uint16), - ('Nameless21903', Nameless21903), - ] - - -_GLOBAL_SETTINGS = global_settings -GLOBAL_SETTINGS = global_settings - diff --git a/gen/ics/structures/gptp_status.py b/gen/ics/structures/gptp_status.py deleted file mode 100644 index d0c89b6a9..000000000 --- a/gen/ics/structures/gptp_status.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.priority_vector import * -from ics.structures.timestamp_ import * - - -class gptp_status(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('current_time', timestamp_), - ('gm_priority', priority_vector), - ('ms_offset_ns', ctypes.c_int64), - ('is_sync', ctypes.c_uint8), - ('link_status', ctypes.c_uint8), - ('link_delay_ns', ctypes.c_int64), - ('selected_role', ctypes.c_uint8), - ('as_capable', ctypes.c_uint8), - ('is_syntonized', ctypes.c_uint8), - ('reserved', ctypes.c_uint8 * 8), - ] - - -_GPTPStatus = gptp_status -GPTPStatus = gptp_status - diff --git a/gen/ics/structures/hw_eth_settings.py b/gen/ics/structures/hw_eth_settings.py deleted file mode 100644 index f9aec6cfc..000000000 --- a/gen/ics/structures/hw_eth_settings.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.op_eth_general_settings import * - - -class hw_eth_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('General_Settings', OP_ETH_GENERAL_SETTINGS), - ] - - -HW_ETH_SETTINGS_t = hw_eth_settings -HW_ETH_SETTINGS = hw_eth_settings - diff --git a/gen/ics/structures/ics_device_status.py b/gen/ics/structures/ics_device_status.py deleted file mode 100644 index 4196b4422..000000000 --- a/gen/ics/structures/ics_device_status.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ics_fire2_device_status import * -from ics.structures.ics_fire3_device_status import * -from ics.structures.ics_flex_vnetz_device_status import * -from ics.structures.ics_obd2_pro_device_status import * -from ics.structures.ics_rad_bms_device_status import * -from ics.structures.ics_rad_epsilon_device_status import * -from ics.structures.ics_rad_jupiter_device_status import * -from ics.structures.ics_rad_moon_duo_device_status import * -from ics.structures.ics_rad_pluto_device_status import * -from ics.structures.ics_vcan4_device_status import * -from ics.structures.ics_vcan4_industrial_device_status import * - - -class ics_device_status(ctypes.Union): - _pack_ = 4 - _fields_ = [ - ('fire2Status', icsFire2DeviceStatus), - ('vcan4Status', icsVcan4DeviceStatus), - ('flexVnetzStatus', icsFlexVnetzDeviceStatus), - ('fire3Status', icsFire3DeviceStatus), - ('radMoonDuoStatus', icsRadMoonDuoDeviceStatus), - ('jupiterStatus', icsRadJupiterDeviceStatus), - ('obd2proStatus', icsOBD2ProDeviceStatus), - ('plutoStatus', icsRadPlutoDeviceStatus), - ('epsilonStatus', icsRadEpsilonDeviceStatus), - ('vcan4indStatus', icsVcan4IndustrialDeviceStatus), - ('radBMSStatus', icsRadBMSDeviceStatus), - ] - - -icsDeviceStatus = ics_device_status - diff --git a/gen/ics/structures/ics_fire2_device_status.py b/gen/ics/structures/ics_fire2_device_status.py deleted file mode 100644 index 7ef1edf2e..000000000 --- a/gen/ics/structures/ics_fire2_device_status.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_fire2_device_status(ctypes.Structure): - _fields_ = [ - ('backupPowerGood', ctypes.c_uint8), - ('backupPowerEnabled', ctypes.c_uint8), - ('usbHostPowerEnabled', ctypes.c_uint8), - ('ethernetActivationLineEnabled', ctypes.c_uint8), - ('ethernetStatus', ethernetNetworkStatus_t), - ] - - -icsFire2DeviceStatus = ics_fire2_device_status - diff --git a/gen/ics/structures/ics_fire2_vnet_device_status.py b/gen/ics/structures/ics_fire2_vnet_device_status.py deleted file mode 100644 index e88297588..000000000 --- a/gen/ics/structures/ics_fire2_vnet_device_status.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_fire2_vnet_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetActivationLineEnabled', ctypes.c_uint8), - ('ethernetStatus', ethernetNetworkStatus_t), - ('unused', ctypes.c_uint8), - ] - - -icsFire2VnetDeviceStatus = ics_fire2_vnet_device_status - diff --git a/gen/ics/structures/ics_fire3_device_status.py b/gen/ics/structures/ics_fire3_device_status.py deleted file mode 100644 index fc366e278..000000000 --- a/gen/ics/structures/ics_fire3_device_status.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_fire3_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetActivationLineEnabled', ctypes.c_uint8), - ('ethernetStatus', ethernetNetworkStatus_t * 3), - ('ethernetActivationLineEnabled_2', ctypes.c_uint8), - ] - - -icsFire3DeviceStatus = ics_fire3_device_status - diff --git a/gen/ics/structures/ics_flex_vnetz_device_status.py b/gen/ics/structures/ics_flex_vnetz_device_status.py deleted file mode 100644 index cd2380bb2..000000000 --- a/gen/ics/structures/ics_flex_vnetz_device_status.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_flex_vnetz_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetActivationLineEnabled', ctypes.c_uint8), - ('ethernetStatus', ethernetNetworkStatus_t), - ('unused', ctypes.c_uint8), - ] - - -icsFlexVnetzDeviceStatus = ics_flex_vnetz_device_status - diff --git a/gen/ics/structures/ics_obd2_pro_device_status.py b/gen/ics/structures/ics_obd2_pro_device_status.py deleted file mode 100644 index e9fa285f0..000000000 --- a/gen/ics/structures/ics_obd2_pro_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_obd2_pro_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t), - ] - - -icsOBD2ProDeviceStatus = ics_obd2_pro_device_status - diff --git a/gen/ics/structures/ics_rad_bms_device_status.py b/gen/ics/structures/ics_rad_bms_device_status.py deleted file mode 100644 index c22277fe1..000000000 --- a/gen/ics/structures/ics_rad_bms_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_rad_bms_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t), - ] - - -icsRadBMSDeviceStatus = ics_rad_bms_device_status - diff --git a/gen/ics/structures/ics_rad_epsilon_device_status.py b/gen/ics/structures/ics_rad_epsilon_device_status.py deleted file mode 100644 index 596545a9e..000000000 --- a/gen/ics/structures/ics_rad_epsilon_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_rad_epsilon_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t * 19), - ] - - -icsRadEpsilonDeviceStatus = ics_rad_epsilon_device_status - diff --git a/gen/ics/structures/ics_rad_jupiter_device_status.py b/gen/ics/structures/ics_rad_jupiter_device_status.py deleted file mode 100644 index 4e46ab84c..000000000 --- a/gen/ics/structures/ics_rad_jupiter_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_rad_jupiter_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t * 7), - ] - - -icsRadJupiterDeviceStatus = ics_rad_jupiter_device_status - diff --git a/gen/ics/structures/ics_rad_moon_duo_device_status.py b/gen/ics/structures/ics_rad_moon_duo_device_status.py deleted file mode 100644 index 54312ec56..000000000 --- a/gen/ics/structures/ics_rad_moon_duo_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_rad_moon_duo_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t * 4), - ] - - -icsRadMoonDuoDeviceStatus = ics_rad_moon_duo_device_status - diff --git a/gen/ics/structures/ics_rad_pluto_device_status.py b/gen/ics/structures/ics_rad_pluto_device_status.py deleted file mode 100644 index 47d0afdb9..000000000 --- a/gen/ics/structures/ics_rad_pluto_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_rad_pluto_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t * 4), - ] - - -icsRadPlutoDeviceStatus = ics_rad_pluto_device_status - diff --git a/gen/ics/structures/ics_spy_message_flex_ray.py b/gen/ics/structures/ics_spy_message_flex_ray.py deleted file mode 100644 index 2ab49c3a2..000000000 --- a/gen/ics/structures/ics_spy_message_flex_ray.py +++ /dev/null @@ -1,96 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless45381(ctypes.Structure): - _fields_ = [ - ('id', ctypes.c_uint32, 12), - ('res1', ctypes.c_uint32, 4), - ('cycle', ctypes.c_uint32, 6), - ('chA', ctypes.c_uint32, 1), - ('chB', ctypes.c_uint32, 1), - ('startup', ctypes.c_uint32, 1), - ('sync', ctypes.c_uint32, 1), - ('null_frame', ctypes.c_uint32, 1), - ('payload_preamble', ctypes.c_uint32, 1), - ('frame_reserved', ctypes.c_uint32, 1), - ('dynamic', ctypes.c_uint32, 1), - ] - - - -class Nameless14534(ctypes.Union): - _anonymous_ = ('Nameless45381',) - _fields_ = [ - ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless45381', Nameless45381), - ] - - - -class Nameless18511(ctypes.Structure): - _fields_ = [ - ('StatusBitField3', ctypes.c_uint32), - ('StatusBitField4', ctypes.c_uint32), - ] - - - -class Nameless40028(ctypes.Structure): - _fields_ = [ - ('hcrc_msbs', ctypes.c_uint32, 3), - ('res2', ctypes.c_uint32, 5), - ('hcrc_lsbs', ctypes.c_uint32, 8), - ('frame_len_12_5ns', ctypes.c_uint32, 16), - ('fcrc0', ctypes.c_uint32, 8), - ('fcrc1', ctypes.c_uint32, 8), - ('fcrc2', ctypes.c_uint32, 8), - ('tss_len_12_5ns', ctypes.c_uint32, 8), - ] - - - -class Nameless59525(ctypes.Union): - _anonymous_ = ('Nameless18511', 'Nameless40028') - _fields_ = [ - ('Nameless18511', Nameless18511), - ('AckBytes', ctypes.c_uint8 * 8), - ('Nameless40028', Nameless40028), - ] - - - -class ics_spy_message_flex_ray(ctypes.Structure): - _anonymous_ = ('Nameless14534', 'Nameless59525') - _fields_ = [ - ('StatusBitField', ctypes.c_uint32), - ('StatusBitField2', ctypes.c_uint32), - ('TimeHardware', ctypes.c_uint32), - ('TimeHardware2', ctypes.c_uint32), - ('TimeSystem', ctypes.c_uint32), - ('TimeSystem2', ctypes.c_uint32), - ('TimeStampHardwareID', ctypes.c_uint8), - ('TimeStampSystemID', ctypes.c_uint8), - ('NetworkID', ctypes.c_uint8), - ('NodeID', ctypes.c_uint8), - ('Protocol', ctypes.c_uint8), - ('MessagePieceID', ctypes.c_uint8), - ('ExtraDataPtrEnabled', ctypes.c_uint8), - ('NumberBytesHeader', ctypes.c_uint8), - ('NumberBytesData', ctypes.c_uint8), - ('NetworkID2', ctypes.c_uint8), - ('DescriptionID', ctypes.c_uint16), - ('Nameless14534', Nameless14534), - ('Data', ctypes.c_uint8 * 8), - ('Nameless59525', Nameless59525), - ('ExtraDataPtr', ctypes.c_void_p), - ('MiscData', ctypes.c_uint8), - ('Reserved', ctypes.c_uint8 * 3), - ] - - -_icsSpyMessageFlexRay = ics_spy_message_flex_ray -icsSpyMessageFlexRay = ics_spy_message_flex_ray - diff --git a/gen/ics/structures/ics_spy_message_long.py b/gen/ics/structures/ics_spy_message_long.py deleted file mode 100644 index 6269b833c..000000000 --- a/gen/ics/structures/ics_spy_message_long.py +++ /dev/null @@ -1,56 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless5382(ctypes.Structure): - _fields_ = [ - ('StatusBitField3', ctypes.c_uint32), - ('StatusBitField4', ctypes.c_uint32), - ] - - - -class Nameless50617(ctypes.Union): - _anonymous_ = ('Nameless5382',) - _fields_ = [ - ('Nameless5382', Nameless5382), - ('AckBytes', ctypes.c_uint8 * 8), - ] - - - -class ics_spy_message_long(ctypes.Structure): - _anonymous_ = ('Nameless50617',) - _fields_ = [ - ('StatusBitField', ctypes.c_uint32), - ('StatusBitField2', ctypes.c_uint32), - ('TimeHardware', ctypes.c_uint32), - ('TimeHardware2', ctypes.c_uint32), - ('TimeSystem', ctypes.c_uint32), - ('TimeSystem2', ctypes.c_uint32), - ('TimeStampHardwareID', ctypes.c_uint8), - ('TimeStampSystemID', ctypes.c_uint8), - ('NetworkID', ctypes.c_uint8), - ('NodeID', ctypes.c_uint8), - ('Protocol', ctypes.c_uint8), - ('MessagePieceID', ctypes.c_uint8), - ('ExtraDataPtrEnabled', ctypes.c_uint8), - ('NumberBytesHeader', ctypes.c_uint8), - ('NumberBytesData', ctypes.c_uint8), - ('NetworkID2', ctypes.c_uint8), - ('DescriptionID', ctypes.c_uint16), - ('ArbIDOrHeader', ctypes.c_uint32), - ('DataMsb', ctypes.c_uint32), - ('DataLsb', ctypes.c_uint32), - ('Nameless50617', Nameless50617), - ('ExtraDataPtr', ctypes.c_void_p), - ('MiscData', ctypes.c_uint8), - ('Reserved', ctypes.c_uint8 * 3), - ] - - -_icsSpyMessageLong = ics_spy_message_long -icsSpyMessageLong = ics_spy_message_long - diff --git a/gen/ics/structures/ics_spy_message_mdio.py b/gen/ics/structures/ics_spy_message_mdio.py deleted file mode 100644 index 9a62b40df..000000000 --- a/gen/ics/structures/ics_spy_message_mdio.py +++ /dev/null @@ -1,74 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless5189(ctypes.Structure): - _fields_ = [ - ('RegAddr', ctypes.c_uint32, 16), - ('PhyAddr', ctypes.c_uint32, 5), - ('DevType', ctypes.c_uint32, 5), - ('', ctypes.c_uint32, 6), - ] - - - -class Nameless54558(ctypes.Union): - _anonymous_ = ('Nameless5189',) - _fields_ = [ - ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless5189', Nameless5189), - ] - - - -class Nameless36278(ctypes.Structure): - _fields_ = [ - ('StatusBitField3', ctypes.c_uint32), - ('StatusBitField4', ctypes.c_uint32), - ] - - - -class Nameless5269(ctypes.Union): - _anonymous_ = ('Nameless36278',) - _fields_ = [ - ('Nameless36278', Nameless36278), - ('AckBytes', ctypes.c_uint8 * 8), - ] - - - -class ics_spy_message_mdio(ctypes.Structure): - _anonymous_ = ('Nameless54558', 'Nameless5269') - _fields_ = [ - ('StatusBitField', ctypes.c_uint32), - ('StatusBitField2', ctypes.c_uint32), - ('TimeHardware', ctypes.c_uint32), - ('TimeHardware2', ctypes.c_uint32), - ('TimeSystem', ctypes.c_uint32), - ('TimeSystem2', ctypes.c_uint32), - ('TimeStampHardwareID', ctypes.c_uint8), - ('TimeStampSystemID', ctypes.c_uint8), - ('NetworkID', ctypes.c_uint8), - ('NodeID', ctypes.c_uint8), - ('Protocol', ctypes.c_uint8), - ('MessagePieceID', ctypes.c_uint8), - ('ExtraDataPtrEnabled', ctypes.c_uint8), - ('NumberBytesHeader', ctypes.c_uint8), - ('NumberBytesData', ctypes.c_uint8), - ('NetworkID2', ctypes.c_uint8), - ('DescriptionID', ctypes.c_uint16), - ('Nameless54558', Nameless54558), - ('Data', ctypes.c_uint8 * 8), - ('Nameless5269', Nameless5269), - ('ExtraDataPtr', ctypes.c_void_p), - ('MiscData', ctypes.c_uint8), - ('Reserved', ctypes.c_uint8 * 3), - ] - - -_icsSpyMessageMdio = ics_spy_message_mdio -icsSpyMessageMdio = ics_spy_message_mdio - diff --git a/gen/ics/structures/ics_spy_message_vsb.py b/gen/ics/structures/ics_spy_message_vsb.py deleted file mode 100644 index 9344c018b..000000000 --- a/gen/ics/structures/ics_spy_message_vsb.py +++ /dev/null @@ -1,55 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless44788(ctypes.Structure): - _fields_ = [ - ('StatusBitField3', ctypes.c_uint32), - ('StatusBitField4', ctypes.c_uint32), - ] - - - -class Nameless61357(ctypes.Union): - _anonymous_ = ('Nameless44788',) - _fields_ = [ - ('Nameless44788', Nameless44788), - ('AckBytes', ctypes.c_uint8 * 8), - ] - - - -class ics_spy_message_vsb(ctypes.Structure): - _anonymous_ = ('Nameless61357',) - _fields_ = [ - ('StatusBitField', ctypes.c_uint32), - ('StatusBitField2', ctypes.c_uint32), - ('TimeHardware', ctypes.c_uint32), - ('TimeHardware2', ctypes.c_uint32), - ('TimeSystem', ctypes.c_uint32), - ('TimeSystem2', ctypes.c_uint32), - ('TimeStampHardwareID', ctypes.c_uint8), - ('TimeStampSystemID', ctypes.c_uint8), - ('NetworkID', ctypes.c_uint8), - ('NodeID', ctypes.c_uint8), - ('Protocol', ctypes.c_uint8), - ('MessagePieceID', ctypes.c_uint8), - ('ExtraDataPtrEnabled', ctypes.c_uint8), - ('NumberBytesHeader', ctypes.c_uint8), - ('NumberBytesData', ctypes.c_uint8), - ('NetworkID2', ctypes.c_uint8), - ('DescriptionID', ctypes.c_int16), - ('ArbIDOrHeader', ctypes.c_uint32), - ('Data', ctypes.c_uint8 * 8), - ('Nameless61357', Nameless61357), - ('ExtraDataPtr', ctypes.c_uint32), - ('MiscData', ctypes.c_uint8), - ('Reserved', ctypes.c_uint8 * 3), - ] - - -_icsSpyMessageVSB = ics_spy_message_vsb -icsSpyMessageVSB = ics_spy_message_vsb - diff --git a/gen/ics/structures/ics_spy_messagew_bms.py b/gen/ics/structures/ics_spy_messagew_bms.py deleted file mode 100644 index c1d7cdb73..000000000 --- a/gen/ics/structures/ics_spy_messagew_bms.py +++ /dev/null @@ -1,92 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless23244(ctypes.Structure): - _fields_ = [ - ('', ctypes.c_uint32, 8), - ('PacketType', ctypes.c_uint32, 8), - ('PacketID', ctypes.c_uint32, 8), - ('PacketSource', ctypes.c_uint32, 8), - ] - - - -class Nameless35608(ctypes.Union): - _anonymous_ = ('Nameless23244',) - _fields_ = [ - ('ArbIDOrHeader', ctypes.c_uint32), - ('Nameless23244', Nameless23244), - ] - - - -class Nameless20259(ctypes.Structure): - _fields_ = [ - ('APICode', ctypes.c_uint32, 8), - ('', ctypes.c_uint32, 24), - ] - - - -class Nameless39357(ctypes.Union): - _anonymous_ = ('Nameless20259',) - _fields_ = [ - ('StatusBitField3', ctypes.c_uint32), - ('Nameless20259', Nameless20259), - ] - - - -class Nameless20257(ctypes.Structure): - _anonymous_ = ('Nameless39357',) - _fields_ = [ - ('Nameless39357', Nameless39357), - ('StatusBitField4', ctypes.c_uint32), - ] - - - -class Nameless60883(ctypes.Union): - _anonymous_ = ('Nameless20257',) - _fields_ = [ - ('Nameless20257', Nameless20257), - ('AckBytes', ctypes.c_uint8 * 8), - ] - - - -class ics_spy_messagew_bms(ctypes.Structure): - _anonymous_ = ('Nameless35608', 'Nameless60883') - _fields_ = [ - ('StatusBitField', ctypes.c_uint32), - ('StatusBitField2', ctypes.c_uint32), - ('TimeHardware', ctypes.c_uint32), - ('TimeHardware2', ctypes.c_uint32), - ('TimeSystem', ctypes.c_uint32), - ('TimeSystem2', ctypes.c_uint32), - ('TimeStampHardwareID', ctypes.c_uint8), - ('TimeStampSystemID', ctypes.c_uint8), - ('NetworkID', ctypes.c_uint8), - ('NodeID', ctypes.c_uint8), - ('Protocol', ctypes.c_uint8), - ('MessagePieceID', ctypes.c_uint8), - ('ExtraDataPtrEnabled', ctypes.c_uint8), - ('NumberBytesHeader', ctypes.c_uint8), - ('NumberBytesData', ctypes.c_uint8), - ('NetworkID2', ctypes.c_uint8), - ('DescriptionID', ctypes.c_uint16), - ('Nameless35608', Nameless35608), - ('Data', ctypes.c_uint8 * 8), - ('Nameless60883', Nameless60883), - ('ExtraDataPtr', ctypes.c_void_p), - ('MiscData', ctypes.c_uint8), - ('Reserved', ctypes.c_uint8 * 3), - ] - - -_icsSpyMessagewBMS = ics_spy_messagew_bms -icsSpyMessagewBMS = ics_spy_messagew_bms - diff --git a/gen/ics/structures/ics_vcan4_device_status.py b/gen/ics/structures/ics_vcan4_device_status.py deleted file mode 100644 index b7695c2eb..000000000 --- a/gen/ics/structures/ics_vcan4_device_status.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_vcan4_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetActivationLineEnabled', ctypes.c_uint8), - ('ethernetStatus', ethernetNetworkStatus_t), - ('unused', ctypes.c_uint8), - ] - - -icsVcan4DeviceStatus = ics_vcan4_device_status - diff --git a/gen/ics/structures/ics_vcan4_industrial_device_status.py b/gen/ics/structures/ics_vcan4_industrial_device_status.py deleted file mode 100644 index 2388c1807..000000000 --- a/gen/ics/structures/ics_vcan4_industrial_device_status.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_network_status_t import * - - -class ics_vcan4_industrial_device_status(ctypes.Structure): - _fields_ = [ - ('ethernetStatus', ethernetNetworkStatus_t), - ] - - -icsVcan4IndustrialDeviceStatus = ics_vcan4_industrial_device_status - diff --git a/gen/ics/structures/iso15765_2015_tx_message.py b/gen/ics/structures/iso15765_2015_tx_message.py deleted file mode 100644 index ba7c44716..000000000 --- a/gen/ics/structures/iso15765_2015_tx_message.py +++ /dev/null @@ -1,58 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless65087(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('id_29_bit_enable', ctypes.c_uint16, 1), - ('fc_id_29_bit_enable', ctypes.c_uint16, 1), - ('ext_address_enable', ctypes.c_uint16, 1), - ('fc_ext_address_enable', ctypes.c_uint16, 1), - ('overrideSTmin', ctypes.c_uint16, 1), - ('overrideBlockSize', ctypes.c_uint16, 1), - ('paddingEnable', ctypes.c_uint16, 1), - ('iscanFD', ctypes.c_uint16, 1), - ('isBRSEnabled', ctypes.c_uint16, 1), - ('', ctypes.c_uint16, 7), - ] - - - -class Nameless21496(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless65087',) - _fields_ = [ - ('Nameless65087', Nameless65087), - ('flags', ctypes.c_uint16), - ] - - - -class iso15765_2015_tx_message(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless21496',) - _fields_ = [ - ('vs_netid', ctypes.c_uint16), - ('padding', ctypes.c_uint8), - ('tx_index', ctypes.c_uint8), - ('id', ctypes.c_uint32), - ('fc_id', ctypes.c_uint32), - ('fc_id_mask', ctypes.c_uint32), - ('stMin', ctypes.c_uint8), - ('blockSize', ctypes.c_uint8), - ('flowControlExtendedAddress', ctypes.c_uint8), - ('extendedAddress', ctypes.c_uint8), - ('fs_timeout', ctypes.c_uint16), - ('fs_wait', ctypes.c_uint16), - ('data', ctypes.POINTER(ctypes.c_uint8)), - ('num_bytes', ctypes.c_uint32), - ('tx_dl', ctypes.c_uint8), - ('Nameless21496', Nameless21496), - ] - - -ISO15765_2015_TxMessage = iso15765_2015_tx_message - diff --git a/gen/ics/structures/iso9141_keyword2000_init_step.py b/gen/ics/structures/iso9141_keyword2000_init_step.py deleted file mode 100644 index d1e7ebc03..000000000 --- a/gen/ics/structures/iso9141_keyword2000_init_step.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class iso9141_keyword2000_init_step(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('time_500us', ctypes.c_uint16), - ('k', ctypes.c_uint16), - ('l', ctypes.c_uint16), - ] - - -ISO9141_KEYWORD2000__INIT_STEP = iso9141_keyword2000_init_step - diff --git a/gen/ics/structures/iso9141_keyword2000_settings.py b/gen/ics/structures/iso9141_keyword2000_settings.py deleted file mode 100644 index 4d6699626..000000000 --- a/gen/ics/structures/iso9141_keyword2000_settings.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.iso9141_keyword2000_init_step import * - - -class iso9141_keyword2000_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('Baudrate', ctypes.c_uint32), - ('spbrg', ctypes.c_uint16), - ('brgh', ctypes.c_uint16), - ('init_steps', ISO9141_KEYWORD2000__INIT_STEP * 16), - ('init_step_count', ctypes.c_uint8), - ('p2_500us', ctypes.c_uint16), - ('p3_500us', ctypes.c_uint16), - ('p4_500us', ctypes.c_uint16), - ('chksum_enabled', ctypes.c_uint16), - ] - - -ISO9141_KEYWORD2000_SETTINGS = iso9141_keyword2000_settings - diff --git a/gen/ics/structures/j1708_settings.py b/gen/ics/structures/j1708_settings.py deleted file mode 100644 index 6d40c72d8..000000000 --- a/gen/ics/structures/j1708_settings.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class j1708_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('enable_convert_mode', ctypes.c_uint16), - ] - - -J1708_SETTINGS = j1708_settings - diff --git a/gen/ics/structures/lin_settings.py b/gen/ics/structures/lin_settings.py deleted file mode 100644 index 2af464868..000000000 --- a/gen/ics/structures/lin_settings.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class lin_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('Baudrate', ctypes.c_uint32), - ('spbrg', ctypes.c_uint16), - ('brgh', ctypes.c_uint8), - ('numBitsDelay', ctypes.c_uint8), - ('MasterResistor', ctypes.c_uint8), - ('Mode', ctypes.c_uint8), - ] - - -_LIN_SETTINGS = lin_settings -LIN_SETTINGS = lin_settings - diff --git a/gen/ics/structures/logger_settings.py b/gen/ics/structures/logger_settings.py deleted file mode 100644 index 98da674d7..000000000 --- a/gen/ics/structures/logger_settings.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class logger_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('extraction_timeout', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 3), - ] - - -LOGGER_SETTINGS_t = logger_settings -LOGGER_SETTINGS = logger_settings - diff --git a/gen/ics/structures/mac_sec_map_.py b/gen/ics/structures/mac_sec_map_.py deleted file mode 100644 index 4e9077ee8..000000000 --- a/gen/ics/structures/mac_sec_map_.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless63799(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('index', ctypes.c_uint8), - ('sectag_sci', ctypes.c_uint64), - ('secYIndex', ctypes.c_uint8), - ('isControlPacket', ctypes.c_uint8), - ('scIndex', ctypes.c_uint8), - ('auxiliary_plcy', ctypes.c_uint8), - ('ruleId', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 5), - ('enable', ctypes.c_uint8), - ] - - - -class mac_sec_map_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless63799',) - _fields_ = [ - ('Nameless63799', Nameless63799), - ('byte', ctypes.c_uint8 * 20), - ] - - -_MACSecMap = mac_sec_map_ -MACSecMap_t = mac_sec_map_ -MACSecMap_ = mac_sec_map_ - diff --git a/gen/ics/structures/mac_sec_rule_.py b/gen/ics/structures/mac_sec_rule_.py deleted file mode 100644 index 29353db42..000000000 --- a/gen/ics/structures/mac_sec_rule_.py +++ /dev/null @@ -1,60 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.macsec_mpls_outer_t import * -from ics.structures.macsec_vlantag_t import * - - -class Nameless1916(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('index', ctypes.c_uint8), - ('key_MAC_DA', ctypes.c_uint8 * 6), - ('mask_MAC_DA', ctypes.c_uint8 * 6), - ('key_MAC_SA', ctypes.c_uint8 * 6), - ('mask_MAC_SA', ctypes.c_uint8 * 6), - ('key_Ethertype', ctypes.c_uint16), - ('mask_Ethertype', ctypes.c_uint16), - ('key_vlantag_outer1', MACSEC_VLANTAG_t), - ('key_MPLS_outer1', MACSEC_MPLS_OUTER_t), - ('mask_vlantag_outer1', MACSEC_VLANTAG_t), - ('mask_MPLS_outer1', MACSEC_MPLS_OUTER_t), - ('key_vlantag_outer2', MACSEC_VLANTAG_t), - ('key_MPLS_outer2', MACSEC_MPLS_OUTER_t), - ('mask_vlantag_outer2', MACSEC_VLANTAG_t), - ('mask_MPLS_outer2', MACSEC_MPLS_OUTER_t), - ('key_bonus_data', ctypes.c_uint16), - ('mask_bonus_data', ctypes.c_uint16), - ('key_tag_match_bitmap', ctypes.c_uint8), - ('mask_tag_match_bitmap', ctypes.c_uint8), - ('key_packet_type', ctypes.c_uint8), - ('mask_packet_type', ctypes.c_uint8), - ('key_inner_vlan_type', ctypes.c_uint16), - ('mask_inner_vlan_type', ctypes.c_uint16), - ('key_outer_vlan_type', ctypes.c_uint16), - ('mask_outer_vlan_type', ctypes.c_uint16), - ('key_num_tags', ctypes.c_uint8), - ('mask_num_tags', ctypes.c_uint8), - ('key_express', ctypes.c_uint8), - ('mask_express', ctypes.c_uint8), - ('isMPLS', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 5), - ('enable', ctypes.c_uint8), - ] - - - -class mac_sec_rule_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless1916',) - _fields_ = [ - ('Nameless1916', Nameless1916), - ('byte', ctypes.c_uint8 * 88), - ] - - -_MACSecRule = mac_sec_rule_ -MACSecRule_t = mac_sec_rule_ -MACSecRule_ = mac_sec_rule_ - diff --git a/gen/ics/structures/mac_sec_sa_.py b/gen/ics/structures/mac_sec_sa_.py deleted file mode 100644 index 6cf44c169..000000000 --- a/gen/ics/structures/mac_sec_sa_.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless61066(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('index', ctypes.c_uint8), - ('sak', ctypes.c_uint8 * 32), - ('hashKey', ctypes.c_uint8 * 16), - ('salt', ctypes.c_uint8 * 12), - ('ssci', ctypes.c_uint32), - ('AN', ctypes.c_uint8), - ('nextPN', ctypes.c_uint64), - ('rsvd', ctypes.c_uint8 * 5), - ('enable', ctypes.c_uint8), - ] - - - -class mac_sec_sa_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless61066',) - _fields_ = [ - ('Nameless61066', Nameless61066), - ('byte', ctypes.c_uint8 * 80), - ] - - -_MACSecSa = mac_sec_sa_ -MACSecSa_t = mac_sec_sa_ -MACSecSa_ = mac_sec_sa_ - diff --git a/gen/ics/structures/mac_sec_sc_.py b/gen/ics/structures/mac_sec_sc_.py deleted file mode 100644 index 9ce20a99e..000000000 --- a/gen/ics/structures/mac_sec_sc_.py +++ /dev/null @@ -1,37 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless8462(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('index', ctypes.c_uint8), - ('secYIndex', ctypes.c_uint8), - ('sci', ctypes.c_uint64), - ('sa_index0', ctypes.c_uint8), - ('sa_index1', ctypes.c_uint8), - ('sa_index0_in_use', ctypes.c_uint8), - ('sa_index1_in_use', ctypes.c_uint8), - ('enable_auto_rekey', ctypes.c_uint8), - ('isActiveSA1', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 7), - ('enable', ctypes.c_uint8), - ] - - - -class mac_sec_sc_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless8462',) - _fields_ = [ - ('Nameless8462', Nameless8462), - ('byte', ctypes.c_uint8 * 24), - ] - - -_MACSecSc = mac_sec_sc_ -MACSecSc_t = mac_sec_sc_ -MACSecSc_ = mac_sec_sc_ - diff --git a/gen/ics/structures/mac_sec_sec_y_.py b/gen/ics/structures/mac_sec_sec_y_.py deleted file mode 100644 index 67f0c3c9d..000000000 --- a/gen/ics/structures/mac_sec_sec_y_.py +++ /dev/null @@ -1,41 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless32745(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('index', ctypes.c_uint8), - ('controlled_port_enabled', ctypes.c_uint8), - ('validate_frames', ctypes.c_uint8), - ('strip_sectag_icv', ctypes.c_uint8), - ('cipher', ctypes.c_uint8), - ('confidential_offset', ctypes.c_uint8), - ('icv_includes_da_sa', ctypes.c_uint8), - ('replay_protect', ctypes.c_uint8), - ('replay_window', ctypes.c_uint32), - ('protect_frames', ctypes.c_uint8), - ('sectag_offset', ctypes.c_uint8), - ('sectag_tci', ctypes.c_uint8), - ('mtu', ctypes.c_uint16), - ('rsvd', ctypes.c_uint8 * 6), - ('enable', ctypes.c_uint8), - ] - - - -class mac_sec_sec_y_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless32745',) - _fields_ = [ - ('Nameless32745', Nameless32745), - ('byte', ctypes.c_uint8 * 24), - ] - - -_MACSecSecY = mac_sec_sec_y_ -MACSecSecY_t = mac_sec_sec_y_ -MACSecSecY_ = mac_sec_sec_y_ - diff --git a/gen/ics/structures/macsec_cipher_suite.py b/gen/ics/structures/macsec_cipher_suite.py deleted file mode 100644 index 6534222f9..000000000 --- a/gen/ics/structures/macsec_cipher_suite.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 macsec_cipher_suite(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - 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 = macsec_cipher_suite - diff --git a/gen/ics/structures/macsec_config.py b/gen/ics/structures/macsec_config.py deleted file mode 100644 index b0a727680..000000000 --- a/gen/ics/structures/macsec_config.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.mac_sec_flags_ import * -from ics.structures.mac_sec_map_ import * -from ics.structures.mac_sec_rule_ import * -from ics.structures.mac_sec_sa_ import * -from ics.structures.mac_sec_sc_ import * -from ics.structures.mac_sec_sec_y_ import * - - -class macsec_config(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('flags', MACSecFlags_t), - ('rule', MACSecRule_t * 2), - ('map', MACSecMap_t * 2), - ('secy', MACSecSecY_t * 2), - ('sc', MACSecSc_t * 2), - ('sa', MACSecSa_t * 4), - ] - - -MACSEC_CONFIG_t = macsec_config -MACSEC_CONFIG = macsec_config - diff --git a/gen/ics/structures/macsec_mpls_outer_t.py b/gen/ics/structures/macsec_mpls_outer_t.py deleted file mode 100644 index 2887c020e..000000000 --- a/gen/ics/structures/macsec_mpls_outer_t.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class macsec_mpls_outer_t(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('MPLS_label', ctypes.c_uint32), - ('exp', ctypes.c_uint8), - ] - - -MACSEC_MPLS_OUTER_t = macsec_mpls_outer_t - diff --git a/gen/ics/structures/macsec_packet_type.py b/gen/ics/structures/macsec_packet_type.py deleted file mode 100644 index 0286828a2..000000000 --- a/gen/ics/structures/macsec_packet_type.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class macsec_packet_type(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - 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 = macsec_packet_type - diff --git a/gen/ics/structures/macsec_settings.py b/gen/ics/structures/macsec_settings.py deleted file mode 100644 index d076d87f3..000000000 --- a/gen/ics/structures/macsec_settings.py +++ /dev/null @@ -1,30 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.mac_sec_global_flags_ import * -from ics.structures.macsec_config import * - - -class Nameless6024(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('flags', MACSecGlobalFlags_t), - ('rx', MACSEC_CONFIG), - ('tx', MACSEC_CONFIG), - ] - - - -class macsec_settings(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless6024',) - _fields_ = [ - ('Nameless6024', Nameless6024), - ('byte', ctypes.c_uint8 * 2040), - ] - - -_MACSEC_SETTINGS = macsec_settings -MACSEC_SETTINGS = macsec_settings - diff --git a/gen/ics/structures/macsec_strip_sectag_icv.py b/gen/ics/structures/macsec_strip_sectag_icv.py deleted file mode 100644 index b4fa99249..000000000 --- a/gen/ics/structures/macsec_strip_sectag_icv.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 macsec_strip_sectag_icv(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - MACSEC_SECTAG_ICV_BOTH_STRIP = 0 - MACSEC_SECTAG_ICV_RESERVED = 1 - MACSEC_SECTAG_ICV_STRIP_ICV_ONLY = 2 - MACSEC_SECTAG_ICV_NO_STRIP = 3 - - -MACSEC_STRIP_SECTAG_ICV = macsec_strip_sectag_icv - diff --git a/gen/ics/structures/macsec_validateframe.py b/gen/ics/structures/macsec_validateframe.py deleted file mode 100644 index f396a2517..000000000 --- a/gen/ics/structures/macsec_validateframe.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 macsec_validateframe(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - MACSEC_VF_DISABLED = 0 - MACSEC_VF_CHECK = 1 - MACSEC_VF_STRICT = 2 - MACSEC_VF_NA = 3 - - -MACSEC_VALIDATEFRAME = macsec_validateframe - diff --git a/gen/ics/structures/macsec_vlantag_t.py b/gen/ics/structures/macsec_vlantag_t.py deleted file mode 100644 index 14f320fe5..000000000 --- a/gen/ics/structures/macsec_vlantag_t.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class macsec_vlantag_t(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('VID', ctypes.c_uint16), - ('PRI_CFI', ctypes.c_uint8), - ] - - -MACSEC_VLANTAG_t = macsec_vlantag_t - diff --git a/gen/ics/structures/op_eth_general_settings.py b/gen/ics/structures/op_eth_general_settings.py deleted file mode 100644 index 1308ad841..000000000 --- a/gen/ics/structures/op_eth_general_settings.py +++ /dev/null @@ -1,46 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('bTapEnSwitch', ctypes.c_uint32, 1), - ('bTapEnPtp', ctypes.c_uint32, 1), - ('bEnReportLinkQuality', ctypes.c_uint32, 1), - ('bEnTapTxReceipts', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 28), - ] - - - -class Nameless19471(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('flags', flags), - ('uFlags', ctypes.c_uint32), - ] - - - -class op_eth_general_settings(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless19471',) - _fields_ = [ - ('ucInterfaceType', ctypes.c_uint8), - ('reserved0', ctypes.c_uint8 * 3), - ('tapPair0', ctypes.c_uint16), - ('tapPair1', ctypes.c_uint16), - ('tapPair2', ctypes.c_uint16), - ('tapPair3', ctypes.c_uint16), - ('tapPair4', ctypes.c_uint16), - ('tapPair5', ctypes.c_uint16), - ('Nameless19471', Nameless19471), - ] - - -OP_ETH_GENERAL_SETTINGS_t = op_eth_general_settings -OP_ETH_GENERAL_SETTINGS = op_eth_general_settings - diff --git a/gen/ics/structures/op_eth_link_mode.py b/gen/ics/structures/op_eth_link_mode.py deleted file mode 100644 index 8a2651029..000000000 --- a/gen/ics/structures/op_eth_link_mode.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 op_eth_link_mode(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - OPETH_LINK_AUTO = 0 - OPETH_LINK_MASTER = enum.auto() - OPETH_LINK_SLAVE = enum.auto() - - -_opEthLinkMode = op_eth_link_mode -opEthLinkMode = op_eth_link_mode - diff --git a/gen/ics/structures/op_eth_settings.py b/gen/ics/structures/op_eth_settings.py deleted file mode 100644 index 34fee4d71..000000000 --- a/gen/ics/structures/op_eth_settings.py +++ /dev/null @@ -1,43 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless23998(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mac_addr1', ctypes.c_ubyte * 6), - ('mac_addr2', ctypes.c_ubyte * 6), - ('mac_spoofing_en', ctypes.c_ushort, 1), - ('mac_spoofing_isDstOrSrc', ctypes.c_ushort, 1), - ('link_spd', ctypes.c_ushort, 2), - ('q2112_phy_mode', ctypes.c_ushort, 1), - ('reserved', ctypes.c_ushort, 11), - ] - - - -class Nameless14996(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless23998',) - _fields_ = [ - ('Nameless23998', Nameless23998), - ('reserved0', ctypes.c_ubyte * 14), - ] - - - -class op_eth_settings(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless14996',) - _fields_ = [ - ('ucConfigMode', ctypes.c_uint8), - ('preemption_en', ctypes.c_ubyte), - ('Nameless14996', Nameless14996), - ] - - -OP_ETH_SETTINGS_t = op_eth_settings -OP_ETH_SETTINGS = op_eth_settings - diff --git a/gen/ics/structures/port_identity.py b/gen/ics/structures/port_identity.py deleted file mode 100644 index 04cc498ca..000000000 --- a/gen/ics/structures/port_identity.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class port_identity(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('clock_identity', ctypes.c_uint64), - ('port_number', ctypes.c_uint16), - ] - - - diff --git a/gen/ics/structures/priority_vector.py b/gen/ics/structures/priority_vector.py deleted file mode 100644 index 170b244b3..000000000 --- a/gen/ics/structures/priority_vector.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.port_identity import * -from ics.structures.system_identity import * - - -class priority_vector(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('sysid', system_identity), - ('steps_removed', ctypes.c_uint16), - ('portid', port_identity), - ('port_number', ctypes.c_uint16), - ] - - - diff --git a/gen/ics/structures/rad_moon_duo_converter_settings.py b/gen/ics/structures/rad_moon_duo_converter_settings.py deleted file mode 100644 index f7f67ffad..000000000 --- a/gen/ics/structures/rad_moon_duo_converter_settings.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class rad_moon_duo_converter_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('linkMode0', ctypes.c_uint8), - ('linkMode1', ctypes.c_uint8), - ('converter1Mode', ctypes.c_uint8), - ('ipAddress', ctypes.c_uint32), - ('ipMask', ctypes.c_uint32), - ('ipGateway', ctypes.c_uint32), - ] - - -_RadMoonDuoConverterSettings = rad_moon_duo_converter_settings -RadMoonDuoConverterSettings = rad_moon_duo_converter_settings - diff --git a/gen/ics/structures/rad_reporting_settings.py b/gen/ics/structures/rad_reporting_settings.py deleted file mode 100644 index cfef7f8cf..000000000 --- a/gen/ics/structures/rad_reporting_settings.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 rad_reporting_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('flags', ctypes.c_uint32), - ('temp_interval_ms', ctypes.c_uint16), - ('gps_interval_ms', ctypes.c_uint16), - ('serdes_interval_ms', ctypes.c_uint16), - ('io_interval_ms', ctypes.c_uint16), - ('fan_speed_interval_ms', ctypes.c_uint16), - ('rsvd', ctypes.c_uint8 * 2), - ] - - -RAD_REPORTING_SETTINGS_t = rad_reporting_settings -RAD_REPORTING_SETTINGS = rad_reporting_settings - diff --git a/gen/ics/structures/s_cm_probe_settings.py b/gen/ics/structures/s_cm_probe_settings.py deleted file mode 100644 index 11b134263..000000000 --- a/gen/ics/structures/s_cm_probe_settings.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 s_cm_probe_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ] - - -_CmProbeSettings = s_cm_probe_settings -CmProbeSettings = s_cm_probe_settings -SCmProbeSettings = s_cm_probe_settings - diff --git a/gen/ics/structures/s_cyan_settings.py b/gen/ics/structures/s_cyan_settings.py deleted file mode 100644 index dad58be82..000000000 --- a/gen/ics/structures/s_cyan_settings.py +++ /dev/null @@ -1,108 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('enableDefaultLogger', ctypes.c_uint32, 1), - ('enableDefaultUpload', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 26), - ] - - - -class s_cyan_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('can8', CAN_SETTINGS), - ('canfd8', CANFD_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('swcan2', SWCAN_SETTINGS), - ('network_enables_2', ctypes.c_uint16), - ('lsftcan1', CAN_SETTINGS), - ('lsftcan2', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('lin2', LIN_SETTINGS), - ('misc_io_initial_latch', ctypes.c_uint16), - ('lin3', LIN_SETTINGS), - ('misc_io_report_period', ctypes.c_uint16), - ('lin4', LIN_SETTINGS), - ('misc_io_on_report_events', ctypes.c_uint16), - ('lin5', LIN_SETTINGS), - ('misc_io_analog_enable', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_3', ctypes.c_uint16), - ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_4', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('iso_msg_termination_3', ctypes.c_uint16), - ('iso_msg_termination_4', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('idle_wakeup_network_enables_3', ctypes.c_uint16), - ('can_switch_mode', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('termination_enables', ctypes.c_uint64), - ('lin6', LIN_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('slaveVnetA', ctypes.c_uint16), - ('slaveVnetB', ctypes.c_uint16), - ('flags', flags), - ('digitalIoThresholdTicks', ctypes.c_uint16), - ('digitalIoThresholdEnable', ctypes.c_uint16), - ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), - ('disk', DISK_SETTINGS), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_SCyanSettings = s_cyan_settings -SCyanSettings = s_cyan_settings - diff --git a/gen/ics/structures/s_device_settings.py b/gen/ics/structures/s_device_settings.py deleted file mode 100644 index 9a77e87a1..000000000 --- a/gen/ics/structures/s_device_settings.py +++ /dev/null @@ -1,108 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.e_device_settings_type import * -from ics.structures.s_cm_probe_settings import * -from ics.structures.s_cyan_settings import * -from ics.structures.s_ether_badge_settings import * -from ics.structures.s_fire3_flexray_settings import * -from ics.structures.s_fire3_settings import * -from ics.structures.s_fire_settings import * -from ics.structures.s_fire_vnet_settings import * -from ics.structures.s_flex_vnetz_settings import * -from ics.structures.s_neo_ecu12_settings import * -from ics.structures.s_pendant_settings import * -from ics.structures.s_pluto_switch_settings_s import * -from ics.structures.s_rad_moon_duo_settings import * -from ics.structures.s_red2_settings import * -from ics.structures.s_red_settings import * -from ics.structures.s_vivid_can_settings import * -from ics.structures.scan_hub_settings import * -from ics.structures.secu_avb_settings import * -from ics.structures.secu_settings import * -from ics.structures.seevb_settings import * -from ics.structures.sievb_settings import * -from ics.structures.sobd2_lc_settings import * -from ics.structures.sobd2_pro_settings import * -from ics.structures.sobd2_sim_settings import * -from ics.structures.srad_comet_settings import * -from ics.structures.srad_epsilon_settings import * -from ics.structures.srad_galaxy_settings import * -from ics.structures.srad_gigalog_settings import * -from ics.structures.srad_gigastar_settings import * -from ics.structures.srad_jupiter_settings import * -from ics.structures.srad_moon2_settings import * -from ics.structures.srad_moon3_settings import * -from ics.structures.srad_pluto_settings import * -from ics.structures.srad_star2_settings import * -from ics.structures.srad_super_moon_settings import * -from ics.structures.srada2_b_settings import * -from ics.structures.sradbms_settings import * -from ics.structures.svcan3_settings import * -from ics.structures.svcan412_settings import * -from ics.structures.svcan4_ind_settings import * -from ics.structures.svcan4_settings import * -from ics.structures.svcanrf_settings import * - - -class Settings(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('red', SRedSettings), - ('fire', SFireSettings), - ('firevnet', SFireVnetSettings), - ('cyan', SCyanSettings), - ('vcan3', SVCAN3Settings), - ('vcan4', SVCAN4Settings), - ('ecu', SECUSettings), - ('ievb', SIEVBSettings), - ('pendant', SPendantSettings), - ('radgalaxy', SRADGalaxySettings), - ('radstar2', SRADStar2Settings), - ('neoobd2_sim', SOBD2SimSettings), - ('cmprobe', SCmProbeSettings), - ('obd2pro', SOBD2ProSettings), - ('vcan412', SVCAN412Settings), - ('vcan4_12', SVCAN412Settings), - ('neoecu_avb', SECU_AVBSettings), - ('radsupermoon', SRADSuperMoonSettings), - ('radmoon2', SRADMoon2Settings), - ('pluto', SRADPlutoSettings), - ('plutoswitch', SPlutoSwitchSettings), - ('radgigalog', SRADGigalogSettings), - ('canhub', SCANHubSettings), - ('neoecu12', SNeoECU12Settings), - ('vcanrf', SVCANRFSettings), - ('eevb', SEEVBSettings), - ('flexvnetz', SFlexVnetzSettings), - ('vividcan', SVividCANSettings), - ('vcan4_ind', SVCAN4IndSettings), - ('obd2lc', SOBD2LCSettings), - ('radgigastar', SRADGigastarSettings), - ('jupiter', SRADJupiterSettings), - ('fire3', SFire3Settings), - ('red2', SRed2Settings), - ('radmoon_duo', SRadMoonDuoSettings), - ('etherBadge', SEtherBadgeSettings), - ('rad_a2b', SRADA2BSettings), - ('epsilon', SRADEpsilonSettings), - ('rad_bms', SRADBMSSettings), - ('radmoon3', SRADMoon3Settings), - ('fire3Flexray', SFire3FlexraySettings), - ('radcomet', SRADCometSettings), - ] - - - -class s_device_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('DeviceSettingType', ctypes.c_int32), - ('Settings', Settings), - ] - - -_SDeviceSettings = s_device_settings -SDeviceSettings = s_device_settings - diff --git a/gen/ics/structures/s_disk_details.py b/gen/ics/structures/s_disk_details.py deleted file mode 100644 index bd539c4b2..000000000 --- a/gen/ics/structures/s_disk_details.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_disk_status import * -from ics.structures.s_disk_structure import * - - -class s_disk_details(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('structure', SDiskStructure), - ('status', SDiskStatus * 12), - ] - - -_SDiskDetails = s_disk_details -SDiskDetails = s_disk_details - diff --git a/gen/ics/structures/s_disk_format_progress.py b/gen/ics/structures/s_disk_format_progress.py deleted file mode 100644 index 6c4fd6389..000000000 --- a/gen/ics/structures/s_disk_format_progress.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_disk_format_progress(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('state', ctypes.c_uint16), - ('sectorsRemaining', ctypes.c_uint8 * 8), - ] - - -_SDiskFormatProgress = s_disk_format_progress -SDiskFormatProgress = s_disk_format_progress - diff --git a/gen/ics/structures/s_disk_status.py b/gen/ics/structures/s_disk_status.py deleted file mode 100644 index 69f7b0bac..000000000 --- a/gen/ics/structures/s_disk_status.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 s_disk_status(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('status', ctypes.c_uint16), - ('sectors', ctypes.c_uint8 * 8), - ('bytesPerSector', ctypes.c_uint8 * 4), - ] - - -_SDiskStatus = s_disk_status -SDiskStatus = s_disk_status - diff --git a/gen/ics/structures/s_disk_structure.py b/gen/ics/structures/s_disk_structure.py deleted file mode 100644 index 130a77fb7..000000000 --- a/gen/ics/structures/s_disk_structure.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.disk_settings import * - - -class s_disk_structure(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('settings', DISK_SETTINGS), - ('options', ctypes.c_uint16), - ] - - -_SDiskStructure = s_disk_structure -SDiskStructure = s_disk_structure - diff --git a/gen/ics/structures/s_ether_badge_settings.py b/gen/ics/structures/s_ether_badge_settings.py deleted file mode 100644 index 7b37b831a..000000000 --- a/gen/ics/structures/s_ether_badge_settings.py +++ /dev/null @@ -1,63 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 29), - ] - - - -class s_ether_badge_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('flags', flags), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_SEtherBadgeSettings = s_ether_badge_settings -SEtherBadgeSettings = s_ether_badge_settings - diff --git a/gen/ics/structures/s_ext_sub_cmd_hdr.py b/gen/ics/structures/s_ext_sub_cmd_hdr.py deleted file mode 100644 index 627225a92..000000000 --- a/gen/ics/structures/s_ext_sub_cmd_hdr.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_ext_sub_cmd_hdr(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('command', ctypes.c_uint16), - ('length', ctypes.c_uint16), - ] - - -_SExtSubCmdHdr = s_ext_sub_cmd_hdr -SExtSubCmdHdr = s_ext_sub_cmd_hdr - diff --git a/gen/ics/structures/s_extended_data_flash_header.py b/gen/ics/structures/s_extended_data_flash_header.py deleted file mode 100644 index ea2e56eae..000000000 --- a/gen/ics/structures/s_extended_data_flash_header.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_extended_data_flash_header(ctypes.Structure): - _fields_ = [ - ('version', ctypes.c_uint16), - ('chksum', ctypes.c_uint16), - ('len', ctypes.c_uint32), - ] - - -SExtendedDataFlashHeader = s_extended_data_flash_header -ExtendedDataFlashHeader_t = s_extended_data_flash_header - diff --git a/gen/ics/structures/s_fire3_flexray_settings.py b/gen/ics/structures/s_fire3_flexray_settings.py deleted file mode 100644 index 603c6d7c3..000000000 --- a/gen/ics/structures/s_fire3_flexray_settings.py +++ /dev/null @@ -1,120 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.fire3_linux_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('reserved1', ctypes.c_uint32, 1), - ('enableDefaultLogger', ctypes.c_uint32, 1), - ('enableDefaultUpload', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 26), - ] - - - -class s_fire3_flexray_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('pwr_man_enable', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('slaveVnetA', ctypes.c_uint16), - ('reserved', ctypes.c_uint32), - ('termination_enables_1', ctypes.c_uint64), - ('network_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('can8', CAN_SETTINGS), - ('canfd8', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('ethernet_1', ETHERNET_SETTINGS), - ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('disk', DISK_SETTINGS), - ('misc_io_report_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('digitalIoThresholdTicks', ctypes.c_uint16), - ('digitalIoThresholdEnable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('ethernet2_1', ETHERNET_SETTINGS2), - ('ethernet_2', ETHERNET_SETTINGS), - ('ethernet2_2', ETHERNET_SETTINGS2), - ('os_settings', Fire3LinuxSettings), - ('gPTP', RAD_GPTP_SETTINGS), - ('can9', CAN_SETTINGS), - ('canfd9', CANFD_SETTINGS), - ('can10', CAN_SETTINGS), - ('canfd10', CANFD_SETTINGS), - ('can11', CAN_SETTINGS), - ('canfd11', CANFD_SETTINGS), - ('can12', CAN_SETTINGS), - ('canfd12', CANFD_SETTINGS), - ('can13', CAN_SETTINGS), - ('canfd13', CANFD_SETTINGS), - ('can14', CAN_SETTINGS), - ('canfd14', CANFD_SETTINGS), - ('can15', CAN_SETTINGS), - ('canfd15', CANFD_SETTINGS), - ('ethernet_3', ETHERNET_SETTINGS), - ('ethernet2_3', ETHERNET_SETTINGS2), - ('lin3', LIN_SETTINGS), - ('lin4', LIN_SETTINGS), - ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_3', ctypes.c_uint16), - ('iso_msg_termination_3', ctypes.c_uint16), - ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_4', ctypes.c_uint16), - ('iso_msg_termination_4', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint64), - ('termination_enables_2', ctypes.c_uint64), - ('flex_mode', ctypes.c_uint16), - ('flex_termination', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ] - - -_SFire3FlexraySettings = s_fire3_flexray_settings -SFire3FlexraySettings = s_fire3_flexray_settings - diff --git a/gen/ics/structures/s_fire3_settings.py b/gen/ics/structures/s_fire3_settings.py deleted file mode 100644 index e5af9be4e..000000000 --- a/gen/ics/structures/s_fire3_settings.py +++ /dev/null @@ -1,137 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.fire3_linux_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.swcan_settings import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('enableDefaultLogger', ctypes.c_uint32, 1), - ('enableDefaultUpload', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 26), - ] - - - -class s_fire3_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('pwr_man_enable', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('slaveVnetA', ctypes.c_uint16), - ('reserved', ctypes.c_uint32), - ('termination_enables_1', ctypes.c_uint64), - ('network_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('can8', CAN_SETTINGS), - ('canfd8', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('ethernet_1', ETHERNET_SETTINGS), - ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('disk', DISK_SETTINGS), - ('misc_io_report_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('digitalIoThresholdTicks', ctypes.c_uint16), - ('digitalIoThresholdEnable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('ethernet2_1', ETHERNET_SETTINGS2), - ('ethernet_2', ETHERNET_SETTINGS), - ('ethernet2_2', ETHERNET_SETTINGS2), - ('os_settings', Fire3LinuxSettings), - ('gPTP', RAD_GPTP_SETTINGS), - ('can9', CAN_SETTINGS), - ('canfd9', CANFD_SETTINGS), - ('can10', CAN_SETTINGS), - ('canfd10', CANFD_SETTINGS), - ('can11', CAN_SETTINGS), - ('canfd11', CANFD_SETTINGS), - ('can12', CAN_SETTINGS), - ('canfd12', CANFD_SETTINGS), - ('can13', CAN_SETTINGS), - ('canfd13', CANFD_SETTINGS), - ('can14', CAN_SETTINGS), - ('canfd14', CANFD_SETTINGS), - ('can15', CAN_SETTINGS), - ('canfd15', CANFD_SETTINGS), - ('can16', CAN_SETTINGS), - ('canfd16', CANFD_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('swcan2', SWCAN_SETTINGS), - ('lsftcan1', CAN_SETTINGS), - ('lsftcan2', CAN_SETTINGS), - ('ethernet_3', ETHERNET_SETTINGS), - ('ethernet2_3', ETHERNET_SETTINGS2), - ('lin3', LIN_SETTINGS), - ('lin4', LIN_SETTINGS), - ('lin5', LIN_SETTINGS), - ('lin6', LIN_SETTINGS), - ('lin7', LIN_SETTINGS), - ('lin8', LIN_SETTINGS), - ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_3', ctypes.c_uint16), - ('iso_msg_termination_3', ctypes.c_uint16), - ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_4', ctypes.c_uint16), - ('iso_msg_termination_4', ctypes.c_uint16), - ('iso9141_kwp_settings_5', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_5', ctypes.c_uint16), - ('iso_msg_termination_5', ctypes.c_uint16), - ('iso9141_kwp_settings_6', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_6', ctypes.c_uint16), - ('iso_msg_termination_6', ctypes.c_uint16), - ('selectable_network_1', ctypes.c_uint16), - ('selectable_network_2', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint64), - ('termination_enables_2', ctypes.c_uint64), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ] - - -_SFire3Settings = s_fire3_settings -SFire3Settings = s_fire3_settings - diff --git a/gen/ics/structures/s_fire_settings.py b/gen/ics/structures/s_fire_settings.py deleted file mode 100644 index 64f517c05..000000000 --- a/gen/ics/structures/s_fire_settings.py +++ /dev/null @@ -1,72 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_neo_most_gateway_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * -from ics.structures.uart_settings import * - - -class s_fire_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('can3', CAN_SETTINGS), - ('can4', CAN_SETTINGS), - ('swcan', SWCAN_SETTINGS), - ('lsftcan', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('lin3', LIN_SETTINGS), - ('lin4', LIN_SETTINGS), - ('cgi_enable_reserved', ctypes.c_uint16), - ('cgi_baud', ctypes.c_uint16), - ('cgi_tx_ifs_bit_times', ctypes.c_uint16), - ('cgi_rx_ifs_bit_times', ctypes.c_uint16), - ('cgi_chksum_enable', ctypes.c_uint16), - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('pwm_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('perf_en', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_3', ctypes.c_uint16), - ('iso_msg_termination_3', ctypes.c_uint16), - ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_4', ctypes.c_uint16), - ('iso_msg_termination_4', ctypes.c_uint16), - ('fast_init_network_enables_1', ctypes.c_uint16), - ('fast_init_network_enables_2', ctypes.c_uint16), - ('uart', UART_SETTINGS), - ('uart2', UART_SETTINGS), - ('text_api', STextAPISettings), - ('neoMostGateway', SNeoMostGatewaySettings), - ('vnetBits', ctypes.c_uint16), - ] - - -_SFireSettings = s_fire_settings -SFireSettings = s_fire_settings - diff --git a/gen/ics/structures/s_fire_vnet_settings.py b/gen/ics/structures/s_fire_vnet_settings.py deleted file mode 100644 index 18bc589aa..000000000 --- a/gen/ics/structures/s_fire_vnet_settings.py +++ /dev/null @@ -1,76 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_neo_most_gateway_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * -from ics.structures.uart_settings import * - - -class s_fire_vnet_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('can3', CAN_SETTINGS), - ('can4', CAN_SETTINGS), - ('swcan', SWCAN_SETTINGS), - ('lsftcan', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('lin3', LIN_SETTINGS), - ('lin4', LIN_SETTINGS), - ('cgi_enable_reserved', ctypes.c_uint16), - ('cgi_baud', ctypes.c_uint16), - ('cgi_tx_ifs_bit_times', ctypes.c_uint16), - ('cgi_rx_ifs_bit_times', ctypes.c_uint16), - ('cgi_chksum_enable', ctypes.c_uint16), - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('pwm_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('perf_en', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('iso9141_kwp_settings_3', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_3', ctypes.c_uint16), - ('iso_msg_termination_3', ctypes.c_uint16), - ('iso9141_kwp_settings_4', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_4', ctypes.c_uint16), - ('iso_msg_termination_4', ctypes.c_uint16), - ('fast_init_network_enables_1', ctypes.c_uint16), - ('fast_init_network_enables_2', ctypes.c_uint16), - ('uart', UART_SETTINGS), - ('uart2', UART_SETTINGS), - ('text_api', STextAPISettings), - ('neoMostGateway', SNeoMostGatewaySettings), - ('vnetBits', ctypes.c_uint16), - ('can5', CAN_SETTINGS), - ('can6', CAN_SETTINGS), - ('lin5', LIN_SETTINGS), - ('swcan2', SWCAN_SETTINGS), - ] - - -_SFireVnetSettings = s_fire_vnet_settings -SFireVnetSettings = s_fire_vnet_settings - diff --git a/gen/ics/structures/s_flex_vnetz_settings.py b/gen/ics/structures/s_flex_vnetz_settings.py deleted file mode 100644 index 51cae6801..000000000 --- a/gen/ics/structures/s_flex_vnetz_settings.py +++ /dev/null @@ -1,88 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.s_text_api_settings import * -from ics.structures.timesync_icshardware_settings import * - - -class Nameless26218(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ] - - - -class network_enables(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless26218',) - _fields_ = [ - ('word', ctypes.c_uint64), - ('Nameless26218', Nameless26218), - ] - - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('enableDefaultLogger', ctypes.c_uint32, 1), - ('enableDefaultUpload', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 26), - ] - - - -class s_flex_vnetz_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('pwr_man_enable', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('flex_mode', ctypes.c_uint16), - ('flex_termination', ctypes.c_uint16), - ('slaveVnetA', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('network_enables', network_enables), - ('pwr_man_timeout', ctypes.c_uint32), - ('slaveVnetB', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('disk', DISK_SETTINGS), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_SFlexVnetzSettings = s_flex_vnetz_settings -SFlexVnetzSettings = s_flex_vnetz_settings - diff --git a/gen/ics/structures/s_jupiter_ptp_params_s.py b/gen/ics/structures/s_jupiter_ptp_params_s.py deleted file mode 100644 index 08527d0d4..000000000 --- a/gen/ics/structures/s_jupiter_ptp_params_s.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_jupiter_ptp_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('neighborPropDelay', ctypes.c_uint32), - ('initLogPDelayReqInterval', ctypes.c_int8), - ('initLogSyncInterval', ctypes.c_int8), - ('operationLogPDelayReqInterval', ctypes.c_int8), - ('operationLogSyncInterval', ctypes.c_int8), - ('gPTPportRole', ctypes.c_uint8 * 8), - ] - - -SJupiterPtpParams_s = s_jupiter_ptp_params_s -JupiterPtpParams_t = s_jupiter_ptp_params_s - diff --git a/gen/ics/structures/s_neo_ecu12_settings.py b/gen/ics/structures/s_neo_ecu12_settings.py deleted file mode 100644 index d6aa88663..000000000 --- a/gen/ics/structures/s_neo_ecu12_settings.py +++ /dev/null @@ -1,63 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class s_neo_ecu12_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('swcan2', SWCAN_SETTINGS), - ('lsftcan1', CAN_SETTINGS), - ('lsftcan2', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('network_enables', ctypes.c_uint64), - ('network_enabled_on_boot', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('can_switch_mode', ctypes.c_uint16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('perf_en', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('text_api', STextAPISettings), - ('flags', flags), - ('reserved_field', ctypes.c_uint32 * 2), - ] - - -_NeoECU12Settings = s_neo_ecu12_settings -SNeoECU12Settings = s_neo_ecu12_settings - diff --git a/gen/ics/structures/s_neo_most_gateway_settings.py b/gen/ics/structures/s_neo_most_gateway_settings.py deleted file mode 100644 index 22892504f..000000000 --- a/gen/ics/structures/s_neo_most_gateway_settings.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 s_neo_most_gateway_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('netId', ctypes.c_uint16), - ('zero0', ctypes.c_uint8), - ('Config', ctypes.c_uint8), - ] - - -_SNeoMostGatewaySettings = s_neo_most_gateway_settings -SNeoMostGatewaySettings = s_neo_most_gateway_settings - diff --git a/gen/ics/structures/s_pendant_settings.py b/gen/ics/structures/s_pendant_settings.py deleted file mode 100644 index be37f8f1c..000000000 --- a/gen/ics/structures/s_pendant_settings.py +++ /dev/null @@ -1,53 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * -from ics.structures.uart_settings import * - - -class s_pendant_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('selected_network', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('swcan', SWCAN_SETTINGS), - ('swcan2', SWCAN_SETTINGS), - ('lsftcan', CAN_SETTINGS), - ('lsftcan2', CAN_SETTINGS), - ('uart', UART_SETTINGS), - ('uart2', UART_SETTINGS), - ('text_api', STextAPISettings), - ] - - -_SPendantSettings = s_pendant_settings -SPendantSettings = s_pendant_settings - diff --git a/gen/ics/structures/s_phy_reg_pkt.py b/gen/ics/structures/s_phy_reg_pkt.py deleted file mode 100644 index 271f82a79..000000000 --- a/gen/ics/structures/s_phy_reg_pkt.py +++ /dev/null @@ -1,49 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_phy_reg_pkt_clause22_mess import * -from ics.structures.s_phy_reg_pkt_clause45_mess import * - - -class Nameless62381(ctypes.Structure): - _fields_ = [ - ('Enabled', ctypes.c_uint16, 1), - ('WriteEnable', ctypes.c_uint16, 1), - ('Clause45Enable', ctypes.c_uint16, 1), - ('status', ctypes.c_uint16, 3), - ('reserved', ctypes.c_uint16, 2), - ('BusIndex', ctypes.c_uint16, 4), - ('version', ctypes.c_uint16, 4), - ] - - - -class Nameless5941(ctypes.Union): - _anonymous_ = ('Nameless62381',) - _fields_ = [ - ('Nameless62381', Nameless62381), - ('flags', ctypes.c_uint16), - ] - - - -class Nameless61713(ctypes.Union): - _fields_ = [ - ('clause22', PhyRegPktClause22Mess_t), - ('clause45', PhyRegPktClause45Mess_t), - ] - - - -class s_phy_reg_pkt(ctypes.Structure): - _anonymous_ = ('Nameless5941', 'Nameless61713') - _fields_ = [ - ('Nameless5941', Nameless5941), - ('Nameless61713', Nameless61713), - ] - - -SPhyRegPkt = s_phy_reg_pkt -PhyRegPkt_t = s_phy_reg_pkt - diff --git a/gen/ics/structures/s_phy_reg_pkt_clause22_mess.py b/gen/ics/structures/s_phy_reg_pkt_clause22_mess.py deleted file mode 100644 index 73e89478b..000000000 --- a/gen/ics/structures/s_phy_reg_pkt_clause22_mess.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 s_phy_reg_pkt_clause22_mess(ctypes.Structure): - _fields_ = [ - ('phyAddr', ctypes.c_uint8), - ('page', ctypes.c_uint8), - ('regAddr', ctypes.c_uint16), - ('regVal', ctypes.c_uint16), - ] - - -SPhyRegPktClause22Mess = s_phy_reg_pkt_clause22_mess -PhyRegPktClause22Mess_t = s_phy_reg_pkt_clause22_mess - diff --git a/gen/ics/structures/s_phy_reg_pkt_clause45_mess.py b/gen/ics/structures/s_phy_reg_pkt_clause45_mess.py deleted file mode 100644 index 427a14306..000000000 --- a/gen/ics/structures/s_phy_reg_pkt_clause45_mess.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 s_phy_reg_pkt_clause45_mess(ctypes.Structure): - _fields_ = [ - ('port', ctypes.c_uint8), - ('device', ctypes.c_uint8), - ('regAddr', ctypes.c_uint16), - ('regVal', ctypes.c_uint16), - ] - - -SPhyRegPktClause45Mess = s_phy_reg_pkt_clause45_mess -PhyRegPktClause45Mess_t = s_phy_reg_pkt_clause45_mess - diff --git a/gen/ics/structures/s_phy_reg_pkt_hdr.py b/gen/ics/structures/s_phy_reg_pkt_hdr.py deleted file mode 100644 index 5a51b03e0..000000000 --- a/gen/ics/structures/s_phy_reg_pkt_hdr.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_phy_reg_pkt_hdr(ctypes.Structure): - _fields_ = [ - ('numEntries', ctypes.c_uint16), - ('version', ctypes.c_uint8), - ('entryBytes', ctypes.c_uint8), - ] - - -SPhyRegPktHdr = s_phy_reg_pkt_hdr -PhyRegPktHdr_t = s_phy_reg_pkt_hdr - diff --git a/gen/ics/structures/s_phy_reg_pkt_rw.py b/gen/ics/structures/s_phy_reg_pkt_rw.py deleted file mode 100644 index 2ce81bf03..000000000 --- a/gen/ics/structures/s_phy_reg_pkt_rw.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 s_phy_reg_pkt_rw(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - PHYREG_READ = 0 - PHYREG_WRITE = enum.auto() - PHYREG_BOTH = enum.auto() - - -SPhyRegPktRw = s_phy_reg_pkt_rw -PhyRegPktRw_t = s_phy_reg_pkt_rw - diff --git a/gen/ics/structures/s_phy_reg_pkt_status.py b/gen/ics/structures/s_phy_reg_pkt_status.py deleted file mode 100644 index 5d95bded7..000000000 --- a/gen/ics/structures/s_phy_reg_pkt_status.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_phy_reg_pkt_status(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - PHYREG_SUCCESS = 0 - PHYREG_FAILURE = enum.auto() - PHYREG_INVALID_MDIO_BUS_INDEX = enum.auto() - PHYREG_INVALID_PHY_ADDR = enum.auto() - PHYREG_UNSUPPORTED_MDIO_CLAUSE = enum.auto() - PHYREG_RESERVED1 = enum.auto() - PHYREG_RESERVED2 = enum.auto() - PHYREG_RESERVED3 = enum.auto() - - -SPhyRegPktStatus = s_phy_reg_pkt_status -PhyRegPktStatus_t = s_phy_reg_pkt_status - diff --git a/gen/ics/structures/s_pluto_avb_params_s.py b/gen/ics/structures/s_pluto_avb_params_s.py deleted file mode 100644 index 80b222e72..000000000 --- a/gen/ics/structures/s_pluto_avb_params_s.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_avb_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('destmeta', ctypes.c_uint64), - ('srcmeta', ctypes.c_uint64), - ] - - -SPluto_AVBParams_s = s_pluto_avb_params_s -SPluto_AVBParams = s_pluto_avb_params_s - diff --git a/gen/ics/structures/s_pluto_clock_sync_params_s.py b/gen/ics/structures/s_pluto_clock_sync_params_s.py deleted file mode 100644 index 85d9ea0bb..000000000 --- a/gen/ics/structures/s_pluto_clock_sync_params_s.py +++ /dev/null @@ -1,60 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_clock_sync_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('etssrcpcf', ctypes.c_uint64), - ('wfintmout', ctypes.c_uint32), - ('maxtranspclk', ctypes.c_uint32), - ('listentmout', ctypes.c_uint32), - ('intcydur', ctypes.c_uint32), - ('caentmout', ctypes.c_uint32), - ('pcfsze', ctypes.c_uint16), - ('obvwinsz', ctypes.c_uint16), - ('vlidout', ctypes.c_uint16), - ('vlidimnmin', ctypes.c_uint16), - ('vlidinmax', ctypes.c_uint16), - ('accdevwin', ctypes.c_uint16), - ('srcport', ctypes.c_uint8 * 8), - ('waitthsync', ctypes.c_uint8), - ('unsytotsyth', ctypes.c_uint8), - ('unsytosyth', ctypes.c_uint8), - ('tsytosyth', ctypes.c_uint8), - ('tsyth', ctypes.c_uint8), - ('tsytousyth', ctypes.c_uint8), - ('syth', ctypes.c_uint8), - ('sytousyth', ctypes.c_uint8), - ('sypriority', ctypes.c_uint8), - ('sydomain', ctypes.c_uint8), - ('stth', ctypes.c_uint8), - ('sttointth', ctypes.c_uint8), - ('pcfpriority', ctypes.c_uint8), - ('numunstbcy', ctypes.c_uint8), - ('numstbcy', ctypes.c_uint8), - ('maxintegcy', ctypes.c_uint8), - ('inttotentth', ctypes.c_uint8), - ('inttosyncth', ctypes.c_uint8), - ('vlidselect', ctypes.c_uint8), - ('tentsyrelen', ctypes.c_uint8), - ('asytensyen', ctypes.c_uint8), - ('sytostben', ctypes.c_uint8), - ('syrelen', ctypes.c_uint8), - ('sysyen', ctypes.c_uint8), - ('syasyen', ctypes.c_uint8), - ('ipcframesy', ctypes.c_uint8), - ('stabasyen', ctypes.c_uint8), - ('swmaster', ctypes.c_uint8), - ('fullcbg', ctypes.c_uint8), - ('pad1', ctypes.c_uint8), - ('pad2', ctypes.c_uint8), - ('pad3', ctypes.c_uint8), - ] - - -SPluto_ClockSyncParams_s = s_pluto_clock_sync_params_s -SPluto_ClockSyncParams = s_pluto_clock_sync_params_s - diff --git a/gen/ics/structures/s_pluto_custom_params_s.py b/gen/ics/structures/s_pluto_custom_params_s.py deleted file mode 100644 index 393184609..000000000 --- a/gen/ics/structures/s_pluto_custom_params_s.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_pluto_ptp_params_s import * - - -class s_pluto_custom_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mode', ctypes.c_uint8 * 5), - ('speed', ctypes.c_uint8 * 5), - ('enablePhy', ctypes.c_uint8 * 5), - ('ae1Select', ctypes.c_uint8), - ('usbSelect', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ('ptpParams', PlutoPtpParams_t), - ] - - -SPluto_CustomParams_s = s_pluto_custom_params_s -SPluto_CustomParams = s_pluto_custom_params_s - diff --git a/gen/ics/structures/s_pluto_general_params_s.py b/gen/ics/structures/s_pluto_general_params_s.py deleted file mode 100644 index 424d9aadf..000000000 --- a/gen/ics/structures/s_pluto_general_params_s.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_general_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mac_fltres1', ctypes.c_uint64), - ('mac_fltres0', ctypes.c_uint64), - ('mac_flt1', ctypes.c_uint64), - ('mac_flt0', ctypes.c_uint64), - ('vlmarker', ctypes.c_uint32), - ('vlmask', ctypes.c_uint32), - ('tpid', ctypes.c_uint16), - ('tpid2', ctypes.c_uint16), - ('vllupformat', ctypes.c_uint8), - ('mirr_ptacu', ctypes.c_uint8), - ('switchid', ctypes.c_uint8), - ('hostprio', ctypes.c_uint8), - ('incl_srcpt1', ctypes.c_uint8), - ('incl_srcpt0', ctypes.c_uint8), - ('send_meta1', ctypes.c_uint8), - ('send_meta0', ctypes.c_uint8), - ('casc_port', ctypes.c_uint8), - ('host_port', ctypes.c_uint8), - ('mirr_port', ctypes.c_uint8), - ('ignore2stf', ctypes.c_uint8), - ] - - -SPluto_GeneralParams_s = s_pluto_general_params_s -SPluto_GeneralParams = s_pluto_general_params_s - diff --git a/gen/ics/structures/s_pluto_l2_address_lookup_entry_s.py b/gen/ics/structures/s_pluto_l2_address_lookup_entry_s.py deleted file mode 100644 index ec60831a6..000000000 --- a/gen/ics/structures/s_pluto_l2_address_lookup_entry_s.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_l2_address_lookup_entry_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('index', ctypes.c_uint16), - ('vlanID', ctypes.c_uint16), - ('macaddr', ctypes.c_uint8 * 6), - ('destports', ctypes.c_uint8), - ('enfport', ctypes.c_uint8), - ('learnedEntry', ctypes.c_uint8), - ('pad1', ctypes.c_uint8), - ('pad2', ctypes.c_uint8), - ('pad3', ctypes.c_uint8), - ] - - -SPluto_L2AddressLookupEntry_s = s_pluto_l2_address_lookup_entry_s -SPluto_L2AddressLookupEntry = s_pluto_l2_address_lookup_entry_s - diff --git a/gen/ics/structures/s_pluto_l2_address_lookup_params_s.py b/gen/ics/structures/s_pluto_l2_address_lookup_params_s.py deleted file mode 100644 index ae46b696c..000000000 --- a/gen/ics/structures/s_pluto_l2_address_lookup_params_s.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 s_pluto_l2_address_lookup_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('maxage', ctypes.c_uint16), - ('dyn_tbsz', ctypes.c_uint8), - ('poly', ctypes.c_uint8), - ('shared_learn', ctypes.c_uint8), - ('no_enf_hostprt', ctypes.c_uint8), - ('no_mgmt_learn', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_L2AddressLookupParams_s = s_pluto_l2_address_lookup_params_s -SPluto_L2AddressLookupParams = s_pluto_l2_address_lookup_params_s - diff --git a/gen/ics/structures/s_pluto_l2_forwarding_entry_s.py b/gen/ics/structures/s_pluto_l2_forwarding_entry_s.py deleted file mode 100644 index 0faf5390b..000000000 --- a/gen/ics/structures/s_pluto_l2_forwarding_entry_s.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 s_pluto_l2_forwarding_entry_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('vlan_pmap', ctypes.c_uint8 * 8), - ('bc_domain', ctypes.c_uint8), - ('reach_port', ctypes.c_uint8), - ('fl_domain', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_L2ForwardingEntry_s = s_pluto_l2_forwarding_entry_s -SPluto_L2ForwardingEntry = s_pluto_l2_forwarding_entry_s - diff --git a/gen/ics/structures/s_pluto_l2_forwarding_params_s.py b/gen/ics/structures/s_pluto_l2_forwarding_params_s.py deleted file mode 100644 index cc0b55126..000000000 --- a/gen/ics/structures/s_pluto_l2_forwarding_params_s.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 s_pluto_l2_forwarding_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('part_spc', ctypes.c_uint16 * 8), - ('max_dynp', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_L2ForwardingParams_s = s_pluto_l2_forwarding_params_s -SPluto_L2ForwardingParams = s_pluto_l2_forwarding_params_s - diff --git a/gen/ics/structures/s_pluto_l2_policing_s.py b/gen/ics/structures/s_pluto_l2_policing_s.py deleted file mode 100644 index 2eed4eaa2..000000000 --- a/gen/ics/structures/s_pluto_l2_policing_s.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 s_pluto_l2_policing_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('smax', ctypes.c_uint16), - ('rate', ctypes.c_uint16), - ('maxlen', ctypes.c_uint16), - ('sharindx', ctypes.c_uint8), - ('partition', ctypes.c_uint8), - ] - - -SPluto_L2Policing_s = s_pluto_l2_policing_s -SPluto_L2Policing = s_pluto_l2_policing_s - diff --git a/gen/ics/structures/s_pluto_mac_config_s.py b/gen/ics/structures/s_pluto_mac_config_s.py deleted file mode 100644 index 48c514d78..000000000 --- a/gen/ics/structures/s_pluto_mac_config_s.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_mac_config_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('top', ctypes.c_uint16 * 8), - ('base', ctypes.c_uint16 * 8), - ('tp_delin', ctypes.c_uint16), - ('tp_delout', ctypes.c_uint16), - ('vlanid', ctypes.c_uint16), - ('enabled', ctypes.c_uint8 * 8), - ('ifg', ctypes.c_uint8), - ('speed', ctypes.c_uint8), - ('maxage', ctypes.c_uint8), - ('vlanprio', ctypes.c_uint8), - ('ing_mirr', ctypes.c_uint8), - ('egr_mirr', ctypes.c_uint8), - ('drpnona664', ctypes.c_uint8), - ('drpdtag', ctypes.c_uint8), - ('drpuntag', ctypes.c_uint8), - ('retag', ctypes.c_uint8), - ('dyn_learn', ctypes.c_uint8), - ('egress', ctypes.c_uint8), - ('ingress', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_MacConfig_s = s_pluto_mac_config_s -SPluto_MacConfig = s_pluto_mac_config_s - diff --git a/gen/ics/structures/s_pluto_ptp_params_s.py b/gen/ics/structures/s_pluto_ptp_params_s.py deleted file mode 100644 index 4baec607e..000000000 --- a/gen/ics/structures/s_pluto_ptp_params_s.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_ptp_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('neighborPropDelayThresh', ctypes.c_uint32), - ('sys_phc_sync_interval', ctypes.c_uint32), - ('logPDelayReqInterval', ctypes.c_int8), - ('logSyncInterval', ctypes.c_int8), - ('logAnnounceInterval', ctypes.c_int8), - ('profile', ctypes.c_uint8), - ('priority1', ctypes.c_uint8), - ('clockclass', ctypes.c_uint8), - ('clockaccuracy', ctypes.c_uint8), - ('priority2', ctypes.c_uint8), - ('offset_scaled_log_variance', ctypes.c_uint16), - ('gPTPportRole', ctypes.c_uint8 * 4), - ('portEnable', ctypes.c_uint8 * 4), - ] - - -SPlutoPtpParams_s = s_pluto_ptp_params_s -PlutoPtpParams_t = s_pluto_ptp_params_s - diff --git a/gen/ics/structures/s_pluto_retagging_entry_s.py b/gen/ics/structures/s_pluto_retagging_entry_s.py deleted file mode 100644 index 996e66884..000000000 --- a/gen/ics/structures/s_pluto_retagging_entry_s.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_retagging_entry_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('vlan_egr', ctypes.c_uint16), - ('vlan_ing', ctypes.c_uint16), - ('egr_port', ctypes.c_uint8), - ('ing_port', ctypes.c_uint8), - ('do_not_learn', ctypes.c_uint8), - ('use_dest_ports', ctypes.c_uint8), - ('destports', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_RetaggingEntry_s = s_pluto_retagging_entry_s -SPluto_RetaggingEntry = s_pluto_retagging_entry_s - diff --git a/gen/ics/structures/s_pluto_switch_settings_s.py b/gen/ics/structures/s_pluto_switch_settings_s.py deleted file mode 100644 index cc078dd94..000000000 --- a/gen/ics/structures/s_pluto_switch_settings_s.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_extended_data_flash_header import * -from ics.structures.s_pluto_general_params_s import * -from ics.structures.s_pluto_l2_address_lookup_entry_s import * -from ics.structures.s_pluto_l2_address_lookup_params_s import * -from ics.structures.s_pluto_l2_forwarding_entry_s import * -from ics.structures.s_pluto_l2_forwarding_params_s import * -from ics.structures.s_pluto_l2_policing_s import * -from ics.structures.s_pluto_mac_config_s import * -from ics.structures.s_pluto_retagging_entry_s import * -from ics.structures.s_pluto_vlan_lookup_s import * - - -class s_pluto_switch_settings_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('flashHeader', ExtendedDataFlashHeader_t), - ('l2_addressLookupParams', SPluto_L2AddressLookupParams), - ('l2_addressLookupEntries', SPluto_L2AddressLookupEntry * 1024), - ('l2_policing', SPluto_L2Policing * 45), - ('l2_forwardingParams', SPluto_L2ForwardingParams), - ('l2_ForwardingEntries', SPluto_L2ForwardingEntry * 13), - ('vlan_LookupEntries', SPluto_VlanLookup * 4096), - ('macConfig', SPluto_MacConfig * 5), - ('generalParams', SPluto_GeneralParams), - ('retagging', SPluto_RetaggingEntry * 32), - ] - - -SPlutoSwitchSettings_s = s_pluto_switch_settings_s -SPlutoSwitchSettings = s_pluto_switch_settings_s - diff --git a/gen/ics/structures/s_pluto_vl_forwarding_entry_s.py b/gen/ics/structures/s_pluto_vl_forwarding_entry_s.py deleted file mode 100644 index 02daa16f8..000000000 --- a/gen/ics/structures/s_pluto_vl_forwarding_entry_s.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_pluto_vl_forwarding_entry_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('type', ctypes.c_uint8), - ('priority', ctypes.c_uint8), - ('partition', ctypes.c_uint8), - ('destports', ctypes.c_uint8), - ] - - -SPluto_VlForwardingEntry_s = s_pluto_vl_forwarding_entry_s -SPluto_VlForwardingEntry = s_pluto_vl_forwarding_entry_s - diff --git a/gen/ics/structures/s_pluto_vl_forwarding_params_s.py b/gen/ics/structures/s_pluto_vl_forwarding_params_s.py deleted file mode 100644 index a15e20a85..000000000 --- a/gen/ics/structures/s_pluto_vl_forwarding_params_s.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 s_pluto_vl_forwarding_params_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('partspc', ctypes.c_uint16 * 8), - ('debugen', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_VlForwardingParams_s = s_pluto_vl_forwarding_params_s -SPluto_VlForwardingParams = s_pluto_vl_forwarding_params_s - diff --git a/gen/ics/structures/s_pluto_vl_lookup_entry_s.py b/gen/ics/structures/s_pluto_vl_lookup_entry_s.py deleted file mode 100644 index eba9e0d21..000000000 --- a/gen/ics/structures/s_pluto_vl_lookup_entry_s.py +++ /dev/null @@ -1,50 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class vllupformat0(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('macaddr', ctypes.c_uint64), - ('vlanid', ctypes.c_uint16), - ('destports', ctypes.c_uint8), - ('iscritical', ctypes.c_uint8), - ('port', ctypes.c_uint8), - ('vlanprior', ctypes.c_uint8), - ] - - - -class vllupformat1(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('vlid', ctypes.c_uint16), - ('egrmirr', ctypes.c_uint8), - ('ingrmirr', ctypes.c_uint8), - ('port', ctypes.c_uint8), - ] - - - -class Nameless32656(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('vllupformat0', vllupformat0), - ('vllupformat1', vllupformat1), - ] - - - -class s_pluto_vl_lookup_entry_s(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless32656',) - _fields_ = [ - ('Nameless32656', Nameless32656), - ] - - -SPluto_VlLookupEntry_s = s_pluto_vl_lookup_entry_s -SPluto_VlLookupEntry = s_pluto_vl_lookup_entry_s - diff --git a/gen/ics/structures/s_pluto_vl_policing_entry_s.py b/gen/ics/structures/s_pluto_vl_policing_entry_s.py deleted file mode 100644 index 65189f8c5..000000000 --- a/gen/ics/structures/s_pluto_vl_policing_entry_s.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 s_pluto_vl_policing_entry_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('type', ctypes.c_uint64), - ('maxlen', ctypes.c_uint64), - ('sharindx', ctypes.c_uint64), - ('bag', ctypes.c_uint64), - ('jitter', ctypes.c_uint64), - ] - - -SPluto_VlPolicingEntry_s = s_pluto_vl_policing_entry_s -SPluto_VlPolicingEntry = s_pluto_vl_policing_entry_s - diff --git a/gen/ics/structures/s_pluto_vlan_lookup_s.py b/gen/ics/structures/s_pluto_vlan_lookup_s.py deleted file mode 100644 index e2c1b3d03..000000000 --- a/gen/ics/structures/s_pluto_vlan_lookup_s.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 s_pluto_vlan_lookup_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('vlanid', ctypes.c_uint16), - ('ving_mirr', ctypes.c_uint8), - ('vegr_mirr', ctypes.c_uint8), - ('vmemb_port', ctypes.c_uint8), - ('vlan_bc', ctypes.c_uint8), - ('tag_port', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -SPluto_VlanLookup_s = s_pluto_vlan_lookup_s -SPluto_VlanLookup = s_pluto_vlan_lookup_s - diff --git a/gen/ics/structures/s_rad_moon_duo_settings.py b/gen/ics/structures/s_rad_moon_duo_settings.py deleted file mode 100644 index fa38a8e70..000000000 --- a/gen/ics/structures/s_rad_moon_duo_settings.py +++ /dev/null @@ -1,33 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.rad_moon_duo_converter_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class s_rad_moon_duo_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('converter', RadMoonDuoConverterSettings), - ('network_enables', ctypes.c_uint64), - ('flags', flags), - ] - - -RadMoonDuoSettings = s_rad_moon_duo_settings -SRadMoonDuoSettings = s_rad_moon_duo_settings - diff --git a/gen/ics/structures/s_red2_settings.py b/gen/ics/structures/s_red2_settings.py deleted file mode 100644 index 5b25c6288..000000000 --- a/gen/ics/structures/s_red2_settings.py +++ /dev/null @@ -1,113 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.fire3_linux_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class Nameless9252(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('network_enables_4', ctypes.c_uint16), - ] - - - -class network_enables(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless9252',) - _fields_ = [ - ('word', ctypes.c_uint64), - ('Nameless9252', Nameless9252), - ] - - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('enableDefaultLogger', ctypes.c_uint32, 1), - ('enableDefaultUpload', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 26), - ] - - - -class s_red2_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('pwr_man_enable', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('slaveVnetA', ctypes.c_uint16), - ('reserved', ctypes.c_uint32), - ('termination_enables', ctypes.c_uint64), - ('network_enables', network_enables), - ('pwr_man_timeout', ctypes.c_uint32), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('can8', CAN_SETTINGS), - ('canfd8', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('ethernet_1', ETHERNET_SETTINGS), - ('timeSync', TIMESYNC_ICSHARDWARE_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('disk', DISK_SETTINGS), - ('misc_io_report_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('digitalIoThresholdTicks', ctypes.c_uint16), - ('digitalIoThresholdEnable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('ethernet2_1', ETHERNET_SETTINGS2), - ('ethernet_2', ETHERNET_SETTINGS), - ('ethernet2_2', ETHERNET_SETTINGS2), - ('os_settings', Fire3LinuxSettings), - ('gPTP', RAD_GPTP_SETTINGS), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ] - - -_SRed2Settings = s_red2_settings -SRed2Settings = s_red2_settings - diff --git a/gen/ics/structures/s_red_settings.py b/gen/ics/structures/s_red_settings.py deleted file mode 100644 index f25d0e764..000000000 --- a/gen/ics/structures/s_red_settings.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.lin_settings import * - - -class s_red_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ] - - -_SRedSettings = s_red_settings -SRedSettings = s_red_settings - diff --git a/gen/ics/structures/s_spi_port_setting.py b/gen/ics/structures/s_spi_port_setting.py deleted file mode 100644 index 5b90113cd..000000000 --- a/gen/ics/structures/s_spi_port_setting.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class config(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('onboard_external', ctypes.c_uint8, 1), - ('type', ctypes.c_uint8, 1), - ('mode', ctypes.c_uint8, 3), - ('reserved', ctypes.c_uint8, 3), - ] - - - -class s_spi_port_setting(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('byte', ctypes.c_uint8), - ('config', config), - ] - - -sSPI_PORT_SETTING = s_spi_port_setting - diff --git a/gen/ics/structures/s_spi_port_settings.py b/gen/ics/structures/s_spi_port_settings.py deleted file mode 100644 index 3b8baa938..000000000 --- a/gen/ics/structures/s_spi_port_settings.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_spi_port_setting import * - - -class s_spi_port_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('port_a', sSPI_PORT_SETTING), - ('port_b', sSPI_PORT_SETTING), - ] - - -sSPI_PORT_SETTINGS = s_spi_port_settings - diff --git a/gen/ics/structures/s_text_api_settings.py b/gen/ics/structures/s_text_api_settings.py deleted file mode 100644 index 9da27ae8d..000000000 --- a/gen/ics/structures/s_text_api_settings.py +++ /dev/null @@ -1,105 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless4038(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('bExtended', ctypes.c_uint, 1), - ('', ctypes.c_uint, 31), - ] - - - -class can1_options(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless4038',) - _fields_ = [ - ('Nameless4038', Nameless4038), - ('DWord', ctypes.c_uint32), - ] - - - -class Nameless2076(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('bExtended', ctypes.c_uint, 1), - ('', ctypes.c_uint, 31), - ] - - - -class can2_options(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless2076',) - _fields_ = [ - ('Nameless2076', Nameless2076), - ('DWord', ctypes.c_uint32), - ] - - - -class Nameless45362(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('bExtended', ctypes.c_uint, 1), - ('', ctypes.c_uint, 31), - ] - - - -class can3_options(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless45362',) - _fields_ = [ - ('Nameless45362', Nameless45362), - ('DWord', ctypes.c_uint32), - ] - - - -class Nameless63471(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('bExtended', ctypes.c_uint, 1), - ('', ctypes.c_uint, 31), - ] - - - -class can4_options(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless63471',) - _fields_ = [ - ('Nameless63471', Nameless63471), - ('DWord', ctypes.c_uint32), - ] - - - -class s_text_api_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1_tx_id', ctypes.c_uint32), - ('can1_rx_id', ctypes.c_uint32), - ('can1_options', can1_options), - ('can2_tx_id', ctypes.c_uint32), - ('can2_rx_id', ctypes.c_uint32), - ('can2_options', can2_options), - ('network_enables', ctypes.c_uint32), - ('can3_tx_id', ctypes.c_uint32), - ('can3_rx_id', ctypes.c_uint32), - ('can3_options', can3_options), - ('can4_tx_id', ctypes.c_uint32), - ('can4_rx_id', ctypes.c_uint32), - ('can4_options', can4_options), - ('reserved', ctypes.c_uint32 * 5), - ] - - -_STextAPISettings = s_text_api_settings -STextAPISettings = s_text_api_settings - diff --git a/gen/ics/structures/s_vivid_can_settings.py b/gen/ics/structures/s_vivid_can_settings.py deleted file mode 100644 index e845298c9..000000000 --- a/gen/ics/structures/s_vivid_can_settings.py +++ /dev/null @@ -1,40 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.swcan_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class s_vivid_can_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('can1', CAN_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('lsftcan1', CAN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('perf_en', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('can_switch_mode', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint16), - ('flags', flags), - ] - - -_SVividCANSettings = s_vivid_can_settings -SVividCANSettings = s_vivid_can_settings - diff --git a/gen/ics/structures/s_wil_bridge_config.py b/gen/ics/structures/s_wil_bridge_config.py deleted file mode 100644 index 44c944b0e..000000000 --- a/gen/ics/structures/s_wil_bridge_config.py +++ /dev/null @@ -1,27 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class config(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can_id', ctypes.c_uint64, 29), - ('can_id_isExtended', ctypes.c_uint64, 1), - ('tcp_port', ctypes.c_uint64, 16), - ('reserved', ctypes.c_uint64, 18), - ] - - - -class s_wil_bridge_config(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('dword', ctypes.c_uint64), - ('config', config), - ] - - -sWILBridgeConfig = s_wil_bridge_config - diff --git a/gen/ics/structures/s_wil_connection_settings.py b/gen/ics/structures/s_wil_connection_settings.py deleted file mode 100644 index 7e60607b6..000000000 --- a/gen/ics/structures/s_wil_connection_settings.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_wil_fault_servicing_settings import * -from ics.structures.s_wil_network_data_capture_settings import * - - -class s_wil_connection_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('using_port_a', ctypes.c_uint8), - ('using_port_b', ctypes.c_uint8), - ('attemptConnect', ctypes.c_uint8), - ('fault_servicing_config', sWIL_FAULT_SERVICING_SETTINGS), - ('network_data_capture_config', sWIL_NETWORK_DATA_CAPTURE_SETTINGS), - ('sensor_buffer_size', ctypes.c_uint16), - ] - - -_sWIL_CONNECTION_SETTINGS = s_wil_connection_settings -sWIL_CONNECTION_SETTINGS = s_wil_connection_settings - diff --git a/gen/ics/structures/s_wil_fault_servicing_settings.py b/gen/ics/structures/s_wil_fault_servicing_settings.py deleted file mode 100644 index c812651f1..000000000 --- a/gen/ics/structures/s_wil_fault_servicing_settings.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_wil_fault_servicing_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('wBMSDeviceID', ctypes.c_uint8), - ('enabled', ctypes.c_uint8), - ] - - -sWIL_FAULT_SERVICING_SETTINGS = s_wil_fault_servicing_settings - diff --git a/gen/ics/structures/s_wil_network_data_capture_settings.py b/gen/ics/structures/s_wil_network_data_capture_settings.py deleted file mode 100644 index 261cee4be..000000000 --- a/gen/ics/structures/s_wil_network_data_capture_settings.py +++ /dev/null @@ -1,15 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class s_wil_network_data_capture_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('enabled', ctypes.c_uint8), - ] - - -sWIL_NETWORK_DATA_CAPTURE_SETTINGS = s_wil_network_data_capture_settings - diff --git a/gen/ics/structures/scan_hub_settings.py b/gen/ics/structures/scan_hub_settings.py deleted file mode 100644 index 81945bb46..000000000 --- a/gen/ics/structures/scan_hub_settings.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.scan_sleep_id import * - - -class scan_hub_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint64), - ('termination_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('ecu_id', ctypes.c_uint32), - ('sleep_id', SCANSleepID), - ] - - -CANHubSettings = scan_hub_settings -SCANHubSettings = scan_hub_settings - diff --git a/gen/ics/structures/scan_sleep_id.py b/gen/ics/structures/scan_sleep_id.py deleted file mode 100644 index af2aa800a..000000000 --- a/gen/ics/structures/scan_sleep_id.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class id(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can_sleep_command_id', ctypes.c_uint, 29), - ('can_sleep_command_isExtended', ctypes.c_uint, 1), - ('reserved', ctypes.c_uint, 2), - ] - - - -class scan_sleep_id(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('word', ctypes.c_uint32), - ('id', id), - ] - - -SCANSleepID = scan_sleep_id - diff --git a/gen/ics/structures/secu_avb_settings.py b/gen/ics/structures/secu_avb_settings.py deleted file mode 100644 index b8a965e92..000000000 --- a/gen/ics/structures/secu_avb_settings.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.s_text_api_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class secu_avb_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint64), - ('termination_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('text_api', STextAPISettings), - ('flags', flags), - ] - - -_neoECU_AVBSettings = secu_avb_settings -ECU_AVBSettings = secu_avb_settings -SECU_AVBSettings = secu_avb_settings - diff --git a/gen/ics/structures/secu_settings.py b/gen/ics/structures/secu_settings.py deleted file mode 100644 index 291136347..000000000 --- a/gen/ics/structures/secu_settings.py +++ /dev/null @@ -1,53 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * -from ics.structures.uart_settings import * - - -class secu_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('selected_network', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('swcan', SWCAN_SETTINGS), - ('swcan2', SWCAN_SETTINGS), - ('lsftcan', CAN_SETTINGS), - ('lsftcan2', CAN_SETTINGS), - ('uart', UART_SETTINGS), - ('uart2', UART_SETTINGS), - ('text_api', STextAPISettings), - ] - - -_SECUSettings = secu_settings -SECUSettings = secu_settings - diff --git a/gen/ics/structures/seevb_settings.py b/gen/ics/structures/seevb_settings.py deleted file mode 100644 index 14c38e89e..000000000 --- a/gen/ics/structures/seevb_settings.py +++ /dev/null @@ -1,25 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * - - -class seevb_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('can1', CAN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('perf_en', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('rsvd', ctypes.c_uint32), - ] - - -_SEEVBSettings = seevb_settings -SEEVBSettings = seevb_settings - diff --git a/gen/ics/structures/serdescam_settings.py b/gen/ics/structures/serdescam_settings.py deleted file mode 100644 index 5026c5eb6..000000000 --- a/gen/ics/structures/serdescam_settings.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class serdescam_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('flags', ctypes.c_uint32), - ('mode', ctypes.c_uint8), - ('rsvd1', ctypes.c_uint8), - ('bitPos', ctypes.c_uint8), - ('videoFormat', ctypes.c_uint8), - ('resWidth', ctypes.c_uint16), - ('resHeight', ctypes.c_uint16), - ('frameSkip', ctypes.c_uint8), - ('rsvd2', ctypes.c_uint8 * 19), - ] - - -SERDESCAM_SETTINGS_t = serdescam_settings -SERDESCAM_SETTINGS = serdescam_settings - diff --git a/gen/ics/structures/serdesgen_settings.py b/gen/ics/structures/serdesgen_settings.py deleted file mode 100644 index dc8e982a4..000000000 --- a/gen/ics/structures/serdesgen_settings.py +++ /dev/null @@ -1,21 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class serdesgen_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('flags', ctypes.c_uint16), - ('rsvd1', ctypes.c_uint8), - ('mod_id', ctypes.c_uint8), - ('tx_speed', ctypes.c_uint16), - ('rx_speed', ctypes.c_uint16), - ('rsvd2', ctypes.c_uint8 * 24), - ] - - -SERDESGEN_SETTINGS_t = serdesgen_settings -SERDESGEN_SETTINGS = serdesgen_settings - diff --git a/gen/ics/structures/serdespoc_settings.py b/gen/ics/structures/serdespoc_settings.py deleted file mode 100644 index a48683a67..000000000 --- a/gen/ics/structures/serdespoc_settings.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class serdespoc_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mode', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 6), - ('voltage', ctypes.c_uint8), - ('chksum', ctypes.c_uint16), - ] - - -SERDESPOC_SETTINGS_t = serdespoc_settings -SERDESPOC_SETTINGS = serdespoc_settings - diff --git a/gen/ics/structures/sfp_id.py b/gen/ics/structures/sfp_id.py deleted file mode 100644 index a1f8207fa..000000000 --- a/gen/ics/structures/sfp_id.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class sfp_id(enum.IntEnum): - """A ctypes-compatible IntEnum superclass.""" - @classmethod - def from_param(cls, obj): - return int(obj) - - SFP_ID_UNKNOWN = 0 - SFP_ID_FINISAR_FCLF8522P2BTL = enum.auto() - SFP_ID_FS_GB_GE_T = enum.auto() - SFP_ID_ICS_MV2112A2 = enum.auto() - SFP_ID_ICS_MV2221MB1 = enum.auto() - SFP_ID_ICS_MV3244 = enum.auto() - SFP_ID_MAX = enum.auto() - - -SfpId = sfp_id - diff --git a/gen/ics/structures/sievb_settings.py b/gen/ics/structures/sievb_settings.py deleted file mode 100644 index d3cf316a7..000000000 --- a/gen/ics/structures/sievb_settings.py +++ /dev/null @@ -1,54 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.uart_settings import * - - -class sievb_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('selected_network', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('can2', CAN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('uart', UART_SETTINGS), - ('uart2', UART_SETTINGS), - ('text_api', STextAPISettings), - ('reserved_1', ctypes.c_uint32), - ('reserved_2', ctypes.c_uint32), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('misc_io_analog_enable_2', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ] - - -_SIEVBSettings = sievb_settings -SIEVBSettings = sievb_settings - diff --git a/gen/ics/structures/sobd2_lc_settings.py b/gen/ics/structures/sobd2_lc_settings.py deleted file mode 100644 index 86d3d2c14..000000000 --- a/gen/ics/structures/sobd2_lc_settings.py +++ /dev/null @@ -1,86 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * - - -class Nameless2529(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ] - - - -class network_enables(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless2529',) - _fields_ = [ - ('word', ctypes.c_uint64), - ('Nameless2529', Nameless2529), - ] - - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('enableDefaultLogger', ctypes.c_uint32, 1), - ('enableDefaultUpload', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 26), - ] - - - -class sobd2_lc_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('network_enables', network_enables), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('text_api', STextAPISettings), - ('flags', flags), - ('can_switch_mode', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('disk', DISK_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('ethernet2', ETHERNET_SETTINGS2), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ] - - -_SOBD2LCSettings = sobd2_lc_settings -OBD2LCSettings = sobd2_lc_settings -SOBD2LCSettings = sobd2_lc_settings - diff --git a/gen/ics/structures/sobd2_pro_settings.py b/gen/ics/structures/sobd2_pro_settings.py deleted file mode 100644 index d237f4989..000000000 --- a/gen/ics/structures/sobd2_pro_settings.py +++ /dev/null @@ -1,63 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.swcan_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class sobd2_pro_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('network_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('text_api', STextAPISettings), - ('flags', flags), - ('can_switch_mode', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_OBD2ProSettings = sobd2_pro_settings -OBD2ProSettings = sobd2_pro_settings -SOBD2ProSettings = sobd2_pro_settings - diff --git a/gen/ics/structures/sobd2_sim_settings.py b/gen/ics/structures/sobd2_sim_settings.py deleted file mode 100644 index 88467b29b..000000000 --- a/gen/ics/structures/sobd2_sim_settings.py +++ /dev/null @@ -1,45 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.s_text_api_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class sobd2_sim_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint64), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('perf_en', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('flags', flags), - ('text_api', STextAPISettings), - ] - - -_SOBD2SimSettings = sobd2_sim_settings -SOBD2SimSettings = sobd2_sim_settings - diff --git a/gen/ics/structures/software_update_command.py b/gen/ics/structures/software_update_command.py deleted file mode 100644 index f0e4de9db..000000000 --- a/gen/ics/structures/software_update_command.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class software_update_command(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('componentIdentifier', ctypes.c_uint32), - ('commandType', ctypes.c_uint8), - ('offset', ctypes.c_uint32), - ('commandSizeOrProgress', ctypes.c_uint32), - ('commandData', ctypes.c_uint8), - ] - - -SoftwareUpdateCommand = software_update_command - diff --git a/gen/ics/structures/spy_filter_long.py b/gen/ics/structures/spy_filter_long.py deleted file mode 100644 index 3f49ae559..000000000 --- a/gen/ics/structures/spy_filter_long.py +++ /dev/null @@ -1,33 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class spy_filter_long(ctypes.Structure): - _fields_ = [ - ('StatusValue', ctypes.c_uint32), - ('StatusMask', ctypes.c_uint32), - ('Status2Value', ctypes.c_uint32), - ('Status2Mask', ctypes.c_uint32), - ('Header', ctypes.c_uint32), - ('HeaderMask', ctypes.c_uint32), - ('MiscData', ctypes.c_uint32), - ('MiscDataMask', ctypes.c_uint32), - ('ByteDataMSB', ctypes.c_uint32), - ('ByteDataLSB', ctypes.c_uint32), - ('ByteDataMaskMSB', ctypes.c_uint32), - ('ByteDataMaskLSB', ctypes.c_uint32), - ('HeaderLength', ctypes.c_uint32), - ('ByteDataLength', ctypes.c_uint32), - ('NetworkID', ctypes.c_uint32), - ('FrameMaster', ctypes.c_uint16), - ('bUseArbIdRangeFilter', ctypes.c_uint8), - ('bStuff2', ctypes.c_uint8), - ('ExpectedLength', ctypes.c_uint32), - ('NodeID', ctypes.c_uint32), - ] - - -spyFilterLong = spy_filter_long - diff --git a/gen/ics/structures/srad_comet_settings.py b/gen/ics/structures/srad_comet_settings.py deleted file mode 100644 index f8427a633..000000000 --- a/gen/ics/structures/srad_comet_settings.py +++ /dev/null @@ -1,88 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet10_t1_s_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.op_eth_general_settings import * -from ics.structures.op_eth_settings import * -from ics.structures.rad_reporting_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('hwComLatencyTestEn', ctypes.c_uint16, 1), - ('disableUsbCheckOnBoot', ctypes.c_uint16, 1), - ('reserved', ctypes.c_uint16, 14), - ] - - - -class Nameless49459(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('network_enables_4', ctypes.c_uint16), - ] - - - -class network_enables(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless49459',) - _fields_ = [ - ('word', ctypes.c_uint64), - ('Nameless49459', Nameless49459), - ] - - - -class srad_comet_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('perf_en', ctypes.c_uint16), - ('flags', flags), - ('network_enabled_on_boot', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('network_enables', network_enables), - ('termination_enables', ctypes.c_uint64), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('reporting', RAD_REPORTING_SETTINGS), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('gPTP', RAD_GPTP_SETTINGS), - ('text_api', STextAPISettings), - ('ethernet', ETHERNET_SETTINGS2), - ('opEthGen', OP_ETH_GENERAL_SETTINGS), - ('ethT1', ETHERNET_SETTINGS2), - ('opEth1', OP_ETH_SETTINGS), - ('ethT1s1', ETHERNET_SETTINGS2), - ('t1s1', ETHERNET10T1S_SETTINGS), - ('ethT1s2', ETHERNET_SETTINGS2), - ('t1s2', ETHERNET10T1S_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ('lin1', LIN_SETTINGS), - ] - - -_SRADCometSettings = srad_comet_settings -SRADCometSettings = srad_comet_settings - diff --git a/gen/ics/structures/srad_epsilon_settings.py b/gen/ics/structures/srad_epsilon_settings.py deleted file mode 100644 index 253740eb4..000000000 --- a/gen/ics/structures/srad_epsilon_settings.py +++ /dev/null @@ -1,60 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_epsilon_switch_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 29), - ] - - - -class srad_epsilon_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('misc_io_analog_enable', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('switchSettings', SRADEpsilonSwitchSettings), - ('ethernet2', ETHERNET_SETTINGS2), - ('misc_io_on_report_events', ctypes.c_uint16), - ] - - -_SRADEpsilonSettings = srad_epsilon_settings -SRADEpsilonSettings = srad_epsilon_settings - diff --git a/gen/ics/structures/srad_epsilon_switch_settings.py b/gen/ics/structures/srad_epsilon_switch_settings.py deleted file mode 100644 index ea5e8c3ec..000000000 --- a/gen/ics/structures/srad_epsilon_switch_settings.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 srad_epsilon_switch_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('phyMode', ctypes.c_uint8 * 18), - ('enablePhy', ctypes.c_uint8 * 18), - ('speed', ctypes.c_uint8 * 18), - ('legacy', ctypes.c_uint8 * 18), - ('spoofedMac', ctypes.c_uint8 * 6), - ('spoofMacFlag', ctypes.c_uint8), - ('pad', ctypes.c_uint8), - ] - - -_SRADEpsilonSwitchSettings = srad_epsilon_switch_settings -SRADEpsilonSwitchSettings = srad_epsilon_switch_settings - diff --git a/gen/ics/structures/srad_galaxy_settings.py b/gen/ics/structures/srad_galaxy_settings.py deleted file mode 100644 index e1b2e5993..000000000 --- a/gen/ics/structures/srad_galaxy_settings.py +++ /dev/null @@ -1,95 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.logger_settings import * -from ics.structures.op_eth_general_settings import * -from ics.structures.op_eth_settings import * -from ics.structures.rad_reporting_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.swcan_settings import * -from ics.structures.timesync_icshardware_settings import * - - -class srad_galaxy_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('opEthGen', OP_ETH_GENERAL_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), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('can8', CAN_SETTINGS), - ('canfd8', CANFD_SETTINGS), - ('swcan1', SWCAN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('swcan2', SWCAN_SETTINGS), - ('network_enables_2', ctypes.c_uint16), - ('lin1', LIN_SETTINGS), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('idle_wakeup_network_enables_3', ctypes.c_uint16), - ('can_switch_mode', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('hwComLatencyTestEn', ctypes.c_uint16), - ('reporting', RAD_REPORTING_SETTINGS), - ('disk', DISK_SETTINGS), - ('logger', LOGGER_SETTINGS), - ('ethernet1', ETHERNET_SETTINGS2), - ('ethernet2', ETHERNET_SETTINGS2), - ('network_enables_4', ctypes.c_uint16), - ('gPTP', RAD_GPTP_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADGalaxySettings = srad_galaxy_settings -SRADGalaxySettings = srad_galaxy_settings - diff --git a/gen/ics/structures/srad_gigalog_settings.py b/gen/ics/structures/srad_gigalog_settings.py deleted file mode 100644 index 3a927c7eb..000000000 --- a/gen/ics/structures/srad_gigalog_settings.py +++ /dev/null @@ -1,92 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet10_g_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.logger_settings import * -from ics.structures.rad_reporting_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.serdescam_settings import * -from ics.structures.serdesgen_settings import * -from ics.structures.serdespoc_settings import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('hwComLatencyTestEn', ctypes.c_uint16, 1), - ('disableUsbCheckOnBoot', ctypes.c_uint16, 1), - ('reserved', ctypes.c_uint16, 14), - ] - - - -class srad_gigalog_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('can7', CAN_SETTINGS), - ('canfd7', CANFD_SETTINGS), - ('can8', CAN_SETTINGS), - ('canfd8', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('idle_wakeup_network_enables_3', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('termination_enables', ctypes.c_uint64), - ('rsvd1', ctypes.c_uint8 * 8), - ('rsvd2', ctypes.c_uint8 * 8), - ('disk', DISK_SETTINGS), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('flags', flags), - ('ethernet', ETHERNET_SETTINGS2), - ('serdescam1', SERDESCAM_SETTINGS), - ('ethernet10g', ETHERNET10G_SETTINGS), - ('lin1', LIN_SETTINGS), - ('serdespoc', SERDESPOC_SETTINGS), - ('logger', LOGGER_SETTINGS), - ('serdescam2', SERDESCAM_SETTINGS), - ('serdescam3', SERDESCAM_SETTINGS), - ('serdescam4', SERDESCAM_SETTINGS), - ('ethernet2', ETHERNET_SETTINGS2), - ('network_enables_4', ctypes.c_uint16), - ('reporting', RAD_REPORTING_SETTINGS), - ('serdesgen', SERDESGEN_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADGigalogSettings = srad_gigalog_settings -SRADGigalogSettings = srad_gigalog_settings - diff --git a/gen/ics/structures/srad_gigastar_settings.py b/gen/ics/structures/srad_gigastar_settings.py deleted file mode 100644 index 83a076eeb..000000000 --- a/gen/ics/structures/srad_gigastar_settings.py +++ /dev/null @@ -1,91 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.logger_settings import * -from ics.structures.op_eth_general_settings import * -from ics.structures.op_eth_settings import * -from ics.structures.rad_reporting_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.serdescam_settings import * -from ics.structures.serdesgen_settings import * -from ics.structures.serdespoc_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('hwComLatencyTestEn', ctypes.c_uint16, 1), - ('disableUsbCheckOnBoot', ctypes.c_uint16, 1), - ('reserved', ctypes.c_uint16, 14), - ] - - - -class srad_gigastar_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('ecu_id', ctypes.c_uint32), - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('can5', CAN_SETTINGS), - ('canfd5', CANFD_SETTINGS), - ('can6', CAN_SETTINGS), - ('canfd6', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('idle_wakeup_network_enables_3', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('termination_enables', ctypes.c_uint64), - ('disk', DISK_SETTINGS), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('flags', flags), - ('ethernet1', ETHERNET_SETTINGS2), - ('ethernet2', ETHERNET_SETTINGS2), - ('lin1', LIN_SETTINGS), - ('opEthGen', OP_ETH_GENERAL_SETTINGS), - ('opEth1', OP_ETH_SETTINGS), - ('opEth2', OP_ETH_SETTINGS), - ('serdescam1', SERDESCAM_SETTINGS), - ('serdespoc', SERDESPOC_SETTINGS), - ('logger', LOGGER_SETTINGS), - ('serdescam2', SERDESCAM_SETTINGS), - ('serdescam3', SERDESCAM_SETTINGS), - ('serdescam4', SERDESCAM_SETTINGS), - ('reporting', RAD_REPORTING_SETTINGS), - ('network_enables_4', ctypes.c_uint16), - ('serdesgen', SERDESGEN_SETTINGS), - ('gPTP', RAD_GPTP_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADGigastarSettings = srad_gigastar_settings -SRADGigastarSettings = srad_gigastar_settings - diff --git a/gen/ics/structures/srad_gptp_and_tap_settings_s.py b/gen/ics/structures/srad_gptp_and_tap_settings_s.py deleted file mode 100644 index 6f4ba5bf7..000000000 --- a/gen/ics/structures/srad_gptp_and_tap_settings_s.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.op_eth_general_settings import * -from ics.structures.srad_gptp_settings_s import * - - -class srad_gptp_and_tap_settings_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('gPTP', RAD_GPTP_SETTINGS), - ('tap', OP_ETH_GENERAL_SETTINGS), - ] - - -SRAD_GPTP_AND_TAP_SETTINGS_s = srad_gptp_and_tap_settings_s -RAD_GPTP_AND_TAP_SETTINGS = srad_gptp_and_tap_settings_s - diff --git a/gen/ics/structures/srad_gptp_settings_s.py b/gen/ics/structures/srad_gptp_settings_s.py deleted file mode 100644 index 39b53c7bd..000000000 --- a/gen/ics/structures/srad_gptp_settings_s.py +++ /dev/null @@ -1,30 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class srad_gptp_settings_s(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('neighborPropDelayThresh', ctypes.c_uint32), - ('sys_phc_sync_interval', ctypes.c_uint32), - ('logPDelayReqInterval', ctypes.c_int8), - ('logSyncInterval', ctypes.c_int8), - ('logAnnounceInterval', ctypes.c_int8), - ('profile', ctypes.c_uint8), - ('priority1', ctypes.c_uint8), - ('clockclass', ctypes.c_uint8), - ('clockaccuracy', ctypes.c_uint8), - ('priority2', ctypes.c_uint8), - ('offset_scaled_log_variance', ctypes.c_uint16), - ('gPTPportRole', ctypes.c_uint8), - ('gptpEnabledPort', ctypes.c_uint8), - ('enableClockSyntonization', ctypes.c_uint8), - ('rsvd', ctypes.c_uint8 * 15), - ] - - -SRAD_GPTP_SETTINGS_s = srad_gptp_settings_s -RAD_GPTP_SETTINGS = srad_gptp_settings_s - diff --git a/gen/ics/structures/srad_jupiter_settings.py b/gen/ics/structures/srad_jupiter_settings.py deleted file mode 100644 index d81a59988..000000000 --- a/gen/ics/structures/srad_jupiter_settings.py +++ /dev/null @@ -1,59 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_jupiter_switch_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 29), - ] - - - -class srad_jupiter_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('misc_io_analog_enable', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('switchSettings', SRADJupiterSwitchSettings), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_SRADJupiterSettings = srad_jupiter_settings -SRADJupiterSettings = srad_jupiter_settings - diff --git a/gen/ics/structures/srad_jupiter_switch_settings.py b/gen/ics/structures/srad_jupiter_switch_settings.py deleted file mode 100644 index 97699f727..000000000 --- a/gen/ics/structures/srad_jupiter_switch_settings.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.s_jupiter_ptp_params_s import * - - -class srad_jupiter_switch_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('phyMode', ctypes.c_uint8 * 8), - ('enablePhy', ctypes.c_uint8 * 8), - ('port7Select', ctypes.c_uint8), - ('port8Select', ctypes.c_uint8), - ('port8Speed', ctypes.c_uint8), - ('port8Legacy', ctypes.c_uint8), - ('spoofMacFlag', ctypes.c_uint8), - ('spoofedMac', ctypes.c_uint8 * 6), - ('pad', ctypes.c_uint8), - ('ptpParams_unused', JupiterPtpParams_t), - ] - - -_SRADJupiterSwitchSettings = srad_jupiter_switch_settings -SRADJupiterSwitchSettings = srad_jupiter_switch_settings - diff --git a/gen/ics/structures/srad_moon2_settings.py b/gen/ics/structures/srad_moon2_settings.py deleted file mode 100644 index ed27f31dc..000000000 --- a/gen/ics/structures/srad_moon2_settings.py +++ /dev/null @@ -1,33 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.op_eth_general_settings import * -from ics.structures.op_eth_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class srad_moon2_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('opEthGen', OP_ETH_GENERAL_SETTINGS), - ('opEth1', OP_ETH_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('pc_com_mode', ctypes.c_uint16), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('hwComLatencyTestEn', ctypes.c_uint16), - ('gPTP', RAD_GPTP_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADMoon2Settings = srad_moon2_settings -SRADMoon2Settings = srad_moon2_settings - diff --git a/gen/ics/structures/srad_moon3_settings.py b/gen/ics/structures/srad_moon3_settings.py deleted file mode 100644 index e9fdf51b0..000000000 --- a/gen/ics/structures/srad_moon3_settings.py +++ /dev/null @@ -1,34 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet10_g_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('enableLatencyTest', ctypes.c_uint16, 1), - ('reserved', ctypes.c_uint16, 15), - ] - - - -class srad_moon3_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('autoEth10g', ETHERNET10G_SETTINGS), - ('eth10g', ETHERNET10G_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('flags', flags), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADMoon3Settings = srad_moon3_settings -SRADMoon3Settings = srad_moon3_settings - diff --git a/gen/ics/structures/srad_pluto_settings.py b/gen/ics/structures/srad_pluto_settings.py deleted file mode 100644 index 6cbb70735..000000000 --- a/gen/ics/structures/srad_pluto_settings.py +++ /dev/null @@ -1,59 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_pluto_custom_params_s import * -from ics.structures.s_text_api_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 29), - ] - - - -class srad_pluto_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('misc_io_analog_enable', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('text_api', STextAPISettings), - ('flags', flags), - ('custom', SPluto_CustomParams), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_RADPlutoSettings = srad_pluto_settings -SRADPlutoSettings = srad_pluto_settings - diff --git a/gen/ics/structures/srad_star2_settings.py b/gen/ics/structures/srad_star2_settings.py deleted file mode 100644 index 0fdffd9ea..000000000 --- a/gen/ics/structures/srad_star2_settings.py +++ /dev/null @@ -1,65 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.op_eth_general_settings import * -from ics.structures.op_eth_settings import * -from ics.structures.rad_reporting_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class srad_star2_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('opEthGen', OP_ETH_GENERAL_SETTINGS), - ('opEth1', OP_ETH_SETTINGS), - ('opEth2', OP_ETH_SETTINGS), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('lin1', LIN_SETTINGS), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('ain_sample_period', ctypes.c_uint16), - ('ain_threshold', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('idle_wakeup_network_enables_3', ctypes.c_uint16), - ('can_switch_mode', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('pc_com_mode', ctypes.c_uint16), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('hwComLatencyTestEn', ctypes.c_uint16), - ('reporting', RAD_REPORTING_SETTINGS), - ('ethernet', ETHERNET_SETTINGS2), - ('gPTP', RAD_GPTP_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADStar2Settings = srad_star2_settings -SRADStar2Settings = srad_star2_settings - diff --git a/gen/ics/structures/srad_super_moon_settings.py b/gen/ics/structures/srad_super_moon_settings.py deleted file mode 100644 index 4b683280d..000000000 --- a/gen/ics/structures/srad_super_moon_settings.py +++ /dev/null @@ -1,35 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.ethernet_settings2 import * -from ics.structures.op_eth_general_settings import * -from ics.structures.op_eth_settings import * -from ics.structures.s_text_api_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class srad_super_moon_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('opEthGen', OP_ETH_GENERAL_SETTINGS), - ('opEth1', OP_ETH_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('pc_com_mode', ctypes.c_uint16), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('hwComLatencyTestEn', ctypes.c_uint16), - ('Eth2', ETHERNET_SETTINGS2), - ('gPTP', RAD_GPTP_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADSuperMoonSettings = srad_super_moon_settings -SRADSuperMoonSettings = srad_super_moon_settings - diff --git a/gen/ics/structures/srada2_b_settings.py b/gen/ics/structures/srada2_b_settings.py deleted file mode 100644 index e6a2cdb76..000000000 --- a/gen/ics/structures/srada2_b_settings.py +++ /dev/null @@ -1,61 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.a2_b_monitor_settings import * -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.disk_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.logger_settings import * -from ics.structures.rad_reporting_settings import * -from ics.structures.srad_gptp_settings_s import * -from ics.structures.timesync_icshardware_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('hwComLatencyTestEn', ctypes.c_uint16, 1), - ('disableUsbCheckOnBoot', ctypes.c_uint16, 1), - ('', ctypes.c_uint16, 14), - ] - - - -class srada2_b_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('flags', flags), - ('network_enabled_on_boot', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('lin1', LIN_SETTINGS), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('network_enables', ctypes.c_uint64), - ('termination_enables', ctypes.c_uint64), - ('timeSyncSettings', TIMESYNC_ICSHARDWARE_SETTINGS), - ('reporting', RAD_REPORTING_SETTINGS), - ('disk', DISK_SETTINGS), - ('logger', LOGGER_SETTINGS), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('a2b_monitor', A2BMonitorSettings), - ('a2b_node', A2BMonitorSettings), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('ethernet', ETHERNET_SETTINGS2), - ('gPTP', RAD_GPTP_SETTINGS), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADA2BSettings = srada2_b_settings -SRADA2BSettings = srada2_b_settings - diff --git a/gen/ics/structures/sradbms_settings.py b/gen/ics/structures/sradbms_settings.py deleted file mode 100644 index 6d3192640..000000000 --- a/gen/ics/structures/sradbms_settings.py +++ /dev/null @@ -1,58 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.s_spi_port_settings import * -from ics.structures.s_wil_connection_settings import * -from ics.structures.wbms_gateway_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 29), - ] - - - -class sradbms_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('termination_enables', ctypes.c_uint64), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('flags', flags), - ('ethernet', ETHERNET_SETTINGS), - ('ethernet2', ETHERNET_SETTINGS2), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('rsvd', ctypes.c_uint8 * 10), - ('spi_config', sSPI_PORT_SETTINGS), - ('wbms_wil_1', sWIL_CONNECTION_SETTINGS), - ('wbms_wil_2', sWIL_CONNECTION_SETTINGS), - ('wil1_nwk_metadata_buff_count', ctypes.c_uint16), - ('wil2_nwk_metadata_buff_count', ctypes.c_uint16), - ('gateway', WBMSGatewaySettings), - ('network_enables_4', ctypes.c_uint16), - ('network_enables_5', ctypes.c_uint64), - ] - - -_SRADBMSSettings = sradbms_settings -SRADBMSSettings = sradbms_settings - diff --git a/gen/ics/structures/st_api_firmware_info.py b/gen/ics/structures/st_api_firmware_info.py deleted file mode 100644 index d479d4cea..000000000 --- a/gen/ics/structures/st_api_firmware_info.py +++ /dev/null @@ -1,36 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class st_api_firmware_info(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('iType', ctypes.c_int32), - ('iMainFirmDateDay', ctypes.c_int32), - ('iMainFirmDateMonth', ctypes.c_int32), - ('iMainFirmDateYear', ctypes.c_int32), - ('iMainFirmDateHour', ctypes.c_int32), - ('iMainFirmDateMin', ctypes.c_int32), - ('iMainFirmDateSecond', ctypes.c_int32), - ('iMainFirmChkSum', ctypes.c_int32), - ('iAppMajor', ctypes.c_uint8), - ('iAppMinor', ctypes.c_uint8), - ('iManufactureDay', ctypes.c_uint8), - ('iManufactureMonth', ctypes.c_uint8), - ('iManufactureYear', ctypes.c_uint16), - ('iBoardRevMajor', ctypes.c_uint8), - ('iBoardRevMinor', ctypes.c_uint8), - ('iBootLoaderVersionMajor', ctypes.c_uint8), - ('iBootLoaderVersionMinor', ctypes.c_uint8), - ('iMainVnetHWrevMajor', ctypes.c_uint8), - ('iMainVnetHWrevMinor', ctypes.c_uint8), - ('iMainVnetSRAMSize', ctypes.c_uint8), - ('iPhySiliconRev', ctypes.c_uint8), - ] - - -_stAPIFirmwareInfo = st_api_firmware_info -stAPIFirmwareInfo = st_api_firmware_info - diff --git a/gen/ics/structures/st_chip_versions.py b/gen/ics/structures/st_chip_versions.py deleted file mode 100644 index ca9f5566f..000000000 --- a/gen/ics/structures/st_chip_versions.py +++ /dev/null @@ -1,383 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class fire_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mpic_maj', ctypes.c_uint8), - ('mpic_min', ctypes.c_uint8), - ('upic_maj', ctypes.c_uint8), - ('upic_min', ctypes.c_uint8), - ('lpic_maj', ctypes.c_uint8), - ('lpic_min', ctypes.c_uint8), - ('jpic_maj', ctypes.c_uint8), - ('jpic_min', ctypes.c_uint8), - ] - - - -class plasma_fire_vnet(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mpic_maj', ctypes.c_uint8), - ('mpic_min', ctypes.c_uint8), - ('core_maj', ctypes.c_uint8), - ('core_min', ctypes.c_uint8), - ('lpic_maj', ctypes.c_uint8), - ('lpic_min', ctypes.c_uint8), - ('hid_maj', ctypes.c_uint8), - ('hid_min', ctypes.c_uint8), - ] - - - -class vcan3_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mpic_maj', ctypes.c_uint8), - ('mpic_min', ctypes.c_uint8), - ] - - - -class vcanrf_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mpic_maj', ctypes.c_uint8), - ('mpic_min', ctypes.c_uint8), - ] - - - -class radgalaxy_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radstar2_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class vividcan_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mpic_maj', ctypes.c_uint8), - ('mpic_min', ctypes.c_uint8), - ('ext_flash_maj', ctypes.c_uint8), - ('ext_flash_min', ctypes.c_uint8), - ('nrf52_maj', ctypes.c_uint8), - ('nrf52_min', ctypes.c_uint8), - ] - - - -class cmprobe_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class obd2pro_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ('schip_major', ctypes.c_uint8), - ('schip_minor', ctypes.c_uint8), - ('core_major', ctypes.c_uint8), - ('core_minor', ctypes.c_uint8), - ] - - - -class vcan41_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class vcan42_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class neoecu_avb_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class radsupermoon_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radmoon2_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radmoon2_z7010_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radmoon3_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class pluto_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class radgigalog_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radgigalog3_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radgigastar_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class radgigastar_usbz_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class obd2lc_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ('schip_major', ctypes.c_uint8), - ('schip_minor', ctypes.c_uint8), - ] - - - -class jupiter_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class red2_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zchip_major', ctypes.c_uint8), - ('zchip_minor', ctypes.c_uint8), - ('schip_major', ctypes.c_uint8), - ('schip_minor', ctypes.c_uint8), - ] - - - -class fire3_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zchip_major', ctypes.c_uint8), - ('zchip_minor', ctypes.c_uint8), - ('schip_major', ctypes.c_uint8), - ('schip_minor', ctypes.c_uint8), - ('vem_z_major', ctypes.c_uint8), - ('vem_z_minor', ctypes.c_uint8), - ] - - - -class fire3_flexray_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zchip_major', ctypes.c_uint8), - ('zchip_minor', ctypes.c_uint8), - ('schip_major', ctypes.c_uint8), - ('schip_minor', ctypes.c_uint8), - ('vem_z_major', ctypes.c_uint8), - ('vem_z_minor', ctypes.c_uint8), - ('vem_f_major', ctypes.c_uint8), - ('vem_f_minor', ctypes.c_uint8), - ] - - - -class rad_moon_duo_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class obd2dev_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ('schip_major', ctypes.c_uint8), - ('schip_minor', ctypes.c_uint8), - ] - - - -class ether_badge_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class rad_a2b_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class epsilon_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ] - - - -class rad_wbms_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('mchip_major', ctypes.c_uint8), - ('mchip_minor', ctypes.c_uint8), - ('wil_major', ctypes.c_uint8), - ('wil_minor', ctypes.c_uint8), - ] - - - -class rad_comet_versions(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('zynq_core_major', ctypes.c_uint8), - ('zynq_core_minor', ctypes.c_uint8), - ] - - - -class st_chip_versions(ctypes.Union): - _pack_ = 2 - _fields_ = [ - ('fire_versions', fire_versions), - ('plasma_fire_vnet', plasma_fire_vnet), - ('vcan3_versions', vcan3_versions), - ('vcanrf_versions', vcanrf_versions), - ('radgalaxy_versions', radgalaxy_versions), - ('radstar2_versions', radstar2_versions), - ('vividcan_versions', vividcan_versions), - ('cmprobe_versions', cmprobe_versions), - ('obd2pro_versions', obd2pro_versions), - ('vcan41_versions', vcan41_versions), - ('vcan42_versions', vcan42_versions), - ('neoecu_avb_versions', neoecu_avb_versions), - ('radsupermoon_versions', radsupermoon_versions), - ('radmoon2_versions', radmoon2_versions), - ('radmoon2_z7010_versions', radmoon2_z7010_versions), - ('radmoon3_versions', radmoon3_versions), - ('pluto_versions', pluto_versions), - ('radgigalog_versions', radgigalog_versions), - ('radgigalog3_versions', radgigalog3_versions), - ('radgigastar_versions', radgigastar_versions), - ('radgigastar_usbz_versions', radgigastar_usbz_versions), - ('obd2lc_versions', obd2lc_versions), - ('jupiter_versions', jupiter_versions), - ('red2_versions', red2_versions), - ('fire3_versions', fire3_versions), - ('fire3_flexray_versions', fire3_flexray_versions), - ('rad_moon_duo_versions', rad_moon_duo_versions), - ('obd2dev_versions', obd2dev_versions), - ('ether_badge_versions', ether_badge_versions), - ('rad_a2b_versions', rad_a2b_versions), - ('epsilon_versions', epsilon_versions), - ('rad_wbms_versions', rad_wbms_versions), - ('rad_comet_versions', rad_comet_versions), - ] - - -_stChipVersions = st_chip_versions -stChipVersions = st_chip_versions - diff --git a/gen/ics/structures/st_cm_iso157652_rx_message.py b/gen/ics/structures/st_cm_iso157652_rx_message.py deleted file mode 100644 index a34f5625f..000000000 --- a/gen/ics/structures/st_cm_iso157652_rx_message.py +++ /dev/null @@ -1,53 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless9872(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('id_29_bit_enable', ctypes.c_uint, 1), - ('fc_id_29_bit_enable', ctypes.c_uint, 1), - ('ext_address_enable', ctypes.c_uint, 1), - ('fc_ext_address_enable', ctypes.c_uint, 1), - ('enableFlowControlTransmission', ctypes.c_uint, 1), - ('paddingEnable', ctypes.c_uint, 1), - ('iscanFD', ctypes.c_uint, 1), - ('isBRSEnabled', ctypes.c_uint, 1), - ] - - - -class Nameless28192(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless9872',) - _fields_ = [ - ('Nameless9872', Nameless9872), - ('flags', ctypes.c_uint32), - ] - - - -class st_cm_iso157652_rx_message(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless28192',) - _fields_ = [ - ('vs_netid', ctypes.c_uint16), - ('padding', ctypes.c_uint8), - ('id', ctypes.c_uint32), - ('id_mask', ctypes.c_uint32), - ('fc_id', ctypes.c_uint32), - ('flowControlExtendedAddress', ctypes.c_uint8), - ('extendedAddress', ctypes.c_uint8), - ('blockSize', ctypes.c_uint8), - ('stMin', ctypes.c_uint8), - ('cf_timeout', ctypes.c_uint16), - ('Nameless28192', Nameless28192), - ('reserved', ctypes.c_uint8 * 16), - ] - - -_stCM_ISO157652_RxMessage = st_cm_iso157652_rx_message -stCM_ISO157652_RxMessage = st_cm_iso157652_rx_message - diff --git a/gen/ics/structures/st_cm_iso157652_tx_message.py b/gen/ics/structures/st_cm_iso157652_tx_message.py deleted file mode 100644 index 7cc7d25e7..000000000 --- a/gen/ics/structures/st_cm_iso157652_tx_message.py +++ /dev/null @@ -1,59 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless7100(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('id_29_bit_enable', ctypes.c_uint, 1), - ('fc_id_29_bit_enable', ctypes.c_uint, 1), - ('ext_address_enable', ctypes.c_uint, 1), - ('fc_ext_address_enable', ctypes.c_uint, 1), - ('overrideSTmin', ctypes.c_uint, 1), - ('overrideBlockSize', ctypes.c_uint, 1), - ('paddingEnable', ctypes.c_uint, 1), - ('iscanFD', ctypes.c_uint, 1), - ('isBRSEnabled', ctypes.c_uint, 1), - ('', ctypes.c_uint, 15), - ('tx_dl', ctypes.c_uint, 8), - ] - - - -class Nameless9992(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless7100',) - _fields_ = [ - ('Nameless7100', Nameless7100), - ('flags', ctypes.c_uint32), - ] - - - -class st_cm_iso157652_tx_message(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless9992',) - _fields_ = [ - ('vs_netid', ctypes.c_uint16), - ('padding', ctypes.c_uint8), - ('tx_index', ctypes.c_uint8), - ('id', ctypes.c_uint32), - ('fc_id', ctypes.c_uint32), - ('fc_id_mask', ctypes.c_uint32), - ('stMin', ctypes.c_uint8), - ('blockSize', ctypes.c_uint8), - ('flowControlExtendedAddress', ctypes.c_uint8), - ('extendedAddress', ctypes.c_uint8), - ('fs_timeout', ctypes.c_uint16), - ('fs_wait', ctypes.c_uint16), - ('data', ctypes.c_uint8 * 4096), - ('num_bytes', ctypes.c_uint32), - ('Nameless9992', Nameless9992), - ] - - -_stCM_ISO157652_TxMessage = st_cm_iso157652_tx_message -stCM_ISO157652_TxMessage = st_cm_iso157652_tx_message - diff --git a/gen/ics/structures/start_dhcp_server_command.py b/gen/ics/structures/start_dhcp_server_command.py deleted file mode 100644 index 8dd6e6f41..000000000 --- a/gen/ics/structures/start_dhcp_server_command.py +++ /dev/null @@ -1,23 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class start_dhcp_server_command(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('networkId', ctypes.c_uint16), - ('serverIpAddress', ctypes.c_uint32), - ('subnetMask', ctypes.c_uint32), - ('gatewayAddress', ctypes.c_uint32), - ('startAddress', ctypes.c_uint32), - ('endAddress', ctypes.c_uint32), - ('leaseTime', ctypes.c_uint32), - ('overwrite', ctypes.c_uint32), - ] - - -_StartDHCPServerCommand = start_dhcp_server_command -StartDHCPServerCommand = start_dhcp_server_command - diff --git a/gen/ics/structures/stop_dhcp_server_command.py b/gen/ics/structures/stop_dhcp_server_command.py deleted file mode 100644 index fd26146f9..000000000 --- a/gen/ics/structures/stop_dhcp_server_command.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class stop_dhcp_server_command(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('networkId', ctypes.c_uint16), - ] - - -_StopDHCPServerCommand = stop_dhcp_server_command -StopDHCPServerCommand = stop_dhcp_server_command - diff --git a/gen/ics/structures/svcan3_settings.py b/gen/ics/structures/svcan3_settings.py deleted file mode 100644 index b1de39f4c..000000000 --- a/gen/ics/structures/svcan3_settings.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * - - -class svcan3_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('perf_en', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ] - - -_SVCAN3Settings = svcan3_settings -SVCAN3Settings = svcan3_settings - diff --git a/gen/ics/structures/svcan412_settings.py b/gen/ics/structures/svcan412_settings.py deleted file mode 100644 index c19678689..000000000 --- a/gen/ics/structures/svcan412_settings.py +++ /dev/null @@ -1,42 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.s_text_api_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class svcan412_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint64), - ('termination_enables', ctypes.c_uint64), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('text_api', STextAPISettings), - ('flags', flags), - ] - - -_VCAN412Settings = svcan412_settings -VCAN412Settings = svcan412_settings -SVCAN412Settings = svcan412_settings - diff --git a/gen/ics/structures/svcan4_ind_settings.py b/gen/ics/structures/svcan4_ind_settings.py deleted file mode 100644 index e7622b527..000000000 --- a/gen/ics/structures/svcan4_ind_settings.py +++ /dev/null @@ -1,72 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * - - -class Nameless59426(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ] - - - -class network_enables(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless59426',) - _fields_ = [ - ('word', ctypes.c_uint64), - ('Nameless59426', Nameless59426), - ] - - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('disableUsbCheckOnBoot', ctypes.c_uint32, 1), - ('enableLatencyTest', ctypes.c_uint32, 1), - ('busMessagesToAndroid', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 28), - ] - - - -class svcan4_ind_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('ethernet', ETHERNET_SETTINGS), - ('lin1', LIN_SETTINGS), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('perf_en', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('network_enables', network_enables), - ('termination_enables', ctypes.c_uint64), - ('flags', flags), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_VCAN4IndSettings = svcan4_ind_settings -VCAN4IndSettings = svcan4_ind_settings -SVCAN4IndSettings = svcan4_ind_settings - diff --git a/gen/ics/structures/svcan4_settings.py b/gen/ics/structures/svcan4_settings.py deleted file mode 100644 index 0eea9930f..000000000 --- a/gen/ics/structures/svcan4_settings.py +++ /dev/null @@ -1,58 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.canfd_settings import * -from ics.structures.ethernet_settings import * -from ics.structures.ethernet_settings2 import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * -from ics.structures.s_text_api_settings import * - - -class flags(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('enableLatencyTest', ctypes.c_uint32, 1), - ('enablePcEthernetComm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class svcan4_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('perf_en', ctypes.c_uint16), - ('can1', CAN_SETTINGS), - ('canfd1', CANFD_SETTINGS), - ('can2', CAN_SETTINGS), - ('canfd2', CANFD_SETTINGS), - ('can3', CAN_SETTINGS), - ('canfd3', CANFD_SETTINGS), - ('can4', CAN_SETTINGS), - ('canfd4', CANFD_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('lin1', LIN_SETTINGS), - ('network_enabled_on_boot', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_int16), - ('iso_9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings_1', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_1', ctypes.c_uint16), - ('iso_msg_termination_1', ctypes.c_uint16), - ('network_enables_3', ctypes.c_uint16), - ('text_api', STextAPISettings), - ('termination_enables', ctypes.c_uint64), - ('ethernet', ETHERNET_SETTINGS), - ('flags', flags), - ('pwr_man_enable', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint16), - ('ethernet2', ETHERNET_SETTINGS2), - ] - - -_SVCAN4Settings = svcan4_settings -SVCAN4Settings = svcan4_settings - diff --git a/gen/ics/structures/svcanrf_settings.py b/gen/ics/structures/svcanrf_settings.py deleted file mode 100644 index 3b52de81c..000000000 --- a/gen/ics/structures/svcanrf_settings.py +++ /dev/null @@ -1,48 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.can_settings import * -from ics.structures.iso9141_keyword2000_settings import * -from ics.structures.lin_settings import * - - -class svcanrf_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('can1', CAN_SETTINGS), - ('can2', CAN_SETTINGS), - ('can3', CAN_SETTINGS), - ('can4', CAN_SETTINGS), - ('lin1', LIN_SETTINGS), - ('lin2', LIN_SETTINGS), - ('network_enables', ctypes.c_uint16), - ('network_enabled_on_boot', ctypes.c_uint16), - ('pwr_man_timeout', ctypes.c_uint32), - ('pwr_man_enable', ctypes.c_uint16), - ('misc_io_initial_ddr', ctypes.c_uint16), - ('misc_io_initial_latch', ctypes.c_uint16), - ('misc_io_analog_enable', ctypes.c_uint16), - ('misc_io_report_period', ctypes.c_uint16), - ('misc_io_on_report_events', ctypes.c_uint16), - ('iso15765_separation_time_offset', ctypes.c_uint16), - ('iso9141_kwp_enable_reserved', ctypes.c_uint16), - ('iso9141_kwp_settings', ISO9141_KEYWORD2000_SETTINGS), - ('perf_en', ctypes.c_uint16), - ('iso_parity', ctypes.c_uint16), - ('iso_msg_termination', ctypes.c_uint16), - ('iso_tester_pullup_enable', ctypes.c_uint16), - ('network_enables_2', ctypes.c_uint16), - ('iso9141_kwp_settings_2', ISO9141_KEYWORD2000_SETTINGS), - ('iso_parity_2', ctypes.c_uint16), - ('iso_msg_termination_2', ctypes.c_uint16), - ('idle_wakeup_network_enables_1', ctypes.c_uint16), - ('idle_wakeup_network_enables_2', ctypes.c_uint16), - ('disableFwLEDs', ctypes.c_uint16, 1), - ('reservedZero', ctypes.c_uint16, 15), - ] - - -_SVCANRFSettings = svcanrf_settings -SVCANRFSettings = svcanrf_settings - diff --git a/gen/ics/structures/swcan_settings.py b/gen/ics/structures/swcan_settings.py deleted file mode 100644 index 9dcd83d16..000000000 --- a/gen/ics/structures/swcan_settings.py +++ /dev/null @@ -1,26 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class swcan_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('Mode', ctypes.c_uint8), - ('SetBaudrate', ctypes.c_uint8), - ('Baudrate', ctypes.c_uint8), - ('transceiver_mode', ctypes.c_uint8), - ('TqSeg1', ctypes.c_uint8), - ('TqSeg2', ctypes.c_uint8), - ('TqProp', ctypes.c_uint8), - ('TqSync', ctypes.c_uint8), - ('BRP', ctypes.c_uint16), - ('high_speed_auto_switch', ctypes.c_uint16), - ('auto_baud', ctypes.c_uint8), - ('RESERVED', ctypes.c_uint8), - ] - - -SWCAN_SETTINGS = swcan_settings - diff --git a/gen/ics/structures/system_identity.py b/gen/ics/structures/system_identity.py deleted file mode 100644 index 29ba48bd3..000000000 --- a/gen/ics/structures/system_identity.py +++ /dev/null @@ -1,18 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - -from ics.structures.clock_quality_ import * - - -class system_identity(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('priority_1', ctypes.c_uint8), - ('clock_quality', clock_quality_), - ('priority_2', ctypes.c_uint8), - ('clock_identity', ctypes.c_uint64), - ] - - - diff --git a/gen/ics/structures/tag_options_find_neo_ex.py b/gen/ics/structures/tag_options_find_neo_ex.py deleted file mode 100644 index 1a7cc6fd3..000000000 --- a/gen/ics/structures/tag_options_find_neo_ex.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class CANOptions(ctypes.Structure): - _fields_ = [ - ('iNetworkID', ctypes.c_int32), - ] - - - -class tag_options_find_neo_ex(ctypes.Union): - _fields_ = [ - ('CANOptions', CANOptions), - ('Reserved', ctypes.c_uint32 * 16), - ] - - -tagOptionsFindNeoEx = tag_options_find_neo_ex -OptionsFindNeoEx = tag_options_find_neo_ex -POptionsFindNeoEx = tag_options_find_neo_ex - diff --git a/gen/ics/structures/tag_options_open_neo_ex.py b/gen/ics/structures/tag_options_open_neo_ex.py deleted file mode 100644 index b4be4783d..000000000 --- a/gen/ics/structures/tag_options_open_neo_ex.py +++ /dev/null @@ -1,24 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class CANOptions(ctypes.Structure): - _fields_ = [ - ('iNetworkID', ctypes.c_int32), - ] - - - -class tag_options_open_neo_ex(ctypes.Union): - _fields_ = [ - ('CANOptions', CANOptions), - ('Reserved', ctypes.c_uint32 * 16), - ] - - -tagOptionsOpenNeoEx = tag_options_open_neo_ex -OptionsOpenNeoEx = tag_options_open_neo_ex -POptionsOpenNeoEx = tag_options_open_neo_ex - diff --git a/gen/ics/structures/tagicsneo_vi_command.py b/gen/ics/structures/tagicsneo_vi_command.py deleted file mode 100644 index 05d9d5da8..000000000 --- a/gen/ics/structures/tagicsneo_vi_command.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class tagicsneo_vi_command(ctypes.Structure): - _fields_ = [ - ('CommandType', ctypes.c_uint8), - ('CommandByteLength', ctypes.c_uint8), - ('Data', ctypes.c_uint8 * 14), - ] - - -tagicsneoVICommand = tagicsneo_vi_command -icsneoVICommand = tagicsneo_vi_command - diff --git a/gen/ics/structures/timestamp_.py b/gen/ics/structures/timestamp_.py deleted file mode 100644 index 743ff537a..000000000 --- a/gen/ics/structures/timestamp_.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class timestamp_(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('seconds_msb', ctypes.c_uint16), - ('seconds_lsb', ctypes.c_uint32), - ('nanoseconds', ctypes.c_uint32), - ] - - -_timestamp = timestamp_ - diff --git a/gen/ics/structures/timesync_icshardware_settings.py b/gen/ics/structures/timesync_icshardware_settings.py deleted file mode 100644 index 5a1cb1bf7..000000000 --- a/gen/ics/structures/timesync_icshardware_settings.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 timesync_icshardware_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('MasterEnable', ctypes.c_uint8), - ('SlaveEnable', ctypes.c_uint8), - ('MasterNetwork', ctypes.c_uint8), - ('SlaveNetwork', ctypes.c_uint8), - ] - - -TIMESYNC_ICSHARDWARE_SETTINGS = timesync_icshardware_settings - diff --git a/gen/ics/structures/uart_port_config.py b/gen/ics/structures/uart_port_config.py deleted file mode 100644 index f032a44b0..000000000 --- a/gen/ics/structures/uart_port_config.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 uart_port_config(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('baudrate', ctypes.c_uint32), - ('port', ctypes.c_uint8), - ('reserve', ctypes.c_uint8 * 7), - ] - - -_UartPortConfig = uart_port_config -UartPortConfig = uart_port_config - diff --git a/gen/ics/structures/uart_port_data.py b/gen/ics/structures/uart_port_data.py deleted file mode 100644 index 92046a80d..000000000 --- a/gen/ics/structures/uart_port_data.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 uart_port_data(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('len', ctypes.c_uint16), - ('port', ctypes.c_uint8), - ('bData', ctypes.c_uint8 * 256), - ] - - -_UartPortData = uart_port_data -UartPortData = uart_port_data - diff --git a/gen/ics/structures/uart_port_port_bytes.py b/gen/ics/structures/uart_port_port_bytes.py deleted file mode 100644 index 3305429ea..000000000 --- a/gen/ics/structures/uart_port_port_bytes.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 uart_port_port_bytes(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('len', ctypes.c_uint16), - ('port', ctypes.c_uint8), - ('flag', ctypes.c_uint8), - ] - - -_UartPortPortBytes = uart_port_port_bytes -UartPortPortBytes = uart_port_port_bytes - diff --git a/gen/ics/structures/uart_settings.py b/gen/ics/structures/uart_settings.py deleted file mode 100644 index de156330a..000000000 --- a/gen/ics/structures/uart_settings.py +++ /dev/null @@ -1,46 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless31039(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('invert_tx', ctypes.c_uint, 1), - ('invert_rx', ctypes.c_uint, 1), - ('half_duplex', ctypes.c_uint, 1), - ('reserved_bits', ctypes.c_uint, 13), - ('reserved_bits2', ctypes.c_uint, 16), - ] - - - -class Nameless2284(ctypes.Union): - _pack_ = 2 - _anonymous_ = ('Nameless31039',) - _fields_ = [ - ('bOptions', ctypes.c_uint32), - ('Nameless31039', Nameless31039), - ] - - - -class uart_settings(ctypes.Structure): - _pack_ = 2 - _anonymous_ = ('Nameless2284',) - _fields_ = [ - ('Baudrate', ctypes.c_uint16), - ('spbrg', ctypes.c_uint16), - ('brgh', ctypes.c_uint16), - ('parity', ctypes.c_uint16), - ('stop_bits', ctypes.c_uint16), - ('flow_control', ctypes.c_uint8), - ('reserved_1', ctypes.c_uint8), - ('Nameless2284', Nameless2284), - ] - - -_UART_SETTINGS = uart_settings -UART_SETTINGS = uart_settings - diff --git a/gen/ics/structures/version_report.py b/gen/ics/structures/version_report.py deleted file mode 100644 index 217854550..000000000 --- a/gen/ics/structures/version_report.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 version_report(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('valid', ctypes.c_uint8), - ('expansionSlot', ctypes.c_uint8), - ('componentInfo', ctypes.c_uint8), - ('reserved', ctypes.c_uint8), - ('identifier', ctypes.c_uint32), - ('dotVersion', ctypes.c_uint32), - ('commitHash', ctypes.c_uint32), - ] - - -_VersionReport = version_report -VersionReport = version_report - diff --git a/gen/ics/structures/w_bms_manager_reset.py b/gen/ics/structures/w_bms_manager_reset.py deleted file mode 100644 index 9ef61a9c3..000000000 --- a/gen/ics/structures/w_bms_manager_reset.py +++ /dev/null @@ -1,16 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class w_bms_manager_reset(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('managerIndex', ctypes.c_uint8), - ] - - -_wBMSManagerReset = w_bms_manager_reset -wBMSManagerReset = w_bms_manager_reset - diff --git a/gen/ics/structures/w_bms_manager_set_lock.py b/gen/ics/structures/w_bms_manager_set_lock.py deleted file mode 100644 index ab1c05034..000000000 --- a/gen/ics/structures/w_bms_manager_set_lock.py +++ /dev/null @@ -1,17 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class w_bms_manager_set_lock(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('managerIndex', ctypes.c_uint8), - ('setLock', ctypes.c_uint8), - ] - - -_wBMSManagerSetLock = w_bms_manager_set_lock -wBMSManagerSetLock = w_bms_manager_set_lock - diff --git a/gen/ics/structures/wbms_gateway_settings.py b/gen/ics/structures/wbms_gateway_settings.py deleted file mode 100644 index 3d9e1e62d..000000000 --- a/gen/ics/structures/wbms_gateway_settings.py +++ /dev/null @@ -1,19 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class wbms_gateway_settings(ctypes.Structure): - _pack_ = 2 - _fields_ = [ - ('wbms1_network', ctypes.c_uint8), - ('wbms1_canfd_enable', ctypes.c_uint8), - ('wbms2_network', ctypes.c_uint8), - ('wbms2_canfd_enable', ctypes.c_uint8), - ('reserved', ctypes.c_uint16 * 6), - ] - - -WBMSGatewaySettings = wbms_gateway_settings - diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index 8e836593b..fa653924e 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -8,12 +8,10 @@ from pathlib import Path import sys import ctypes #used with eval... +from ics_utility import GEN_ICS_DIR debug_print = False - -OUTPUT_DIR = Path("./gen/ics") - __unique_numbers = [] @@ -628,7 +626,7 @@ def generate(filename="include/ics/icsnVC40.h"): with open(f"{basename}.enums.json", "w+") as f: f.write(j) # generate the python files - output_dir = OUTPUT_DIR / "structures" + output_dir = GEN_ICS_DIR / "structures" print(f"Removing {output_dir}...") try: shutil.rmtree(output_dir) @@ -665,10 +663,10 @@ def generate(filename="include/ics/icsnVC40.h"): "crt_float_", "crt_double_", "ndis_adapter_information", - "NeoDevice", - "neo_device", - "NeoDeviceEx", - "neo_device_ex", + #"NeoDevice", + #"neo_device", + #"NeoDeviceEx", + #"neo_device_ex", "icsSpyMessage", "icsSpyMessageJ1850", "ics_spy_message", @@ -724,7 +722,7 @@ def generate(filename="include/ics/icsnVC40.h"): f.write('",\n') f.write("]\n") # write a hidden_import python file for pyinstaller - hidden_imports_path = OUTPUT_DIR / "hiddenimports.py" + hidden_imports_path = GEN_ICS_DIR / "hiddenimports.py" with open(hidden_imports_path, "w+") as f: f.write("hidden_imports = [\n") for file_name in file_names: @@ -737,7 +735,7 @@ def generate(filename="include/ics/icsnVC40.h"): f.write("]\n\n") # Verify We can at least import all of the modules - quick check to make sure parser worked. - ics_module_path = OUTPUT_DIR.parent.resolve() + ics_module_path = GEN_ICS_DIR.parent.resolve() # Add the module to the eval sys.path. eval("""sys.path.insert(0, f"{ics_module_path}")""") for file_name in file_names: @@ -908,42 +906,13 @@ def _generate_inner_objects(f, c_object): _write_c_object(f, c_object) return fname, fname_with_path -def create_ics_init(): - fdata = \ -"""try: - import ics.__version - __version__ = ics.__version.__version__ - __full_version__ = ics.__version.__full_version__ -except Exception as ex: - print(ex) - -try: - # Release environment - #print("Release") - from ics.ics import * - from ics.structures import * - from ics.hiddenimports import hidden_imports -except Exception as ex: - # Build environment - #print("Debug", ex) - from ics import * - from ics.structures import * - from ics.hiddenimports import hidden_imports - -""" - init_path = OUTPUT_DIR / "__init__.py" - print(f"Creating '{init_path}'...") - with open(init_path, "w+") as f: - f.write(fdata) - def generate_all_files(): import sys import os import pathlib - print(f"Creating directory '{OUTPUT_DIR}'...") - OUTPUT_DIR.mkdir(parents=True, exist_ok=True) - create_ics_init() + print(f"Creating directory '{GEN_ICS_DIR}'...") + GEN_ICS_DIR.mkdir(parents=True, exist_ok=True) filenames = ("icsnVC40.h", "icsnVC40Internal.h") for filename in filenames: path = pathlib.Path("include/ics/") diff --git a/create_version.py b/ics_utility.py similarity index 56% rename from create_version.py rename to ics_utility.py index 8f1e685b1..7058a5412 100644 --- a/create_version.py +++ b/ics_utility.py @@ -2,6 +2,8 @@ import dunamai import pathlib +GEN_DIR = pathlib.Path("./gen") +GEN_ICS_DIR = GEN_DIR / "ics" def get_pkg_version() -> str: """ @@ -31,11 +33,47 @@ def create_version_py(path: pathlib.Path = pathlib.Path("gen/ics/__version.py")) pkg_version = get_pkg_version() full_version = dunamai.Version.from_git().serialize(format="v{base}-{commit}-{timestamp}") 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 with open(path, "w+") as f: f.write(f"""__version__ = "{pkg_version}"\n""") f.write(f"""__full_version__ = "{full_version}"\n""") +def create_ics_init(): + fdata = \ +"""# Warning: This file is auto generated. Don't modify if you value your sanity! +try: + import ics.__version + __version__ = ics.__version.__version__ + __full_version__ = ics.__version.__full_version__ +except Exception as ex: + print(ex) + + +from ics.structures import * +from ics.hiddenimports import hidden_imports +try: + from ics.py_neo_device_ex import PyNeoDeviceEx +except ModuleNotFoundError as ex: + print(f"Warning: {ex}") + +try: + # Release environment + #print("Release") + from ics.ics import * +except Exception as ex: + # Build environment + #print("Debug", ex) + from ics import * +""" + init_path = GEN_ICS_DIR / "__init__.py" + print(f"Creating '{init_path}'...") + init_path.parent.mkdir(parents=True, exist_ok=True) + with open(init_path, "w+") as f: + f.write(fdata) + if __name__ == "__main__": + create_ics_init() create_version_py() + print("Version info generated!") \ No newline at end of file diff --git a/icsnVC40.h.json b/icsnVC40.h.json index e84aaba52..8fdc1d18d 100644 --- a/icsnVC40.h.json +++ b/icsnVC40.h.json @@ -1,4 +1,23 @@ [ + { + "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", diff --git a/include/exceptions.h b/include/exceptions.h index ca8f5d7b3..2a917545b 100644 --- a/include/exceptions.h +++ b/include/exceptions.h @@ -10,8 +10,6 @@ extern "C" int initialize_exceptions(PyObject* module); PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_name); #define set_ics_exception(exception, msg) _set_ics_exception(exception, msg, __FUNCTION__); - PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, const char* func_name); -#define set_ics_exception_dev(exception, obj, msg) _set_ics_exception_dev(exception, obj, msg, __FUNCTION__); PyObject* exception_argument_error(void); PyObject* exception_runtime_error(void); diff --git a/include/methods.h b/include/methods.h index 2b5a1e103..32240a80f 100644 --- a/include/methods.h +++ b/include/methods.h @@ -1,7 +1,6 @@ #ifndef _METHODS_H_ #define _METHODS_H_ #include -#include "object_neo_device.h" #include "object_spy_message.h" #include "setup_module_auto_defines.h" @@ -134,7 +133,7 @@ extern "C" #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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "Finds all connected devices and returns a tuple of :class:` PyNeoDeviceEx" \ "` for use in :func:`" MODULE_NAME ".open_device`\n" \ "\n" \ "Args:\n" \ @@ -147,7 +146,7 @@ extern "C" "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ "\n" \ "Returns:\n" \ - "\tTuple of :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` for use in :func:`" MODULE_NAME \ + "\tTuple of :class:` PyNeoDeviceEx" "` for use in :func:`" MODULE_NAME \ ".open_device`\n" \ "\n" \ "\t>>> for device in ics.find_devices():\n" \ @@ -164,13 +163,13 @@ extern "C" MODULE_NAME \ ".open_device(device)\n" \ "\n" \ - "Opens the device. `device` can be omitted to return a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "Opens the device. `device` can be omitted to return a :class:` PyNeoDeviceEx" \ "` of the\n" \ - "first free availible device, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "first free availible device, a :class:` PyNeoDeviceEx" \ "`, or a serial number of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "\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 " \ @@ -187,17 +186,17 @@ extern "C" "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ "\n" \ "Returns:\n" \ - "\tIf :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` is passed as a parameter, None. \n" \ - "\tIf serial number is passed as a parameter, a :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "\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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "\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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + ".. note::\n\t:class:` PyNeoDeviceEx" \ "` will automatically close the device when it goes out of scope.\n\n" #define _DOC_CLOSE_DEVICES \ @@ -206,8 +205,8 @@ extern "C" "Closes the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -221,7 +220,7 @@ extern "C" "\t... ics.close_device(device)\n" \ "\t...\n" \ "\n" \ - ".. note::\n\t:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + ".. note::\n\t:class:` PyNeoDeviceEx" \ "` will automatically close the device when it goes out of scope.\n\n" #define _DOC_GET_RTC \ @@ -230,8 +229,8 @@ extern "C" "Gets the Real-Time Clock of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -249,8 +248,8 @@ extern "C" "Sets the Real-Time Clock of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -268,8 +267,8 @@ extern "C" "Loads the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -289,8 +288,8 @@ extern "C" "Starts the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -309,8 +308,8 @@ extern "C" "Stops the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -327,8 +326,8 @@ extern "C" "Clears the CoreMini into the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -347,8 +346,8 @@ extern "C" "Gets the status of the CoreMini in the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -367,8 +366,8 @@ extern "C" "." SPY_MESSAGE_OBJECT_NAME "`\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -392,8 +391,8 @@ extern "C" "Gets the message(s) on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -416,15 +415,15 @@ extern "C" "\t>>> errors\n" \ "\t0\n" -//"Accepts a " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ", exception on error. Returns a list of (error #, string)" +//"Accepts a PyNeoDeviceEx" ", exception on error. Returns a list of (error #, string)" #define _DOC_GET_ERROR_MESSAGES \ MODULE_NAME ".get_error_messages(device[, j1850, timeout])\n" \ "\n" \ "Gets the error message(s) on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -465,7 +464,7 @@ extern "C" "Gets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "\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 " \ @@ -505,8 +504,8 @@ extern "C" "Sets the settings in the device. vnet_slot defaults to " MODULE_NAME ".PlasmaIonVnetChannelMain\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\tsettings (:class:`" MODULE_NAME "." \ "device_settings" \ "`): :class:`" MODULE_NAME "." \ @@ -534,15 +533,15 @@ extern "C" "\t>>> ics.set_device_settings(d, s, True, ics.PlasmaIonVnetChannelA)\n" \ "\t>>> \n" -//"Accepts a " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ", exception on error." +//"Accepts a PyNeoDeviceEx" ", exception on error." #define _DOC_LOAD_DEFAULT_SETTINGS \ MODULE_NAME ".load_default_settings(device)\n" \ "\n" \ "Load the default settings in the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -590,8 +589,8 @@ extern "C" "Starts a Coremini Function Block at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the function block.\n\n" \ "\n" \ "Raises:\n" \ @@ -609,8 +608,8 @@ extern "C" "Stops a Coremini Function Block at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the function block.\n\n" \ "\n" \ "Raises:\n" \ @@ -628,8 +627,8 @@ extern "C" "Gets the status of a Coremini Function Block at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the function block.\n\n" \ "\n" \ "Raises:\n" \ @@ -648,8 +647,8 @@ extern "C" "Gets the value of a Coremini application signal at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\tindex (int): Index of the application signal.\n\n" \ "\n" \ "Raises:\n" \ @@ -668,8 +667,8 @@ extern "C" "Sets the value of a Coremini application signal at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -689,8 +688,8 @@ extern "C" "Gets the value of a Coremini Message at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -709,8 +708,8 @@ extern "C" "Gets the value of a Coremini Message at `index` on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -737,8 +736,8 @@ extern "C" "Gets the Performance Parameters on `device`.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -757,8 +756,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:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -780,8 +779,8 @@ extern "C" "Gets the error message from the last API call.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -839,8 +838,8 @@ extern "C" "Gets the serial number out of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -860,8 +859,8 @@ extern "C" "This API allows Android/Linux applications to invoke power management.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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 " \ @@ -899,8 +898,8 @@ extern "C" "create logical connections to found CAN Nodes.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -917,8 +916,8 @@ extern "C" "Forces the device to flash firmware.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -935,8 +934,8 @@ extern "C" "Determines if the device firmware needs flashing.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -953,8 +952,8 @@ extern "C" "Returns the DLL firmware info for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -978,8 +977,8 @@ extern "C" "Returns the device firmware info for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1003,8 +1002,8 @@ extern "C" "Returns the device backup power enabled for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1019,8 +1018,8 @@ extern "C" "Sets the device backup power enabled for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1035,8 +1034,8 @@ extern "C" "Returns the device backup power is ready for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1054,8 +1053,8 @@ extern "C" "Transmits an ISO15765 Message.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tpMsg (:class:`" MODULE_NAME "." \ "st_cm_iso157652_tx_message" \ @@ -1077,8 +1076,8 @@ extern "C" "Setup rx ISO15765 Message.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tprx_msg (:class:`" MODULE_NAME "." \ "st_cm_iso157652_rx_message" \ @@ -1099,8 +1098,8 @@ extern "C" "Enables ISO15765 networks.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1115,8 +1114,8 @@ extern "C" "Disables ISO15765 networks.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1131,8 +1130,8 @@ extern "C" "Gets active vnet channel for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1147,8 +1146,8 @@ extern "C" "Sets active vnet channel for the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1196,7 +1195,7 @@ extern "C" "For the network NETID_FIRE_CGI valid bit rates are 625000 and 115200\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:` PyNeoDeviceEx" \ "`\n\n" \ "\n" \ "Raises:\n" \ @@ -1212,8 +1211,8 @@ extern "C" "Sets the FD bitrate for a given Network ID on the device..\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1228,8 +1227,8 @@ extern "C" "Sets the bitrate for a given Network ID on the device with extended options.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1244,8 +1243,8 @@ extern "C" "Calculates the timestamp for a message.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1268,8 +1267,8 @@ extern "C" "Returns the device status.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1291,8 +1290,8 @@ extern "C" "Enable or disable network communication.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`bool`\n\n" \ "\n" \ @@ -1315,8 +1314,8 @@ extern "C" "Enable or disable bus voltage monitoring.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`int`\n\n" \ "\n" \ @@ -1339,8 +1338,8 @@ extern "C" "Reads bus voltage. (:class:`" MODULE_NAME ".enable_bus_voltage_monitor`) needs to be called first.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1363,8 +1362,8 @@ extern "C" "Reads firmware binary from a RAD-Jupiter. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1383,8 +1382,8 @@ extern "C" "Writes firmware binary to a RAD-Jupiter. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1403,8 +1402,8 @@ extern "C" "Returns the device disk details.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1426,8 +1425,8 @@ extern "C" "Starts disk formatting on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1448,8 +1447,8 @@ extern "C" "Cancel in progress disk formatting on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1469,8 +1468,8 @@ extern "C" "Returns the device disk formatting progress.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1493,8 +1492,8 @@ extern "C" "Activate or De-activate DOIP Line.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`bool`): :class:`bool`\n\n" \ "\n" \ @@ -1516,8 +1515,8 @@ extern "C" "ValueCAN4-4 and ValueCAN4-Industrial are supported.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tenable (:class:`DeviceFeature`): :class:`DeviceFeature`\n\n" \ "\n" \ @@ -1539,8 +1538,8 @@ extern "C" "Gets the unique PCB serial number of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1559,8 +1558,8 @@ extern "C" "Sets the LED property on the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1583,8 +1582,8 @@ extern "C" "Starts a DHCP Server.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1612,8 +1611,8 @@ extern "C" "Stops the DHCP Server\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\tnetwork_id (:class:`int`): NetworkID\n\n" \ "\n" \ "Raises:\n" \ @@ -1633,8 +1632,8 @@ extern "C" "Sets the lock state on the manager\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1662,8 +1661,8 @@ extern "C" "Resets the manager\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1686,8 +1685,8 @@ extern "C" "Writes UART on the given port\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1710,8 +1709,8 @@ extern "C" "Reads UART on the given port. \n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1736,8 +1735,8 @@ extern "C" "Sets the UART baudrate on the given port. \n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1761,8 +1760,8 @@ extern "C" "Gets the UART baudrate on the given port. \n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1784,8 +1783,8 @@ extern "C" "Sends a command in a generic way.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1806,7 +1805,7 @@ extern "C" "Reads data in a generic way.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:` PyNeoDeviceEx" \ "`\n\n" \ "\tapi_index (:class:`int`): api_index.\n\n" \ "\tinstance_index (:class:`int`): instance_index.\n\n" \ @@ -1827,8 +1826,8 @@ extern "C" "Reads data in a generic way.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1845,8 +1844,8 @@ extern "C" "Gets the gPTP Status from the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1861,8 +1860,8 @@ extern "C" "Get all the chip (firmware) versions of the device.\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "Raises:\n" \ "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ @@ -1878,8 +1877,8 @@ extern "C" "Flashes Accessory Firmware. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\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" \ @@ -1900,8 +1899,8 @@ extern "C" "Gets Accessory Firmware version. If not sure, don't use this method\n" \ "\n" \ "Args:\n" \ - "\tdevice (:class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "`): :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "`\n\n" \ + "\tdevice (:class:` PyNeoDeviceEx" "`): :class:`" MODULE_NAME \ + ".PyNeoDeviceEx`\n\n" \ "\n" \ "\tindex (:class:`int`): :class:`int`: Index enum.\n\n" \ "\n" \ @@ -1982,7 +1981,7 @@ static PyMethodDef IcsMethods[] = { "ScriptGetScriptStatusEx", meth_get_script_status, METH_VARARGS, - "Accepts a " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME + "Accepts a PyNeoDeviceEx" ", exception on error. Returns a list of values of what ulParameters would hold"), _EZ_ICS_STRUCT_METHOD("get_error_messages", "icsneoGetErrorMessages", @@ -2032,14 +2031,14 @@ static PyMethodDef IcsMethods[] = { "ReadSDCard", meth_read_sdcard, METH_VARARGS, - "icsneoReadSDCard(), Accepts a " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME + "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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME + "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, diff --git a/include/object_neo_device.h b/include/object_neo_device.h deleted file mode 100644 index d0b117849..000000000 --- a/include/object_neo_device.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef _OBJECT_NEO_DEVICE_H_ -#define _OBJECT_NEO_DEVICE_H_ -// http://docs.python.org/3/extending/newtypes.html - -#include -#include -#if (defined(_WIN32) || defined(__WIN32__)) -#ifndef USING_STUDIO_8 -#define USING_STUDIO_8 1 -#endif -#include -#else -#include -#endif - -#include "defines.h" -#include "exceptions.h" -#include "dll.h" - -// Linux specific fixes -#if !(defined(_WIN32) || defined(__WIN32__)) - -// __int64 is a msvc specific type -#include -#define __int64 int64_t - -// __stdcall is a windows calling convention -#ifndef __stdcall -#define __stdcall - -// Sleep is a windows.h specific function. -#include -#define Sleep(i) sleep(i) - -#endif -#endif - -#define NEO_DEVICE_OBJECT_NAME "NeoDevice" - -#if ICS_LEGACY_SUPPORT -#define ICS_HANDLE int -#define ICS_HANDLE_PY_TYPE T_INT -#else -#define ICS_HANDLE void* -#define ICS_HANDLE_PY_TYPE T_ULONGLONG -#endif - -typedef struct -{ - PyObject_HEAD NeoDevice dev; - PyObject* name; - bool auto_cleanup; - ICS_HANDLE handle; - PyObject* dict; -} neo_device_object; - -static PyMemberDef neo_device_object_members[] = { - { "Name", - T_OBJECT_EX, - offsetof(neo_device_object, name), - 0, - "String describing DeviceType, extension to Python api only." }, - { "DeviceType", T_UINT, offsetof(neo_device_object, dev.DeviceType), 0, "" }, - { "Handle", T_INT, offsetof(neo_device_object, dev.Handle), 0, "" }, - { "NumberOfClients", T_INT, offsetof(neo_device_object, dev.NumberOfClients), 0, "" }, - { "SerialNumber", T_INT, offsetof(neo_device_object, dev.SerialNumber), 0, "" }, - { "MaxAllowedClients", T_INT, offsetof(neo_device_object, dev.MaxAllowedClients), 0, "" }, - { "AutoHandleClose", - T_BOOL, - offsetof(neo_device_object, auto_cleanup), - 0, - "When " NEO_DEVICE_OBJECT_NAME " is freed the handle will automatically be closed, if true." }, - { "_Handle", - ICS_HANDLE_PY_TYPE, - offsetof(neo_device_object, handle), - 0, - "This contains the handle returned from icsneoOpenDevice() API. If uncertain, don't use this." }, - { NULL, 0, 0, 0, 0 }, -}; - -static int neo_device_object_alloc(neo_device_object* self, PyObject* args, PyObject* kwds) -{ - self->name = PyUnicode_FromString(""); - self->auto_cleanup = 1; - self->handle = 0; - - return 0; -} - -static void neo_device_object_dealloc(neo_device_object* self) -{ - if (self->auto_cleanup && self->handle) { - try { - // Auto clean up device handle if NeoDevice object is going out of scope. - ice::Library* lib = dll_get_library(); - if (lib) { - ice::Function icsneoClosePort(lib, "icsneoClosePort"); - ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); - int error_count = 0; - if (icsneoClosePort(self->handle, &error_count)) { - icsneoFreeObject(self->handle); - } - } - } catch (...) { - // return set_ics_exception(exception_runtime_error(), (char*)ex.what()); - } - } - Py_XDECREF(self->name); - Py_TYPE(self)->tp_free((PyObject*)self); -} - -static PyObject* neo_device_object_getattr(PyObject* o, PyObject* attr_name) -{ - return PyObject_GenericGetAttr(o, attr_name); -} - -static int neo_device_object_setattr(PyObject* o, PyObject* name, PyObject* value) -{ - return PyObject_GenericSetAttr(o, name, value); -} - -// Shamelessly copied from base36enc -static PyObject* convert_to_base36(unsigned long value) -{ - char base36[37] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - /* log(2**64) / log(36) = 12.38 => max 13 char + '\0' */ - char buffer[100]; - unsigned int offset = sizeof(buffer); - - buffer[--offset] = '\0'; - do { - buffer[--offset] = base36[value % 36]; - } while (value /= 36); - return PyUnicode_FromString(&buffer[offset]); -} - -static PyObject* neo_device_object_tp_repr(PyObject* o) -{ - // example output: - neo_device_object* nd = (neo_device_object*)(o); - // Check range is 0A0000-ZZZZZZ - PyObject* sn = NULL; - uint32_t serial = (uint32_t)nd->dev.SerialNumber; - if (MIN_BASE36_SERIAL <= serial && serial <= MAX_SERIAL) - sn = convert_to_base36(serial); - else - sn = PyUnicode_FromFormat("%lu", nd->dev.SerialNumber); - return PyUnicode_FromFormat("<" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " %U %U>", nd->name, sn); -} - -extern PyTypeObject neo_device_object_type; - -// Copied from tupleobject.h -#define PyNeoDevice_Check(op) PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BASETYPE) -#define PyNeoDevice_CheckExact(op) (Py_TYPE(PyNeoDevice_GetNeoDevice(op)) == &neo_device_object_type) - -#define PyNeoDevice_GetNeoDevice(nd) ((neo_device_object*)nd) -#define PyNeoDevice_GetName(nd) (PyNeoDevice_GetNeoDevice(nd)->name) -#define PyNeoDevice_GetSerialNumber(nd) (PyNeoDevice_GetNeoDevice(nd)->dev.SerialNumber) - -#define PyNeoDevice_GetHandle(nd) (PyNeoDevice_GetNeoDevice(nd)->handle) -#define PyNeoDevice_SetHandle(nd, hndle) PyNeoDevice_GetNeoDevice(nd)->handle = hndle - -bool setup_neo_device_object(PyObject* module); - -#endif // _OBJECT_NEO_DEVICE_H_ diff --git a/msvc/python_ics.vcxproj b/msvc/python_ics.vcxproj index 83a2853ce..904f7cc78 100644 --- a/msvc/python_ics.vcxproj +++ b/msvc/python_ics.vcxproj @@ -184,8 +184,7 @@ true - - + @@ -196,7 +195,6 @@ - diff --git a/pyproject.toml b/pyproject.toml index 41e300243..996ba50af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,8 +24,8 @@ classifiers=[ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", ] -license = {file = "LICENSE"} [project.urls] Homepage = "https://intrepidcs.com" @@ -45,7 +45,7 @@ requires = [ [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" skip = "cp36-* pp* *-manylinux_i686 *-musllinux_*" -environment = {DISTUTILS_DEBUG=1} +environment = {DISTUTILS_DEBUG=1, MACOSX_DEPLOYMENT_TARGET="10.13"} before-build = "python -m pip install wheel" manylinux-x86_64-image = "quay.io/pypa/manylinux_2_28_x86_64" diff --git a/requirements.txt b/requirements.txt index f275a1925..2b48fdeed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ setuptools >= 69 -dunamai >= 1.19.2 \ No newline at end of file +dunamai >= 1.19.2 +wheel >= 0.42.0 \ No newline at end of file diff --git a/setup.py b/setup.py index cd85333f5..5b368800f 100644 --- a/setup.py +++ b/setup.py @@ -1,135 +1,115 @@ #!/usr/bin/env python3 from setuptools import setup, Extension - -from distutils.command import build as build_module +from setuptools.command.build_clib import build_clib +from setuptools.command.build_py import build_py import os -import platform import sys -import unittest +import platform import shutil -from pathlib import Path -import codecs import os.path import extract_icsneo40_defines import generate_icsneo40_structs -from create_version import get_pkg_version, create_version_py - -# force this to happen every single time, fixes sync issues. -extract_icsneo40_defines.extract() -generate_icsneo40_structs.generate_all_files() - +from ics_utility import get_pkg_version, create_version_py, create_ics_init +import pathlib +from typing import List +# I had this in build_py but there are certain times its not called, for now lets force +# it to run every single time we call setup. Its quick enough where it shouldn't hurt. +create_ics_init() create_version_py() - -MAJOR_VERSION = int(get_pkg_version().split(".")[0]) -MINOR_VERSION = int(get_pkg_version().split(".")[1]) - - -def _run_tests(): - directory = os.path.abspath(os.path.dirname(sys.modules["__main__"].__file__)) - loader = unittest.defaultTestLoader - runner = unittest.TextTestRunner() - suite = loader.discover(os.path.join(directory, "test")) - runner.run(suite) - - -try: - from setuptools.command.test import test - - class UnitTests(test): - def finalize_options(self): - test.finalize_options(self) - self.test_args = [] - self.test_suite = True - - def run_tests(self): - _run_tests() - -except ImportError: - from distutils.core import Command - - class UnitTests(Command): - user_options = [] - - def initialize_options(self): - pass - - def finalize_options(self): - pass - - def run(self): - _run_tests() +generate_icsneo40_structs.generate_all_files() +# Check for clang stuff here, read the docs doesn't have this so use what is in the repo +if not os.getenv("READTHEDOCS"): + if not shutil.which("clang"): + raise RuntimeError("clang is required for building python_ics.") + if not shutil.which("clang-format"): + 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]) + return major, minor -class build(build_module.build): +class _build_libicsneo(build_clib): def run(self): + # checkout and build libicsneo if platform.system().upper() in ("DARWIN", "LINUX"): import build_libicsneo - + + print("Checking out libicsneo...") build_libicsneo.checkout() + print("Building libicsneo...") build_libicsneo.build() + print("Copying libicsneo...") build_libicsneo.copy() - build_module.build.run(self) + super().run() -source_files = [ - "src/object_spy_message.cpp", - "src/defines.cpp", - "src/exceptions.cpp", - "src/dll.cpp", - "src/setup_module_auto_defines.cpp", - "src/main.cpp", - "src/object_neo_device.cpp", - "src/methods.cpp", - "src/ice/src/ice_library_manager.cpp", - "src/ice/src/ice_library_name.cpp", - "src/ice/src/ice_library.cpp", -] - -# gcc and clang arguments -GCC_COMPILE_ARGS = [ - "-fpermissive", - "-Wno-unused-variable", - "-Wno-unused-function", - "-Wno-write-strings", -] - -# Set compiler flags here -if "WINDOWS" in platform.system().upper(): - compile_args = [] - # mingw and clang python builds won't have MSC in the version string - if "MSC" not in sys.version: +class _build_ics_py(build_py): + def run(self): + print("Generating python defines from icsnVC40.h...") + extract_icsneo40_defines.extract() + + print("Copy python source files over to gen...") + src_path = pathlib.Path("./src/") + gen_path = pathlib.Path("./gen/") + for dirpath, dirnames, filenames in os.walk(src_path): + dirpath = pathlib.Path(dirpath) + for name in filenames: + 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}") + shutil.copy(src, dest) + self.run_command("build_libicsneo") + super().run() + + +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", + ] + # Set compiler flags here + if "WINDOWS" in platform.system().upper(): + compile_args = [] + # mingw and clang python builds won't have MSC in the version string + if "MSC" not in sys.version: + compile_args = GCC_COMPILE_ARGS + elif "LINUX" in platform.system().upper(): compile_args = GCC_COMPILE_ARGS -elif "LINUX" in platform.system().upper(): - 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" - compile_args = [] -else: - compile_args = [] - -# Check for clang stuff here, read the docs doesn't have this so use what is in the repo -if not os.getenv("READTHEDOCS"): - if not shutil.which("clang"): - raise RuntimeError("clang is required for building python_ics.") - if not shutil.which("clang-format"): - raise RuntimeError("clang-format is required for building python_ics.") - - -def read(fname): - return open(os.path.join(os.path.dirname(__file__), fname)).read() - + 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" + compile_args = [] + else: + compile_args = [] + return compile_args ics_extension = Extension( "ics.ics", - define_macros=[("MAJOR_VERSION", MAJOR_VERSION), ("MINOR_VERSION", MINOR_VERSION), ("EXTERNAL_PROJECT", 1)], + define_macros=[("MAJOR_VERSION", get_version()[0]), ("MINOR_VERSION", get_version()[1]), ("EXTERNAL_PROJECT", 1)], include_dirs=["include", "include/ics", "src/ice/include", "src/ice/include/ice"], libraries=[], library_dirs=["/usr/local/lib"], - sources=source_files, - extra_compile_args=compile_args, + sources=[ + "src/object_spy_message.cpp", + "src/defines.cpp", + "src/exceptions.cpp", + "src/dll.cpp", + "src/setup_module_auto_defines.cpp", + "src/main.cpp", + "src/methods.cpp", + "src/ice/src/ice_library_manager.cpp", + "src/ice/src/ice_library_name.cpp", + "src/ice/src/ice_library.cpp", + ], + extra_compile_args=get_ics_extension_compiler_arguments(), ) package_data = {} @@ -142,8 +122,8 @@ def read(fname): name="python_ics", version=get_pkg_version(), cmdclass={ - "build": build, - "test": UnitTests, + "build_libicsneo": _build_libicsneo, + "build_py": _build_ics_py, }, download_url="https://github.com/intrepidcs/python_ics/releases", packages=["ics", "ics.structures"], diff --git a/src/exceptions.cpp b/src/exceptions.cpp index 726cb0b80..f81d7a7a3 100644 --- a/src/exceptions.cpp +++ b/src/exceptions.cpp @@ -2,8 +2,6 @@ #include "defines.h" #include -#include "object_neo_device.h" - static PyObject* IcsArgumentError = NULL; static PyObject* IcsRuntimeError = NULL; @@ -74,38 +72,6 @@ PyObject* _set_ics_exception(PyObject* exception, char* msg, const char* func_na return NULL; } -PyObject* _set_ics_exception_dev(PyObject* exception, PyObject* obj, char* msg, const char* func_name) -{ - std::stringstream ss; - std::string function = std::string(func_name); - auto loc = function.find("meth_"); - if (loc != std::string::npos) { - function.erase(loc, 5); - } - ss << "Error: " << function << "(): " << msg; - if (obj && PyNeoDevice_CheckExact(obj)) { - ss << " ("; - // Grab the String "name" out of the NeoDeviceObject - char* name = PyUniStr_AsStrOrUTF8(PyNeoDevice_GetNeoDevice(obj)->name); - if (name) { - ss << name << " "; - } - char* b36sn = pyics_base36enc(PyNeoDevice_GetSerialNumber(obj)); - ss << PyNeoDevice_GetSerialNumber(obj); - if (b36sn != NULL && PyNeoDevice_GetSerialNumber(obj) >= MIN_BASE36_SERIAL /* "0A0000" */) { - ss << " - " << b36sn << ")"; - } else { - ss << ")"; - } - } - if (!exception) { - PyErr_SetString(PyExc_Exception, ss.str().c_str()); - } else { - PyErr_SetString(exception, ss.str().c_str()); - } - return NULL; -} - PyObject* exception_argument_error(void) { return IcsArgumentError; diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py new file mode 100644 index 000000000..0a586a9f0 --- /dev/null +++ b/src/ics/py_neo_device_ex.py @@ -0,0 +1,483 @@ +import ics +from ics.ics import SpyMessage +import ctypes +from typing import Tuple + +class PyNeoDeviceEx(ics.neo_device_ex.neo_device_ex): + """Wrapper class around ics.neo_device_ex.neo_device_ex to support a more pythonic way of doing things.""" + # Internal handle from icsneoOpenDevice() + _handle = None + # python_ics extension for grabbing the name of the device + _name: str = "Unknown" + # Automatically close the handle on garbage collection + _auto_handle_close: bool = True + + def __init__(self): + super().__init__() + + def __del__(self): + if self._auto_handle_close is True: + ics.close_device(self) + + def __str__(self): + return f"{self.Name} {self.serial_number}" + + def __repr__(self): + return f"" + + def __eq__(self, other) -> bool: + return \ + self.DeviceType == other.DeviceType and \ + self.Handle == other.Handle and \ + self.NumberOfClients == other.NumberOfClients and \ + self.MaxAllowedClients == other.MaxAllowedClients and \ + self.FirmwareMajor == other.FirmwareMajor and \ + self.FirmwareMinor == other.FirmwareMinor and \ + self.Status == other.Status and \ + self.Options == other.Options and \ + self.pAvailWIFINetwork == other.pAvailWIFINetwork and \ + self.isEthernetDevice == other.isEthernetDevice and \ + self.hardwareRev == other.hardwareRev and \ + self.revReserved == other.revReserved and \ + self.tcpPort == other.tcpPort + + @property + def _Handle(self): + """Return the internal device handle from icsneoOpenDevice()""" + if self._handle is None: + raise RuntimeError("Handle isn't valid for {self}. Is the device open?") + ctypes.pythonapi.PyCapsule_GetPointer.restype = ctypes.c_void_p + ctypes.pythonapi.PyCapsule_GetPointer.argtypes = [ctypes.py_object, ctypes.c_char_p] + return ctypes.pythonapi.PyCapsule_GetPointer(self._handle, None) + + @property + def Name(self) -> str: + """Return the internal device name from python_ics""" + return self._name + + @property + def DeviceType(self) -> int: + """Return the DeviceType from the internal NeoDevice object.""" + return self.neoDevice.DeviceType + + @property + def Handle(self): + """Return the Handle from the internal NeoDevice object.""" + return self.neoDevice.Handle + + @property + def NumberOfClients(self) -> int: + """Return the NumberOfClients from the internal NeoDevice object.""" + return self.neoDevice.NumberOfClients + + @property + def MaxAllowedClients(self) -> int: + """Return the MaxAllowedClients from the internal NeoDevice object.""" + return self.neoDevice.MaxAllowedClients + + @property + def SerialNumber(self) -> int: + """Return the SerialNumber from the internal NeoDevice object.""" + return self.neoDevice.SerialNumber + + @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) + else: + raise ValueError(f"Failed to convert SerialNumber {self.SerialNumber} to a valid serial number.") + + def open(self, *args, **kwargs): + """Open the device. Returns a reference to Self on open.""" + return ics.open_device(self, *args, **kwargs) + + def close(self): + """Close the device. Returns the number of errors on close.""" + return ics.close_device(self) + + def load_default_settings(self): + """Loads default settings on the device. Requires the device to be open.""" + return ics.load_default_settings(self) + + + def transmit_messages(self, *args, **kwargs): + """Transmit messages on the device. Requires the device to be open.""" + return ics.transmit_messages(self, *args, **kwargs) + + def get_messages(self, *args, **kwargs) -> Tuple[SpyMessage, int]: + """Get messages on the device. Requires the device to be open.""" + return ics.get_messages(self, *args, **kwargs) + + def coremini_clear(self, *args, **kwargs): + "See ics.coremini_clear for details on arguments." + return ics.coremini_clear(self, *args, **kwargs) + + + def coremini_get_fblock_status(self, *args, **kwargs): + "See ics.coremini_get_fblock_status for details on arguments." + return ics.coremini_get_fblock_status(self, *args, **kwargs) + + + def coremini_get_status(self, *args, **kwargs): + "See ics.coremini_get_status for details on arguments." + return ics.coremini_get_status(self, *args, **kwargs) + + + def coremini_load(self, *args, **kwargs): + "See ics.coremini_load for details on arguments." + return ics.coremini_load(self, *args, **kwargs) + + + def coremini_read_app_signal(self, *args, **kwargs): + "See ics.coremini_read_app_signal for details on arguments." + return ics.coremini_read_app_signal(self, *args, **kwargs) + + + def coremini_read_rx_message(self, *args, **kwargs): + "See ics.coremini_read_rx_message for details on arguments." + return ics.coremini_read_rx_message(self, *args, **kwargs) + + + def coremini_read_tx_message(self, *args, **kwargs): + "See ics.coremini_read_tx_message for details on arguments." + return ics.coremini_read_tx_message(self, *args, **kwargs) + + + def coremini_start(self, *args, **kwargs): + "See ics.coremini_start for details on arguments." + return ics.coremini_start(self, *args, **kwargs) + + + def coremini_start_fblock(self, *args, **kwargs): + "See ics.coremini_start_fblock for details on arguments." + return ics.coremini_start_fblock(self, *args, **kwargs) + + + def coremini_stop(self, *args, **kwargs): + "See ics.coremini_stop for details on arguments." + return ics.coremini_stop(self, *args, **kwargs) + + + def coremini_stop_fblock(self, *args, **kwargs): + "See ics.coremini_stop_fblock for details on arguments." + return ics.coremini_stop_fblock(self, *args, **kwargs) + + + def coremini_write_app_signal(self, *args, **kwargs): + "See ics.coremini_write_app_signal for details on arguments." + return ics.coremini_write_app_signal(self, *args, **kwargs) + + + def coremini_write_rx_message(self, *args, **kwargs): + "See ics.coremini_write_rx_message for details on arguments." + return ics.coremini_write_rx_message(self, *args, **kwargs) + + + def coremini_write_tx_message(self, *args, **kwargs): + "See ics.coremini_write_tx_message for details on arguments." + return ics.coremini_write_tx_message(self, *args, **kwargs) + + + def create_neovi_radio_message(self, *args, **kwargs): + "See ics.create_neovi_radio_message for details on arguments." + return ics.create_neovi_radio_message(self, *args, **kwargs) + + + def disk_format(self, *args, **kwargs): + "See ics.disk_format for details on arguments." + return ics.disk_format(self, *args, **kwargs) + + + def disk_format_cancel(self, *args, **kwargs): + "See ics.disk_format_cancel for details on arguments." + return ics.disk_format_cancel(self, *args, **kwargs) + + + def enable_bus_voltage_monitor(self, *args, **kwargs): + "See ics.enable_bus_voltage_monitor for details on arguments." + return ics.enable_bus_voltage_monitor(self, *args, **kwargs) + + + def enable_doip_line(self, *args, **kwargs): + "See ics.enable_doip_line for details on arguments." + return ics.enable_doip_line(self, *args, **kwargs) + + + def enable_network_com(self, *args, **kwargs): + "See ics.enable_network_com for details on arguments." + return ics.enable_network_com(self, *args, **kwargs) + + def firmware_update_required(self, *args, **kwargs): + "See ics.firmware_update_required for details on arguments." + return ics.firmware_update_required(self, *args, **kwargs) + + + def flash_accessory_firmware(self, *args, **kwargs): + "See ics.flash_accessory_firmware for details on arguments." + return ics.flash_accessory_firmware(self, *args, **kwargs) + + + def force_firmware_update(self, *args, **kwargs): + "See ics.force_firmware_update for details on arguments." + return ics.force_firmware_update(self, *args, **kwargs) + + + def generic_api_get_status(self, *args, **kwargs): + "See ics.generic_api_get_status for details on arguments." + return ics.generic_api_get_status(self, *args, **kwargs) + + + def generic_api_read_data(self, *args, **kwargs): + "See ics.generic_api_read_data for details on arguments." + return ics.generic_api_read_data(self, *args, **kwargs) + + + def generic_api_send_command(self, *args, **kwargs): + "See ics.generic_api_send_command for details on arguments." + return ics.generic_api_send_command(self, *args, **kwargs) + + + def get_accessory_firmware_version(self, *args, **kwargs): + "See ics.get_accessory_firmware_version for details on arguments." + return ics.get_accessory_firmware_version(self, *args, **kwargs) + + + def get_active_vnet_channel(self, *args, **kwargs): + "See ics.get_active_vnet_channel for details on arguments." + return ics.get_active_vnet_channel(self, *args, **kwargs) + + + def get_all_chip_versions(self, *args, **kwargs): + "See ics.get_all_chip_versions for details on arguments." + return ics.get_all_chip_versions(self, *args, **kwargs) + + + def get_backup_power_enabled(self, *args, **kwargs): + "See ics.get_backup_power_enabled for details on arguments." + return ics.get_backup_power_enabled(self, *args, **kwargs) + + + def get_backup_power_ready(self, *args, **kwargs): + "See ics.get_backup_power_ready for details on arguments." + return ics.get_backup_power_ready(self, *args, **kwargs) + + + def get_bus_voltage(self, *args, **kwargs): + "See ics.get_bus_voltage for details on arguments." + return ics.get_bus_voltage(self, *args, **kwargs) + + + def get_device_settings(self, *args, **kwargs): + "See ics.get_device_settings for details on arguments." + return ics.get_device_settings(self, *args, **kwargs) + + + def get_device_status(self, *args, **kwargs): + "See ics.get_device_status for details on arguments." + return ics.get_device_status(self, *args, **kwargs) + + + def get_disk_details(self, *args, **kwargs): + "See ics.get_disk_details for details on arguments." + return ics.get_disk_details(self, *args, **kwargs) + + + def get_disk_format_progress(self, *args, **kwargs): + "See ics.get_disk_format_progress for details on arguments." + return ics.get_disk_format_progress(self, *args, **kwargs) + + + def get_dll_firmware_info(self, *args, **kwargs): + "See ics.get_dll_firmware_info for details on arguments." + return ics.get_dll_firmware_info(self, *args, **kwargs) + + + def get_error_messages(self, *args, **kwargs): + "See ics.get_error_messages for details on arguments." + return ics.get_error_messages(self, *args, **kwargs) + + + def get_gptp_status(self, *args, **kwargs): + "See ics.get_gptp_status for details on arguments." + return ics.get_gptp_status(self, *args, **kwargs) + + + def get_hw_firmware_info(self, *args, **kwargs): + "See ics.get_hw_firmware_info for details on arguments." + return ics.get_hw_firmware_info(self, *args, **kwargs) + + + def get_last_api_error(self, *args, **kwargs): + "See ics.get_last_api_error for details on arguments." + return ics.get_last_api_error(self, *args, **kwargs) + + + def get_pcb_serial_number(self, *args, **kwargs): + "See ics.get_pcb_serial_number for details on arguments." + return ics.get_pcb_serial_number(self, *args, **kwargs) + + + def get_performance_parameters(self, *args, **kwargs): + "See ics.get_performance_parameters for details on arguments." + return ics.get_performance_parameters(self, *args, **kwargs) + + + def get_rtc(self, *args, **kwargs): + "See ics.get_rtc for details on arguments." + return ics.get_rtc(self, *args, **kwargs) + + + def get_script_status(self, *args, **kwargs): + "See ics.get_script_status for details on arguments." + return ics.get_script_status(self, *args, **kwargs) + + + def get_serial_number(self, *args, **kwargs): + "See ics.get_serial_number for details on arguments." + return ics.get_serial_number(self, *args, **kwargs) + + + def get_timestamp_for_msg(self, *args, **kwargs): + "See ics.get_timestamp_for_msg for details on arguments." + return ics.get_timestamp_for_msg(self, *args, **kwargs) + + + def is_device_feature_supported(self, *args, **kwargs): + "See ics.is_device_feature_supported for details on arguments." + return ics.is_device_feature_supported(self, *args, **kwargs) + + + def iso15765_disable_networks(self, *args, **kwargs): + "See ics.iso15765_disable_networks for details on arguments." + return ics.iso15765_disable_networks(self, *args, **kwargs) + + + def iso15765_enable_networks(self, *args, **kwargs): + "See ics.iso15765_enable_networks for details on arguments." + return ics.iso15765_enable_networks(self, *args, **kwargs) + + + def iso15765_receive_message(self, *args, **kwargs): + "See ics.iso15765_receive_message for details on arguments." + return ics.iso15765_receive_message(self, *args, **kwargs) + + + def iso15765_transmit_message(self, *args, **kwargs): + "See ics.iso15765_transmit_message for details on arguments." + return ics.iso15765_transmit_message(self, *args, **kwargs) + + + def read_jupiter_firmware(self, *args, **kwargs): + "See ics.read_jupiter_firmware for details on arguments." + return ics.read_jupiter_firmware(self, *args, **kwargs) + + + def read_sdcard(self, *args, **kwargs): + "See ics.read_sdcard for details on arguments." + return ics.read_sdcard(self, *args, **kwargs) + + + def request_enter_sleep_mode(self, *args, **kwargs): + "See ics.request_enter_sleep_mode for details on arguments." + return ics.request_enter_sleep_mode(self, *args, **kwargs) + + + def set_active_vnet_channel(self, *args, **kwargs): + "See ics.set_active_vnet_channel for details on arguments." + return ics.set_active_vnet_channel(self, *args, **kwargs) + + + def set_backup_power_enabled(self, *args, **kwargs): + "See ics.set_backup_power_enabled for details on arguments." + return ics.set_backup_power_enabled(self, *args, **kwargs) + + + def set_bit_rate(self, *args, **kwargs): + "See ics.set_bit_rate for details on arguments." + return ics.set_bit_rate(self, *args, **kwargs) + + + def set_bit_rate_ex(self, *args, **kwargs): + "See ics.set_bit_rate_ex for details on arguments." + return ics.set_bit_rate_ex(self, *args, **kwargs) + + + def set_device_settings(self, *args, **kwargs): + "See ics.set_device_settings for details on arguments." + return ics.set_device_settings(self, *args, **kwargs) + + + def set_fd_bit_rate(self, *args, **kwargs): + "See ics.set_fd_bit_rate for details on arguments." + return ics.set_fd_bit_rate(self, *args, **kwargs) + + + def set_led_property(self, *args, **kwargs): + "See ics.set_led_property for details on arguments." + return ics.set_led_property(self, *args, **kwargs) + + def set_rtc(self, *args, **kwargs): + "See ics.set_rtc for details on arguments." + return ics.set_rtc(self, *args, **kwargs) + + + def start_dhcp_server(self, *args, **kwargs): + "See ics.start_dhcp_server for details on arguments." + return ics.start_dhcp_server(self, *args, **kwargs) + + + def stop_dhcp_server(self, *args, **kwargs): + "See ics.stop_dhcp_server for details on arguments." + return ics.stop_dhcp_server(self, *args, **kwargs) + + + def uart_get_baudrate(self, *args, **kwargs): + "See ics.uart_get_baudrate for details on arguments." + return ics.uart_get_baudrate(self, *args, **kwargs) + + + def uart_read(self, *args, **kwargs): + "See ics.uart_read for details on arguments." + return ics.uart_read(self, *args, **kwargs) + + + def uart_set_baudrate(self, *args, **kwargs): + "See ics.uart_set_baudrate for details on arguments." + return ics.uart_set_baudrate(self, *args, **kwargs) + + + def uart_write(self, *args, **kwargs): + "See ics.uart_write for details on arguments." + return ics.uart_write(self, *args, **kwargs) + + + def validate_hobject(self, *args, **kwargs): + "See ics.validate_hobject for details on arguments." + return ics.validate_hobject(self, *args, **kwargs) + + + def wbms_manager_reset(self, *args, **kwargs): + "See ics.wbms_manager_reset for details on arguments." + return ics.wbms_manager_reset(self, *args, **kwargs) + + + def wbms_manager_write_lock(self, *args, **kwargs): + "See ics.wbms_manager_write_lock for details on arguments." + return ics.wbms_manager_write_lock(self, *args, **kwargs) + + + def write_jupiter_firmware(self, *args, **kwargs): + "See ics.write_jupiter_firmware for details on arguments." + return ics.write_jupiter_firmware(self, *args, **kwargs) + + + def write_sdcard(self, *args, **kwargs): + "See ics.write_sdcard for details on arguments." + return ics.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 diff --git a/src/icsdebug.py b/src/icsdebug.py index 8d808e65a..7b83b6c5c 100644 --- a/src/icsdebug.py +++ b/src/icsdebug.py @@ -1,12 +1,24 @@ -import os -print(os.getpid()) - import ics + +def show_clients(): + for d in ics.find_devices(): + print(d, d.NumberOfClients) + +print("Find...") devices = ics.find_devices() -print(f"Found {len(devices)} devices...") -for device in devices: - print(device) - ics.open_device(device) - ics.close_device(device) +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.") -print("Done.") \ No newline at end of file +# New Style +d = devices[0] +d.open(config_read=0) +d.load_default_settings() +d.close() diff --git a/src/main.cpp b/src/main.cpp index 3ffbf974e..df84fe5ca 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,7 +6,6 @@ #include "methods.h" #include "exceptions.h" #include "object_spy_message.h" -#include "object_neo_device.h" #define _DOC_ICS_MODULE \ "Python C Code module for interfacing to the icsneo40 dynamic library. Code tries\n" \ @@ -31,14 +30,14 @@ "\t...\n" \ "\tneoVI FIRE 59886\n" \ "\n" \ - "It should be noted that :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "It should be noted that :class:` PyNeoDeviceEx" \ "` is used a little bit differently than the C API.\n" \ - ":class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME "` contains two extra members:\n" \ - ":class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME ".AutoHandleClose` and :class:`" MODULE_NAME \ - "." NEO_DEVICE_OBJECT_NAME "._Handle`\n\n" \ + ":class:` PyNeoDeviceEx" "` contains two extra members:\n" \ + ":class:` PyNeoDeviceEx" ".AutoHandleClose` and :class:`" MODULE_NAME \ + ".PyNeoDeviceEx._Handle`\n\n" \ "The handle normally returned from `icsneoOpenNeoDevice()` is stored inside _Handle and setting AutoHandleClose " \ "to True (Default)\n" \ - "will automatically close the handle when the :class:`" MODULE_NAME "." NEO_DEVICE_OBJECT_NAME \ + "will automatically close the handle when the :class:` PyNeoDeviceEx" \ "` goes out of scope.\n" \ "\n" \ "\n" \ @@ -86,8 +85,6 @@ extern "C" initialize_exceptions(module); - // These were a WIP, as you get towards the bottom the code structure is simplier. - setup_neo_device_object(module); setup_spy_message_object(module); return module; diff --git a/src/methods.cpp b/src/methods.cpp index 6d30e76b7..8612cae8a 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -11,7 +11,6 @@ #endif #include #include "object_spy_message.h" -#include "object_neo_device.h" #include "setup_module_auto_defines.h" #include @@ -188,7 +187,7 @@ char* neodevice_to_string(unsigned long type) bool _convertListOrTupleToArray(PyObject* obj, std::vector* results) { if (!obj || !results) { - set_ics_exception(exception_runtime_error(), "_convertListOrTupleToArray() was passed invalid arguments"); + set_ics_exception(exception_runtime_error(), "passed invalid arguments"); return false; } results->clear(); @@ -203,10 +202,10 @@ bool _convertListOrTupleToArray(PyObject* obj, std::vector* results) results->push_back(PyTuple_GetItem(obj, i)); return true; } else { - set_ics_exception(exception_runtime_error(), "_convertListOrTupleToArray() was passed neither a list or tuple"); + set_ics_exception(exception_runtime_error(), "was passed neither a list or tuple"); return false; } - set_ics_exception(exception_runtime_error(), "_convertListOrTupleToArray() bug!"); + set_ics_exception(exception_runtime_error(), "bug!"); return false; } @@ -265,6 +264,189 @@ int _isPythonModuleObject_IsInstance(PyObject* object, const char* module_name, return PyObject_IsInstance(object, module_object); } +// Returns true if object instance is the same as ics.py_neo_device_ex.PyNeoDeviceEx +bool PyNeoDeviceEx_CheckExact(PyObject* object) +{ + const char CLASS_NAME[] = "PyNeoDeviceEx"; + if (!object) { + return false; + } + PyTypeObject* type_obj = Py_TYPE(object); + if (!type_obj && !type_obj->tp_name) { + return false; + } + + 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; +} + + +// 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 +// to PyBuffer_Release(), similar to malloc() and free(). +// +// Returns true on success, false on failure with exception set. nde will be set to NULL on failure. +// Example: +// Py_buffer buffer = {}; +// NeoDeviceEx* nde = NULL; +// if (PyNeoDeviceEx_GetNeoDeviceEx(obj, &buffer, &nde)) { +// // use nde here +// } +// PyBuffer_Release(&buffer); +bool PyNeoDeviceEx_GetNeoDeviceEx(PyObject* object, Py_buffer* buffer, NeoDeviceEx** nde) +{ + if (!object && !buffer && !nde) { + set_ics_exception(exception_runtime_error(), "Object and or buffer is not valid"); + nde = NULL; + return false; + } + if (!PyNeoDeviceEx_CheckExact(object)) { + set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + nde = NULL; + return false; + } + if (PyObject_GetBuffer(object, buffer, PyBUF_CONTIG) != 0) { + *nde = NULL; + return false; + } + *nde = (NeoDeviceEx*)buffer->buf; + return true; +} + +// Copies the NeoDeviceEx src_nde to the PyNeoDeviceEx object. Returns true on success, false on +// error with an exception set. +bool PyNeoDeviceEx_SetNeoDeviceEx(PyObject* object, NeoDeviceEx* src_nde) +{ + if (!object || !src_nde) { + return false; + } + if (!PyNeoDeviceEx_CheckExact(object)) { + set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + return false; + } + // Get the NeoDeviceEx from PyNeoDeviceEx + Py_buffer buffer = {}; + NeoDeviceEx* nde = NULL; + int res = PyObject_GetBuffer(object, &buffer, PyBUF_CONTIG); + memcpy(buffer.buf, src_nde, sizeof(*src_nde)); + PyBuffer_Release(&buffer); + return true; +} + +void __destroy_PyNeoDeviceEx_Handle(PyObject* handle) +{ + /* + if (handle) { + delete handle; + handle = NULL; + } + */ +} + +// Return the _handle attribute of PyNeoDeviceEx. Sets handle to NULL on failure or not valid. +// Returns false on error and exception is set. Returns true on success. +bool PyNeoDeviceEx_GetHandle(PyObject* object, void** handle) +{ + if (!object && !handle && !*handle) { + set_ics_exception(exception_runtime_error(), "Object is not valid"); + return false; + } + *handle = NULL; + if (!PyNeoDeviceEx_CheckExact(object)) { + return set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + } + PyObject* _handle = PyObject_GetAttrString(object, "_handle"); + if (!_handle) { + return false; + } + if (!PyCapsule_CheckExact(_handle)) { + return true; + } + void* ptr = PyCapsule_GetPointer(_handle, NULL); + if (!ptr) { + return false; + } + *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) +{ + if (!object) { + set_ics_exception(exception_runtime_error(), "Object is not valid"); + return false; + } + if (!PyNeoDeviceEx_CheckExact(object)) { + set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + return false; + } + PyObject* _handle = PyObject_GetAttrString(object, "_handle"); + if (!_handle) { + return false; + } + if (!PyCapsule_CheckExact(_handle) && handle) { + PyObject* capsule = PyCapsule_New(handle, NULL, __destroy_PyNeoDeviceEx_Handle); + if (!capsule) { + return false; + } + if (PyObject_SetAttrString(object, "_handle", capsule) != 0) { + return false; + } + } else if (handle) { + if (!PyCapsule_SetPointer(_handle, handle)) { + return NULL; + } + } else { + if (PyObject_SetAttrString(object, "_handle", Py_None) != 0) { + return false; + } + } + return true; +} + +// 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) { + set_ics_exception(exception_runtime_error(), "Object is not valid"); + return false; + } + if (!PyNeoDeviceEx_CheckExact(object)) { + set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + return false; + } + // Get the _name of PyNeoDeviceEx + name = PyObject_GetAttrString(object, "_name"); + return name != NULL; +} + +// Set the _name attribute of PyNeoDeviceEx. Will create if needed. +// Returns false on error and exception is set. Returns true on success. +bool PyNeoDeviceEx_SetName(PyObject* object, PyObject* name) +{ + if (!object) { + set_ics_exception(exception_runtime_error(), "Object is not valid"); + return false; + } + if (!PyNeoDeviceEx_CheckExact(object)) { + set_ics_exception(exception_runtime_error(), "Object is not of type PyNeoDeviceEx"); + return false; + } + if (!PyUnicode_CheckExact(name)) { + set_ics_exception(exception_runtime_error(), "name is not of type str"); + return false; + } + // Get the _handle of PyNeoDeviceEx + return PyObject_SetAttrString(object, "_name", name) == 0; +} + + PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) { PyObject* device_types = NULL; @@ -333,16 +515,21 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) return NULL; } for (int i = 0; i < count; ++i) { - PyObject* obj = PyObject_CallObject((PyObject*)&neo_device_object_type, NULL); + PyObject* obj = _getPythonModuleObject("ics.py_neo_device_ex", "PyNeoDeviceEx"); 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 " NEO_DEVICE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), "Failed to allocate PyNeoDeviceEx"); + } + // Copy the NeoDeviceEx struct into our python NeoDevice object + if (!PyNeoDeviceEx_SetNeoDeviceEx(obj, &devices[i])) { + return NULL; + } + if (!PyNeoDeviceEx_SetName(obj, + PyUnicode_FromString( + neodevice_to_string(devices[i].neoDevice.DeviceType) + )) + ) { + return NULL; } - // Copy the NeoDevice struct into our python NeoDevice object - neo_device_object* neo_device = (neo_device_object*)obj; - neo_device->dev = devices[i].neoDevice; - neo_device->name = PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)); PyTuple_SetItem(tuple, i, obj); } return tuple; @@ -424,10 +611,10 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) } else { return set_ics_exception(exception_runtime_error(), "Failed to convert serial number string to integer."); } - } else if (device && !PyNeoDevice_CheckExact(device)) { + } else if (device && !PyNeoDeviceEx_CheckExact(device)) { return set_ics_exception(exception_runtime_error(), "Invalid 'device' parameter object type passed to open_device()."); - } else if (device && PyNeoDevice_CheckExact(device)) { + } else if (device && PyNeoDeviceEx_CheckExact(device)) { // If the user passed in a NeoDevice device we need to increment // the reference counter when we return it since device is a borrowed // reference. @@ -437,7 +624,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) device_need_ref_inc = true; } - if ((device && !PyNeoDevice_CheckExact(device)) || !device) { + if ((device && !PyNeoDeviceEx_CheckExact(device)) || !device) { // We don't have a device parameter so lets find the first one try { ice::Functiondev = devices[i].neoDevice; - PyNeoDevice_GetNeoDevice(device)->name = - PyUnicode_FromString(neodevice_to_string(devices[i].neoDevice.DeviceType)); + device = _getPythonModuleObject("ics.py_neo_device_ex", "PyNeoDeviceEx"); + if (!device) { + return NULL; + } + if (!PyNeoDeviceEx_SetNeoDeviceEx(device, &devices[i])) { + return NULL; + } + if (!PyNeoDeviceEx_SetName(device, + PyUnicode_FromString( + neodevice_to_string(devices[i].neoDevice.DeviceType) + )) + ) { + return NULL; + } break; } - if (!device || !PyNeoDevice_CheckExact(device)) { + if (!device || !PyNeoDeviceEx_CheckExact(device)) { return set_ics_exception(exception_runtime_error(), "Failed to find a device to open."); } } catch (ice::Exception& ex) { @@ -496,27 +693,40 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) */ ice::Function icsneoOpenDevice(lib, "icsneoOpenDevice"); - NeoDeviceEx neo_device_ex = {}; - neo_device_ex.neoDevice = PyNeoDevice_GetNeoDevice(device)->dev; OptionsFindNeoEx opts = { 0 }; opts.CANOptions.iNetworkID = network_id; POptionsFindNeoEx popts = NULL; if (network_id != -1) popts = &opts; - + // Get the handle from PyNeoDeviceEx + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(device, &handle)) { + return NULL; + } + // Get the NeoDeviceEx from PyNeoDeviceEx + Py_buffer buffer = {}; + NeoDeviceEx* nde = NULL; + if (!PyNeoDeviceEx_GetNeoDeviceEx(device, &buffer, &nde)) { + PyBuffer_Release(&buffer); + return NULL; + } Py_BEGIN_ALLOW_THREADS; - if (!icsneoOpenDevice(&neo_device_ex, - &PyNeoDevice_GetNeoDevice(device)->handle, + if (!icsneoOpenDevice(nde, + &handle, use_network_ids ? network_ids_list.get() : NULL, config_read, options, (network_id != -1) ? popts : NULL, 0)) { Py_BLOCK_THREADS; + PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "icsneoOpenDevice() Failed"); } Py_END_ALLOW_THREADS; - + PyBuffer_Release(&buffer); + if (!PyNeoDeviceEx_SetHandle(device, handle)) { + return NULL; + } if (device_need_ref_inc) { Py_INCREF(device); } @@ -533,9 +743,13 @@ PyObject* meth_close_device(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (obj == 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 " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); } try { ice::Library* lib = dll_get_library(); @@ -543,17 +757,27 @@ PyObject* meth_close_device(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoClosePort(lib, "icsneoClosePort"); - ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); + ice::Function icsneoClosePort(lib, "icsneoClosePort"); + ice::Function icsneoFreeObject(lib, "icsneoFreeObject"); int error_count = 0; + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } + // nothing to do here, we have an invalid handle. We probably were never opened. + if (!handle) { + return Py_BuildValue("i", error_count); + } Py_BEGIN_ALLOW_THREADS; - if (!icsneoClosePort(PyNeoDevice_GetNeoDevice(obj)->handle, &error_count)) { + if (!icsneoClosePort(handle, &error_count)) { Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoClosePort() Failed"); } - icsneoFreeObject(PyNeoDevice_GetNeoDevice(obj)->handle); + icsneoFreeObject(handle); Py_END_ALLOW_THREADS; - PyNeoDevice_GetNeoDevice(obj)->handle = 0; + if (!PyNeoDeviceEx_SetHandle(obj, NULL)) { + return NULL; + } return Py_BuildValue("i", error_count); } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -605,11 +829,14 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); icsSpyTime ics_time; try { ice::Library* lib = dll_get_library(); @@ -617,7 +844,7 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetRTC(lib, "icsneoGetRTC"); + ice::Function icsneoGetRTC(lib, "icsneoGetRTC"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetRTC(handle, &ics_time)) { Py_BLOCK_THREADS; @@ -663,11 +890,14 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|O:", __FUNCTION__), &obj, &datetime_object)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; PyDateTime_IMPORT; if (!PyDateTimeAPI) { return set_ics_exception(exception_runtime_error(), "Failed to initialize PyDateTime"); @@ -698,7 +928,7 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetRTC(lib, "icsneoSetRTC"); + ice::Function icsneoSetRTC(lib, "icsneoSetRTC"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetRTC(handle, &ics_time)) { Py_BLOCK_THREADS; @@ -721,11 +951,14 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OOi:", __FUNCTION__), &obj, &arg_data, &location)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; long fsize; unsigned char* data = NULL; int data_size = 0; @@ -737,14 +970,14 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) char* file_name = PyUniStr_AsStrOrUTF8(arg_data); #endif if (!file_name) { - return set_ics_exception_dev(exception_runtime_error(), obj, "Failed to convert file path to string"); + return set_ics_exception(exception_runtime_error(), "Failed to convert file path to string"); } FILE* f; f = fopen(file_name, "rb"); if (!f) { std::stringstream ss; ss << "Failed to open CoreMini script file: '" << file_name << "'. Please make sure path exists"; - return set_ics_exception_dev(exception_runtime_error(), obj, (char*)ss.str().c_str()); + return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); } fseek(f, 0, SEEK_END); fsize = ftell(f); @@ -753,7 +986,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) data_size = (int)fread(data, 1, fsize, f); fclose(f); if (fsize != data_size) { - return set_ics_exception_dev(exception_runtime_error(), obj, "CoreMini binary file size mismatch"); + return set_ics_exception(exception_runtime_error(), "CoreMini binary file size mismatch"); } } else if (PyTuple_CheckExact(arg_data)) { Py_ssize_t tuple_size = PyTuple_Size(arg_data); @@ -762,15 +995,15 @@ 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_dev( - exception_runtime_error(), obj, "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)); } fsize = tuple_size; data_size = fsize; } else { - return set_ics_exception_dev(exception_runtime_error(), obj, "Argument must be filepath or tuple"); + return set_ics_exception(exception_runtime_error(), "Argument must be filepath or tuple"); } try { ice::Library* lib = dll_get_library(); @@ -778,7 +1011,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptLoad( + ice::Function icsneoScriptLoad( lib, "icsneoScriptLoad"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptLoad(handle, data, data_size, location)) { @@ -800,18 +1033,21 @@ PyObject* meth_coremini_start(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &location)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStart(lib, "icsneoScriptStart"); + ice::Function icsneoScriptStart(lib, "icsneoScriptStart"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStart(handle, location)) { Py_BLOCK_THREADS; @@ -831,18 +1067,21 @@ PyObject* meth_coremini_stop(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStop(lib, "icsneoScriptStop"); + ice::Function icsneoScriptStop(lib, "icsneoScriptStop"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStop(handle)) { Py_BLOCK_THREADS; @@ -863,11 +1102,14 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &location)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); @@ -875,7 +1117,7 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptClear(lib, "icsneoScriptClear"); + ice::Function icsneoScriptClear(lib, "icsneoScriptClear"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptClear(handle, location)) { Py_BLOCK_THREADS; @@ -895,11 +1137,14 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); @@ -907,7 +1152,7 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptGetScriptStatus(lib, "icsneoScriptGetScriptStatus"); + ice::Function icsneoScriptGetScriptStatus(lib, "icsneoScriptGetScriptStatus"); int status = 0; Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptGetScriptStatus(handle, &status)) { @@ -930,11 +1175,14 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &temp)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); PyObject* tuple = temp; if (!PyTuple_CheckExact(temp)) { tuple = Py_BuildValue("(O)", temp); @@ -952,7 +1200,7 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoTxMessages(lib, "icsneoTxMessages"); + ice::Function icsneoTxMessages(lib, "icsneoTxMessages"); const Py_ssize_t TUPLE_COUNT = PyTuple_Size(tuple); icsSpyMessage** msgs = new icsSpyMessage*[TUPLE_COUNT](); for (int i = 0; i < TUPLE_COUNT; ++i) { @@ -1006,11 +1254,14 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|bd:", __FUNCTION__), &obj, &use_j1850, &timeout)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); // Convert timeout to ms timeout *= 1000; try { @@ -1019,9 +1270,9 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoWaitForRxMessagesWithTimeOut( + ice::Function icsneoWaitForRxMessagesWithTimeOut( lib, "icsneoWaitForRxMessagesWithTimeOut"); - ice::Function icsneoGetMessages(lib, + ice::Function icsneoGetMessages(lib, "icsneoGetMessages"); int count = 20000; int errors = 0; @@ -1034,14 +1285,14 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) if (!msgs) { // This should only happen if we run out of memory (malloc failure)? PyErr_Print(); - return set_ics_exception_dev(exception_runtime_error(), obj, "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); + return set_ics_exception(exception_runtime_error(), "Failed to allocate " SPY_MESSAGE_OBJECT_NAME); } Py_BEGIN_ALLOW_THREADS; if (timeout == 0 || icsneoWaitForRxMessagesWithTimeOut(handle, (unsigned int)timeout)) { if (!icsneoGetMessages(handle, (icsSpyMessage*)msgs, &count, &errors)) { Py_BLOCK_THREADS; PyMem_Free(msgs); - return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoGetMessages() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoGetMessages() Failed"); } } else { count = 0; @@ -1058,8 +1309,8 @@ 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_dev( - exception_runtime_error(), obj, "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; @@ -1081,9 +1332,9 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) PyMem_Del(msgs); return result; } catch (ice::Exception& ex) { - return set_ics_exception_dev(exception_runtime_error(), obj, (char*)ex.what()); + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); } - return set_ics_exception_dev(exception_runtime_error(), obj, "This is a bug!"); + return set_ics_exception(exception_runtime_error(), "This is a bug!"); } PyObject* meth_get_script_status(PyObject* self, PyObject* args) @@ -1092,11 +1343,14 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); unsigned long parameters[255] = { 0 }; unsigned long parameters_count = 0; @@ -1106,7 +1360,7 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function + ice::Function icsneoScriptGetScriptStatusEx(lib, "icsneoScriptGetScriptStatusEx"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptGetScriptStatusEx( @@ -1133,11 +1387,14 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); int errors[600] = { 0 }; int error_count = 600; @@ -1147,7 +1404,7 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetErrorMessages(lib, "icsneoGetErrorMessages"); + 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(), @@ -1214,11 +1471,10 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO|O:", __FUNCTION__), &obj, &dict, &callback)) { return NULL; } - if (obj && !PyNeoDevice_CheckExact(obj)) { + if (obj && !PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "First argument must be of " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " type"); + "First argument must be of PyNeoDeviceEx type"); } - neo_device_object* neo_device = (neo_device_object*)obj; if (PyCallable_Check(callback) || PyObject_HasAttrString(callback, "message_callback")) { msg_callback = callback; } else { @@ -1255,6 +1511,13 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } + // Get the NeoDeviceEx from PyNeoDeviceEx + Py_buffer buffer = {}; + NeoDeviceEx* nde = NULL; + if (!PyNeoDeviceEx_GetNeoDeviceEx(device, &buffer, &nde)) { + PyBuffer_Release(&buffer); + return NULL; + } ice::Function FlashDevice2(lib, "FlashDevice2"); Py_BEGIN_ALLOW_THREADS; - if (!FlashDevice2(0x3835C256, &(neo_device->dev), rc, reflash_count, 0, 0, 0, &message_callback)) { + if (!FlashDevice2(0x3835C256, &nde->neoDevice, rc, reflash_count, 0, 0, 0, &message_callback)) { Py_BLOCK_THREADS; + PyBuffer_Release(&buffer); return set_ics_exception(exception_runtime_error(), "FlashDevice2() Failed"); } Py_END_ALLOW_THREADS; + PyBuffer_Release(&buffer); Py_RETURN_NONE; } catch (ice::Exception& ex) { return set_ics_exception(exception_runtime_error(), (char*)ex.what()); @@ -1350,16 +1615,19 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) } // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&settings_buffer) when done. Py_buffer settings_buffer = {}; - PyObject_GetBuffer(settings, &settings_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + PyObject_GetBuffer(settings, &settings_buffer, PyBUF_CONTIG); // Verify we have a valid NeoDevice Object - This comes after s_device_settings allocation for testing purposes - if (!PyNeoDevice_CheckExact(obj)) { + 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 "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -1374,7 +1642,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) if (device_type_override == -1) { // int _stdcall icsneoGetDeviceSettingsType(void* hObject, EPlasmaIonVnetChannel_t vnetSlot, // EDeviceSettingsType* pDeviceSettingsType) - ice::Function + ice::Function icsneoGetDeviceSettingsType(lib, "icsneoGetDeviceSettingsType"); if (!icsneoGetDeviceSettingsType(handle, vnet_slot, setting_type)) { Py_BLOCK_THREADS; @@ -1385,7 +1653,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) } // int _stdcall icsneoGetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int iNumBytes, // EPlasmaIonVnetChannel_t vnetSlot) - ice::Function + ice::Function icsneoGetDeviceSettings(lib, "icsneoGetDeviceSettings"); if (!icsneoGetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, vnet_slot)) { Py_BLOCK_THREADS; @@ -1412,11 +1680,14 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO|ik:", __FUNCTION__), &obj, &settings, &save_to_eeprom, &vnet_slot)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); @@ -1427,16 +1698,16 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) // int _stdcall icsneoSetDeviceSettings(void* hObject, SDeviceSettings* pSettings, int bSaveToEEPROM, // EPlasmaIonVnetChannel_t vnetSlot) int _stdcall icsneoSetDeviceSettings(void* hObject, SDeviceSettings* // pSettings, int iNumBytes, int bSaveToEEPROM, EPlasmaIonVnetChannel_t vnetSlot) - ice::Function + ice::Function icsneoSetDeviceSettings(lib, "icsneoSetDeviceSettings"); Py_buffer settings_buffer = {}; - PyObject_GetBuffer(settings, &settings_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + PyObject_GetBuffer(settings, &settings_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetDeviceSettings( handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, save_to_eeprom, vnet_slot)) { Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); - return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoSetDeviceSettings() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoSetDeviceSettings() Failed"); } Py_END_ALLOW_THREADS; PyBuffer_Release(&settings_buffer); @@ -1453,11 +1724,14 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); int errors[600] = { 0 }; int error_count = 600; PyObject* list = PyList_New(0); @@ -1467,11 +1741,15 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); + ice::Function icsneoLoadDefaultSettings(lib, "icsneoLoadDefaultSettings"); + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } Py_BEGIN_ALLOW_THREADS; - if (!icsneoLoadDefaultSettings(PyNeoDevice_GetNeoDevice(obj)->handle)) { + if (!icsneoLoadDefaultSettings(handle)) { Py_BLOCK_THREADS; - return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoLoadDefaultSettings() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoLoadDefaultSettings() Failed"); } Py_END_ALLOW_THREADS; Py_RETURN_NONE; @@ -1491,9 +1769,9 @@ PyObject* meth_read_sdcard(PyObject* self, if (!PyArg_ParseTuple(args, arg_parse("Ok:", __FUNCTION__), &obj, &index, &size)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); } // We only read 512 bytes internally, x4 for future compatibility? unsigned char data[2048] = { 0 }; @@ -1503,12 +1781,16 @@ PyObject* meth_read_sdcard(PyObject* self, char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoReadSDCard( + ice::Function icsneoReadSDCard( lib, "icsneoReadSDCard"); + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } Py_BEGIN_ALLOW_THREADS; - if (!icsneoReadSDCard(PyNeoDevice_GetNeoDevice(obj)->handle, index, data, &size)) { + if (!icsneoReadSDCard(handle, index, data, &size)) { Py_BLOCK_THREADS; - return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoReadSDCard() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoReadSDCard() Failed"); } Py_END_ALLOW_THREADS; PyObject* tuple = PyTuple_New(size); @@ -1537,9 +1819,9 @@ PyObject* meth_write_sdcard( if (!PyArg_ParseTuple(args, arg_parse("OkO:", __FUNCTION__), &obj, &index, &ba_obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); } if (!PyByteArray_CheckExact(ba_obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be a bytearray"); @@ -1554,13 +1836,16 @@ PyObject* meth_write_sdcard( char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoWriteSDCard(lib, + ice::Function icsneoWriteSDCard(lib, "icsneoWriteSDCard"); + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } Py_BEGIN_ALLOW_THREADS; - if (!icsneoWriteSDCard( - PyNeoDevice_GetNeoDevice(obj)->handle, index, (unsigned char*)PyByteArray_AsString(ba_obj))) { + if (!icsneoWriteSDCard(handle, index, (unsigned char*)PyByteArray_AsString(ba_obj))) { Py_BLOCK_THREADS; - return set_ics_exception_dev(exception_runtime_error(), obj, "icsneoWriteSDCard() Failed"); + return set_ics_exception(exception_runtime_error(), "icsneoWriteSDCard() Failed"); } Py_END_ALLOW_THREADS; Py_RETURN_NONE; @@ -1629,18 +1914,21 @@ PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStartFBlock(lib, "icsneoScriptStartFBlock"); + ice::Function icsneoScriptStartFBlock(lib, "icsneoScriptStartFBlock"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStartFBlock(handle, index)) { Py_BLOCK_THREADS; @@ -1661,18 +1949,21 @@ PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptStopFBlock(lib, "icsneoScriptStopFBlock"); + ice::Function icsneoScriptStopFBlock(lib, "icsneoScriptStopFBlock"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptStopFBlock(handle, index)) { Py_BLOCK_THREADS; @@ -1693,18 +1984,21 @@ PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptGetFBlockStatus( + ice::Function icsneoScriptGetFBlockStatus( lib, "icsneoScriptGetFBlockStatus"); int status = 0; Py_BEGIN_ALLOW_THREADS; @@ -1727,18 +2021,21 @@ PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // Scrip if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &index)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptReadAppSignal( + ice::Function icsneoScriptReadAppSignal( lib, "icsneoScriptReadAppSignal"); double value = 0; Py_BEGIN_ALLOW_THREADS; @@ -1762,18 +2059,21 @@ PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // Scri if (!PyArg_ParseTuple(args, arg_parse("Oid:", __FUNCTION__), &obj, &index, &value)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptWriteAppSignal( + ice::Function icsneoScriptWriteAppSignal( lib, "icsneoScriptWriteAppSignal"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptWriteAppSignal(handle, index, value)) { @@ -1796,18 +2096,21 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &index, &j1850)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptReadTxMessage( + ice::Function icsneoScriptReadTxMessage( lib, "icsneoScriptReadTxMessage"); PyObject* msg = NULL; if (j1850) { @@ -1853,18 +2156,21 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip if (!PyArg_ParseTuple(args, arg_parse("Oi|b:", __FUNCTION__), &obj, &index, &j1850)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptReadRxMessage( + ice::Function icsneoScriptReadRxMessage( lib, "icsneoScriptReadRxMessage"); PyObject* msg = NULL; PyObject* msg_mask = NULL; @@ -1929,11 +2235,14 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn if (!PyArg_ParseTuple(args, arg_parse("OiO|b:", __FUNCTION__), &obj, &index, &msg_obj, &j1850)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; void* msg = NULL; void* msg_mask = NULL; if (j1850) { @@ -1957,7 +2266,7 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptWriteTxMessage( + ice::Function icsneoScriptWriteTxMessage( lib, "icsneoScriptWriteTxMessage"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptWriteTxMessage(handle, index, msg)) { @@ -1982,11 +2291,14 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsn if (!PyArg_ParseTuple(args, arg_parse("OiOO|b:", __FUNCTION__), &obj, &index, &msg_obj, &msg_mask_obj, &j1850)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; void* msg = NULL; void* msg_mask = NULL; if (j1850) { @@ -2022,7 +2334,7 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsn char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptWriteRxMessage( + ice::Function icsneoScriptWriteRxMessage( lib, "icsneoScriptWriteRxMessage"); if (!icsneoScriptWriteRxMessage(handle, index, msg, msg_mask)) { return set_ics_exception(exception_runtime_error(), "icsneoScriptWriteRxMessage() Failed"); @@ -2040,18 +2352,21 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function + ice::Function icsneoGetPerformanceParameters(lib, "icsneoGetPerformanceParameters"); int buffer_count = 0; int buffer_max = 0; @@ -2096,18 +2411,21 @@ PyObject* meth_validate_hobject(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyLong_CheckExact(obj) && !PyNeoDevice_CheckExact(obj)) { + if (!PyLong_CheckExact(obj) && !PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME " or Integer"); + "Argument must be of type PyNeoDeviceEx" " or Integer"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoValidateHObject(lib, "icsneoValidateHObject"); + ice::Function icsneoValidateHObject(lib, "icsneoValidateHObject"); Py_BEGIN_ALLOW_THREADS; if (!icsneoValidateHObject(handle)) { Py_BLOCK_THREADS; @@ -2127,18 +2445,21 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); + ice::Function icsneoGetLastAPIError(lib, "icsneoGetLastAPIError"); ice::Function icsneoGetErrorInfo( lib, "icsneoGetErrorInfo"); int error = 0; @@ -2195,11 +2516,14 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -2227,25 +2551,28 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetHWFirmwareInfo(lib, + ice::Function icsneoGetHWFirmwareInfo(lib, "icsneoGetHWFirmwareInfo"); PyObject* info = _getPythonModuleObject("ics.structures.st_api_firmware_info", "st_api_firmware_info"); if (!info) { return NULL; } Py_buffer info_buffer = {}; - PyObject_GetBuffer(info, &info_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(info, &info_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetHWFirmwareInfo(handle, (stAPIFirmwareInfo*)info_buffer.buf)) { @@ -2288,18 +2615,21 @@ PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oii|i:", __FUNCTION__), &obj, &timeout_ms, &mode, &reserved)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestEnterSleepMode( + ice::Function icsneoRequestEnterSleepMode( lib, "icsneoRequestEnterSleepMode"); Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestEnterSleepMode(handle, timeout_ms, mode, reserved)) { @@ -2320,20 +2650,22 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj) && !PyLong_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = 0; - if (PyNeoDevice_CheckExact(obj)) - handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetContext(lib, "icsneoSetContext"); + ice::Function icsneoSetContext(lib, "icsneoSetContext"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetContext(handle)) { Py_BLOCK_THREADS; @@ -2353,20 +2685,21 @@ PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj) && !PyLong_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = 0; - if (PyNeoDevice_CheckExact(obj)) - handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoForceFirmwareUpdate(lib, "icsneoForceFirmwareUpdate"); + ice::Function icsneoForceFirmwareUpdate(lib, "icsneoForceFirmwareUpdate"); Py_BEGIN_ALLOW_THREADS; if (!icsneoForceFirmwareUpdate(handle)) { Py_BLOCK_THREADS; @@ -2386,20 +2719,21 @@ PyObject* meth_firmware_update_required(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj) && !PyLong_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = 0; - if (PyNeoDevice_CheckExact(obj)) - handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoFirmwareUpdateRequired(lib, "icsneoFirmwareUpdateRequired"); + ice::Function icsneoFirmwareUpdateRequired(lib, "icsneoFirmwareUpdateRequired"); Py_BEGIN_ALLOW_THREADS; if (!icsneoFirmwareUpdateRequired(handle)) { Py_BLOCK_THREADS; @@ -2419,25 +2753,28 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetDLLFirmwareInfo( + ice::Function icsneoGetDLLFirmwareInfo( lib, "icsneoGetDLLFirmwareInfo"); PyObject* info = _getPythonModuleObject("ics.structures.st_api_firmware_info", "st_api_firmware_info"); if (!info) { return NULL; } Py_buffer info_buffer = {}; - PyObject_GetBuffer(info, &info_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(info, &info_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetDLLFirmwareInfo(handle, (stAPIFirmwareInfo*)info_buffer.buf)) { Py_BLOCK_THREADS; @@ -2458,18 +2795,21 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetBackupPowerEnabled( + ice::Function icsneoGetBackupPowerEnabled( lib, "icsneoGetBackupPowerEnabled"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBackupPowerEnabled(handle, enabled)) { @@ -2491,18 +2831,21 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &enabled)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBackupPowerEnabled( + ice::Function icsneoSetBackupPowerEnabled( lib, "icsneoSetBackupPowerEnabled"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBackupPowerEnabled(handle, enabled)) { @@ -2524,18 +2867,21 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetBackupPowerReady(lib, + ice::Function icsneoGetBackupPowerReady(lib, "icsneoGetBackupPowerReady"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBackupPowerReady(handle, enabled)) { @@ -2560,11 +2906,14 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OOi:", __FUNCTION__), &obj, &arg_data, &location)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetNeoDevice(obj)->handle; long fsize; unsigned char* data = NULL; int data_size = 0; @@ -2576,14 +2925,14 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) char* file_name = PyUniStr_AsStrOrUTF8(arg_data); #endif if (!file_name) { - return set_ics_exception_dev(exception_runtime_error(), obj, "Failed to convert file path to string"); + return set_ics_exception(exception_runtime_error(), "Failed to convert file path to string"); } FILE* f; f = fopen(file_name, "rb"); if (!f) { std::stringstream ss; ss << "Failed to open Readbin: '" << file_name << "'. Please make sure path exists"; - return set_ics_exception_dev(exception_runtime_error(), obj, (char*)ss.str().c_str()); + return set_ics_exception(exception_runtime_error(), (char*)ss.str().c_str()); } fseek(f, 0, SEEK_END); fsize = ftell(f); @@ -2592,7 +2941,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) data_size = (int)fread(data, 1, fsize, f); fclose(f); if (fsize != data_size) { - return set_ics_exception_dev(exception_runtime_error(), obj, "Readbin file size mismatch"); + return set_ics_exception(exception_runtime_error(), "Readbin file size mismatch"); } } else if (PyTuple_CheckExact(arg_data)) { Py_ssize_t tuple_size = PyTuple_Size(arg_data); @@ -2601,15 +2950,15 @@ 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_dev( - exception_runtime_error(), obj, "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)); } fsize = tuple_size; data_size = fsize; } else { - return set_ics_exception_dev(exception_runtime_error(), obj, "Argument must be filepath or tuple"); + return set_ics_exception(exception_runtime_error(), "Argument must be filepath or tuple"); } try { ice::Library* lib = dll_get_library(); @@ -2617,7 +2966,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoScriptLoadReadBin( + ice::Function icsneoScriptLoadReadBin( lib, "icsneoScriptLoadReadBin"); Py_BEGIN_ALLOW_THREADS; if (!icsneoScriptLoadReadBin(handle, data, data_size, location)) { @@ -2643,25 +2992,28 @@ PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) args, arg_parse("OkOk:", __FUNCTION__), &obj, &ulNetworkID, &obj_tx_msg, &ulBlockingTimeout)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); } if (_isPythonModuleObject_IsInstance( obj_tx_msg, "ics.structures.st_cm_iso157652_tx_message", "st_cm_iso157652_tx_message") != 1) { return NULL; } Py_buffer obj_tx_msg_buffer = {}; - PyObject_GetBuffer(obj_tx_msg, &obj_tx_msg_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(obj_tx_msg, &obj_tx_msg_buffer, PyBUF_CONTIG); - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + 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)); } - ice::Function + ice::Function icsneoISO15765_TransmitMessage(lib, "icsneoISO15765_TransmitMessage"); Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_TransmitMessage( @@ -2688,18 +3040,21 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OiO:", __FUNCTION__), &obj, &iIndex, &obj_rx_msg)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); } if (_isPythonModuleObject_IsInstance( obj_rx_msg, "ics.structures.st_cm_iso157652_rx_message", "st_cm_iso157652_rx_message") != 1) { return NULL; } Py_buffer obj_rx_msg_buffer = {}; - PyObject_GetBuffer(obj_rx_msg, &obj_rx_msg_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(obj_rx_msg, &obj_rx_msg_buffer, PyBUF_CONTIG); - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -2709,7 +3064,7 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) } // stCM_ISO157652_RxMessage rx_msg_temp = {0}; // memcpy(&rx_msg_temp, &(temp->s), sizeof(temp->s)); - ice::Function icsneoISO15765_ReceiveMessage( + ice::Function icsneoISO15765_ReceiveMessage( lib, "icsneoISO15765_ReceiveMessage"); Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_ReceiveMessage(handle, iIndex, (stCM_ISO157652_RxMessage*)obj_rx_msg_buffer.buf)) { @@ -2734,18 +3089,21 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &networks)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoISO15765_EnableNetworks( + ice::Function icsneoISO15765_EnableNetworks( lib, "icsneoISO15765_EnableNetworks"); Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_EnableNetworks(handle, networks)) { @@ -2766,18 +3124,21 @@ PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoISO15765_DisableNetworks(lib, "icsneoISO15765_DisableNetworks"); + ice::Function icsneoISO15765_DisableNetworks(lib, "icsneoISO15765_DisableNetworks"); Py_BEGIN_ALLOW_THREADS; if (!icsneoISO15765_DisableNetworks(handle)) { Py_BLOCK_THREADS; @@ -2798,18 +3159,21 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetActiveVNETChannel( + ice::Function icsneoGetActiveVNETChannel( lib, "icsneoGetActiveVNETChannel"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetActiveVNETChannel(handle, &channel)) { @@ -2831,18 +3195,21 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oi:", __FUNCTION__), &obj, &channel)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetActiveVNETChannel( + ice::Function icsneoSetActiveVNETChannel( lib, "icsneoSetActiveVNETChannel"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetActiveVNETChannel(handle, channel)) { @@ -2865,18 +3232,21 @@ PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oii:", __FUNCTION__), &obj, &bitrate, &net_id)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBitRate(lib, "icsneoSetBitRate"); + ice::Function icsneoSetBitRate(lib, "icsneoSetBitRate"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBitRate(handle, bitrate, net_id)) { Py_BLOCK_THREADS; @@ -2898,18 +3268,21 @@ PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oii:", __FUNCTION__), &obj, &bitrate, &net_id)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetFDBitRate(lib, "icsneoSetFDBitRate"); + ice::Function icsneoSetFDBitRate(lib, "icsneoSetFDBitRate"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetFDBitRate(handle, bitrate, net_id)) { Py_BLOCK_THREADS; @@ -2932,18 +3305,21 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("Oiii:", __FUNCTION__), &obj, &bitrate, &net_id)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); + ice::Function icsneoSetBitRateEx(lib, "icsneoSetBitRateEx"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetBitRateEx(handle, bitrate, net_id, options)) { Py_BLOCK_THREADS; @@ -2964,15 +3340,18 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &obj_msg)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); } if (!PySpyMessage_CheckExact(obj_msg) && !PySpyMessageJ1850_CheckExact(obj_msg)) { return set_ics_exception(exception_runtime_error(), "Argument must be of type " MODULE_NAME "." SPY_MESSAGE_OBJECT_NAME); } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; + } icsSpyMessage* msg = &PySpyMessage_GetObject(obj_msg)->msg; try { ice::Library* lib = dll_get_library(); @@ -2980,7 +3359,7 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoGetTimeStampForMsg( + ice::Function icsneoGetTimeStampForMsg( lib, "icsneoGetTimeStampForMsg"); double timestamp = 0; Py_BEGIN_ALLOW_THREADS; @@ -3003,11 +3382,14 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &throw_exception_on_size_mismatch)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3019,10 +3401,10 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) return NULL; } Py_buffer device_status_buffer = {}; - PyObject_GetBuffer(device_status, &device_status_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(device_status, &device_status_buffer, PyBUF_CONTIG); size_t device_status_size = device_status_buffer.len; - ice::Function icsneoGetDeviceStatus( + ice::Function icsneoGetDeviceStatus( lib, "icsneoGetDeviceStatus"); double timestamp = 0; Py_BEGIN_ALLOW_THREADS; @@ -3054,11 +3436,14 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|bk:", __FUNCTION__), &obj, &enable, &net_id)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3067,8 +3452,8 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) } // int _stdcall icsneoEnableNetworkCom(void* hObject, int iEnable) // int _stdcall icsneoEnableNetworkComEx(void* hObject, int iEnable, int iNetId) - ice::Function icsneoEnableNetworkCom(lib, "icsneoEnableNetworkCom"); - ice::Function icsneoEnableNetworkComEx(lib, "icsneoEnableNetworkComEx"); + ice::Function icsneoEnableNetworkCom(lib, "icsneoEnableNetworkCom"); + ice::Function icsneoEnableNetworkComEx(lib, "icsneoEnableNetworkComEx"); Py_BEGIN_ALLOW_THREADS; if (net_id == -1) { if (!icsneoEnableNetworkCom(handle, enable)) { @@ -3097,11 +3482,14 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|ii:", __FUNCTION__), &obj, &enable, &reserved)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3109,7 +3497,7 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // int _stdcall icsneoEnableBusVoltageMonitor(void* hObject, unsigned int enable, unsigned int reserved) - ice::Function icsneoEnableBusVoltageMonitor( + ice::Function icsneoEnableBusVoltageMonitor( lib, "icsneoEnableBusVoltageMonitor"); Py_BEGIN_ALLOW_THREADS; if (!icsneoEnableBusVoltageMonitor(handle, enable, reserved)) { @@ -3131,11 +3519,14 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|i:", __FUNCTION__), &obj, &reserved)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { unsigned long mV = 0; ice::Library* lib = dll_get_library(); @@ -3144,7 +3535,7 @@ 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( + ice::Function icsneoGetBusVoltage( lib, "icsneoGetBusVoltage"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetBusVoltage(handle, &mV, reserved)) { @@ -3177,11 +3568,14 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) int ret_val = PyByteArray_Resize(ba, fileSize); // TODO: Documentation doesn't say what return value is. - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3190,12 +3584,12 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) } // int __stdcall icsneoReadJupiterFirmware(void* hObject, char* fileData, size_t* fileDataSize, // EPlasmaIonVnetChannel_t channel) - ice::Function icsneoReadJupiterFirmware( + ice::Function icsneoReadJupiterFirmware( lib, "icsneoReadJupiterFirmware"); // Grab the ByteArray Buffer Object Py_buffer ba_buffer = {}; - PyObject_GetBuffer(ba, &ba_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + PyObject_GetBuffer(ba, &ba_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoReadJupiterFirmware(handle, (char*)ba_buffer.buf, &fileSize, channel)) { @@ -3224,11 +3618,14 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) if (!PyBytes_CheckExact(bytes_obj)) { return set_ics_exception(exception_runtime_error(), "Argument must be of Bytes type "); } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3237,7 +3634,7 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) } // int __stdcall icsneoWriteJupiterFirmware(void* hObject, char* fileData, size_t fileDataSize, // EPlasmaIonVnetChannel_t channel) - ice::Function icsneoWriteJupiterFirmware( + ice::Function icsneoWriteJupiterFirmware( lib, "icsneoWriteJupiterFirmware"); // Convert the object to a bytes object @@ -3250,10 +3647,6 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) return NULL; } - // Grab the ByteArray Buffer Object - // Py_buffer bytes_buffer = {}; - // PyObject_GetBuffer(bytes, &bytes_buffer, PyBUF_C_CONTIGUOUS); - Py_BEGIN_ALLOW_THREADS; // if (!icsneoWriteJupiterFirmware(handle, (char*)bytes_buffer.buf, bytes_buffer.len, channel)) { if (!icsneoWriteJupiterFirmware(handle, bytes_str, bsize, channel)) { @@ -3284,11 +3677,14 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) return NULL; }*/ - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { @@ -3300,11 +3696,11 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) 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) - ice::Function icsneoFlashAccessoryFirmware( + ice::Function icsneoFlashAccessoryFirmware( lib, "icsneoFlashAccessoryFirmware"); Py_buffer parms_buffer = {}; - PyObject_GetBuffer(parms, &parms_buffer, PyBUF_C_CONTIGUOUS); + PyObject_GetBuffer(parms, &parms_buffer, PyBUF_CONTIG_RO); Py_BEGIN_ALLOW_THREADS; if (!icsneoFlashAccessoryFirmware(handle, (FlashAccessoryFirmwareParams*)parms_buffer.buf, &function_error)) { @@ -3384,11 +3780,14 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); @@ -3397,7 +3796,7 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // int __stdcall icsneoGetAccessoryFirmwareVersion(void* hObject, unsigned char index, unsigned int* fwVers, int* errorCode) - ice::Function icsneoGetAccessoryFirmwareVersion( + ice::Function icsneoGetAccessoryFirmwareVersion( lib, "icsneoGetAccessoryFirmwareVersion"); unsigned int accessory_version = 0; @@ -3517,18 +3916,21 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestDiskDetails(lib, + ice::Function icsneoRequestDiskDetails(lib, "icsneoRequestDiskDetails"); PyObject* details = _getPythonModuleObject("ics.structures.s_disk_details", "s_disk_details"); @@ -3536,7 +3938,7 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) return NULL; } Py_buffer details_buffer = {}; - PyObject_GetBuffer(details, &details_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(details, &details_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskDetails(handle, (SDiskDetails*)details_buffer.buf)) { @@ -3561,11 +3963,14 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OO:", __FUNCTION__), &obj, &details)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3573,8 +3978,8 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } Py_buffer details_buffer = {}; - PyObject_GetBuffer(details, &details_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); - ice::Function icsneoRequestDiskFormat(lib, "icsneoRequestDiskFormat"); + PyObject_GetBuffer(details, &details_buffer, PyBUF_CONTIG); + ice::Function icsneoRequestDiskFormat(lib, "icsneoRequestDiskFormat"); Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskFormat(handle, (SDiskDetails*)details_buffer.buf)) { @@ -3597,18 +4002,21 @@ PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestDiskFormatCancel(lib, "icsneoRequestDiskFormatCancel"); + ice::Function icsneoRequestDiskFormatCancel(lib, "icsneoRequestDiskFormatCancel"); Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskFormatCancel(handle)) { @@ -3629,18 +4037,21 @@ PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoRequestDiskFormatProgress( + ice::Function icsneoRequestDiskFormatProgress( lib, "icsneoRequestDiskFormatProgress"); PyObject* progress = _getPythonModuleObject("ics.structures.s_disk_format_progress", "s_disk_format_progress"); @@ -3648,7 +4059,7 @@ PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) return NULL; } Py_buffer progress_buffer = {}; - PyObject_GetBuffer(progress, &progress_buffer, PyBUF_SIMPLE); + PyObject_GetBuffer(progress, &progress_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoRequestDiskFormatProgress(handle, (SDiskFormatProgress*)progress_buffer.buf)) { @@ -3673,18 +4084,21 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O|b:", __FUNCTION__), &obj, &enable)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoEnableDOIPLine(lib, "icsneoEnableDOIPLine"); + ice::Function icsneoEnableDOIPLine(lib, "icsneoEnableDOIPLine"); Py_BEGIN_ALLOW_THREADS; if (!icsneoEnableDOIPLine(handle, enable)) { Py_BLOCK_THREADS; @@ -3706,11 +4120,14 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &feature)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3718,7 +4135,7 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } unsigned int supported = 0; - ice::Function icsneoIsDeviceFeatureSupported( + ice::Function icsneoIsDeviceFeatureSupported( lib, "icsneoIsDeviceFeatureSupported"); Py_BEGIN_ALLOW_THREADS; if (!icsneoIsDeviceFeatureSupported(handle, (DeviceFeature)feature, &supported)) { @@ -3739,11 +4156,14 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("O:", __FUNCTION__), &obj)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3752,7 +4172,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, + ice::Function icsneoGetPCBSerialNumber(lib, "icsneoGetPCBSerialNumber"); Py_BEGIN_ALLOW_THREADS; if (!icsneoGetPCBSerialNumber(handle, pcbsn, &length)) { @@ -3776,18 +4196,21 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OIII:", __FUNCTION__), &obj, &led, &prop, &value)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneoSetLedProperty( + ice::Function icsneoSetLedProperty( lib, "icsneoSetLedProperty"); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetLedProperty(handle, led, prop, value)) { @@ -3828,11 +4251,14 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) &reserved)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -3843,7 +4269,7 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) // char* pSubnetmask, // const char* pGateway,const char* pStartaddress, // const char* pEndaddress,bool bOverwriteDHCPSettings,uint32_t leaseTime,uint8_t reserved) - ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); + ice::Function icsneoStopDHCPServer(lib, "icsneoStopDHCPServer"); Py_BEGIN_ALLOW_THREADS; if (!icsneoStopDHCPServer(handle, NetworkID)) { Py_BLOCK_THREADS; @@ -3916,18 +4345,21 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OII:", __FUNCTION__), &obj, &manager, &lock_state)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function + ice::Function icsneowBMSManagerWriteLock(lib, "icsneowBMSManagerWriteLock"); Py_BEGIN_ALLOW_THREADS; if (!icsneowBMSManagerWriteLock(handle, manager, lock_state)) { @@ -3949,18 +4381,21 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) if (!PyArg_ParseTuple(args, arg_parse("OI:", __FUNCTION__), &obj, &manager)) { return NULL; } - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { char buffer[512]; return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } - ice::Function icsneowBMSManagerReset( + ice::Function icsneowBMSManagerReset( lib, "icsneowBMSManagerReset"); Py_BEGIN_ALLOW_THREADS; if (!icsneowBMSManagerReset(handle, manager)) { @@ -3987,11 +4422,14 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4001,7 +4439,7 @@ PyObject* meth_uart_write(PyObject* self, PyObject* args) // int _stdcall icsneoUartWrite(void* hObject, const EUartPort_t uart, const void* bData, const size_t // bytesToSend, size_t* bytesActuallySent, uint8_t* flags) size_t bytesActuallySent = 0; - ice::Function + ice::Function icsneoUartWrite(lib, "icsneoUartWrite"); Py_BEGIN_ALLOW_THREADS; if (!icsneoUartWrite(handle, port, data.buf, data.len, &bytesActuallySent, &flags)) { @@ -4030,11 +4468,14 @@ PyObject* meth_uart_read(PyObject* self, PyObject* args) return NULL; } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); uint8_t* buffer = (uint8_t*)malloc(bytesToRead * sizeof(uint8_t)); if (!buffer) { return NULL; @@ -4050,7 +4491,7 @@ 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"); Py_BEGIN_ALLOW_THREADS; if (!icsneoUartRead(handle, port, (void*)buffer, bytesToRead, &bytesActuallyRead, &flags)) { @@ -4082,11 +4523,14 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) return NULL; } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4094,7 +4538,7 @@ PyObject* meth_uart_set_baudrate(PyObject* self, PyObject* args) return set_ics_exception(exception_runtime_error(), dll_get_error(buffer)); } // int _stdcall icsneoUartSetBaudrate(void* hObject, const EUartPort_t uart, const uint32_t baudrate) - ice::Function icsneoUartSetBaudrate( + ice::Function icsneoUartSetBaudrate( lib, "icsneoUartSetBaudrate"); Py_BEGIN_ALLOW_THREADS; if (!icsneoUartSetBaudrate(handle, port, baudrate)) { @@ -4118,11 +4562,14 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) return NULL; } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4131,7 +4578,7 @@ PyObject* meth_uart_get_baudrate(PyObject* self, PyObject* args) } uint32_t baudrate = 0; // int _stdcall icsneoUartGetBaudrate(void* hObject, const EUartPort_t uart, uint32_t* baudrate) - ice::Function icsneoUartGetBaudrate( + ice::Function icsneoUartGetBaudrate( lib, "icsneoUartGetBaudrate"); Py_BEGIN_ALLOW_THREADS; if (!icsneoUartGetBaudrate(handle, port, &baudrate)) { @@ -4159,11 +4606,14 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) return NULL; } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4180,7 +4630,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char* functionError) */ ice::Function + void*, unsigned char, unsigned char, unsigned char, void*, unsigned int, unsigned char*)> icsneoGenericAPISendCommand(lib, "icsneoGenericAPISendCommand"); unsigned char functionError = 0; Py_BEGIN_ALLOW_THREADS; @@ -4208,11 +4658,14 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) return NULL; } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); unsigned char* buffer = (unsigned char*)malloc(length * sizeof(unsigned char)); if (!buffer) { return NULL; @@ -4234,7 +4687,7 @@ PyObject* meth_generic_api_read_data(PyObject* self, PyObject* args) unsigned int* length) */ ice::Function + void*, unsigned char, unsigned char, unsigned char*, unsigned char*, unsigned int*)> icsneoGenericAPIReadData(lib, "icsneoGenericAPIReadData"); unsigned char functionIndex = 0; Py_BEGIN_ALLOW_THREADS; @@ -4270,11 +4723,14 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) return NULL; } // Get the device handle - if (!PyNeoDevice_CheckExact(obj)) { + if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type " MODULE_NAME "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4290,7 +4746,7 @@ PyObject* meth_generic_api_get_status(PyObject* self, PyObject* args) unsigned char* finishedProcessing) */ ice::Function + void*, unsigned char, unsigned char, unsigned char*, unsigned char*, unsigned char*)> icsneoGenericAPIGetStatus(lib, "icsneoGenericAPIGetStatus"); unsigned char functionIndex = 0; unsigned char callbackError = 0; @@ -4324,15 +4780,18 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) } // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&status_buffer) when done. Py_buffer status_buffer = {}; - PyObject_GetBuffer(status, &status_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + PyObject_GetBuffer(status, &status_buffer, PyBUF_CONTIG); // Verify we have a valid NeoDevice Object - This comes after gptp_status allocation for testing purposes - if (!PyNeoDevice_CheckExact(obj)) { + 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 "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4344,7 +4803,7 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) // Get the gptp_status Py_BEGIN_ALLOW_THREADS; // int _stdcall icsneoGetGPTPStatus(void* hObject, GPTPStatus* gptpStatus) - ice::Function icsneoGetGPTPStatus(lib, "icsneoGetGPTPStatus"); + ice::Function icsneoGetGPTPStatus(lib, "icsneoGetGPTPStatus"); if (!icsneoGetGPTPStatus(handle, (GPTPStatus*)status_buffer.buf)) { Py_BLOCK_THREADS; PyBuffer_Release(&status_buffer); @@ -4376,15 +4835,18 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) // Grab the buffer out of the newly created object - make sure to call PyBuffer_Release(&py_struct_buffer) when // done. Py_buffer py_struct_buffer = {}; - PyObject_GetBuffer(py_struct, &py_struct_buffer, PyBUF_C_CONTIGUOUS | PyBUF_WRITABLE); + PyObject_GetBuffer(py_struct, &py_struct_buffer, PyBUF_CONTIG); // Verify we have a valid NeoDevice Object - This comes after ctypes struct allocation for testing purposes - if (!PyNeoDevice_CheckExact(obj)) { + 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 "." NEO_DEVICE_OBJECT_NAME); + "Argument must be of type PyNeoDeviceEx"); + } + void* handle = NULL; + if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { + return NULL; } - ICS_HANDLE handle = PyNeoDevice_GetHandle(obj); try { ice::Library* lib = dll_get_library(); if (!lib) { @@ -4396,7 +4858,7 @@ 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( + ice::Function icsneoGetAllChipVersions( lib, "icsneoGetAllChipVersions"); if (!icsneoGetAllChipVersions(handle, (stChipVersions*)py_struct_buffer.buf, py_struct_buffer.len)) { Py_BLOCK_THREADS; diff --git a/src/object_neo_device.cpp b/src/object_neo_device.cpp deleted file mode 100644 index 2f43ff66e..000000000 --- a/src/object_neo_device.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "object_neo_device.h" - -PyTypeObject neo_device_object_type = { - PyVarObject_HEAD_INIT(NULL, 0) MODULE_NAME "." NEO_DEVICE_OBJECT_NAME, /* tp_name */ - sizeof(neo_device_object), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)neo_device_object_dealloc, /* tp_dealloc */ - 0, /* tp_print */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_reserved */ - neo_device_object_tp_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - neo_device_object_getattr, /* tp_getattro */ - neo_device_object_setattr, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ - NEO_DEVICE_OBJECT_NAME " object", /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - 0, /* tp_methods */ - neo_device_object_members, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - (initproc)neo_device_object_alloc, /* tp_init */ -}; - -bool setup_neo_device_object(PyObject* module) -{ - // neo_device_object_type.ob_type = &PyType_Type; - neo_device_object_type.tp_new = PyType_GenericNew; - neo_device_object_type.tp_dictoffset = offsetof(neo_device_object, dict); - if (PyType_Ready(&neo_device_object_type) < 0) { - return false; - } - Py_INCREF(&neo_device_object_type); - PyModule_AddObject(module, NEO_DEVICE_OBJECT_NAME, (PyObject*)&neo_device_object_type); - return true; -} \ No newline at end of file diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/test/obsolete/cmvspy.h b/tests/obsolete/cmvspy.h similarity index 100% rename from test/obsolete/cmvspy.h rename to tests/obsolete/cmvspy.h diff --git a/test/obsolete/cmvspy.py b/tests/obsolete/cmvspy.py similarity index 100% rename from test/obsolete/cmvspy.py rename to tests/obsolete/cmvspy.py diff --git a/test/obsolete/cmvspyconvert.py b/tests/obsolete/cmvspyconvert.py similarity index 100% rename from test/obsolete/cmvspyconvert.py rename to tests/obsolete/cmvspyconvert.py diff --git a/test/obsolete/test_coremini.py b/tests/obsolete/test_coremini.py similarity index 100% rename from test/obsolete/test_coremini.py rename to tests/obsolete/test_coremini.py diff --git a/test/test_find_devices.py b/tests/obsolete/test_find_devices.py similarity index 100% rename from test/test_find_devices.py rename to tests/obsolete/test_find_devices.py diff --git a/test/obsolete/test_get_device_status.py b/tests/obsolete/test_get_device_status.py similarity index 100% rename from test/obsolete/test_get_device_status.py rename to tests/obsolete/test_get_device_status.py diff --git a/test/obsolete/test_network_fire.py b/tests/obsolete/test_network_fire.py similarity index 100% rename from test/obsolete/test_network_fire.py rename to tests/obsolete/test_network_fire.py diff --git a/test/obsolete/test_open_close.py b/tests/obsolete/test_open_close.py similarity index 86% rename from test/obsolete/test_open_close.py rename to tests/obsolete/test_open_close.py index ed2884649..dd50bcc91 100644 --- a/test/obsolete/test_open_close.py +++ b/tests/obsolete/test_open_close.py @@ -51,5 +51,9 @@ def testOpenCloseByFirstFound(self): def testOpenClose100Times(self): for x in range(100): - ics.open_device(self.devices[0]) - ics.close_device(self.devices[0]) + 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/test/test_structs.py b/tests/obsolete/test_structs.py similarity index 100% rename from test/test_structs.py rename to tests/obsolete/test_structs.py diff --git a/tests/runner/Readme.md b/tests/runner/Readme.md new file mode 100644 index 000000000..55328b6a2 --- /dev/null +++ b/tests/runner/Readme.md @@ -0,0 +1,14 @@ +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 new file mode 100644 index 000000000..e69de29bb diff --git a/tests/runner/test_network.py b/tests/runner/test_network.py new file mode 100644 index 000000000..758d9de26 --- /dev/null +++ b/tests/runner/test_network.py @@ -0,0 +1,118 @@ +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 new file mode 100644 index 000000000..6bd0f8dd1 --- /dev/null +++ b/tests/runner/test_open_close.py @@ -0,0 +1,114 @@ +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 new file mode 100644 index 000000000..5ded46cb0 --- /dev/null +++ b/tests/runner/test_settings.py @@ -0,0 +1,71 @@ +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() From 359185c7d5e609a7c8dc7d2c19037e26948857ca Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Tue, 21 May 2024 15:07:59 -0400 Subject: [PATCH 155/201] Added set_safe_boot_mode method (#179) * Added set_safe_boot_mode method --- include/methods.h | 26 +++++ include/object_spy_message.h | 6 +- src/methods.cpp | 212 +++++++++++++++++++++-------------- 3 files changed, 155 insertions(+), 89 deletions(-) diff --git a/include/methods.h b/include/methods.h index 32240a80f..0a4b179ea 100644 --- a/include/methods.h +++ b/include/methods.h @@ -100,6 +100,7 @@ extern "C" PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args); // icsneoGetAllChipVersions 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); #ifdef _cplusplus } @@ -1913,6 +1914,25 @@ extern "C" "\tNone\n" \ "\n" +#define _DOC_SET_SAFE_BOOT_MODE \ + MODULE_NAME ".set_safe_boot_mode(device, enable: bool) -> bool\n" \ + "\n" \ + "Sets safe boot mode. If not sure, don't use this method.\n" \ + "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" \ + "\n" \ + "\tenable (:class:`bool`): :class:`bool`: Tells the device to enter safe boot mode upon restart.\n\n" \ + "\n" \ + "Raises:\n" \ + "\t:class:`" MODULE_NAME ".RuntimeError`\n" \ + "\n" \ + "Returns:\n" \ + "\tNone\n" \ + "\n" + static PyMethodDef IcsMethods[] = { _EZ_ICS_STRUCT_METHOD("find_devices", "icsneoFindNeoDevices", @@ -2422,6 +2442,12 @@ static PyMethodDef IcsMethods[] = { 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, "" }, diff --git a/include/object_spy_message.h b/include/object_spy_message.h index ed83b64b5..bb90d33bf 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -325,7 +325,7 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val obj->msg.Data[i] = (unsigned char)PyLong_AsLong(data); } } - obj->msg.NumberBytesData = PyObject_Length(value); + 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 @@ -363,7 +363,7 @@ 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 = PyObject_Length(value); + obj->msg.NumberBytesHeader = static_cast(PyObject_Length(value)); } return 0; } else if (PyUnicode_CompareWithASCIIString(name, "Protocol") == 0) { @@ -387,7 +387,7 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val 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.NumberBytesHeader = length >> 8; + obj->msg.NumberBytesHeader = static_cast(length >> 8); } obj->msg.NumberBytesData = length & 0xFF; if (obj->msg.Protocol != SPY_PROTOCOL_ETHERNET) diff --git a/src/methods.cpp b/src/methods.cpp index 8612cae8a..3fb39d9a5 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -471,7 +471,7 @@ PyObject* meth_find_devices(PyObject* self, PyObject* args, PyObject* keywords) std::vector device_type_vector; if (!_convertListOrTupleToArray(device_types, &device_type_vector)) return NULL; - device_types_list_size = device_type_vector.size(); + 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]); @@ -578,7 +578,7 @@ PyObject* meth_open_device(PyObject* self, PyObject* args, PyObject* keywords) std::vector network_ids_vector; if (!_convertListOrTupleToArray(network_ids, &network_ids_vector)) return NULL; - network_ids_list_size = network_ids_vector.size(); + 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) network_ids_list[i] = (unsigned char)PyLong_AsLong(network_ids_vector[i]); @@ -831,7 +831,7 @@ PyObject* meth_get_rtc(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -892,7 +892,7 @@ PyObject* meth_set_rtc(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -953,7 +953,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1000,7 +1000,7 @@ PyObject* meth_coremini_load(PyObject* self, PyObject* args) } data[i] = (unsigned char)PyLong_AsLong(PyTuple_GET_ITEM(arg_data, i)); } - fsize = tuple_size; + fsize = static_cast(tuple_size); data_size = fsize; } else { return set_ics_exception(exception_runtime_error(), "Argument must be filepath or tuple"); @@ -1035,7 +1035,7 @@ PyObject* meth_coremini_start(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1069,7 +1069,7 @@ PyObject* meth_coremini_stop(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1104,7 +1104,7 @@ PyObject* meth_coremini_clear(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1139,7 +1139,7 @@ PyObject* meth_coremini_get_status(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1177,7 +1177,7 @@ PyObject* meth_transmit_messages(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1256,7 +1256,7 @@ PyObject* meth_get_messages(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1345,7 +1345,7 @@ PyObject* meth_get_script_status(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1389,7 +1389,7 @@ PyObject* meth_get_error_messages(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1622,7 +1622,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) PyBuffer_Release(&settings_buffer); Py_DECREF(settings); return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1655,7 +1655,7 @@ PyObject* meth_get_device_settings(PyObject* self, PyObject* args) // EPlasmaIonVnetChannel_t vnetSlot) ice::Function icsneoGetDeviceSettings(lib, "icsneoGetDeviceSettings"); - if (!icsneoGetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, vnet_slot)) { + if (!icsneoGetDeviceSettings(handle, (SDeviceSettings*)settings_buffer.buf, static_cast(settings_buffer.len), vnet_slot)) { Py_BLOCK_THREADS; PyBuffer_Release(&settings_buffer); Py_DECREF(settings); @@ -1682,7 +1682,7 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1704,7 +1704,7 @@ PyObject* meth_set_device_settings(PyObject* self, PyObject* args) PyObject_GetBuffer(settings, &settings_buffer, PyBUF_CONTIG); Py_BEGIN_ALLOW_THREADS; if (!icsneoSetDeviceSettings( - handle, (SDeviceSettings*)settings_buffer.buf, settings_buffer.len, save_to_eeprom, vnet_slot)) { + 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"); @@ -1726,7 +1726,7 @@ PyObject* meth_load_default_settings(PyObject* self, PyObject* args) // icsneoLo } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1771,7 +1771,7 @@ PyObject* meth_read_sdcard(PyObject* self, } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } // We only read 512 bytes internally, x4 for future compatibility? unsigned char data[2048] = { 0 }; @@ -1821,7 +1821,7 @@ PyObject* meth_write_sdcard( } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "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"); @@ -1916,7 +1916,7 @@ PyObject* meth_coremini_start_fblock(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1951,7 +1951,7 @@ PyObject* meth_coremini_stop_fblock(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -1986,7 +1986,7 @@ PyObject* meth_coremini_get_fblock_status(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2023,7 +2023,7 @@ PyObject* meth_coremini_read_app_signal(PyObject* self, PyObject* args) // Scrip } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2061,7 +2061,7 @@ PyObject* meth_coremini_write_app_signal(PyObject* self, PyObject* args) // Scri } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2098,7 +2098,7 @@ PyObject* meth_coremini_read_tx_message(PyObject* self, PyObject* args) // Scrip } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2158,7 +2158,7 @@ PyObject* meth_coremini_read_rx_message(PyObject* self, PyObject* args) // Scrip } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2237,7 +2237,7 @@ PyObject* meth_coremini_write_tx_message(PyObject* self, PyObject* args) // icsn } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2293,7 +2293,7 @@ PyObject* meth_coremini_write_rx_message(PyObject* self, PyObject* args) // icsn } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2354,7 +2354,7 @@ PyObject* meth_get_performance_parameters(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2413,7 +2413,7 @@ 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 PyNeoDeviceEx" " or Integer"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx" " or Integer"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2447,7 +2447,7 @@ PyObject* meth_get_last_api_error(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2518,7 +2518,7 @@ PyObject* meth_get_serial_number(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2553,7 +2553,7 @@ PyObject* meth_get_hw_firmware_info(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2617,7 +2617,7 @@ PyObject* meth_request_enter_sleep_mode(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2652,7 +2652,7 @@ PyObject* meth_set_context(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; @@ -2687,7 +2687,7 @@ PyObject* meth_force_firmware_update(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2721,7 +2721,7 @@ PyObject* meth_firmware_update_required(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj) && !PyLong_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2755,7 +2755,7 @@ PyObject* meth_get_dll_firmware_info(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2797,7 +2797,7 @@ PyObject* meth_get_backup_power_enabled(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2833,7 +2833,7 @@ PyObject* meth_set_backup_power_enabled(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2869,7 +2869,7 @@ PyObject* meth_get_backup_power_ready(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2908,7 +2908,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -2955,7 +2955,7 @@ PyObject* meth_load_readbin(PyObject* self, PyObject* args) } data[i] = (unsigned char)PyLong_AsLong(PyTuple_GET_ITEM(arg_data, i)); } - fsize = tuple_size; + fsize = static_cast(tuple_size); data_size = fsize; } else { return set_ics_exception(exception_runtime_error(), "Argument must be filepath or tuple"); @@ -2994,7 +2994,7 @@ PyObject* meth_iso15765_transmit_message(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "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) { @@ -3042,7 +3042,7 @@ PyObject* meth_iso15765_receive_message(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "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) { @@ -3091,7 +3091,7 @@ PyObject* meth_iso15765_enable_networks(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3126,7 +3126,7 @@ PyObject* meth_iso15765_disable_networks(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3161,7 +3161,7 @@ PyObject* meth_get_active_vnet_channel(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3197,7 +3197,7 @@ PyObject* meth_set_active_vnet_channel(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3234,7 +3234,7 @@ PyObject* meth_set_bit_rate(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3270,7 +3270,7 @@ PyObject* meth_set_fd_bit_rate(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3307,7 +3307,7 @@ PyObject* meth_set_bit_rate_ex(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3342,7 +3342,7 @@ PyObject* meth_get_timestamp_for_msg(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } if (!PySpyMessage_CheckExact(obj_msg) && !PySpyMessageJ1850_CheckExact(obj_msg)) { return set_ics_exception(exception_runtime_error(), @@ -3384,7 +3384,7 @@ PyObject* meth_get_device_status(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3438,7 +3438,7 @@ PyObject* meth_enable_network_com(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3484,7 +3484,7 @@ PyObject* meth_enable_bus_voltage_monitor(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3521,7 +3521,7 @@ PyObject* meth_get_bus_voltage(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3570,7 +3570,7 @@ PyObject* meth_read_jupiter_firmware(PyObject* self, PyObject* args) if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3620,7 +3620,7 @@ PyObject* meth_write_jupiter_firmware(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3679,7 +3679,7 @@ PyObject* meth_flash_accessory_firmware(PyObject* self, PyObject* args) if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3782,7 +3782,7 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3869,6 +3869,46 @@ PyObject* meth_get_accessory_firmware_version(PyObject* self, PyObject* args) } } +PyObject* meth_set_safe_boot_mode(PyObject* self, PyObject* args) +{ + PyObject* obj = NULL; + bool enable = true; + if (!PyArg_ParseTuple(args, arg_parse("Ob:", __FUNCTION__), &obj, &enable)) { + 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 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"); + } + Py_END_ALLOW_THREADS; + Py_RETURN_NONE; + } catch (ice::Exception& ex) { + return set_ics_exception(exception_runtime_error(), (char*)ex.what()); + } +} + PyObject* meth_override_library_name(PyObject* self, PyObject* args) { const char* name = NULL; @@ -3918,7 +3958,7 @@ PyObject* meth_get_disk_details(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -3965,7 +4005,7 @@ PyObject* meth_disk_format(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4004,7 +4044,7 @@ PyObject* meth_disk_format_cancel(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4039,7 +4079,7 @@ PyObject* meth_get_disk_format_progress(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4086,7 +4126,7 @@ PyObject* meth_enable_doip_line(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4122,7 +4162,7 @@ PyObject* meth_is_device_feature_supported(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4158,7 +4198,7 @@ PyObject* meth_get_pcb_serial_number(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4198,7 +4238,7 @@ PyObject* meth_set_led_property(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4253,7 +4293,7 @@ PyObject* meth_start_dhcp_server(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4311,7 +4351,7 @@ PyObject* meth_stop_dhcp_server(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4347,7 +4387,7 @@ PyObject* meth_wbms_manager_write_lock(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4383,7 +4423,7 @@ PyObject* meth_wbms_manager_reset(PyObject* self, PyObject* args) } if (!PyNeoDeviceEx_CheckExact(obj)) { return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4424,7 +4464,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4470,7 +4510,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4525,7 +4565,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4564,7 +4604,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4608,7 +4648,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4635,7 +4675,7 @@ PyObject* meth_generic_api_send_command(PyObject* self, PyObject* args) unsigned char functionError = 0; Py_BEGIN_ALLOW_THREADS; if (!icsneoGenericAPISendCommand( - handle, apiIndex, instanceIndex, functionIndex, (void*)data.buf, data.len, &functionError)) { + handle, apiIndex, instanceIndex, functionIndex, (void*)data.buf, static_cast(data.len), &functionError)) { Py_BLOCK_THREADS; return set_ics_exception(exception_runtime_error(), "icsneoGenericAPISendCommand() Failed"); } @@ -4660,7 +4700,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4725,7 +4765,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 PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4786,7 +4826,7 @@ PyObject* meth_get_gptp_status(PyObject* self, PyObject* args) PyBuffer_Release(&status_buffer); Py_DECREF(status); return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4841,7 +4881,7 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) PyBuffer_Release(&py_struct_buffer); Py_DECREF(py_struct); return set_ics_exception(exception_runtime_error(), - "Argument must be of type PyNeoDeviceEx"); + "Argument must be of type " MODULE_NAME ".PyNeoDeviceEx"); } void* handle = NULL; if (!PyNeoDeviceEx_GetHandle(obj, &handle)) { @@ -4860,7 +4900,7 @@ PyObject* meth_get_all_chip_versions(PyObject* self, PyObject* args) // int _stdcall icsneoGetAllChipVersions(void* hObject, stChipVersions* pInfo, int ipInfoSize) ice::Function icsneoGetAllChipVersions( lib, "icsneoGetAllChipVersions"); - if (!icsneoGetAllChipVersions(handle, (stChipVersions*)py_struct_buffer.buf, py_struct_buffer.len)) { + 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 679fbbdefe54446c2eba0fe49b53d49c5b618495 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Sat, 25 May 2024 00:03:32 -0400 Subject: [PATCH 156/201] Arm wheels and sdist (#182) * enable arm wheels * enable sdist building --- .github/workflows/sdist.yml | 51 ++++++++++++++++++++++++++++++++++++ .github/workflows/wheels.yml | 11 ++++++-- MANIFEST.in | 3 ++- pyproject.toml | 4 ++- 4 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/sdist.yml diff --git a/.github/workflows/sdist.yml b/.github/workflows/sdist.yml new file mode 100644 index 000000000..69ba69dbc --- /dev/null +++ b/.github/workflows/sdist.yml @@ -0,0 +1,51 @@ +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/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index e3c7b9f74..e38aae6d2 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-22.04, windows-2022, macOS-14] + os: [ubuntu-24.04, windows-2022, macOS-14] steps: - uses: actions/checkout@v4 @@ -16,6 +16,13 @@ jobs: submodules: recursive fetch-depth: 0 # needed for history/tags + # Enable emulation for aarch64 + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v3 + with: + platforms: all + # Used to host cibuildwheel - name: Set up Python 3.12 uses: actions/setup-python@v5 @@ -31,7 +38,7 @@ jobs: run: echo $PYTHON_ICS_VERSION - name: Install cibuildwheel - run: python -m pip install cibuildwheel + run: python -m pip install cibuildwheel==2.18.1 - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse diff --git a/MANIFEST.in b/MANIFEST.in index d87d74741..a1e6ebfc7 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,4 @@ recursive-include include *.h include extract_icsneo40_defines.py -include generate_icsneo40_structs.py \ No newline at end of file +include generate_icsneo40_structs.py +include ics_utility.py \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 996ba50af..856fc5ed3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,12 +45,14 @@ requires = [ [tool.cibuildwheel] build = "{*-win32,*-win_amd64,*-macosx_universal2,*-manylinux_x86_64,*-manylinux_aarch64}" skip = "cp36-* pp* *-manylinux_i686 *-musllinux_*" -environment = {DISTUTILS_DEBUG=1, MACOSX_DEPLOYMENT_TARGET="10.13"} +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" [tool.cibuildwheel.linux] before-build = "dnf install -y cmake clang clang-tools-extra flex bison" +archs = "auto aarch64" [tool.cibuildwheel.macos] archs = ["universal2"] From e23c77c5453ac308d9a5dd1c084ed53db8b0ae4f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 31 May 2024 11:11:12 -0400 Subject: [PATCH 157/201] Fixed internal build (#184) Signed-off-by: David Rebbe --- src/methods.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/methods.cpp b/src/methods.cpp index 3fb39d9a5..47baddd79 100644 --- a/src/methods.cpp +++ b/src/methods.cpp @@ -1514,7 +1514,7 @@ PyObject* meth_flash_devices(PyObject* self, PyObject* args) // Get the NeoDeviceEx from PyNeoDeviceEx Py_buffer buffer = {}; NeoDeviceEx* nde = NULL; - if (!PyNeoDeviceEx_GetNeoDeviceEx(device, &buffer, &nde)) { + if (!PyNeoDeviceEx_GetNeoDeviceEx(obj, &buffer, &nde)) { PyBuffer_Release(&buffer); return NULL; } From 812e6c699f7649d963b4c9b7740038201cef07f7 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 3 Jun 2024 10:53:27 -0400 Subject: [PATCH 158/201] fixed compatibility issue with old NeoDevice namespace. (#185) --- ics_utility.py | 1 + 1 file changed, 1 insertion(+) diff --git a/ics_utility.py b/ics_utility.py index 7058a5412..869449cf7 100644 --- a/ics_utility.py +++ b/ics_utility.py @@ -51,6 +51,7 @@ def create_ics_init(): from ics.structures import * +from ics.structures.neo_device import NeoDevice, neo_device from ics.hiddenimports import hidden_imports try: from ics.py_neo_device_ex import PyNeoDeviceEx From 6a28fc6e5765bdf199c0011f9df0bd33c4dfcb8e Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 3 Jun 2024 11:54:50 -0400 Subject: [PATCH 159/201] Fixed for issue #186 (#187) Signed-off-by: David Rebbe --- gen/ics/structures/mac_sec_flags_.py | 28 -------------------- gen/ics/structures/mac_sec_global_flags_.py | 29 --------------------- generate_icsneo40_structs.py | 22 +++++++++------- 3 files changed, 12 insertions(+), 67 deletions(-) delete mode 100644 gen/ics/structures/mac_sec_flags_.py delete mode 100644 gen/ics/structures/mac_sec_global_flags_.py diff --git a/gen/ics/structures/mac_sec_flags_.py b/gen/ics/structures/mac_sec_flags_.py deleted file mode 100644 index 14f97de0c..000000000 --- a/gen/ics/structures/mac_sec_flags_.py +++ /dev/null @@ -1,28 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless8987(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('en', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 31), - ] - - - -class mac_sec_flags_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless8987',) - _fields_ = [ - ('Nameless8987', Nameless8987), - ('flags_32b', ctypes.c_uint32), - ] - - -_MACSecFlags = mac_sec_flags_ -MACSecFlags_t = mac_sec_flags_ -MACSecFlags_ = mac_sec_flags_ - diff --git a/gen/ics/structures/mac_sec_global_flags_.py b/gen/ics/structures/mac_sec_global_flags_.py deleted file mode 100644 index 45accbf0c..000000000 --- a/gen/ics/structures/mac_sec_global_flags_.py +++ /dev/null @@ -1,29 +0,0 @@ -# This file was auto generated; Do not modify, if you value your sanity! -import ctypes -import enum - - - -class Nameless11656(ctypes.Structure): - _pack_ = 1 - _fields_ = [ - ('en', ctypes.c_uint32, 1), - ('nvm', ctypes.c_uint32, 1), - ('reserved', ctypes.c_uint32, 30), - ] - - - -class mac_sec_global_flags_(ctypes.Union): - _pack_ = 1 - _anonymous_ = ('Nameless11656',) - _fields_ = [ - ('Nameless11656', Nameless11656), - ('flags_32b', ctypes.c_uint32), - ] - - -_MACSecGlobalFlags = mac_sec_global_flags_ -MACSecGlobalFlags_t = mac_sec_global_flags_ -MACSecGlobalFlags_ = mac_sec_global_flags_ - diff --git a/generate_icsneo40_structs.py b/generate_icsneo40_structs.py index fa653924e..a393cbb8b 100644 --- a/generate_icsneo40_structs.py +++ b/generate_icsneo40_structs.py @@ -394,20 +394,22 @@ def get_preferred_struct_name(_names): r = re.compile(r"^[sS].*") r_underscore = re.compile(r"^(?![_]).*") r_end_t = re.compile(r"^.*(_[tT])$") + # Find any that don't start with _ for _t matching below + struct_name_no_underscore = list(filter(r_underscore.match, names)) # Remove all instances of _t at end unless that is all we have - setting_structures_with_t = list(filter(r_end_t.match, names)) - if len(setting_structures_with_t): - if len(setting_structures_with_t) != len(names): - for name in setting_structures_with_t: + struct_name_with_t = list(filter(r_end_t.match, struct_name_no_underscore)) + if len(struct_name_with_t): + if len(struct_name_with_t) != len(struct_name_no_underscore): + for name in struct_name_with_t: names.remove(name) # Find any that start with 'S' and prefer that - setting_structures = list(filter(r.match, names)) - if setting_structures: - return setting_structures[0] + struct_name_with_s = list(filter(r.match, names)) + if struct_name_with_s: + return struct_name_with_s[0] # Find any that don't start with _ and prefer that - setting_structures = list(filter(r_underscore.match, names)) - if setting_structures: - return setting_structures[0] + struct_name_no_underscore = list(filter(r_underscore.match, names)) + if struct_name_no_underscore: + return struct_name_no_underscore[0] try: return names[0] except IndexError as _: From b23054888cb07fbaf87a5eaa410a67816defc9c2 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Mon, 3 Jun 2024 15:51:30 -0400 Subject: [PATCH 160/201] Resolves "Documentation Update" (#189) * Updated examples to use new string for printing * updated module documentation to reflect new PyNeoDeviceEx * Updated documentation --------- Signed-off-by: David Rebbe --- IntrepidCS.png | Bin 5285 -> 9222 bytes README.md | 16 ++ doc/requirements.txt | 5 +- doc/source/conf.py | 10 +- doc/source/examples.rst | 12 +- doc/source/generate_documentation.py | 33 ++-- doc/source/header.rst | 208 +++++++++----------------- doc/source/index.rst | 149 ++++++++++++++---- examples/iso15765_example.py | 14 +- examples/lin_settings_example.py | 10 +- examples/open_device_example.py | 12 +- examples/transmit_can_example.py | 12 +- examples/transmit_canfd_example.py | 16 +- examples/transmit_ethernet_example.py | 16 +- examples/transmit_lin_example.py | 13 +- examples/transmit_lin_ldf_example.py | 12 +- src/ics/py_neo_device_ex.py | 10 +- src/main.cpp | 19 ++- 18 files changed, 277 insertions(+), 290 deletions(-) diff --git a/IntrepidCS.png b/IntrepidCS.png index df0b6cb66db65dbaf3b21f552e89bbd35e2dc6f5..cfe078c74a27920d45f4006bb3934b839c9d6f92 100644 GIT binary patch literal 9222 zcmeHLc{tSF+n)_%8@q(^Z75rq8QYl9#MlbiA|!?x3}c9qHD-_{WlN<+rO>{JBwLg; zC6Q2eg@~w-J>D<%^gPe?{;uo2p6h+z|DNG|&wb9h@6Wl<=iKL>`JNOTYcoMUX+8)9 zB4}YwvV%aN8K6u-!olYSiIXN^)lA)M;ca1|0zrZeP!o!PKtU-3d_aH66tE40!Xc|x ziC_^04A`RtQtB-=R%r7|`l$Czzz(5%bg+T^#?s^|Bk#ta4ee^pK>f7}5(dAgcLY&(^XwB)aFxv$qveO_PSR!y`_UTj0^K z1Lr;^npE!4FQ$DuH=81VQ$e|IxK51QEn_Zo>|R6Qxm46*gm)b$e>g?H&ZsDU2<5%m zc=P!!X)4!E=a+9b@C~cI@++u!nH|&+7`lIgdi#y6sc7onI3yJ3r*s*{k9ENv2nU4)88*FrD``*{;VQuTh!vL<&8&jr#Zo;o{}1cU<`)S9QHEzT3Hgj0t3{^ zlt53adU!z4>V`q|w}%Ijz5J<6z?14jV;G>nR6IfhG>QS*N!toz6=Y2HrI|+tQ|%+I z9lRp_z4R#P?S_2%;RFyMfXXBT;Q@3;2qD}6y@pEw<<)KtG_a<^^fy571>?v#FqjHx zscWfY)J(!@2XSaaK0rU1;!Ut4nf`(RTLx%fCNqejp%E4qrXHrL9vJMSfz{K~)4<>~ za5yzkLoFnN!6b*PF+${5A%0?zs3Bg#v>+xekO8b>l05@MnFeSyI1c>bUqFzR)o*x4 z$S)Q^J~YC~K^jtXcWSlsDtyuXks+A)U-6Q zx@ub9+ITfjZ3<3}jQ7&QXkxwaR87iXpez_6OftiZx(Wq?tJ6RnDqa)ojn&4e>FH@| zt7&dUi>yiY*3WT5xQzPr)bn&{ndfJ+vUTaVkFM?@cZ~z(HPFeujhpG|8@L3yJC7iIs#=-!N zQ^)+-V?!r1y+H#5v?YxZ8vf^i11*4R&m^z1iPgpGYOT_s1J0zQi~Cc_ks2HVM&c^w zTJBsMS=|-_xEPRF@@kxd0Bil=S_sC$R5CL#*dZ{GZh-!sb$<_AfyaqLW|B!{CKUwz zorfL%$ir$FFf;#je-+LukV5m0_@A^_4-cRZ>VsQuP749&k67#ad7|v82Y$AGHtDpr zqXYnJhk`)%`niM<@K89r1nd;AL5Kl*9^Arx@BSTe;+TSpCt!+5J{ z;k~`p$hx{1HJq0=R-58Y(ZOPL*I4+C9unxy3?m0qcldxjf?R>&x%LeOD6MUj^53udZsPW0Cl{*q)syPthv@&a?A#_weK zi!;#Q|Ig2_z4-r}0s#J<(%(+p>$-1t z{>SkXCo8L}KYW>;nq696UO8JoxH;iT^`lyCydDp~!0R_{?>aj8Q9?aEy|?b%eb6>G zH8tJT++v^GT=uYh=<6J(?<)_pVk4_oI;Lj-?)iJXKAq%dCBGYrkiBc!calnVp+^+VcgU#u=TQ|1z^^zRQYn>+R6c zM@1FYXPoDN{N}6IZ_?-t&hv(|xfd)ftuaUHRn;-aAHT2do_IYpHU52Jd)A9scATWb zR&n&!qg8z+r4NQjMq^lUOX3%uz)J@x)6Uu+Lj3s7d$r-Y%Zvm`=Gw4&@x&Ws?i>Pv z@QbY$DCEpJDX^1=X<=o;Gr|oQ1MtY^5%3yIINgG@!y&wLJoiUzmzH$R_=?lvps}p2 zZl?Ea)9;?5D1SP9tf${4OHC%w?4pLO)!F+rT9)X}@L^xCw6QDM)iqT?RTaItn;S|M z8q$_piiGCo^Dda4q&mC1rcaN&_OdvlkY$ce`TdyJLnLU}Ugpm1Nx4fsZH$;cQ$F1o zf6*dkTtPzaU3+@|nJ1*S)bS9Z!o|?V;w(|6-Ky9p+sfTO=tl<(__ezc_9zZbj~pB# z2mk1NwP33!nW}v3^Sh@q##6h$vP$SY&_gGWnTyGBMtN|?ce+|rZxOulQWqSqnR1ZX zS592TQ*!he;`R<~uIPNPo`R6jkM&alD6ud=s9o`hWm2pDbM<41LiwQ!#EUlr;+t7S z=W8cfy8#N4!m zytVknaYOzDr6O$a8Tn}zclquigMO5(Rki*xeyP%j@s^3+{wpNTIf zw9=u6ulYv3E_=0JM))o7ZQcasqAHrd?K(iBbb3NImeT}#xc@s|!zl~OZuKeq!g$j@ zKTOdLEfT`yRPkI-q&4-{yMz71oW}wSr<*~?ZMDVx3|RwlrUu};TvZS zY<7zzBmC+^Tk;^8#PmJ7`&s71aVfZq5Adx}sB6zh1^_&)o=*ldwdsXvz`eiJ8wG7Ke*`0($28# z*3CGNn7rqfnjoYw`wn_K7>hQ70c_@waE{CT= zGSpVZjDYbKiwa3zIrGj@1(Pj_Fk+f9%x(zMaW8yd{H=bsv_mjRF1NMk0 zOO-=>zDJ+RxM5A)xXeI2Z@9w;Rqp;ONP@MCoq}HBq7)Vh;;m7hm$#aIVzYMUa^c{z ztje#`$de(SJ?+sDz+@q18yDcU^T?M|n{|W^Fl9xY?ZY>gGCVEdT z`{l$eJ7*ZZjw2OoK)E0^D8m_e;qK9L>TBOHi6tHnp=G%!v_>SmbU$!h?{I!8w=?b*vO@*?A`7YWE^_Afp%43$hiG>jl-kne^Blf;Q zc9+w)RP(xLo}%mTuQ0#`zt_eMJz}%6MGF_Z86!mNjT*qkFa4)Z3_~M$VRH%QRgah2 zhXixRomG@YAjoe=Wa&vLg_*rj==j#Rjg|gq3(Z3V<%mp2-i~3I}RTi`U=IY!q zJ6zR-XWkvDgSl*Ec@{V9aoJ(!u+?GbOMVgOc?SDR4@~&4E6LuDaei;PJadKFxmOr) ze1z68Faq>lPqy$&aAa+RBVw_;EWO)lK4aL88GXKLKNJb`1{FUB<3&*UbPO=Q=h?XI z6`q7gy8s73UGy^hB>_s_5@&v^Pr-hF74^$q2wn`C-1cV0k0oHoRBOUR9!_RhB#AxU zRu@Q#)DJstaEKr!Y|%3x3bnwTRo%c|O0tTz_Fv&oa9M#>;{rPz-g^=Oj{zqxN=lE= z1ai<-=ZEvv_C8E(wf5t&yK(SLCA0VL_>92>zb?sfNJ8=QH(spxt12ey%tpNi$6FVP z$k-%ztqe+O=MV`M1e?5FbxlJo{<_ckgD&##Rlj>WopQTz9beE@N}b5EgS;yEj(^sY z_H1D;`Jq{HZ>U&EI=N}y?JPsq5|e|{DU&LvF}l`zK8Ptk7uf02%hRb#zMf+ z5A=x3PajO|OI$_`pRb5tvSCb4)yV^3LWe+z%_pYkMeKV+IXG!3FOt#-7p^J}9w^#m zMufrizQPcdhoGO*b#v2pn-Sw+DN!)k{vZ9{n^tCS4ZJTxn%e-u^IcVJGqG7nBm=|Bks;MnV?A@eHUuLS#DUpP$MgZS`bG=$)z&18@!ILt_IZWrkFtka z;w!h`8TD~r#ewR%3wdRKcM1da&0;Dp0KNumC|FMXybgMl|lTIoht?wqkDYwj$a?T zU3AB?V&{7If_>(noRs~YN0$hv-}dzxyT+cnf78D{@%%#Oj6eKi@x8X@;SKLbTQ}de zSWbMuqnWBI;jjImm&j|v9NGtU3i+mRVIVPOoSVC)a)K|P-qj)4%6GbyC5yQ`P@B^m z$Em$Y3&1PL%Acw9t@B8iRYW!W$Y;bKCRAGA{bX}a>9a-h!MkY%oRQP@Y4}pYb;P}! zUfeTdm?y?Ei}vNBL%xDlmV5RKznog%z*28`8=Wv;F(xX=DYX^Sk+>Q()8}*b*tHKt z8}qOlg@X>d0DVG$aUbOe*!1m?Nm9rtEdFi)%{kOzn`w)}*qMf1)UB>QC1>Kg!}t~5dXb0Qa$~DU>2vn}Ev~uc zsJiJw!@5&F=riy{#f?%#kNoue)LV7vBlYJ7px9@(A+3D95%m3GT(ArGIk5zZ6Z0Ps=gE%JXd>Zl?4FO}=iAgldNt%5z*GpK5x- zw5X(C;`QzFghC|<-~I~!b9X9Gc~-vEnrkSS(I;AX=Vys zJ;Qc0G2zirLe$Hr(nSUv>3Ie?j|<87j&(ZJ5~VS-k`B+gg?HwSv?%O*Ye(>;o$X!^ zcYkr3O#Hx77Hm^Vbq()p-Jv}85I2#2+x2A6EPVH_lWODK12uFHz~sinh;}Ga>?~*T zlWmQ&@(djKOD-HIAA`k&x z&UOY+_K}iZgy>6?i%(cvi|wIWFZP*jBMGrjs|8-bCPQ{Sx49*Mj9F&JbdHyejU<_r z8b*zzntfw`=1R`g+0|>D0%?I2M z8kaQbPkK-PDD4_nsjo`EV<#Fub{0lZ(g)RB|`xZQdf36`|sptt!; zsh5ionQh&4G%*A1KN`=u%|$BsJi0A(9WYstrMt0Iqg-ImsA;DZZ@v}ub;WUOZ=|q2 zD!UYmxN339O|sRy!i^d-9xma!_kiCPwu2OK&&s94C5>2~Z@it`j=0#oOEt)w3d{7E zK9O_p5vIZj`w^DuQ^|CddE5O#&N(dRvF+%TLWUt+p*X&L(+*&AUoS*d%yBe7^Ul>O z)m?hQ^?Tu!beCI>b{n$^d=JXA#x5N!V(m3)zfqZ!dQ^7W#Q3{)1yBAxzXv-UV|Jv^ z#UxfHZ8>k`0hH%nvk&9B)YQ8BKc->ygb-sQV#7T7MqDgVyK{fgSXU0vN=iS!SgM{9ib0so{+fF>@S^EmV$=uI(h&ed-?Ku zMR}EGV)Oi5sS}ffB3|WEfphZL>og)@V^OB=-i_Kh%}|D%VvNmu*Y&ApVNc_vMRgyU z`@{wEOI?0b2;r(Lc_+lVpso31v4ZYM9Z4~4Zqhp=)Id=Bd-CGq)=ZX056pe!;}=1 z#Pq(4-S@WQknyH?fp5lk_vO|PpZygM^HGw*zM&Yk(a9B0dxEnBv1*|KHJmMvShY;k=;tbbNL zEt!Ncx8gibVKS-ia3POg?#rk!Z*sW zPLvjqaNtebxBcdo-|t_tWXXmX+E=XI*K`rn0L=g+ z(uP;ck_a>sAICW~0u+qxpD8cbZhy!p!sDc!oq=h|c|HR<`O2Q%yj&gsZok-UJ&?Zs z2Ld%=mUTd&dgR8K1p-yq%@-h_|92lx*Usm!SPcY}bqWv=QEw>_0Ln8MfB?|nWfaKA zTX{Y0xUtJxAY(fR2#Bt>76^!#&jJJ_x(oq%xP$kmpS5qd5(ud893UXkVt*hYmMsD0+~`EeG2y{ z5ROYkKBYY^0m5+$r2BjN4n&xiPLOUNr32*iS9xFc*+n)W++^H~MEVuTY$=`I76GYN zKH@$B;UXiD-*jytEgih?T62sENNgN#PpA16NTIU3W(C42dq3ZRaDV-!`<+@quB_or z={^=9l^m|S*){$IQf)bq668~44oIeIK&Jp=mIuG-1_O{l&!Y>5_!CHyyx)-q? zNN*{P6sv%YwFt;$3XqRIJhlPQZi2|)O#*?>Yt&%ei^TX1i1bwl=O}?VC^7=12l83S z2qZwA%eL2X!F~z*cQf6{P4hswJ8>21=QkiTl*_BS>thCh#D6f(L%1|;Adh+qc8PHL zEi>K77Ysmha21KK^b?R?(a5LRDj*fgslTs4LY2#%7|2@Q0w8F9XbK32ml&nT#bO|F zS@Fa;+Y%sUco8niB#=pzR^AO{gAS05e|f+lkb7Ir14+W`0}#)mZ+xWxfDmil>_GAxQVeb- zr2}COyLG~h+&O>?@HUQ7i83I&mQ#UT`W5WU-*vmeM(YhjZPrZ&Ab4C32DmJrsrQOd?WJH|T;$k*%*XpY zWI%q*Q-ORR){2ji+W~m-fe|1lSb*Rhf(q-GPJafedXcXih_uFCDqjLUN(J)OLjr>D zV#hPW)fr0pzx&3avoePlS%7f4c*AUx^^1%7%B`PYH;_51&8;GkJyami2?P#q#EwtG zDsn`{Btp+4pzTz2vj|Pw}mlW=BqIj6N7MC8EZB*X= z2qTcn@>>f?wBp>SCXjzA-8T#6zl!MA--lJ^tZLx(A|nuP>MaFifbu-JCXi2+?tk~g zZv6>-dA5nxU|9epHv85AQW{dp83aOk|M5046y9`X8C-g#ytaCY6$r84;r|*)X<}}; zQyqsEkZ09Jy^$DHty``2j)dN+j|_LK50NsGI#c1K$|$iFBEJNRUvEvnIOKy5eNGA2 z6W*MXpp%+hx1*4Q)Y*|Md1P3Ii+>(R_zfzML$rlM_`+)0B|HdjI?o#hV#}z)uTX&; zrj@n0p7K8K(EqlHy7R;a!Um+33gi>&+WKKQ(0bF|n>1~ChZ^RX4TKE{xK07`5BkfF zjc~uivdxFZeJBU$VOne;j6ja_JkJ~4O1ifR>sgH;%{CB5AlG~V;%=<;cz^r^*gzP8 z{LU93{P|U4|M8@j|06aKRv;}t0pU-*cILf5f2!%d!Un<$1g!B1h!?fmK$wBNWFe3* zfDMEh$XW}5JZuAD2h#kRWk9aKYy)8jLhj7kv1rjX!R7HqK4_n3>*Hg<24Vq_HmO8^ z(E`k9DYhZ>2OEeLK=1*P^?$&eq$T|Qzy@LokjJlkS{yT4k0&8E5KDl7=TV6sUAcHM zJWAWV*ay9Q;g{~aw*ni8ML<@bvtpF>CmV=WK)?kHfUF0)K%9f-rHO~e(~9v?*p%4~ zeMPr`B6O7187fM8ahoiB7JRBh<&rxEq*megzEPsAy+Bg7u0+L#fnFb|zfWHc|42tBZp24v+L z&jLCC+f11GJEmt1h_Ei>u?`YSIe#B0w`67*Nc1;2bxB1;>H^7-hlX`z5Wb6>QZ61G zBFs8r%N#xc0k}1oNdTE4yFHBt1f0M{dsSwO#;A_!8ZgU&2Y<@uE-0>OEbi9>Z3fR1 zk4?@iZfvYg9WRv#1Ogw^xs@c41hINUo0CD}rv!JQpi_SV7$-ae6QAYiURC6nfX^Fi z0?C4AF)E;?jH+x@_}pFC+6p`wkqDa;XfQc@8VokP#Qmr!vopmF1n;J9M9EGk49h_C z#3d3CXz61@y?+p6VLzD78X6EhcIElwJALQz)9t!I;8T{5+Vm7yO<{u#?T1JKMxjOn z0?8eZZT2{nM%eL17_n2T9__Y@jRs(_i%4>)E|6ePd{t6x39z=oqqQl}cx@jkSf)GJ zaMCb|EIUD}Qw_pxgGU2U;PNyPSqKO`sw4dx1U#KTpMMIZc>{xmzss%qHWy)gJX^Y$ z?#_Gz`Gx9Hi9jHex_NYyjUgePsx0+WY$C~kpKiF)CHf;1;&AJ$N>8{ zWyXGB`+pVdt%jhIj&-?Q?vJ9q=}c~%@V7itIVga^l8gfZ@LZnzw}YV3;L*bokW8YY zMF~;H(t&`s%O-hrob+b5w=ZSSXfXL5s!^*W0uhhx42bjzNFw?&4q5zh-hilo!mLO< zLjzBUHhO|3Q*Ji^M674Cq#miUf@rd`V|C{tXn&RPOH({{pEP9IS_ved{0=b$kYFyR z6dhzS1|$&OTua)E6Vsfi2L!fG@xhZFj)i69#!gs>Z~!<5U5ALlavhGMZW)z&K)Oqc z!9a>ox1Iz?GR|751%re0lC%YmJEs=*s?h-gTKAjav2Ue!+wXT%fMk zEmut-jRFxnvJCeivdRO*l|}|HPtpMb?tlA^Z#-1L=;FOoM@lDwIORaZ<|HD}3lOXk z#m@h=cRoK&1W_EHtfos#Dch}EQJ@H7qhJy~j1k&jNqK#3>SVbW9N;@wwAOY!Y0EAl+zbnI8m@%&U z6|-@x%uEEQPUTk3?6h-Vn!LN#V1MV*C+|VvyD8YuZ>mzg`{9CA!bk)@1v__~YmdWg zILA^54up;~HJ=U#;$-TZ6+U#ba3spggaI)$&F#KxFa~dt9v@uH;GaoXb0-QA3b#1t z2mx{+X-(5O*0h`N1Our*{-DI;$5vex2-%Th0baZ&o?y2?7X&g%B9Q?#r+=Pc0?fAK zcsy@lAdt&oHC4iClOK=@&>baRZ#fbW(ihL0PFT)?+y>&yC_rl5J5B!aStA^Kj~Yt0 z3A3P>LB)A==bw#EzN!@V+DxzdJ_uIPB#DVafm{O{gyBN18Gj&)EaT_- zR5}t6F3UCnfV6{g3qyK{LVtGp-1;1rCO+LiP|(m5mc@z1Pz!w@%H$@SEU#W`r~QOB zJ;p|k1dudw`V}Q0IerrHkzMzQFIXwoxIQJhGoxH^*N|iJAvQ=gm4}K7GLT;JJa?E3 zas(g~u1KB>gtT|u2^z9@CBGNGIq|z!{-ca9e!o!@H3U|Z3z4_w!hc!$*anh-xQi{- z6GPPFX^REM!H?=q(kYsJTQ#vxbv*h4fRt#lW4IU%e+L_fz0D9v=Dd5B>(tlirU2`S zGi^iC5It(RefRdC*T1BF4ZrNYJy2Ge1h$-)R-l%-rw20{wg(8;gO32Dd(CH}ArOdR zO7&X-Ku!%yKU#OiP{+By8b`*Qcm;m)=~>3|u-a*w+iTkAu1 zQ3WwklfN~CJV3bEeFPw=za)~l<5y5P5Y)NUD&ASJv9}Baw*K!}PINiSMkTv+F8-LM! zPC_HPO=?-rifVxw9^Yo^*Gc`BG}LFnis;Kqi_Pj5)FqLcW5G%~c(v@=(b@HpGkBog zuj{E)O4mo?|8>L`TWqn#7F%qw#THv^|IPjaVs>DXnQJ!100000NkvXXu0mjf2vaba diff --git a/README.md b/README.md index 2cfba0a16..2b6ddd2d7 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,21 @@ 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. +# Basic usage + +```python +import ics + +devices = ics.find_devices() +print(f"Found {len(devices)} devices...") +for device in devices: + # Print, open, load default settings, close + print(device) + device.open() + device.load_default_settings() + device.close() +``` + # Documentation http://python-ics.readthedocs.io/ @@ -35,6 +50,7 @@ http://python-ics.readthedocs.io/ - Building from source requires clang and clang-format to be present on the build machine. - python_ics has submodules, please be sure to initial all submodules also. + ```powershell PS > git clone git@github.com:intrepidcs/python_ics.git diff --git a/doc/requirements.txt b/doc/requirements.txt index f9d963c08..c52969dba 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1 +1,4 @@ -cython>=0.20 \ No newline at end of file +cython>=0.20 +m2r2 +docutils>=0.18.1,<0.21 +furo \ No newline at end of file diff --git a/doc/source/conf.py b/doc/source/conf.py index 5c6d2174d..214f33a0e 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -33,13 +33,14 @@ extensions = [ "sphinx.ext.autosummary", "sphinx.ext.autodoc", + "m2r2", ] # Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] # The suffix of source filenames. -source_suffix = ".rst" +source_suffix = [".rst", ".md"] # The encoding of source files. # source_encoding = 'utf-8-sig' @@ -103,13 +104,14 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -# html_theme = 'sphinx_rtd_theme' -html_theme = "classic" +#html_theme = 'sphinx_rtd_theme' +#html_theme = "classic" +html_theme = "furo" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -html_theme_options = {"body_max_width": "80%"} +#html_theme_options = {"body_max_width": "80%"} # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] diff --git a/doc/source/examples.rst b/doc/source/examples.rst index 41289592e..fc37068af 100644 --- a/doc/source/examples.rst +++ b/doc/source/examples.rst @@ -1,18 +1,18 @@ -============================================================ +############################################################################## Examples -============================================================ +############################################################################## Examples can be found at https://github.com/intrepidcs/python_ics/tree/master/examples For extra information on data structures and underlying functionality, please visit neoVI DLL Documentation under https://intrepidcs.com/support/support-resources/ Opening a device -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +============================================================================== The ``open_device_example.py`` example shows how to successfully open and close an Intrepid device. Transmitting and Receiving a CAN message -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +============================================================================== The following examples show how to interact with CAN messages on an Intrepid device. @@ -22,7 +22,7 @@ The following examples show how to interact with CAN messages on an Intrepid dev ISO 15765-2 Example -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +============================================================================== The ``iso15765_example.py`` example shows how to setup basic ISO 15765-2 receive filters and transmitting an ISO 15765-2 message. @@ -34,6 +34,6 @@ Similarly transmitting an ISO 15765-2 frame can be accomplished by passing a cus Missing an example? -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +============================================================================== Need an example on something that isn't covered here? Please submit an issue on github or feel free to send over a Pull Request of your own. \ No newline at end of file diff --git a/doc/source/generate_documentation.py b/doc/source/generate_documentation.py index 422b9dccd..62dc20e51 100644 --- a/doc/source/generate_documentation.py +++ b/doc/source/generate_documentation.py @@ -44,37 +44,44 @@ def generate_variables(): def generate_documentation(): return inspect.cleandoc( - """.. include:: header.rst + f""".. include:: header.rst .. include:: examples.rst - ============================================================ + ############################################################################## + PyNeoDeviceEx + ############################################################################## + .. autoclass:: ics.PyNeoDeviceEx + :members: + :show-inheritance: + :undoc-members: + + ############################################################################## Module Documentation - ============================================================ + ############################################################################## .. automodule:: ics.ics :members: :show-inheritance: :undoc-members: - ============================================================ + ############################################################################## Module Functions - ============================================================ + ############################################################################## - %s + {generate_functions()} - ============================================================ + ############################################################################## Module Structures - ============================================================ + ############################################################################## - %s + {generate_structures()} - ============================================================ + ############################################################################## Module Variables - ============================================================ + ############################################################################## - %s + {generate_variables()} """ - % (generate_functions(), generate_structures(), generate_variables()) ) diff --git a/doc/source/header.rst b/doc/source/header.rst index 4443bf2ce..90bc99c18 100644 --- a/doc/source/header.rst +++ b/doc/source/header.rst @@ -1,72 +1,14 @@ -============================================================ -python_ics -============================================================ +############################################################################## +README +############################################################################## +.. mdinclude:: ../../README.md -Intrepid Control Systems, Inc. open source Python module for interfacing to Intrepid hardware. Basic knowledge of using and installing Python modules is assumed. Please see https://docs.python.org/3/installing/index.html for documentation on how to install Python modules. - -This module is essentially just a wrapper around icsneo40.dll. For more documentation please visit neoVI DLL Documentation under https://intrepidcs.com/support/support-resources/ - -============================================================ -Whats New? -============================================================ - -v903+ is a new release that implements features that break existing API in some areas. - - -ISO 15765-2 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -old naming conventions have been updated to reflex closer to the actual codebase. - -.. code-block:: python - - # Old: - tx_msg = ics.CmISO157652TxMessage() - rx_msg = ics.CmISO157652RxMessage() - - # New: - tx_msg = ics.st_cm_iso157652_tx_message.st_cm_iso157652_tx_message() - rx_msg = ics.st_cm_iso157652_rx_message.st_cm_iso157652_rx_message() - -``ics.st_cm_iso157652_tx_message.st_cm_iso157652_tx_message()`` data structure is now a ctypes.c_ubytes array instead of a python list. - -.. code-block:: python - - # Old: - msg.data = [x for x in range(number_of_bytes)] - - # New: - my_data = [x for x in range(number_of_bytes)] - msg.data = (ctypes.c_ubyte*len(msg.data))(*my_data) - - >>> msg.data - - -Settings -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -v903 and up have converted over to a new auto generation of ``icsnVC40.h``. This enables faster support for newer Intrepid devices and less error prone. With this switch we have moved to using ``ics.s_device_settings``. - -.. code-block:: python - - # Old behavior: - device = ics.open_device() - settings = ics.get_device_settings(device) - # settings is a Vcan3Settings type - settings.can1.Baudrate = 1 - ics.set_device_settings(device, settings) - - # New behavior - device = ics.open_device() - settings = ics.get_device_settings(device) - # settings is a s_device_settings type - settings.vcan3.can1.Baudrate = 1 - ics.set_device_settings(device, settings) +############################################################################## PyInstaller -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +############################################################################## -Due to the added complexity underneath when building PyInstaller ``hidden_imports.py`` should be used now in your spec script: +Due to the added complexity underneath when building, PyInstaller ``hidden_imports.py`` should be used now in your spec script: .. code-block:: python @@ -110,105 +52,99 @@ Due to the added complexity underneath when building PyInstaller ``hidden_import upx_exclude=[], name='test') -============================================================ -Versioning Information -============================================================ - -Minor differences can occur between different icsnVC40.h versions. These differences are usually just structures and constant differences. Below is a list of how the python_ics version correlates to the icsnVC40.h version: - -v903 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Starting with 903, python_ics module will now match official upstream version releases. - -``pip install 'python_ics>=5.0,<904.0' --force-reinstall`` - - **Note:** Refer to platform specific installation if not on Windows - -Older Versions: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- v802 - ``pip install 'python_ics>=2.0,<3.0' --force-reinstall`` - - **Note:** Refer to platform specific installation if not on Windows +############################################################################## +Breaking Changes v915 +############################################################################## -- v803 - ``pip install 'python_ics>=3.0,<4.0' --force-reinstall`` +The icsneo40 library has migrated to the NeoDeviceEx structure and python_ics has finally been updated to reflect these changes. A new class `ics.PyNeoDeviceEx` now inherits `ics.structures.neo_device_ex.neo_device_ex` and allows a more pythonic way of coding. - **Note:** Refer to platform specific installation if not on Windows +Previous: -- v900 - ``pip install 'python_ics>=4.0,<5.0' --force-reinstall`` - - **Note:** Refer to platform specific installation if not on Windows - - -============================================================ -Installation on Windows -============================================================ +.. code-block:: python -PyPi provides binary packages for Windows. You can simply install the python_ics module by running the following command: + import ics + # Open the first device + device = ics.open_device() + # Load default settings + ics.load_default_settings(device) + # Close the device + ics.close_device(device) + # When device goes out of scope, its automatically cleaned up here by garbage collection if not closed -``pip install python_ics`` +New: - **Note:** pip.exe is usually located under the Scripts directory under the Python - installation directory. +.. code-block:: python - -Building from source -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + import ics + # Open the first device + device = ics.open_device() + # Load default settings + device.load_default_settings() + # Close the device + device.close() + # When device goes out of scope, its automatically cleaned up here by garbage collection if not closed -Building from source on windows is not usually need so it won't really be covered here in detail. As a starting point you'll need to match the compiler version used to build the official Python binaries (MSVC). If the build environment is setup correctly, you should be able to run ``python setup.py build`` like usual. -Intrepid icsneo40 Library -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -python_ics module looks for ``icsneo40.dll`` in the normal windows DLL search paths. The module will throw an exception if its not found. +`ics.PyNeoDeviceEx` includes accessors to provide backwards compatibility with the old NeoDevice class so all existing code should still be functional. +############################################################################## +Breaking Changes v903 +############################################################################## +ISO 15765-2 +============================================================================== -============================================================ -Installation on Linux -============================================================ -python_ics does not provide binaries for linux distributions so we will have to compile from source. This can be easily achieved by utilzing Python's PIP. First we need to make sure we have some base packages installed. +old naming conventions have been updated to reflex closer to the actual codebase. -Fedora Dependencies (FC28) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: python -``sudo dnf install redhat-rpm-config gcc g++ python3-devel clang clang-tools-extra flex bison`` + # Old: + tx_msg = ics.CmISO157652TxMessage() + rx_msg = ics.CmISO157652RxMessage() -Debian/Ubuntu Dependencies -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + # New: + tx_msg = ics.st_cm_iso157652_tx_message.st_cm_iso157652_tx_message() + rx_msg = ics.st_cm_iso157652_rx_message.st_cm_iso157652_rx_message() -``sudo apt install build-essential python-dev clang-format flex bison`` +``ics.st_cm_iso157652_tx_message.st_cm_iso157652_tx_message()`` data structure is now a ctypes.c_ubytes array instead of a python list. -libicsneo library -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. code-block:: python -The legacy version of libicsneo library (``libicsneolegacy.so``) is required, see the specific repo for details: https://github.com/intrepidcs/libicsneo + # Old: + msg.data = [x for x in range(number_of_bytes)] -Others (Required dependencies) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- GCC -- G++ -- Python Development packages (We Need to link to Python.h) -- Clang (llvm) -- clang-format + # New: + my_data = [x for x in range(number_of_bytes)] + msg.data = (ctypes.c_ubyte*len(msg.data))(*my_data) + >>> msg.data + -Installation -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Settings +============================================================================== -After dependencies are installed we can run the following pip command: +v903 and up have converted over to a new auto generation of ``icsnVC40.h``. This enables faster support for newer Intrepid devices and less error prone. With this switch we have moved to using ``ics.s_device_settings``. -``pip install python_ics`` +.. code-block:: python - **Note:** A lot of distributions have Python 2 and 3 installed side by side. As of this writing without a version suffix the commands still default to version 2 of the Python binaries. In order to utilize the Python 3 binaries you must append a 3 after the binary names (python3 and pip3 instead of just python and pip). + # Old behavior: + device = ics.open_device() + settings = ics.get_device_settings(device) + # settings is a Vcan3Settings type + settings.can1.Baudrate = 1 + ics.set_device_settings(device, settings) + # New behavior + device = ics.open_device() + settings = ics.get_device_settings(device) + # settings is a s_device_settings type + settings.vcan3.can1.Baudrate = 1 + ics.set_device_settings(device, settings) -============================================================ +############################################################################## Getting Started -============================================================ +############################################################################## Please see https://github.com/intrepidcs/python_ics/tree/master/examples for simple examples on how to use this module. Most function documentation has a simple example on how its intended to be used. Every function was designed to be as close as possible to it's C counterpart unless it was deemed to make the function more pythonic in nature. For those experienced with the C API ``ics.open_device`` (``icsneoOpenNeoDevice()``) behavior has been changed the most (no parameters makes it auto utilize ``ics.find_devices`` (``icsneoFindNeoDevices()``) and open the first device). Also since python is a object oriented language the module utilizes this and auto cleans up device handles when going out of scope so there is usually no need to call ``ics.close_device()``. - diff --git a/doc/source/index.rst b/doc/source/index.rst index 5ad44b1f5..69b8e701d 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -1,17 +1,25 @@ .. include:: header.rst .. include:: examples.rst -============================================================ +############################################################################## +PyNeoDeviceEx +############################################################################## +.. autoclass:: ics.PyNeoDeviceEx + :members: + :show-inheritance: + :undoc-members: + +############################################################################## Module Documentation -============================================================ +############################################################################## .. automodule:: ics.ics :members: :show-inheritance: :undoc-members: -============================================================ +############################################################################## Module Functions -============================================================ +############################################################################## .. autosummary:: ics.ISO15765_DisableNetworks @@ -46,6 +54,7 @@ Module Functions ics.generic_api_get_status ics.generic_api_read_data ics.generic_api_send_command + ics.get_accessory_firmware_version ics.get_active_vnet_channel ics.get_all_chip_versions ics.get_backup_power_enabled @@ -65,7 +74,6 @@ Module Functions ics.get_messages ics.get_pcb_serial_number ics.get_performance_parameters - ics.get_accessory_firmware_version ics.get_rtc ics.get_script_status ics.get_serial_number @@ -91,6 +99,7 @@ Module Functions ics.set_led_property ics.set_reflash_callback ics.set_rtc + ics.set_safe_boot_mode ics.start_dhcp_server ics.stop_dhcp_server ics.transmit_messages @@ -114,6 +123,7 @@ Module Functions ics.GenericAPIGetStatus ics.GenericAPIReadData ics.GenericAPISendCommand + ics.GetAccessoryFwVersion ics.GetActiveVNETChannel ics.GetAllChipVersions ics.GetBackupPowerEnabled @@ -130,7 +140,6 @@ Module Functions ics.GetMessages ics.GetPCBSerialNumber ics.GetPerformanceParameters - ics.GetAccessoryFwVersion ics.GetRTC ics.GetSerialNumber ics.GetTimeStampForMsg @@ -169,6 +178,7 @@ Module Functions ics.SetLedProperty ics.SetRTC ics.SetReflashDisplayCallback + ics.SetSafeBootMode ics.StartDHCPServer ics.StopDHCPServer ics.TxMessages @@ -193,6 +203,7 @@ Module Functions ics.icsneoGenericAPIGetStatus ics.icsneoGenericAPIReadData ics.icsneoGenericAPISendCommand + ics.icsneoGetAccessoryFwVersion ics.icsneoGetActiveVNETChannel ics.icsneoGetAllChipVersions ics.icsneoGetBackupPowerEnabled @@ -209,7 +220,6 @@ Module Functions ics.icsneoGetMessages ics.icsneoGetPCBSerialNumber ics.icsneoGetPerformanceParameters - ics.icsneoGetAccessoryFwVersion ics.icsneoGetRTC ics.icsneoGetSerialNumber ics.icsneoGetTimeStampForMsg @@ -252,6 +262,7 @@ Module Functions ics.icsneoSetLedProperty ics.icsneoSetRTC ics.icsneoSetReflashDisplayCallbacks + ics.icsneoSetSafeBootMode ics.icsneoStartDHCPServer ics.icsneoStopDHCPServer ics.icsneoTxMessages @@ -266,9 +277,9 @@ Module Functions ics.icsneowBMSManagerWriteLock -============================================================ +############################################################################## Module Structures -============================================================ +############################################################################## .. autoclass:: ics.structures.a2_b_monitor_settings.a2_b_monitor_settings :members: @@ -282,6 +293,10 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.accessory_error_type.accessory_error_type + :members: + :undoc-members: + .. autoclass:: ics.structures.can_settings.can_settings :members: :undoc-members: @@ -338,6 +353,14 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.epsilon10_gphyfw.epsilon10_gphyfw + :members: + :undoc-members: + + .. autoclass:: ics.structures.epsilon_10_g_phy_select.epsilon_10_g_phy_select + :members: + :undoc-members: + .. autoclass:: ics.structures.ethernet10_g_settings.ethernet10_g_settings :members: :undoc-members: @@ -382,6 +405,14 @@ Module Structures :members: :undoc-members: + .. autoclass:: ics.structures.flash_accessory_firmware_params.flash_accessory_firmware_params + :members: + :undoc-members: + + .. autoclass:: ics.structures.flash_accessory_index.flash_accessory_index + :members: + :undoc-members: + .. autoclass:: ics.structures.flex_vnet_mode.flex_vnet_mode :members: :undoc-members: @@ -526,27 +557,31 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.mac_sec_flags.mac_sec_flags + .. autoclass:: ics.structures.mac_sec_flags_t.mac_sec_flags_t :members: :undoc-members: - .. autoclass:: ics.structures.mac_sec_map.mac_sec_map + .. autoclass:: ics.structures.mac_sec_global_flags_t.mac_sec_global_flags_t :members: :undoc-members: - .. autoclass:: ics.structures.mac_sec_rule.mac_sec_rule + .. autoclass:: ics.structures.mac_sec_map_t.mac_sec_map_t :members: :undoc-members: - .. autoclass:: ics.structures.mac_sec_sa.mac_sec_sa + .. autoclass:: ics.structures.mac_sec_rule_t.mac_sec_rule_t :members: :undoc-members: - .. autoclass:: ics.structures.mac_sec_sc.mac_sec_sc + .. autoclass:: ics.structures.mac_sec_sa_t.mac_sec_sa_t :members: :undoc-members: - .. autoclass:: ics.structures.mac_sec_sec_y.mac_sec_sec_y + .. autoclass:: ics.structures.mac_sec_sc_t.mac_sec_sc_t + :members: + :undoc-members: + + .. autoclass:: ics.structures.mac_sec_sec_y_t.mac_sec_sec_y_t :members: :undoc-members: @@ -558,7 +593,7 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.macsec_mpls_outer.macsec_mpls_outer + .. autoclass:: ics.structures.macsec_mpls_outer_t.macsec_mpls_outer_t :members: :undoc-members: @@ -578,23 +613,27 @@ Module Structures :members: :undoc-members: - .. autoclass:: ics.structures.macsec_vlantag.macsec_vlantag + .. autoclass:: ics.structures.macsec_vlantag_t.macsec_vlantag_t :members: :undoc-members: - .. autoclass:: ics.structures.op_eth_general_settings.op_eth_general_settings + .. autoclass:: ics.structures.neo_device.neo_device :members: :undoc-members: - .. autoclass:: ics.structures.op_eth_link_mode.op_eth_link_mode + .. autoclass:: ics.structures.neo_device_ex.neo_device_ex :members: :undoc-members: - .. autoclass:: ics.structures.op_eth_settings.op_eth_settings + .. autoclass:: ics.structures.op_eth_general_settings.op_eth_general_settings + :members: + :undoc-members: + + .. autoclass:: ics.structures.op_eth_link_mode.op_eth_link_mode :members: :undoc-members: - .. autoclass:: ics.structures.phy_error_type.phy_error_type + .. autoclass:: ics.structures.op_eth_settings.op_eth_settings :members: :undoc-members: @@ -1064,9 +1103,9 @@ Module Structures -============================================================ +############################################################################## Module Variables -============================================================ +############################################################################## .. py:data:: A2B_SETTINGS_FLAG_16BIT :annotation: = 1 @@ -1144,7 +1183,7 @@ Module Variables :annotation: = 6 .. py:data:: BUILD_DATETIME - :annotation: = Feb 1 2024 11:29:42 + :annotation: = Jun 3 2024 15:08:23 .. py:data:: CANFD_BRS_ENABLED :annotation: = 2 @@ -1215,6 +1254,18 @@ Module Variables .. py:data:: DRIVER_USB3 :annotation: = 192 + .. py:data:: EPSILON_10G_PHY1 + :annotation: = 1 + + .. py:data:: EPSILON_10G_PHY2 + :annotation: = 2 + + .. py:data:: EPSILON_88Q6113_SWITCH_A + :annotation: = 1 + + .. py:data:: EPSILON_88Q6113_SWITCH_B + :annotation: = 2 + .. py:data:: ETHERNET10G_SETTINGS_SIZE :annotation: = 24 @@ -1237,7 +1288,7 @@ Module Variables :annotation: = 2 .. py:data:: ETHERNET_SETTINGS10G_FLAG_COMM_IN_USE - :annotation: = -2147483648 + :annotation: = 2147483648 .. py:data:: ETHERNET_SETTINGS10G_FLAG_CONFIG_NOT_ALLOWED :annotation: = 32 @@ -1368,6 +1419,24 @@ Module Variables .. py:data:: FIRE3_REPORT_ORIENTATION :annotation: = 2048 + .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY1 + :annotation: = 2 + + .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY1_PHY2 + :annotation: = 4 + + .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY2 + :annotation: = 3 + + .. py:data:: FLASH_ACCESSORY_EPSILON_10G_PHY_FW_0_3_7_0 + :annotation: = 0 + + .. py:data:: FLASH_ACCESSORY_EPSILON_SWITCH_A + :annotation: = 0 + + .. py:data:: FLASH_ACCESSORY_EPSILON_SWITCH_B + :annotation: = 1 + .. py:data:: GENERIC_API_DATA_BUFFER_SIZE :annotation: = 513 @@ -1392,6 +1461,9 @@ Module Variables .. py:data:: GS_VERSION :annotation: = 5 + .. py:data:: HADRWARE_TIMESTAMP_ID_FIXED + :annotation: = 128 + .. py:data:: HARDWARE_TIMESTAMP_ID_AVT_716 :annotation: = 2 @@ -1573,7 +1645,7 @@ Module Variables :annotation: = 24 .. py:data:: MACSEC_SETTINGS_SIZE - :annotation: = 1400 + :annotation: = 2040 .. py:data:: MACSEC_VF_CHECK :annotation: = 1 @@ -1717,7 +1789,7 @@ Module Variables :annotation: = 1024 .. py:data:: NEODEVICE_OBD2_SIM - :annotation: = -2147483648 + :annotation: = 2147483648 .. py:data:: NEODEVICE_OBD2_SIM_DOIP :annotation: = 25 @@ -2169,6 +2241,18 @@ Module Variables .. py:data:: NETID_OP_ETHERNET12 :annotation: = 87 + .. py:data:: NETID_OP_ETHERNET13 + :annotation: = 553 + + .. py:data:: NETID_OP_ETHERNET14 + :annotation: = 554 + + .. py:data:: NETID_OP_ETHERNET15 + :annotation: = 555 + + .. py:data:: NETID_OP_ETHERNET16 + :annotation: = 556 + .. py:data:: NETID_OP_ETHERNET2 :annotation: = 18 @@ -2379,6 +2463,9 @@ Module Variables .. py:data:: PLUTO_NUM_PRIORITY :annotation: = 8 + .. py:data:: PROXIMA_NUM_PORTS + :annotation: = 19 + .. py:data:: RADEPSILON_MAX_PHY :annotation: = 18 @@ -3049,7 +3136,7 @@ Module Variables :annotation: = 1073741824 .. py:data:: SPY_STATUS2_ETHERNET_T1S_ETHERNET - :annotation: = -2147483648 + :annotation: = 2147483648 .. py:data:: SPY_STATUS2_ETHERNET_T1S_SYMBOL :annotation: = 536870912 @@ -3124,7 +3211,7 @@ Module Variables :annotation: = 268435456 .. py:data:: SPY_STATUS2_LIN_NO_SLAVE_DATA - :annotation: = -2147483648 + :annotation: = 2147483648 .. py:data:: SPY_STATUS2_LIN_SLAVE_BYTE_ERROR :annotation: = 536870912 @@ -3166,7 +3253,7 @@ Module Variables :annotation: = 134217728 .. py:data:: SPY_STATUS2_MOST_CHANGED_PAR - :annotation: = -2147483648 + :annotation: = 2147483648 .. py:data:: SPY_STATUS2_MOST_CONTROL_DATA :annotation: = 16777216 @@ -3286,7 +3373,7 @@ Module Variables :annotation: = 131072 .. py:data:: SPY_STATUS_EXTENDED - :annotation: = -2147483648 + :annotation: = 2147483648 .. py:data:: SPY_STATUS_FLEXRAY_PDU :annotation: = 268435456 diff --git a/examples/iso15765_example.py b/examples/iso15765_example.py index 66dc8d037..d1c12ed22 100644 --- a/examples/iso15765_example.py +++ b/examples/iso15765_example.py @@ -6,12 +6,6 @@ # Helper Functions ########################################################## -def dev_name(device): - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - def print_message(msg): if not enable_print_message: @@ -43,7 +37,7 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) @@ -51,7 +45,7 @@ def open_device(index=0): else: print("Opening Device...") device = ics.open_device() - print("Opened Device %s." % dev_name(device)) + print(f"Opened Device {device}.") return device @@ -84,12 +78,12 @@ def transmit_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): msg.data = (ctypes.c_ubyte * len(msg.data))(*my_data) # Transmit the message - print("Transmitting iso15765 message on {}...".format(dev_name(device))) + print("Transmitting iso15765 message on {}...".format(device)) ics.iso15765_transmit_message(device, netid, msg, 3000) # Wait for the messages to be transmitted, this can be calculated a lot better but works here. time.sleep((((number_of_bytes / 8) * msg.fs_timeout) / 1000.0) + 0.5) # print_message(msg) - print("Transmitted iso15765 message on {}.".format(dev_name(device))) + print("Transmitted iso15765 message on {}.".format(device)) def setup_rx_iso15765_msg(device, netid=ics.NETID_HSCAN, is_canfd=False): diff --git a/examples/lin_settings_example.py b/examples/lin_settings_example.py index a46a4eb0f..1e0df8154 100644 --- a/examples/lin_settings_example.py +++ b/examples/lin_settings_example.py @@ -47,14 +47,6 @@ def get_device_specific_settings(s: s_device_settings) -> object: return getattr(s.Settings, setting_map[s.DeviceSettingType]) -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def print_settings(device_specific_settings): if hasattr(device_specific_settings, "lin1"): print(f"LIN 1 Baudrate: {settings.Settings.fire3.lin1.Baudrate}") @@ -67,7 +59,7 @@ def print_settings(device_specific_settings): try: # Open the first device device = ics.open_device() - print(f"Opened Device {dev_name(device)} (Open Client handles: {device.NumberOfClients})...") + print(f"Opened Device {device} (Open Client handles: {device.NumberOfClients})...") except ics.RuntimeError as ex: print(f"Failed to open first device: {ex}") exit(1) diff --git a/examples/open_device_example.py b/examples/open_device_example.py index 826e9a673..5dc9eb38d 100644 --- a/examples/open_device_example.py +++ b/examples/open_device_example.py @@ -5,14 +5,6 @@ enable_use_server = True -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def open_device(index=0): device = None if enable_use_server: @@ -21,7 +13,7 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) @@ -29,7 +21,7 @@ def open_device(index=0): else: print("Opening Device...") device = ics.open_device() - print("Opened Device %s." % dev_name(device)) + print("Opened Device %s." % device) return device diff --git a/examples/transmit_can_example.py b/examples/transmit_can_example.py index 4ec554a03..93ae715e1 100644 --- a/examples/transmit_can_example.py +++ b/examples/transmit_can_example.py @@ -5,14 +5,6 @@ enable_use_server = True -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def open_device(index=0): device = None if enable_use_server: @@ -21,7 +13,7 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) @@ -29,7 +21,7 @@ def open_device(index=0): else: print("Opening Device...") device = ics.open_device() - print("Opened Device %s." % dev_name(device)) + print("Opened Device %s." % device) return device diff --git a/examples/transmit_canfd_example.py b/examples/transmit_canfd_example.py index e0e6b9dc2..da7fdc8d1 100644 --- a/examples/transmit_canfd_example.py +++ b/examples/transmit_canfd_example.py @@ -37,14 +37,6 @@ def are_errors_present(msg): return False -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def open_device(index=0): device = None if enable_use_server: @@ -53,7 +45,7 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) @@ -61,7 +53,7 @@ def open_device(index=0): else: print("Opening Device...") device = ics.open_device() - print("Opened Device %s." % dev_name(device)) + print("Opened Device %s." % device) return device @@ -83,7 +75,7 @@ def transmit_can(device): time.sleep(0.5) # get all the messages on this device and print out the transmitted messages print("=" * 80) - print(f"Transmitted Messages on {dev_name(device)}") + print(f"Transmitted Messages on {device}") print("=" * 80) msgs, error_count = ics.get_messages(device) for i, m in enumerate(msgs): @@ -102,7 +94,7 @@ def transmit_can(device): def receive_can(device): msgs, error_count = ics.get_messages(device) print("=" * 80) - print(f"Received Messages on {dev_name(device)}") + print(f"Received Messages on {device}") print("=" * 80) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): diff --git a/examples/transmit_ethernet_example.py b/examples/transmit_ethernet_example.py index 8cf579789..b0c7bb79d 100644 --- a/examples/transmit_ethernet_example.py +++ b/examples/transmit_ethernet_example.py @@ -37,14 +37,6 @@ def are_errors_present(msg): return False -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def open_device(index=0): device = None if enable_use_server: @@ -53,7 +45,7 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) @@ -61,7 +53,7 @@ def open_device(index=0): else: print("Opening Device...") device = ics.open_device() - print("Opened Device %s." % dev_name(device)) + print("Opened Device %s." % device) return device @@ -108,7 +100,7 @@ def transmit_ethernet(device): time.sleep(0.5) # get all the messages on this device and print out the transmitted messages print("=" * 80) - print(f"Transmitted Messages on {dev_name(device)}") + print(f"Transmitted Messages on {device}") print("=" * 80) msgs, error_count = ics.get_messages(device) for i, m in enumerate(msgs): @@ -127,7 +119,7 @@ def transmit_ethernet(device): def receive_ethernet(device): msgs, error_count = ics.get_messages(device) print("=" * 80) - print(f"Received Messages on {dev_name(device)}") + print(f"Received Messages on {device}") print("=" * 80) print("Received {} messages with {} errors.".format(len(msgs), error_count)) for i, m in enumerate(msgs): diff --git a/examples/transmit_lin_example.py b/examples/transmit_lin_example.py index e698a8e40..441cba8d0 100755 --- a/examples/transmit_lin_example.py +++ b/examples/transmit_lin_example.py @@ -6,15 +6,6 @@ # with neoVI Server enabled so we can successfully open devices enable_use_server = True - -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def open_device(index=0): device = None if enable_use_server: @@ -23,7 +14,7 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) @@ -31,7 +22,7 @@ def open_device(index=0): else: print("Opening Device...") device = ics.open_device() - print("Opened Device %s." % dev_name(device)) + print("Opened Device %s." % device) return device diff --git a/examples/transmit_lin_ldf_example.py b/examples/transmit_lin_ldf_example.py index c937810cc..1879b7a33 100755 --- a/examples/transmit_lin_ldf_example.py +++ b/examples/transmit_lin_ldf_example.py @@ -10,14 +10,6 @@ def parse_ldf(): return ldfparser.parse_ldf(path) -def dev_name(device): - # Return a friendly name of the device (ie. neoVI FIRE2 CY1234) - if int("0A0000", 36) <= device.SerialNumber <= int("ZZZZZZ", 36): - return device.Name + " " + ics.base36enc(device.SerialNumber) - else: - return device.Name + " " + str(device.SerialNumber) - - def open_device(index=0): device = None # ics.open_device() won't open a device if we have handles open already @@ -25,12 +17,12 @@ def open_device(index=0): devices = ics.find_devices() print( "Opening Device {} (Open Client handles: {})...".format( - dev_name(devices[index]), devices[index].NumberOfClients + devices[index], devices[index].NumberOfClients ) ) ics.open_device(devices[index]) device = devices[index] - print("Opened Device %s." % dev_name(device)) + print("Opened Device %s." % device) return device diff --git a/src/ics/py_neo_device_ex.py b/src/ics/py_neo_device_ex.py index 0a586a9f0..af0c9a0e3 100644 --- a/src/ics/py_neo_device_ex.py +++ b/src/ics/py_neo_device_ex.py @@ -91,24 +91,24 @@ def serial_number(self) -> str: raise ValueError(f"Failed to convert SerialNumber {self.SerialNumber} to a valid serial number.") def open(self, *args, **kwargs): - """Open the device. Returns a reference to Self on open.""" + """Open the device. Returns a reference to Self on open. See ics.open_device for details on arguments.""" return ics.open_device(self, *args, **kwargs) def close(self): - """Close the device. Returns the number of errors on close.""" + """Close the device. Returns the number of errors on close. See ics.close_device for details on arguments.""" return ics.close_device(self) def load_default_settings(self): - """Loads default settings on the device. Requires the device to be open.""" + """Loads default settings on the device. Requires the device to be open. See ics.load_default_settings for details on arguments.""" return ics.load_default_settings(self) def transmit_messages(self, *args, **kwargs): - """Transmit messages on the device. Requires the device to be open.""" + """Transmit messages on the device. Requires the device to be open. See ics.transmit_messages for details on arguments.""" return ics.transmit_messages(self, *args, **kwargs) def get_messages(self, *args, **kwargs) -> Tuple[SpyMessage, int]: - """Get messages on the device. Requires the device to be open.""" + """Get messages on the device. Requires the device to be open. See ics.get_messages for details on arguments.""" return ics.get_messages(self, *args, **kwargs) def coremini_clear(self, *args, **kwargs): diff --git a/src/main.cpp b/src/main.cpp index df84fe5ca..c2e29f335 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,15 +10,15 @@ #define _DOC_ICS_MODULE \ "Python C Code module for interfacing to the icsneo40 dynamic library. Code tries\n" \ "to respect PEP 8 (http://python.org/dev/peps/pep-0008). Function naming convention does\n" \ - "not follow the tradition c style icsneo40 naming convention as pyics module\n" \ + "not follow the tradition c style icsneo40 naming convention as the python_ics module\n" \ "name acts as the namespace (icsneo portion of the function) and function names\n" \ - "are suppose to be lowercase with underscores instead of mixedCase like icsneo API.\n" \ + "are suppose to be lowercase with underscores instead of mixedCase like the icsneo API.\n" \ "\n" \ "C API can be mimiced almost identically by doing the following:\n" \ "\t>>> import ics as icsneo\n" \ "\t>>> devices = icsneo.FindNeoDevices()\n" \ "\t>>> for device in devices:\n" \ - "\t... print(device.Name, device.SerialNumber)\n" \ + "\t... print(device)\n" \ "\t...\n" \ "\tneoVI FIRE 59886\n" \ "\n" \ @@ -26,18 +26,17 @@ "\t>>> import ics\n" \ "\t>>> devices = ics.find_devices()\n" \ "\t>>> for device in devices:\n" \ - "\t... print(device.Name, device.SerialNumber)\n" \ + "\t... print(device)\n" \ "\t...\n" \ "\tneoVI FIRE 59886\n" \ "\n" \ - "It should be noted that :class:` PyNeoDeviceEx" \ - "` is used a little bit differently than the C API.\n" \ - ":class:` PyNeoDeviceEx" "` contains two extra members:\n" \ - ":class:` PyNeoDeviceEx" ".AutoHandleClose` and :class:`" MODULE_NAME \ - ".PyNeoDeviceEx._Handle`\n\n" \ + "It should be noted that :class:`" MODULE_NAME ".PyNeoDeviceEx`" \ + " is used a little bit differently than the C API.\n" \ + ":class:`" MODULE_NAME ".PyNeoDeviceEx` contains two extra members:\n" \ + ":class:`" MODULE_NAME ".PyNeoDeviceEx.AutoHandleClose` and :class:`" MODULE_NAME ".PyNeoDeviceEx._Handle`\n\n" \ "The handle normally returned from `icsneoOpenNeoDevice()` is stored inside _Handle and setting AutoHandleClose " \ "to True (Default)\n" \ - "will automatically close the handle when the :class:` PyNeoDeviceEx" \ + "will automatically close the handle when the :class:`" MODULE_NAME ".PyNeoDeviceEx" \ "` goes out of scope.\n" \ "\n" \ "\n" \ From a4cf9f2e2fffb89d64b07e33b9c9abb0a1fe124f Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Wed, 5 Jun 2024 09:09:31 -0400 Subject: [PATCH 161/201] V915.14 update (#191) * Update to v915 header * updated documentation to 915.14 --------- Signed-off-by: David Rebbe --- doc/source/conf.py | 2 +- include/ics/icsnVC40.h | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 214f33a0e..d50d899ff 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -57,7 +57,7 @@ # built documents. # # The short X.Y version. -version = "914.14" +version = "915.14" # The full version, including alpha/beta/rc tags. release = version diff --git a/include/ics/icsnVC40.h b/include/ics/icsnVC40.h index 2a5b48b84..f96623b95 100644 --- a/include/ics/icsnVC40.h +++ b/include/ics/icsnVC40.h @@ -1296,6 +1296,7 @@ typedef struct ETHERNET_SETTINGS_t #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 @@ -1333,6 +1334,7 @@ typedef struct ETHERNET_SETTINGS2_t * 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 @@ -1353,6 +1355,10 @@ typedef struct ETHERNET_SETTINGS2_t #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 @@ -1368,6 +1374,10 @@ typedef struct ETHERNET10G_SETTINGS_t * 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; From 158914f76a46f4160cba600624bb48015647704d Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Thu, 6 Jun 2024 14:36:12 -0400 Subject: [PATCH 162/201] fixed project name for proper pypi uploading. --- pyproject.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 856fc5ed3..de3605fb8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [project] -name = "ics" +name = "python_ics" dynamic = ["version"] authors = [ {name = "David Rebbe", email = "drebbe@intrepidcs.com"}, @@ -24,7 +24,6 @@ classifiers=[ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", ] [project.urls] From 72173b5d126c48f7eabc6e340e52db7673e96174 Mon Sep 17 00:00:00 2001 From: msmoger-intrepid <63175083+msmoger-intrepid@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:04:58 -0400 Subject: [PATCH 163/201] SPI & wBMS Messages Fix (#194) * Update object_spy_message.h to fi Add missing isoSPI and wBMS Extended data Support * Fix formatting --- include/object_spy_message.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/include/object_spy_message.h b/include/object_spy_message.h index bb90d33bf..251002da0 100644 --- a/include/object_spy_message.h +++ b/include/object_spy_message.h @@ -280,12 +280,16 @@ static PyObject* spy_message_object_getattr(PyObject* o, PyObject* attr_name) 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.ExtraDataPtr != NULL) { + 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) { + 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; @@ -386,7 +390,8 @@ static int spy_message_object_setattr(PyObject* o, PyObject* name, PyObject* val 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) { + 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; From bce5b0d27bdb776ccd2bc86d1609ce339eefae06 Mon Sep 17 00:00:00 2001 From: David Rebbe Date: Fri, 4 Oct 2024 10:34:45 -0400 Subject: [PATCH 164/201] 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 165/201] 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 166/201] 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 167/201] 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 168/201] 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 169/201] 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 170/201] 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 171/201] 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 172/201] 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 173/201] 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 174/201] 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 175/201] 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 176/201] 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 177/201] 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 178/201] 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 179/201] 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 180/201] 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 181/201] 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 182/201] 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 183/201] 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 184/201] 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 185/201] 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 186/201] 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 187/201] 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 188/201] 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 189/201] 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 190/201] 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 191/201] 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 192/201] 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 193/201] 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 194/201] 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 195/201] 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 196/201] 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 197/201] 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 198/201] 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 199/201] 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 200/201] 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 201/201] 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", ]