SFire2Settings Structure

This structure defines various settings for the neoVI FIRE2 device.

C/C++ Declare

typedef struct __declspec (align(2))
{
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;
uint32_t flags;
uint16_t digitalIoThresholdTicks;
uint16_t digitalIoThresholdEnable;
} SFire2Settings;

Visual Basic .NET Declare

<StructLayout(LayoutKind.Sequential, Pack:=2)> Public Structure SFire2Settings
Dim perf_en As UInt16
Dim can1 As CAN_SETTINGS
Dim canfd1 As CANFD_SETTINGS
Dim can2 As CAN_SETTINGS
Dim canfd2 As CANFD_SETTINGS
Dim can3 As CAN_SETTINGS
Dim canfd3 As CANFD_SETTINGS
Dim can4 As CAN_SETTINGS
Dim canfd4 As CANFD_SETTINGS
Dim can5 As CAN_SETTINGS
Dim canfd5 As CANFD_SETTINGS
Dim can6 As CAN_SETTINGS
Dim canfd6 As CANFD_SETTINGS
Dim can7 As CAN_SETTINGS
Dim canfd7 As CANFD_SETTINGS
Dim can8 As CAN_SETTINGS
Dim canfd8 As CANFD_SETTINGS
Dim swcan1 As SWCAN_SETTINGS
Dim network_enables As UInt16
Dim swcan2 As SWCAN_SETTINGS
Dim network_enables_2 As UInt16
Dim lsftcan1 As CAN_SETTINGS
Dim lsftcan2 As CAN_SETTINGS
Dim lin1 As LIN_SETTINGS
Dim misc_io_initial_ddr As UInt16
Dim lin2 As LIN_SETTINGS
Dim misc_io_initial_latch As UInt16
Dim lin3 As LIN_SETTINGS
Dim misc_io_report_period As UInt16
Dim lin4 As LIN_SETTINGS
Dim misc_io_on_report_events As UInt16
Dim lin5 As LIN_SETTINGS
Dim misc_io_analog_enable As UInt16
Dim ain_sample_period As UInt16
Dim ain_threshold As UInt16
Dim pwr_man_timeout As UInt32
Dim pwr_man_enable As UInt16
Dim network_enabled_on_boot As UInt16
Dim iso15765_separation_time_offset As UInt16
Dim iso_9141_kwp_enable_reserved As UInt16
Dim iso9141_kwp_settings_1 As ISO9141_KEYWORD2000_SETTINGS
Dim iso_parity_1 As UInt16
Dim iso9141_kwp_settings_2 As ISO9141_KEYWORD2000_SETTINGS
Dim iso_parity_2 As UInt16
Dim iso9141_kwp_settings_3 As ISO9141_KEYWORD2000_SETTINGS
Dim iso_parity_3 As UInt16
Dim iso9141_kwp_settings_4 As ISO9141_KEYWORD2000_SETTINGS
Dim iso_parity_4 As UInt16
Dim iso_msg_termination_1 As UInt16
Dim iso_msg_termination_2 As UInt16
Dim iso_msg_termination_3 As UInt16
Dim iso_msg_termination_4 As UInt16
Dim idle_wakeup_network_enables_1 As UInt16
Dim idle_wakeup_network_enables_2 As UInt16
Dim network_enables_3 As UInt16
Dim idle_wakeup_network_enables_3 As UInt16
Dim can_switch_mode As UInt16
Dim text_api As STextAPISettings
Dim termination_enables As UInt64
Dim lin6 As LIN_SETTINGS
Dim ethernet As ETHERNET_SETTINGS
Dim slaveVnetA As UInt16
Dim slaveVnetB As UInt16
Dim flags As UInt32
Dim digitalIoThresholdTicks As UInt16
Dim digitalIoThresholdEnable As UInt16
End Structure

C# .NET Declare

[StructLayout(LayoutKind.Sequential,Pack=2)]
public struct SFire2Settings
{
public UInt16 perf_en;
public CAN_SETTINGS can1;
public CANFD_SETTINGS canfd1;
public CAN_SETTINGS can2;
public CANFD_SETTINGS canfd2;
public CAN_SETTINGS can3;
public CANFD_SETTINGS canfd3;
public CAN_SETTINGS can4;
public CANFD_SETTINGS canfd4;
public CAN_SETTINGS can5;
public CANFD_SETTINGS canfd5;
public CAN_SETTINGS can6;
public CANFD_SETTINGS canfd6;
public CAN_SETTINGS can7;
public CANFD_SETTINGS canfd7;
public CAN_SETTINGS can8;
public CANFD_SETTINGS canfd8;
public SWCAN_SETTINGS swcan1;
public UInt16 network_enables;
public SWCAN_SETTINGS swcan2;
public UInt16 network_enables_2;
public CAN_SETTINGS lsftcan1;
public CAN_SETTINGS lsftcan2;
public LIN_SETTINGS lin1;
public UInt16 misc_io_initial_ddr;
public LIN_SETTINGS lin2;
public UInt16 misc_io_initial_latch;
public LIN_SETTINGS lin3;
public UInt16 misc_io_report_period;
public LIN_SETTINGS lin4;
public UInt16 misc_io_on_report_events;
public LIN_SETTINGS lin5;
public UInt16 misc_io_analog_enable;
public UInt16 ain_sample_period;
public UInt16 ain_threshold;
public UInt32 pwr_man_timeout;
public UInt16 pwr_man_enable;
public UInt16 network_enabled_on_boot;
public UInt16 iso15765_separation_time_offset;
public UInt16 iso_9141_kwp_enable_reserved;
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1;
public UInt16 iso_parity_1;
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2;
public UInt16 iso_parity_2;
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3;
public UInt16 iso_parity_3;
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4;
public UInt16 iso_parity_4;
public UInt16 iso_msg_termination_1;
public UInt16 iso_msg_termination_2;
public UInt16 iso_msg_termination_3;
public UInt16 iso_msg_termination_4;
public UInt16 idle_wakeup_network_enables_1;
public UInt16 idle_wakeup_network_enables_2;
public UInt16 network_enables_3;
public UInt16 idle_wakeup_network_enables_3;
public UInt16 can_switch_mode;
public STextAPISettings text_api;
public UInt64 termination_enables;
public LIN_SETTINGS lin6;
public ETHERNET_SETTINGS ethernet;
public UInt16 slaveVnetA;
public UInt16 slaveVnetB;
public UInt32 flags;
public UInt16 digitalIoThresholdTicks;
public UInt16 digitalIoThresholdEnable;
}

Remarks

Item

Description

perf_en

perf_en Performance test. Default value = 0

can1

See CAN_SETTINGS structure

canfd1

See CANFD_SETTINGS structure

can2

See CAN_SETTINGS structure

canfd2

See CANFD_SETTINGS structure

can3

See CAN_SETTINGS structure

canfd3

See CANFD_SETTINGS structure

can4

See CAN_SETTINGS structure

canfd4

See CANFD_SETTINGS structure

can5

See CAN_SETTINGS structure

canfd5

See CANFD_SETTINGS structure

can6

See CAN_SETTINGS structure

canfd6

See CANFD_SETTINGS structure

can7

See CAN_SETTINGS structure

canfd7

See CANFD_SETTINGS structure

can8

See CAN_SETTINGS structure

canfd8

See CANFD_SETTINGS structure

swcan1

See See SWCAN_SETTINGS structure

network_enables

Bitfield containing the software license enables. Depending on the hardware license purchased the customer may have to conditionally select which hardware channels to enable. For example the neoVI Red license allows the user to enable any 2 Dual Wire CAN channels and any 2 LIN channels. To enable a specific network its corresponding bit must be set (1). In order to transmit or receive on a network it must be enabled.

HSCAN : 0

MSCAN : 1

LIN1 : 2

LIN2 : 3

NA : 4

HSCAN2 : 5

LSFTCAN1 : 6

SWCAN1 : 7

HSCAN3 : 8

NA : 9

NA : 10

LIN3 : 11

LIN4 : 12

NA : 13

HSCAN4 : 14

HSCAN5 : 15

swcan2

See SWCAN_SETTINGS structure

network_enables_2

Bitfield containing the software license enables. Depending on the hardware license purchased the customer may have to conditionally select which hardware channels to enable. For example the neoVI Red license allows the user to enable any 2 Dual Wire CAN channels and any 2 LIN channels. To enable a specific network its corresponding bit must be set (1). In order to transmit or receive on a network it must be enabled.

KLINE1 : 0

KLINE2 : 1

KLINE3 : 2

KLINE4 : 3

NA : 4

NA :5

NA : 6

NA : 7

NA : 5

NA : 9

NA : 10

SWCAN2 : 11

ETHERNET_DAQ : 12

ETHERNET :13

NA :14

NA :15

lsftcan1

See CAN_SETTINGS structure

lsftcan2

See CAN_SETTINGS structure

lin1

See LIN_SETTINGS structure

misc_io_initial_ddr

MISC IO Initial Data Direction Register. Controls the initial data direction of the tri-states on all misc digital pins. Each bit corresponds to an individual misc pin. Bit value of 0 signifies an input and bit value 1 signifies and output. Bit values corresponding to non existent pins (EX MISC7-MISC15 on FIRE) have no effect.

Default value = 0

Examples:

Set MISC1 to be output, all else input: misc_io_initial_ddr = 1

Set MISC1and MISC2 to be output, all else input: misc_io_initial_ddr = 3 (11 binary)

Set all MISC pins to output: misc_io_initial_ddr = 65535 (1111111111111111 binary)

lin2

See LIN_SETTINGS structure

misc_io_initial_latch

MISC IO Initial Latch Register. Controls the initial output latch value on all misc digital pins. Each bit corresponds to an individual misc pin. Bit value of 0 signifies an low voltage and bit value 1 signifies high voltage. Bit values corresponding to non existent pins (EX MISC7-MISC15 on FIRE) have no effect.

Default value = 0

Examples:

Set MISC1 to be high, all else low: misc_io_initial_latch = 1

Set MISC1and MISC2 to be high, all else low: misc_io_initial_latch = 3 (11 binary)

Set all MISC pins to high: misc_io_initial_latch = 65535 (1111111111111111 binary)

Note: In order for digital outputs to work correctly the corresponding bit in misc_io_initial_ddr must be set to output and corresponding bit in misc_io_analog_enable must be cleared.

lin3

See LIN_SETTINGS structure

misc_io_report_period

Period in milliseconds of device report message holding digital and analog data.

Default value = 100

Note: Periodic reporting requires misc_io_on_report_events[0] to be set.

lin4

See LIN_SETTINGS structure

misc_io_on_report_events

Bitfield holding enables for various report triggers for the General IO report. Default value = 0 Bit field values:

REPORT_ON_PERIODIC : 0

REPORT_ON_MISC1 : 1

REPORT_ON_MISC2 : 2

REPORT_ON_MISC3 : 3

REPORT_ON_MISC4 : 4

REPORT_ON_MISC5 : 5

REPORT_ON_MISC6 : 6

REPORT_ON_LED1 : 7

REPORT_ON_LED2 : 8

REPORT_ON_KLINE : 9

REPORT_ON_MISC3_AIN : 10

REPORT_ON_MISC4_AIN : 11

REPORT_ON_MISC5_AIN : 12

REPORT_ON_MISC6_AIN : 13

lin5

See LIN_SETTINGS structure

misc_io_analog_enable

MISC IO Analog Enable Register. Controls the initial analog enables on all misc analog pins. Each bit corresponds to an individual misc pin that supports analog input. Bit value of 0 signifies that corresponding misc pin is digital only, and bit value 1 signifies corresponding misc pin is analog. Note that because some MISC pins are not capable of analog they are not included in the register. For example neoVI FIRE’s analog pins are MISC3-MISC6, therefore bit 0 corresponds to MISC3’s analog enable. Bit values corresponding to non existent pins have no effect.

Default value = 0

Examples:

Set MISC3 to be analog, all else digital. (neoVI FIRE) : misc_io_analog_enable = 1

Set MISC3 and MISC4 to be analog, all else digital. (neoVI FIRE): misc_io_analog_enable = 3 (11 binary)

Set all MISC pins to high: misc_io_analog_enable = 65535 (1111111111111111 binary) Note: that in order for analog inputs to work correctly the corresponding bit in misc_io_analog_enable must be set to 1.

ain_sample_period

Controls how long the Analog to Digital Converter samples before preforming a convert in milliseconds. If it is set to zero the hardware will perform the conversion immediately after sampling. This option defaults to 0 but is accessible so that high impedance analog sources can still be used by manually increasing the sample period.

Default value = 0

ain_threshold

Percent of full voltage change required to trigger a REPORT_ON_MISCX_AIN event. Valid range is 0-100.

Default value = 0

Examples:

Report fires every time ADC value changes: ain_threshold = 0

Report fires every time ADC value changes by 400 mV: ain_threshold = 1

Report fires every time ADC value changes by 800 mV: ain_threshold = 2

Report fires every time ADC value changes by 40 V (Unpractical): ain_threshold = 100

Note: Periodic reporting requires proper misc_io_on_report_events bit to be set.

pwr_man_timeout

Number of milliseconds of no bus activity required before neoVI enters low power mode. Note pwr_man_enable must be set for power management to be enabled.

Default value = 10000

pwr_man_enable

1 = enable Power Management, 0 = disable.

Default value = 0

network_enabled_on_boot

Normally neoVI only initiates its comm channels when CoreMini is running or if neoVI is online with DLL/Vehicle Spy 3. Practically this means the the CAN controllers stay in Listen Only mode until the device goes online. Once online the neoVI loads the user settings. Setting this parameter to 1 will change this behavior so that the neoVI enables its controllers immediately on boot.

Default value = 0

iso15765_separation_time_offset

In an ISO15765-2 Transmission, the receiver transmits a flow control message that informs that transmitter how much time there should be between individual CAN messages. This parameter allows the user to shift that spacing to make it smaller or larger. Valid range is -1563 to 1563 units where each unit represents 6.4us. Defaults to 0. If IFS plus the offset is negative than the Tx Messages will be back to back.

Default value = 0

Examples:

ISO15765-2 Tx Message Inner frame spacing is exactly what is specified in flow control message: iso15765_separation_time_offset = 0

ISO15765-2 Tx Message Inner frame spacing is what’s specified in flow control message.+ 998.4 us: iso15765_separation_time_offset = 156

ISO15765-2 Tx Message Inner frame spacing is what’s specified in flow control message.- 998.4 us: iso15765_separation_time_offset = -156

iso_9141_kwp_enable_reserved

Reserved

iso9141_kwp_settings_1

See ISO9141_KEYWORD2000_SETTINGS structure

iso_parity_1

ISO9141 Parity setting: 0 - no parity, 1 - even, 2 - odd

iso9141_kwp_settings_2

See ISO9141_KEYWORD2000_SETTINGS structure

iso_parity_2

ISO9141 Parity setting: 0 - no parity, 1 - even, 2 - odd

iso9141_kwp_settings_3

See ISO9141_KEYWORD2000_SETTINGS structure

iso_parity_3

ISO9141 Parity setting: 0 - no parity, 1 - even, 2 - odd

iso9141_kwp_settings_4

See ISO9141_KEYWORD2000_SETTINGS structure

iso_parity_4

ISO9141 Parity setting: 0 - no parity, 1 - even, 2 - odd

iso_msg_termination_1

ISO9141 message termination setting: 0 - use inner frame time 1 - GME CIM-SCL

iso_msg_termination_2

ISO9141 message termination setting: 0 - use inner frame time 1 - GME CIM-SCL

iso_msg_termination_3

ISO9141 message termination setting: 0 - use inner frame time 1 - GME CIM-SCL

iso_msg_termination_4

ISO9141 message termination setting: 0 - use inner frame time 1 - GME CIM-SCL

idle_wakeup_network_enables_1

Bitfield containing list of hardware networks to look at for sleep enable. To enable a specific network its corresponding bit must be set (1). In order to transmit or receive on a network it must be enabled.

HSCAN : 0

MSCAN : 1

LIN1 : 2

LIN2: 3

NA : 4

HSCAN2 : 5

LSFTCAN1 : 6

SWCAN1 : 7

HSCAN3 : 8

NA : 9

NA : 10

LIN3 : 11

LIN4 : 12

NA :13

HSCAN4 :14

HSCAN5 :15

idle_wakeup_network_enables_2

Bitfield containing list of hardware networks to look at for sleep enable. To enable a specific network its corresponding bit must be set (1). In order to transmit or receive on a network it must be enabled.

KLINE1 : 0

KLINE2 : 1

KLINE3 : 2

KLINE4 : 3

NA : 4

NA :5

NA : 6

NA : 7

NA : 5

NA : 9

NA : 10

SWCAN2 : 11

ETHERNET_DAQ : 12

ETHERNET :13

NA :14

NA :15

network_enables_3

Bitfield containing the software license enables. Depending on the hardware license purchased the customer may have to conditionally select which hardware channels to enable. For example the neoVI Red license allows the user to enable any 2 Dual Wire CAN channels and any 2 LIN channels. To enable a specific network its corresponding bit must be set (1). In order to transmit or receive on a network it must be enabled.

HSCAN6 : 0

HSCAN7 : 1

LIN6 : 2

LSFTCAN2 : 3

NA : 4

NA : 5

NA : 6

NA : 7

NA : 8

NA : 9

NA : 10

NA : 11

NA : 12

NA : 13

NA : 14

NA :15

idle_wakeup_network_enables_3

Bitfield containing list of hardware networks to look at for sleep enable. To enable a specific network its corresponding bit must be set (1). In order to transmit or receive on a network it must be enabled.

HSCAN6 : 0

HSCAN7 : 1

LIN6 : 2

LSFTCAN2 : 3

NA : 4

NA : 5

NA : 6

NA : 7

NA : 8

NA : 9

NA : 10

NA : 11

NA : 12

NA : 13

NA : 14

NA :15

can_switch_mode

Not Available

text_api

See STextAPISettings structure

termination_enables

Bitfield containing the termination enables. For the neoVI Fire 2, the termination is grouped into banks. Only 2 form a single bank can be neabled.

HSCAN (Bank0): 0

MSCAN (Bank1): 1

HSCAN2 (BANK1) : 5

HSCAN3 (Bank0) : 8

HSCAN4 (Bank1): 14

HSCAN5 (Bank0) : 15

HSCAN6 (Bank1) : 32

HSCAN7 (Bank0): 33

NA : 8

lin6

See LIN_SETTINGS structure

ethernet

See ETHERNET_SETTINGS structure

slaveVnetA

Sets the type of VNET is in slot A for ION and Plasma devices eNoVnet = 0 eAinVnet = 1 eFlexRayVnet = 2 eSlaveFireVnet =3 eSlaveFireVnetEP = 4 eSlaveFire2Vnet = 5 eSlaveFire2VnetZ = 6 eSlaveMost150 = 7

slaveVnetB

Sets the type of VNET is in slot B for Plasma devices eNoVnet = 0 eAinVnet = 1 eFlexRayVnet = 2 eSlaveFireVnet =3 eSlaveFireVnetEP = 4 eSlaveFire2Vnet = 5 eSlaveFire2VnetZ = 6 eSlaveMost150 = 7

flags

Bitfield with misc settings for the device. List below gives the parameter with the bit number to have set to enable.

Disable USB Check On Boot : 0 Bus Messages To Android (ION and Plasma) : 2

digitalIoThresholdTicks

Ticks needed to trigger digital change

digitalIoThresholdEnable

Enable digital change thresholding