Clean up icsnVC40.h for the legacy API

pull/4/head
Paul Hollinsky 2018-10-22 12:46:27 -04:00
parent 9675bb81f7
commit a13adec04a
1 changed files with 639 additions and 714 deletions

View File

@ -1,4 +1,3 @@
#include "string.h"
#include <string>
#include <cstdint>
@ -22,14 +21,14 @@
#define NEOVI_COMMTYPE_USB_ISO_DONT_USE 2
#define NEOVI_COMMTYPE_TCPIP 3
//hardware constants
// Hardware constants
#define NEODEVICE_UNKNOWN 0
#define NEODEVICE_BLUE 1
#define NEODEVICE_SW_VCAN 2
#define NEODEVICE_DW_VCAN 4
#define NEODEVICE_FIRE 8
#define NEODEVICE_VCAN3 16
#define NEODEVICE_YELLOW 32 //Deprecated
#define NEODEVICE_YELLOW 32 // Deprecated
#define NEODEVICE_RED 64
#define NEODEVICE_ECU 128
#define NEODEVICE_IEVB 256
@ -59,7 +58,7 @@
#define NEODEVICE_OBD2_SIM 0x80000000
#define NEODEVICE_ALL 0xFFFFBFFF
//device ID's
// Device ID's
const int NETID_DEVICE = 0;
const int NETID_HSCAN = 1;
const int NETID_MSCAN = 2;
@ -119,7 +118,6 @@ const int NETID_OP_ETHERNET10 = 78;
const int NETID_OP_ETHERNET11 = 79;
const int NETID_OP_ETHERNET12 = 87;
// Constants used to calculate the timestamp
const double NEOVI_TIMESTAMP_2 = 0.1048576;
const double NEOVI_TIMESTAMP_1 = 0.0000016;
@ -136,7 +134,7 @@ const double NEOVI_RED_TIMESTAMP_1_25NS = 0.000000025;
const double NEOVI_RED_TIMESTAMP_2_10NS = 429.4967296;
const double NEOVI_RED_TIMESTAMP_1_10NS = 0.00000001;
//Status Bitfield 1
// Status Bitfield 1
const long SPY_STATUS_GLOBAL_ERR = 0x01;
const long SPY_STATUS_TX_MSG = 0x02;
const long SPY_STATUS_XTD_FRAME = 0x04;
@ -184,15 +182,15 @@ const long NEO_CFG_MPIC_HS_CAN_CNF1 = 512 + 10;
const long NEO_CFG_MPIC_HS_CAN_CNF2 = 512 + 9;
const long NEO_CFG_MPIC_HS_CAN_CNF3 = 512 + 8;
const long NEO_CFG_MPIC_HS_CAN_MODE = 512 + 54;
// med speed CAN
// Med speed CAN
const long NEO_CFG_MPIC_MS_CAN_CNF1 = 512 + 22;
const long NEO_CFG_MPIC_MS_CAN_CNF2 = 512 + 21;
const long NEO_CFG_MPIC_MS_CAN_CNF3 = 512 + 20;
//SW CAN
// SW CAN
const long NEO_CFG_MPIC_SW_CAN_CNF1 = 512 + 34;
const long NEO_CFG_MPIC_SW_CAN_CNF2 = 512 + 33;
const long NEO_CFG_MPIC_SW_CAN_CNF3 = 512 + 32;
//LSFT CAN
// LSFT CAN
const long NEO_CFG_MPIC_LSFT_CAN_CNF1 = 512 + 46;
const long NEO_CFG_MPIC_LSFT_CAN_CNF2 = 512 + 45;
const long NEO_CFG_MPIC_LSFT_CAN_CNF3 = 512 + 44;
@ -204,8 +202,8 @@ const long SPY_STATUS2_HIGH_VOLTAGE = 4;
const long SPY_STATUS2_LONG_MESSAGE = 8;
const long SPY_STATUS2_GLOBAL_CHANGE = 0x10000;
const long SPY_STATUS2_ERROR_FRAME = 0x20000;
const long SPY_STATUS2_END_OF_LONG_MESSAGE = 0x100000; //for ISO and J1708;
//LIN/ISO Specific - check protocol before handling
const long SPY_STATUS2_END_OF_LONG_MESSAGE = 0x100000; // for ISO and J1708
// LIN/ISO Specific - check protocol before handling
const long SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 = 0x200000;
const long SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT = 0x400000;
const long SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 = 0x800000;
@ -220,29 +218,29 @@ const long SPY_STATUS2_ISO_PARITY_ERROR = 0x20000000;
const long SPY_STATUS2_LIN_SLAVE_BYTE_ERROR = 0x20000000;
const long SPY_STATUS2_RX_TIMEOUT_ERROR = 0x40000000;
const long SPY_STATUS2_LIN_NO_SLAVE_DATA = 0x80000000;
//MOST Specific - check protocol before handling
// MOST Specific - check protocol before handling
const long SPY_STATUS2_MOST_PACKET_DATA = 0x200000;
const long SPY_STATUS2_MOST_STATUS = 0x400000; //reflects changes in light/lock/MPR/SBC/etc.
const long PY_STATUS2_MOST_LOW_LEVEL = 0x800000; //MOST low level message, allocs, deallocs, remote requests.
const long SPY_STATUS2_MOST_STATUS = 0x400000; // Reflects changes in light/lock/MPR/SBC/etc.
const long PY_STATUS2_MOST_LOW_LEVEL = 0x800000; // MOST low level message, allocs, deallocs, remote requests.
const long SPY_STATUS2_MOST_CONTROL_DATA = 0x1000000;
const long SPY_STATUS2_MOST_MHP_USER_DATA = 0x2000000; //MOST HIGH User Data Frame
const long SPY_STATUS2_MOST_MHP_CONTROL_DATA = 0x4000000; //MOST HIGH Control Data
const long SPY_STATUS2_MOST_MHP_USER_DATA = 0x2000000; // MOST HIGH User Data Frame
const long SPY_STATUS2_MOST_MHP_CONTROL_DATA = 0x4000000; // MOST HIGH Control Data
const long SPY_STATUS2_MOST_I2S_DUMP = 0x8000000;
const long SPY_STATUS2_MOST_TOO_SHORT = 0x10000000;
const long SPY_STATUS2_MOST_MOST50 = 0x20000000; //absence of MOST50 and MOST150 implies it's MOST25
const long SPY_STATUS2_MOST_MOST50 = 0x20000000; // Absence of MOST50 and MOST150 implies it's MOST25
const long SPY_STATUS2_MOST_MOST150 = 0x40000000;
const long SPY_STATUS2_MOST_CHANGED_PAR = 0x80000000; //first byte in ack reflects what changed
//Ethernet Specific - check protocol before handling
const long SPY_STATUS2_MOST_CHANGED_PAR = 0x80000000; //First byte in ack reflects what changed
// Ethernet Specific - check protocol before handling
const long SPY_STATUS2_ETHERNET_CRC_ERROR = 0x200000;
const long SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT = 0x400000;
const long SPY_STATUS2_ETHERNET_FCS_AVAILABLE = 0x800000; //This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR)
const long SPY_STATUS2_ETHERNET_FCS_AVAILABLE = 0x800000; // This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR)
//Spy Status Bitfield 3 constants
// Spy Status Bitfield 3 constants
const long SPY_STATUS3_LIN_JUST_BREAK_SYNC = 1;
const long SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT = 2;
const long SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE = 4;
//Protocols
// Protocols
const int SPY_PROTOCOL_CUSTOM = 0;
const int SPY_PROTOCOL_CAN = 1;
const int SPY_PROTOCOL_GMLAN = 2;
@ -277,30 +275,29 @@ const int SPY_PROTOCOL_CANFD = 30;
const int SPY_PROTOCOL_GMFSA = 31;
const int SPY_PROTOCOL_TCP = 32;
// these are used in status2 for Vehicle Spy 3
const long icsspystatusChangeLength =0x10;
// These are used in status2 for Vehicle Spy 3
const long icsspystatusChangeLength = 0x10;
const long icsspystatusChangeBitH1 = 0x20;
const long icsspystatusChangeBitH2 = 0x40;
const long icsspystatusChangeBitH3 = 0x80 ;
const long icsspystatusChangeBitH3 = 0x80;
const long icsspystatusChangeBitB1 = 0x100;
const long icsspystatusChangeBitB2 = 0x200 ;
const long icsspystatusChangeBitB3 = 0x400 ;
const long icsspystatusChangeBitB4 = 0x800 ;
const long icsspystatusChangeBitB2 = 0x200;
const long icsspystatusChangeBitB3 = 0x400;
const long icsspystatusChangeBitB4 = 0x800;
const long icsspystatusChangeBitB5 = 0x1000;
const long icsspystatusChangeBitB6 = 0x2000;
const long icsspystatusChangeBitB7 = 0x4000;
const long icsspystatusChangeBitB8 = 32768 ;
const long icsspystatusChangedGlobal = 65536 ;
const long icsspystatusChangeBitB8 = 32768;
const long icsspystatusChangedGlobal = 65536;
const long SCRIPT_STATUS_STOPPED = 0;
const long SCRIPT_STATUS_RUNNING = 1;
const long SCRIPT_LOCATION_FLASH_MEM = 0; //(Valid only on a neoVI Fire or neoVI Red)
const long SCRIPT_LOCATION_SDCARD = 1; //(Valid only on a neoVI Fire or neoVI Red)
const long SCRIPT_LOCATION_VCAN3_MEM = 2; //(Valid only on a ValueCAN 3 device)
const long SCRIPT_LOCATION_FLASH_MEM = 0; // (Valid only on a neoVI Fire or neoVI Red)
const long SCRIPT_LOCATION_SDCARD = 1; // (Valid only on a neoVI Fire or neoVI Red)
const long SCRIPT_LOCATION_VCAN3_MEM = 2; // (Valid only on a ValueCAN 3 device)
//ISO15765 constants
// ISO15765 constants
const int ISO15765_2_NETWORK_HSCAN = 0x1;
const int ISO15765_2_NETWORK_MSCAN = 0x2;
const int ISO15765_2_NETWORK_HSCAN2 = 0x4;
@ -312,15 +309,14 @@ const int ISO15765_2_NETWORK_HSCAN6 = 0x1C;
const int ISO15765_2_NETWORK_HSCAN7 = 0x20;
const int ISO15765_2_NETWORK_SWCAN2 = 0x24;
//Structure for neoVI device types
// Structure for neoVI device types
#pragma pack(push)
#pragma pack(1)
//One byte aligned
// One byte aligned
typedef struct ALIGNED_(1)
{
int iType;// 1,2,3 for Generation of HW
typedef struct ALIGNED_(1) {
int iType; // 1,2,3 for Generation of HW
// Date and Time type 1 and 2
int iMainFirmDateDay;
@ -345,18 +341,15 @@ typedef struct ALIGNED_(1)
unsigned char iMainVnetHWrevMajor;
unsigned char iMainVnetHWrevMinor;
unsigned char iMainVnetSRAMSize;
}stAPIFirmwareInfo;
} stAPIFirmwareInfo;
#pragma pack(pop)
#pragma pack(push)
#pragma pack(2)
//two byte aligned
// Two byte aligned
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned char Mode;
unsigned char SetBaudrate;
unsigned char Baudrate;
@ -370,9 +363,8 @@ typedef struct ALIGNED_(2)
unsigned char innerFrameDelay25us;
} CAN_SETTINGS;
typedef struct ALIGNED_(2)
{
unsigned char FDMode; /* mode, secondary baudrate for canfd */
typedef struct ALIGNED_(2) {
unsigned char FDMode; // Mode, secondary baudrate for canfd
unsigned char FDBaudrate;
unsigned char FDTqSeg1;
unsigned char FDTqSeg2;
@ -383,8 +375,7 @@ typedef struct ALIGNED_(2)
unsigned char reserved;
} CANFD_SETTINGS;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned char Mode;
unsigned char SetBaudrate;
unsigned char Baudrate;
@ -396,11 +387,10 @@ typedef struct ALIGNED_(2)
unsigned short BRP;
unsigned short high_speed_auto_switch;
unsigned char auto_baud;
unsigned char Reserved; //leave as 0
unsigned char Reserved; // Leave as 0
} SWCAN_SETTINGS;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned int Baudrate;
unsigned short spbrg;
unsigned char brgh;
@ -409,86 +399,73 @@ typedef struct ALIGNED_(2)
unsigned char Mode;
} LIN_SETTINGS;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
uint16_t monkey;
unsigned char duplex; /* 0 = half, 1 = full */
unsigned char duplex; // 0 = half, 1 = full
unsigned char link_speed;
unsigned char auto_neg;
unsigned char led_mode;
unsigned char rsvd[4];
} ETHERNET_SETTINGS;
typedef struct ALIGNED_(2)
{
//CAN
typedef struct ALIGNED_(2) {
// CAN
unsigned int can1_tx_id;
unsigned int can1_rx_id;
union
{
struct
{
unsigned bExtended:1;
unsigned :15;
union {
struct {
unsigned bExtended : 1;
unsigned : 15;
};
unsigned int DWord;
}can1_options;
} can1_options;
unsigned int can2_tx_id;
unsigned int can2_rx_id;
union
{
struct
{
unsigned bExtended:1;
unsigned :15;
union {
struct {
unsigned bExtended : 1;
unsigned : 15;
};
unsigned int DWord;
}can2_options;
} can2_options;
unsigned int network_enables;
unsigned int can3_tx_id;
unsigned int can3_rx_id;
union
{
struct
{
unsigned bExtended:1;
unsigned :15;
union {
struct {
unsigned bExtended : 1;
unsigned : 15;
};
unsigned int DWord;
}can3_options;
} can3_options;
unsigned int can4_tx_id;
unsigned int can4_rx_id;
union
{
struct
{
unsigned bExtended:1;
unsigned :15;
union {
struct {
unsigned bExtended : 1;
unsigned : 15;
};
unsigned int DWord;
}can4_options;
} can4_options;
unsigned int reserved[5];
} STextAPISettings;
}STextAPISettings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned short time_500us;
unsigned short k;
unsigned short l;
}ISO9141_KEYWORD2000__INIT_STEP;
} ISO9141_KEYWORD2000__INIT_STEP;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned int Baudrate;
unsigned short spbrg;
unsigned short brgh;
ISO9141_KEYWORD2000__INIT_STEP init_steps[16]; //See the ISO9141_KW2000__INIT_STEP structure
ISO9141_KEYWORD2000__INIT_STEP init_steps[16]; // See the ISO9141_KW2000__INIT_STEP structure
unsigned char init_step_count;
unsigned short p2_500us;
unsigned short p3_500us;
@ -496,8 +473,7 @@ typedef struct ALIGNED_(2)
unsigned short chksum_enabled;
} ISO9141_KEYWORD2000_SETTINGS;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
uint8_t ucInterfaceType;
uint8_t reserved0;
uint8_t reserved1;
@ -512,15 +488,13 @@ typedef struct ALIGNED_(2)
uint32_t uFlags;
}OP_ETH_GENERAL_SETTINGS;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
uint8_t ucConfigMode;
uint8_t preemption_en;
uint8_t reserved0[14];
}OP_ETH_SETTINGS;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
uint32_t ecu_id;
CAN_SETTINGS can1;
SWCAN_SETTINGS swcan1;
@ -533,10 +507,8 @@ typedef struct ALIGNED_(2)
uint16_t pwr_man_enable;
uint16_t can_switch_mode;
uint16_t rsvd;
}SVividCANSettings;
typedef struct ALIGNED_(2)
{
} SVividCANSettings;
typedef struct ALIGNED_(2) {
CAN_SETTINGS can1;
CAN_SETTINGS can2;
CANFD_SETTINGS canfd1;
@ -557,8 +529,7 @@ typedef struct ALIGNED_(2)
uint16_t ain_sample_period;
uint16_t ain_threshold;
struct
{
struct {
uint32_t : 1;
uint32_t enableLatencyTest : 1;
uint32_t reserved : 30;
@ -567,11 +538,10 @@ typedef struct ALIGNED_(2)
STextAPISettings text_api;
} SOBD2SimSettings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned short perf_en;
//CAN
// CAN
CAN_SETTINGS can1;
CAN_SETTINGS can2;
CANFD_SETTINGS canfd2;
@ -583,7 +553,7 @@ typedef struct ALIGNED_(2)
CAN_SETTINGS can7;
CAN_SETTINGS can8;
//Native CAN are either LS1/LS2 or SW1/SW2
// Native CAN are either LS1/LS2 or SW1/SW2
SWCAN_SETTINGS swcan1;
unsigned short network_enables;
SWCAN_SETTINGS swcan2;
@ -603,10 +573,10 @@ typedef struct ALIGNED_(2)
unsigned short network_enabled_on_boot;
//ISO15765-2 Transport Layer
// ISO15765-2 Transport Layer
unsigned short iso15765_separation_time_offset;
//ISO9141 - Keyword
// ISO9141 - Keyword
unsigned short iso_9141_kwp_enable_reserved;
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1;
unsigned short iso_parity_1;
@ -628,17 +598,16 @@ typedef struct ALIGNED_(2)
unsigned short idle_wakeup_network_enables_1;
unsigned short idle_wakeup_network_enables_2;
//reserved for HSCAN6/7, LSFT2, etc..
// Reserved for HSCAN6/7, LSFT2, etc..
unsigned short network_enables_3;
unsigned short idle_wakeup_network_enables_3;
unsigned short can_switch_mode;
STextAPISettings text_api;
}SRADGalaxySettings;
} SRADGalaxySettings;
typedef struct ALIGNED_(2)
{
/* Performance Test */
typedef struct ALIGNED_(2) {
// Performance Test
uint16_t perf_en;
CAN_SETTINGS can1;
@ -654,21 +623,18 @@ typedef struct ALIGNED_(2)
uint16_t network_enabled_on_boot;
/* ISO15765-2 Transport Layer */
// ISO15765-2 Transport Layer
int16_t iso15765_separation_time_offset;
STextAPISettings text_api;
struct
{
struct {
uint32_t disableUsbCheckOnBoot : 1;
uint32_t enableLatencyTest : 1;
uint32_t reserved : 30;
} flags;
} SVCAN412Settings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
uint16_t perf_en;
OP_ETH_GENERAL_SETTINGS opEthGen;
OP_ETH_SETTINGS opEth1;
@ -701,11 +667,9 @@ typedef struct ALIGNED_(2)
uint16_t idle_wakeup_network_enables_3;
uint16_t can_switch_mode;
STextAPISettings text_api;
}SRADStar2Settings;
} SRADStar2Settings;
//_stChipVersions
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned char mpic_maj;
unsigned char mpic_min;
unsigned char upic_maj;
@ -714,10 +678,9 @@ typedef struct ALIGNED_(2)
unsigned char lpic_min;
unsigned char jpic_maj;
unsigned char jpic_min;
}fire_versions;
} fire_versions;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned char mpic_maj;
unsigned char mpic_min;
unsigned char core_maj;
@ -726,18 +689,16 @@ typedef struct ALIGNED_(2)
unsigned char lpic_min;
unsigned char hid_maj;
unsigned char hid_min;
}plasma_fire_vnet;
} plasma_fire_vnet;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned char mpic_maj;
unsigned char mpic_min;
unsigned int Reserve;
unsigned short Reserve2;
}vcan3_versions;
} vcan3_versions;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
CAN_SETTINGS can1;
CAN_SETTINGS can2;
CAN_SETTINGS can3;
@ -758,22 +719,22 @@ typedef struct ALIGNED_(2)
unsigned short misc_io_report_period;
unsigned short misc_io_on_report_events;
//ISO 15765-2 Transport Layer
// ISO 15765-2 Transport Layer
short iso15765_separation_time_offset;
//ISO9141 - KEYWORD 2000 1
// ISO9141 - KEYWORD 2000 1
short iso9141_kwp_enable_reserved;
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings;
//Performance Test
// Performance Test
unsigned short perf_en;
//ISO9141 - Parity
// ISO9141 - Parity
unsigned short iso_parity; // 0 - no parity, 1 - event, 2 - odd
unsigned short iso_msg_termination; // 0 - use inner frame time, 1 - GME CIM-SCL
unsigned short iso_tester_pullup_enable;
//Additional network enables
// Additional network enables
unsigned short network_enables_2;
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2;
@ -784,10 +745,9 @@ typedef struct ALIGNED_(2)
unsigned short idle_wakeup_network_enables_2;
unsigned short reservedZero;
}SVCANRFSettings;
} SVCANRFSettings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
unsigned int ecu_id;
CAN_SETTINGS can1;
@ -805,31 +765,26 @@ typedef struct ALIGNED_(2)
unsigned short ain_threshold;
unsigned int rsvd;
}SEEVBSettings;
} SEEVBSettings;
// --- J1708 Settings
typedef struct ALIGNED_(2)
{
// J1708 Settings
typedef struct ALIGNED_(2) {
unsigned short enable_convert_mode;
} J1708_SETTINGS;
// --- UART Settings
typedef struct ALIGNED_(2)
{
// UART Settings
typedef struct ALIGNED_(2) {
unsigned short Baudrate;
unsigned short spbrg;
unsigned short brgh;
unsigned short parity;
unsigned short stop_bits;
unsigned char flow_control; // 0- off, 1 - Simple CTS RTS,
unsigned char flow_control; // 0 - off, 1 - Simple CTS RTS
unsigned char reserved_1;
union
{
union {
unsigned int bOptions;
struct
{
struct {
unsigned invert_tx : 1;
unsigned invert_rx : 1;
unsigned half_duplex : 1;
@ -839,27 +794,23 @@ typedef struct ALIGNED_(2)
};
} UART_SETTINGS;
typedef struct ALIGNED_(2)
{
unsigned short netId; // Netid of CAN network to use.
typedef struct ALIGNED_(2) {
unsigned short netId; // NetID of CAN network to use.
unsigned char zero0;
unsigned char Config;
//Bit 0: enable bit to enalbe most
///Bit 1-3: index of which miscio to use for timestamp sync. 0 => MISC1
//Bit 4: Echo to CAN enable
//Bit 5-7: Reserve
} SNeoMostGatewaySettings;
// Bit 0: enable bit to enalbe most
// Bit 1-3: index of which miscio to use for timestamp sync. 0 => MISC1
// Bit 4: Echo to CAN enable
// Bit 5-7: Reserve
} SNeoMostGatewaySettings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
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;
@ -870,13 +821,10 @@ typedef struct ALIGNED_(2)
unsigned short cgi_tx_ifs_bit_times;
unsigned short cgi_rx_ifs_bit_times;
unsigned short cgi_chksum_enable;
unsigned short network_enables;
unsigned short network_enabled_on_boot;
unsigned int pwm_man_timeout;
unsigned short pwr_man_enable;
unsigned short misc_io_initial_ddr;
unsigned short misc_io_initial_latch;
unsigned short misc_io_analog_enable;
@ -884,18 +832,15 @@ typedef struct ALIGNED_(2)
unsigned short misc_io_on_report_events;
unsigned short ain_sample_period;
unsigned short ain_threshold;
//ISO 15765-2 Transport Layer
// ISO 15765-2 Transport Layer
short iso15765_separation_time_offset;
//ISO9141 - KEYWORD 2000
// ISO9141 - KEYWORD 2000
short iso9141_kwp_enable_reserved;
ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings;
//Performance Test
// Performance Test
unsigned short perf_en;
//ISO9141 - Parity
// ISO9141 - Parity
unsigned short iso_parity; // 0 - no parity, 1 - event, 2 - odd
unsigned short iso_msg_termination; // 0 - use inner frame time, 1 - GME CIM-SCL
unsigned short iso_tester_pullup_enable;
@ -924,11 +869,10 @@ typedef struct ALIGNED_(2)
STextAPISettings text_api;
SNeoMostGatewaySettings neoMostGateway;
unsigned short vnetBits; //First bit enables Android Messages
}SFireSettings;
unsigned short vnetBits; // First bit enables Android Messages
} SFireSettings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
uint16_t perf_en;
CAN_SETTINGS can1;
CANFD_SETTINGS canfd1;
@ -995,10 +939,9 @@ typedef struct ALIGNED_(2)
uint32_t flags;
uint16_t digitalIoThresholdTicks;
uint16_t digitalIoThresholdEnable;
}SFire2Settings;
} SFire2Settings;
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
CAN_SETTINGS can1;
CAN_SETTINGS can2;
unsigned short network_enables;
@ -1012,9 +955,8 @@ typedef struct ALIGNED_(2)
} SVCAN3Settings;
typedef struct ALIGNED_(2) _stCM_ISO157652_TxMessage
{
//transmit message
typedef struct ALIGNED_(2) _stCM_ISO157652_TxMessage {
// Transmit message
unsigned short vs_netid; ///< The netid of the message (determines which network to transmit on), not supported
unsigned char padding; ///< The padding byte to use to fill the unused portion of
@ -1028,24 +970,21 @@ typedef struct ALIGNED_(2) _stCM_ISO157652_TxMessage
unsigned int fc_id_mask; ///< The flow control arb filter mask (response id from receiver).
unsigned char stMin; ///< Overrides the stMin that the receiver reports, see overrideSTmin. Set to J2534's STMIN_TX if <= 0xFF
unsigned char blockSize;///< Overrides the block size that the receiver reports, see overrideBlockSize. Set to J2534's BS_TX if <= 0xFF.
unsigned char blockSize; ///< Overrides the block size that the receiver reports, see overrideBlockSize. Set to J2534's BS_TX if <= 0xFF.
unsigned char flowControlExtendedAddress; ///< Expected Extended Address byte of response from receiver. see fc_ext_address_enable, not supported.
unsigned char extendedAddress; ///< Extended Address byte of transmitter. see ext_address_enable, not supported.
//flow control timeouts
unsigned short fs_timeout; ///< max timeout (ms) for waiting on flow control respons, not supported.
unsigned short fs_wait; ///< max timeout (ms) for waiting on flow control response that does not have
///flow status set to WAIT, not supported.
unsigned short fs_wait; ///< max timeout (ms) for waiting on flow control response that does not have flow status set to WAIT, not supported.
unsigned char data[4*1024]; ///< The data
unsigned int num_bytes; ///< Number of data bytes
//option bits
union
{
struct
{
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.
@ -1061,21 +1000,18 @@ typedef struct ALIGNED_(2) _stCM_ISO157652_TxMessage
unsigned int flags;
};
}stCM_ISO157652_TxMessage;
} stCM_ISO157652_TxMessage;
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4324) // nameless struct/union
#endif
typedef struct ALIGNED_(2)
{
typedef struct ALIGNED_(2) {
//transmit message
unsigned short vs_netid; ///< The netid of the message (determines which network to decode receives), not supported
unsigned char padding; ///< The padding byte to use to fill the unused portion of
/// transmitted CAN frames (flow control), see paddingEnable.
unsigned char padding; ///< The padding byte to use to fill the unused portion of transmitted CAN frames (flow control), see paddingEnable.
unsigned int id; ///< ArbId filter value for frames from transmitter (from ECU to neoVI).
unsigned int id_mask; ///< ArbId filter mask for frames from transmitter (from ECU to neoVI).
@ -1091,10 +1027,8 @@ typedef struct ALIGNED_(2)
unsigned short cf_timeout; ///< max timeout (ms) for waiting on consecutive frame. Set this to N_CR_MAX's value in J2534.
//option bits
union
{
struct
{
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).
@ -1108,19 +1042,14 @@ typedef struct ALIGNED_(2)
};
unsigned char reserved[16];
}stCM_ISO157652_RxMessage;
} stCM_ISO157652_RxMessage;
#ifdef _MSC_VER
#pragma warning(pop)
#endif
#pragma pack(pop)
typedef struct
{
typedef struct{
int DeviceType;
int Handle;
int NumberOfClients;
@ -1128,9 +1057,7 @@ typedef struct
int MaxAllowedClients;
} NeoDevice;
typedef struct // matching C structure
{
typedef struct { // Matching C structure
unsigned long StatusValue; // 4
unsigned long StatusMask; // 4
unsigned long Status2Value; // 4
@ -1151,10 +1078,9 @@ typedef struct // matching C structure
unsigned char bStuff2;
unsigned long ExpectedLength;
unsigned long NodeID;
} spyFilterLong;
} spyFilterLong;
typedef struct // matching C structure
{
typedef struct { // Matching C structure
unsigned long StatusBitField; // 4
unsigned long StatusBitField2; // 4
unsigned long TimeHardware; // 4
@ -1168,7 +1094,7 @@ typedef struct // matching C structure
unsigned char Protocol;
unsigned char MessagePieceID; // 1
unsigned char ExtraDataPtrEnabled; // 1
unsigned char NumberBytesHeader;// 1
unsigned char NumberBytesHeader; // 1
unsigned char NumberBytesData; // 1
short DescriptionID; // 2
long ArbIDOrHeader; // 4
@ -1177,10 +1103,9 @@ typedef struct // matching C structure
unsigned long StatusBitField4;
void* ExtraDataPtr;
unsigned char MiscData;
} icsSpyMessage;
} icsSpyMessage;
typedef struct // matching C structure
{
typedef struct { // Matching C structure
unsigned long StatusBitField; // 4
unsigned long StatusBitField2; // 4
unsigned long TimeHardware; // 4
@ -1194,7 +1119,7 @@ typedef struct // matching C structure
unsigned char Protocol; // 1
unsigned char MessagePieceID; // 1
unsigned char ExtraDataPtrEnabled; // 1
unsigned char NumberBytesHeader;// 1
unsigned char NumberBytesHeader; // 1
unsigned char NumberBytesData; // 1
short DescriptionID; // 2
unsigned char Header[4]; // 4
@ -1203,7 +1128,7 @@ typedef struct // matching C structure
unsigned long StatusBitField4;
void* ExtraDataPtr;
unsigned char MiscData;
} icsSpyMessageJ1850;
} icsSpyMessageJ1850;
#ifdef _MSC_VER
#pragma warning(pop)