2112 lines
82 KiB
C#
2112 lines
82 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Runtime.InteropServices;
|
|
|
|
static class Constants
|
|
{
|
|
// Constants used to calculate the timestamp
|
|
public const double NEOVI_TIMESTAMP_2 = 0.1048576;
|
|
public const double NEOVI_TIMESTAMP_1 = 0.0000016;
|
|
|
|
public const double NEOVIPRO_VCAN_TIMESTAMP_2 = 0.065536;
|
|
public const double NEOVIPRO_VCAN_TIMESTAMP_1 = 0.000001;
|
|
|
|
public const double NEOVI6_VCAN_TIMESTAMP_2 = 0.065536;
|
|
public const double NEOVI6_VCAN_TIMESTAMP_1 = 0.000001;
|
|
|
|
public const double NEOVI_RED_TIMESTAMP_2_25NS = 107.3741824;
|
|
public const double NEOVI_RED_TIMESTAMP_1_25NS = 0.000000025;
|
|
|
|
public const double NEOVI_RED_TIMESTAMP_2_10NS = 429.4967296;
|
|
public const double NEOVI_RED_TIMESTAMP_1_10NS = 0.000000010;
|
|
}
|
|
|
|
namespace LFP_Manager.Function
|
|
{
|
|
public enum eHardwareTypes : uint
|
|
{
|
|
NEODEVICE_UNKNOWN = 0x00000000,
|
|
NEODEVICE_BLUE = 0x00000001,
|
|
NEODEVICE_ECU_AVB = 0x00000002,
|
|
NEODEVICE_RADSUPERMOON = 0x00000003,
|
|
NEODEVICE_DW_VCAN = 0x00000004,
|
|
NEODEVICE_RADMOON2 = 0x00000005,
|
|
NEODEVICE_RADGIGALOG = 0x00000006,
|
|
NEODEVICE_VCAN41 = 0x00000007,
|
|
NEODEVICE_FIRE = 0x00000008,
|
|
NEODEVICE_RADPLUTO = 0x00000009,
|
|
NEODEVICE_VCAN42_EL = 0x0000000a,
|
|
NEODEVICE_RADIO_CANHUB = 0x0000000b,
|
|
NEODEVICE_NEOECU12 = 0x0000000c,
|
|
NEODEVICE_OBD2_LCBADGE = 0x0000000d,
|
|
NEODEVICE_RAD_MOON_DUO = 0x0000000e,
|
|
NEODEVICE_VCAN3 = 0x00000010,
|
|
NEODEVICE_RADJUPITER = 0x00000011,
|
|
NEODEVICE_VCAN4_IND = 0x00000012,
|
|
NEODEVICE_GIGASTAR = 0x00000013,
|
|
NEODEVICE_ECU22 = 0x00000015,
|
|
NEODEVICE_RED = 0x00000040,
|
|
NEODEVICE_ECU = 0x00000080,
|
|
NEODEVICE_IEVB = 0x00000100,
|
|
NEODEVICE_PENDANT = 0x00000200,
|
|
NEODEVICE_OBD2_PRO = 0x00000400,
|
|
NEODEVICE_PLASMA = 0x00001000,
|
|
NEODEVICE_NEOANALOG = 0x00004000,
|
|
NEODEVICE_CT_OBD = 0x00008000,
|
|
NEODEVICE_ION = 0x00040000,
|
|
NEODEVICE_RADSTAR = 0x00080000,
|
|
NEODEVICE_VCAN44 = 0x00200000,
|
|
NEODEVICE_VCAN42 = 0x00400000,
|
|
NEODEVICE_CMPROBE = 0x00800000,
|
|
NEODEVICE_EEVB = 0x01000000,
|
|
NEODEVICE_VCANRF = 0x02000000,
|
|
NEODEVICE_FIRE2 = 0x04000000,
|
|
NEODEVICE_FLEX = 0x08000000,
|
|
NEODEVICE_RADGALAXY = 0x10000000,
|
|
NEODEVICE_RADSTAR2 = 0x20000000,
|
|
NEODEVICE_VIVIDCAN = 0x40000000,
|
|
NEODEVICE_OBD2_SIM = 0x80000000,
|
|
NEODEVICE_ALL = 0xFFFFBFFF,
|
|
}
|
|
|
|
public enum EDeviceSettingsType : uint
|
|
{
|
|
DeviceFireSettingsType = 00,
|
|
DeviceFireVnetSettingsType = 01,
|
|
DeviceFire2SettingsType = 02,
|
|
DeviceVCAN3SettingsType = 03,
|
|
DeviceRADGalaxySettingsType = 04,
|
|
DeviceRADStar2SettingsType = 05,
|
|
DeviceVCAN4SettingsType = 06,
|
|
DeviceVCAN412SettingsType = 07,
|
|
DeviceVividCANSettingsType = 08,
|
|
DeviceECU_AVBSettingsType = 09,
|
|
DeviceRADSuperMoonSettingsType = 10,
|
|
DeviceRADMoon2SettingsType = 11,
|
|
DeviceRADPlutoSettingsType = 12,
|
|
DeviceRADGigalogSettingsType = 13,
|
|
DeviceVCANRFSettingsType = 14,
|
|
DeviceEEVBSettingsType = 15,
|
|
DeviceVCAN4IndSettingsType = 16,
|
|
DeviceNeoECU12SettingsType = 17,
|
|
DeviceFlexVnetzSettingsType = 18,
|
|
DeviceCANHUBSettingsType = 19,
|
|
DeviceIEVBSettingsType = 20,
|
|
DeviceOBD2SimSettingsType = 21,
|
|
DeviceCMProbeSettingsType = 22,
|
|
DeviceOBD2ProSettingsType = 23,
|
|
DevicePlaceHolder0SettingsType = 24,
|
|
DeviceRADPlutoSwitchSettingsType = 25,
|
|
DeviceRADGigastarSettingsType = 26,
|
|
DeviceRADJupiterSettingsType = 27,
|
|
DevicePlaceHolder1SettingsType = 28,
|
|
DeviceRadMoonDuoSettingsType = 29,
|
|
DeviceEtherBadgeSettingsType = 30,
|
|
DeviceRADA2BSettingsType = 31,
|
|
DeviceSettingsTypeMax = 32
|
|
}
|
|
|
|
public enum eDATA_STATUS_BITFIELD_1 : uint //: long
|
|
{
|
|
SPY_STATUS_GLOBAL_ERR = 0x01,
|
|
SPY_STATUS_TX_MSG = 0x02,
|
|
SPY_STATUS_XTD_FRAME = 0x04,
|
|
SPY_STATUS_REMOTE_FRAME = 0x08,
|
|
|
|
SPY_STATUS_CRC_ERROR = 0x10,
|
|
SPY_STATUS_CAN_ERROR_PASSIVE = 0x20,
|
|
SPY_STATUS_INCOMPLETE_FRAME = 0x40,
|
|
SPY_STATUS_LOST_ARBITRATION = 0x80,
|
|
|
|
SPY_STATUS_UNDEFINED_ERROR = 0x100,
|
|
SPY_STATUS_CAN_BUS_OFF = 0x200,
|
|
SPY_STATUS_CAN_ERROR_WARNING = 0x400,
|
|
SPY_STATUS_BUS_SHORTED_PLUS = 0x800,
|
|
|
|
SPY_STATUS_BUS_SHORTED_GND = 0x1000,
|
|
SPY_STATUS_CHECKSUM_ERROR = 0x2000,
|
|
SPY_STATUS_BAD_MESSAGE_BIT_TIME_ERROR = 0x4000,
|
|
SPY_STATUS_IFR_DATA = 0x8000,
|
|
|
|
SPY_STATUS_COMM_IN_OVERFLOW = 0x10000,
|
|
SPY_STATUS_COMM_OUT_OVERFLOW = 0x20000,
|
|
SPY_STATUS_COMM_MISC_ERROR = 0x40000,
|
|
SPY_STATUS_BREAK = 0x80000,
|
|
|
|
SPY_STATUS_AVSI_REC_OVERFLOW = 0x100000,
|
|
SPY_STATUS_TEST_TRIGGER = 0x200000,
|
|
SPY_STATUS_AUDIO_COMMENT = 0x400000,
|
|
SPY_STATUS_GPS_DATA = 0x800000,
|
|
|
|
SPY_STATUS_ANALOG_DIGITAL_INPUT = 0x1000000,
|
|
SPY_STATUS_TEXT_COMMENT = 0x2000000,
|
|
SPY_STATUS_NETWORK_MESSAGE_TYPE = 0x4000000,
|
|
SPY_STATUS_VSI_TX_UNDERRUN = 0x8000000,
|
|
|
|
SPY_STATUS_VSI_IFR_CRC_BIT = 0x10000000,
|
|
SPY_STATUS_INIT_MESSAGE = 0x20000000,
|
|
SPY_STATUS_HIGH_SPEED = 0x40000000,
|
|
SPY_STATUS_FLEXRAY_SECOND_STARTUP_FRAME = 0x40000000,
|
|
SPY_STATUS_EXTENDED = 0x80000000, // if this bit is set than decode status bitfield3 in the ackbytes
|
|
}
|
|
|
|
public enum eDATA_STATUS_BITFIELD_2 : uint
|
|
{
|
|
SPY_STATUS2_HAS_VALUE = 1,
|
|
SPY_STATUS2_VALUE_IS_BOOLEAN = 2,
|
|
SPY_STATUS2_HIGH_VOLTAGE = 4,
|
|
SPY_STATUS2_LONG_MESSAGE = 8,
|
|
SPY_STATUS2_GLOBAL_CHANGE = 0x10000,
|
|
SPY_STATUS2_ERROR_FRAME = 0x20000,
|
|
SPY_STATUS2_END_OF_LONG_MESSAGE = 0x100000, //for ISO and J1708,
|
|
//LIN/ISO Specific - check protocol before handling
|
|
SPY_STATUS2_LIN_ERR_RX_BREAK_NOT_0 = 0x200000,
|
|
SPY_STATUS2_LIN_ERR_RX_BREAK_TOO_SHORT = 0x400000,
|
|
SPY_STATUS2_LIN_ERR_RX_SYNC_NOT_55 = 0x800000,
|
|
SPY_STATUS2_LIN_ERR_RX_DATA_GREATER_8 = 0x1000000,
|
|
SPY_STATUS2_LIN_ERR_TX_RX_MISMATCH = 0x2000000,
|
|
SPY_STATUS2_LIN_ERR_MSG_ID_PARITY = 0x4000000,
|
|
SPY_STATUS2_ISO_FRAME_ERROR = 0x8000000,
|
|
SPY_STATUS2_LIN_SYNC_FRAME_ERROR = 0x8000000,
|
|
SPY_STATUS2_ISO_OVERFLOW_ERROR = 0x10000000,
|
|
SPY_STATUS2_LIN_ID_FRAME_ERROR = 0x10000000,
|
|
SPY_STATUS2_ISO_PARITY_ERROR = 0x20000000,
|
|
SPY_STATUS2_LIN_SLAVE_BYTE_ERROR = 0x20000000,
|
|
SPY_STATUS2_RX_TIMEOUT_ERROR = 0x40000000,
|
|
SPY_STATUS2_LIN_NO_SLAVE_DATA = 0x80000000,
|
|
//MOST Specific - check protocol before handling
|
|
SPY_STATUS2_MOST_PACKET_DATA = 0x200000,
|
|
SPY_STATUS2_MOST_STATUS = 0x400000, //reflects changes in light/lock/MPR/SBC/etc.
|
|
PY_STATUS2_MOST_LOW_LEVEL = 0x800000, //MOST low level message, allocs, deallocs, remote requests.
|
|
SPY_STATUS2_MOST_CONTROL_DATA = 0x1000000,
|
|
SPY_STATUS2_MOST_MHP_USER_DATA = 0x2000000, //MOST HIGH User Data Frame
|
|
SPY_STATUS2_MOST_MHP_CONTROL_DATA = 0x4000000, //MOST HIGH Control Data
|
|
SPY_STATUS2_MOST_I2S_DUMP = 0x8000000,
|
|
SPY_STATUS2_MOST_TOO_SHORT = 0x10000000,
|
|
SPY_STATUS2_MOST_MOST50 = 0x20000000, //absence of MOST50 and MOST150 implies it's MOST25
|
|
SPY_STATUS2_MOST_MOST150 = 0x40000000,
|
|
SPY_STATUS2_MOST_CHANGED_PAR = 0x80000000, //first byte in ack reflects what changed
|
|
//Ethernet Specific - check protocol before handling
|
|
SPY_STATUS2_ETHERNET_CRC_ERROR = 0x200000,
|
|
SPY_STATUS2_ETHERNET_FRAME_TOO_SHORT = 0x400000,
|
|
SPY_STATUS2_ETHERNET_FCS_AVAILABLE = 0x800000, //This frame contains FCS (4 bytes) obtained from ICS Ethernet hardware (ex. RAD-STAR)
|
|
}
|
|
|
|
public enum eDATA_STATUS_BITFIELD_3_LIN
|
|
{
|
|
SPY_STATUS3_LIN_JUST_BREAK_SYNC = 1,
|
|
SPY_STATUS3_LIN_SLAVE_DATA_TOO_SHORT = 2,
|
|
SPY_STATUS3_LIN_ONLY_UPDATE_SLAVE_TABLE_ONCE = 4,
|
|
}
|
|
|
|
public enum eDATA_STATUS_BITFIELD_3_CANFD
|
|
{
|
|
SPY_STATUS3_CANFD_ESI = 0x01,
|
|
SPY_STATUS3_CANFD_IDE = 0x02,
|
|
SPY_STATUS3_CANFD_RTR = 0x04,
|
|
SPY_STATUS3_CANFD_FDF = 0x08,
|
|
SPY_STATUS3_CANFD_BRS = 0x10,
|
|
}
|
|
|
|
public enum icsConfigSetup : short
|
|
{
|
|
NEO_CFG_MPIC_HS_CAN_CNF1 = 512 + 10,
|
|
NEO_CFG_MPIC_HS_CAN_CNF2 = 512 + 9,
|
|
NEO_CFG_MPIC_HS_CAN_CNF3 = 512 + 8,
|
|
NEO_CFG_MPIC_HS_CAN_MODE = 512 + 54,
|
|
|
|
// med speed CAN
|
|
NEO_CFG_MPIC_MS_CAN_CNF1 = 512 + 22,
|
|
NEO_CFG_MPIC_MS_CAN_CNF2 = 512 + 21,
|
|
NEO_CFG_MPIC_MS_CAN_CNF3 = 512 + 20,
|
|
|
|
NEO_CFG_MPIC_SW_CAN_CNF1 = 512 + 34,
|
|
NEO_CFG_MPIC_SW_CAN_CNF2 = 512 + 33,
|
|
NEO_CFG_MPIC_SW_CAN_CNF3 = 512 + 32,
|
|
|
|
NEO_CFG_MPIC_LSFT_CAN_CNF1 = 512 + 46,
|
|
NEO_CFG_MPIC_LSFT_CAN_CNF2 = 512 + 45,
|
|
NEO_CFG_MPIC_LSFT_CAN_CNF3 = 512 + 44,
|
|
}
|
|
|
|
// Network ID
|
|
public enum eNETWORK_ID : int
|
|
{
|
|
NETID_DEVICE = 0,
|
|
NETID_HSCAN = 1,
|
|
NETID_MSCAN = 2,
|
|
NETID_SWCAN = 3,
|
|
NETID_LSFTCAN = 4,
|
|
NETID_ISO = 9,
|
|
NETID_ISO2 = 14,
|
|
NETID_ISO14230 = 15,
|
|
NETID_LIN = 16,
|
|
NETID_OP_ETHERNET1 = 17,
|
|
NETID_OP_ETHERNET2 = 18,
|
|
NETID_OP_ETHERNET3 = 19,
|
|
NETID_ISO3 = 41,
|
|
NETID_HSCAN2 = 42,
|
|
NETID_HSCAN3 = 44,
|
|
NETID_OP_ETHERNET4 = 45,
|
|
NETID_OP_ETHERNET5 = 46,
|
|
NETID_ISO4 = 47,
|
|
NETID_LIN2 = 48,
|
|
NETID_LIN3 = 49,
|
|
NETID_LIN4 = 50,
|
|
NETID_MOST = 51,
|
|
NETID_CGI = 53,
|
|
NETID_HSCAN4 = 61,
|
|
NETID_HSCAN5 = 62,
|
|
NETID_UART = 64,
|
|
NETID_UART2 = 65,
|
|
NETID_UART3 = 66,
|
|
NETID_UART4 = 67,
|
|
NETID_SWCAN2 = 68,
|
|
NETID_ETHERNET_DAQ = 69,
|
|
NETID_OP_ETHERNET6 = 73,
|
|
NETID_OP_ETHERNET7 = 75,
|
|
NETID_OP_ETHERNET8 = 76,
|
|
NETID_OP_ETHERNET9 = 77,
|
|
NETID_OP_ETHERNET10 = 78,
|
|
NETID_OP_ETHERNET11 = 79,
|
|
NETID_FLEXRAY1A = 80,
|
|
NETID_FLEXRAY1B = 81,
|
|
NETID_FLEXRAY2A = 82,
|
|
NETID_FLEXRAY2B = 83,
|
|
NETID_LIN5 = 84,
|
|
NETID_FLEXRAY = 85,
|
|
NETID_FLEXRAY2 = 86,
|
|
NETID_OP_ETHERNET12 = 87,
|
|
NETID_MOST25 = 90,
|
|
NETID_MOST50 = 91,
|
|
NETID_MOST150 = 92,
|
|
NETID_ETHERNET = 93,
|
|
NETID_HSCAN6 = 96,
|
|
NETID_HSCAN7 = 97,
|
|
NETID_LIN6 = 98,
|
|
NETID_LSFTCAN2 = 99,
|
|
}
|
|
|
|
//Vnet Enum for SlaveVnet types
|
|
public enum icsSpySlaveVNETAB : int
|
|
{
|
|
eNoVnet = 0,
|
|
eAinVnet = 2,
|
|
eFlexRayVnet = 3,
|
|
eSlaveFireVnet = 4,
|
|
eSlaveFireVnetEP = 5,
|
|
eSlaveFire2Vnet = 6,
|
|
eSlaveFire2VnetZ = 7,
|
|
eSlaveMost150 = 8,
|
|
}
|
|
|
|
//ISO15765 Constants
|
|
public enum eISO15765_NetConst : int
|
|
{
|
|
ISO15765_2_NETWORK_HSCAN = 0x01,
|
|
ISO15765_2_NETWORK_MSCAN = 0x02,
|
|
ISO15765_2_NETWORK_HSCAN2 = 0x04,
|
|
ISO15765_2_NETWORK_HSCAN3 = 0x08,
|
|
ISO15765_2_NETWORK_SWCAN = 0x10,
|
|
ISO15765_2_NETWORK_HSCAN4 = 0x14,
|
|
ISO15765_2_NETWORK_HSCAN5 = 0x18,
|
|
ISO15765_2_NETWORK_HSCAN6 = 0x1C,
|
|
ISO15765_2_NETWORK_HSCAN7 = 0x20,
|
|
ISO15765_2_NETWORK_SWCAN2 = 0x24,
|
|
}
|
|
|
|
//CoreMini Status
|
|
public enum eScriptStatus : int
|
|
{
|
|
SCRIPT_STATUS_STOPPED = 0,
|
|
SCRIPT_STATUS_RUNNING = 1,
|
|
}
|
|
|
|
//CoreMini Location
|
|
public enum eScriptLocation : int
|
|
{
|
|
SCRIPT_LOCATION_FLASH_MEM = 0,
|
|
SCRIPT_LOCATION_SDCARD = 1,
|
|
SCRIPT_LOCATION_INTERNAL_FLASH = 2,
|
|
SCRIPT_LOCATION_VCAN3_MEM = 4,
|
|
}
|
|
|
|
|
|
// ePROTOCOL
|
|
public enum ePROTOCOL : int
|
|
{
|
|
SPY_PROTOCOL_CUSTOM = 0,
|
|
SPY_PROTOCOL_CAN = 1,
|
|
SPY_PROTOCOL_GMLAN = 2,
|
|
SPY_PROTOCOL_J1850VPW = 3,
|
|
SPY_PROTOCOL_J1850PWM = 4,
|
|
SPY_PROTOCOL_ISO9141 = 5,
|
|
SPY_PROTOCOL_Keyword2000 = 6,
|
|
SPY_PROTOCOL_GM_ALDL_UART = 7,
|
|
SPY_PROTOCOL_CHRYSLER_CCD = 8,
|
|
SPY_PROTOCOL_CHRYSLER_SCI = 9,
|
|
SPY_PROTOCOL_FORD_UBP = 10,
|
|
SPY_PROTOCOL_BEAN = 11,
|
|
SPY_PROTOCOL_LIN = 12,
|
|
SPY_PROTOCOL_J1708 = 13,
|
|
SPY_PROTOCOL_CHRYSLER_JVPW = 14,
|
|
SPY_PROTOCOL_J1939 = 15,
|
|
SPY_PROTOCOL_FLEXRAY = 16,
|
|
SPY_PROTOCOL_MOST = 17,
|
|
SPY_PROTOCOL_CGI = 18,
|
|
SPY_PROTOCOL_GME_CIM_SCL_KLINE = 19,
|
|
SPY_PROTOCOL_SPI = 20,
|
|
SPY_PROTOCOL_I2C = 21,
|
|
SPY_PROTOCOL_GENERIC_UART = 22,
|
|
SPY_PROTOCOL_JTAG = 23,
|
|
SPY_PROTOCOL_UNIO = 24,
|
|
SPY_PROTOCOL_DALLAS_1WIRE = 25,
|
|
SPY_PROTOCOL_GENERIC_MANCHSESTER = 26,
|
|
SPY_PROTOCOL_SENT_PROTOCOL = 27,
|
|
SPY_PROTOCOL_UART = 28,
|
|
SPY_PROTOCOL_ETHERNET = 29,
|
|
SPY_PROTOCOL_CANFD = 30,
|
|
SPY_PROTOCOL_GMFSA = 31,
|
|
SPY_PROTOCOL_TCP = 32,
|
|
}
|
|
|
|
public enum icsEthernetLinkType : short
|
|
{
|
|
OPETH_LINK_AUTO = 0,
|
|
OPETH_LINK_MASTER = 1,
|
|
OPETH_LINK_SLAVE = 2,
|
|
}
|
|
|
|
// Driver Type Constants
|
|
public enum eDRIVER_TYPE : short
|
|
{
|
|
INTREPIDCS_DRIVER_STANDARD = 0,
|
|
INTREPIDCS_DRIVER_TEST = 1,
|
|
}
|
|
|
|
// Port Type Constants
|
|
public enum ePORT_TYPE : short
|
|
{
|
|
NEOVI_COMMTYPE_RS232 = 0,
|
|
NEOVI_COMMTYPE_USB_BULK = 1,
|
|
NEOVI_COMMTYPE_USB_ISO_DONT_USE = 2,
|
|
NEOVI_COMMTYPE_TCPIP = 3,
|
|
NEOVI_COMMTYPE_FIRE_USB = 5,
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct icsSpyMessage //reff
|
|
{
|
|
public Int32 StatusBitField; //4
|
|
public Int32 StatusBitField2; //new '4
|
|
public Int32 TimeHardware; // 4
|
|
public Int32 TimeHardware2; //new ' 4
|
|
public Int32 TimeSystem; // 4
|
|
public Int32 TimeSystem2;
|
|
public byte TimeStampHardwareID; //new ' 1
|
|
public byte TimeStampSystemID;
|
|
public byte NetworkID; //new ' 1
|
|
public byte NodeID;
|
|
public byte Protocol;
|
|
public byte MessagePieceID; // 1
|
|
public byte ExtraDataPtrEnabled; //1
|
|
public byte NumberBytesHeader; // 1
|
|
public byte NumberBytesData; // 1
|
|
public Int16 DescriptionID; // 2
|
|
public Int32 ArbIDOrHeader; // Holds (up to 3 byte 1850 header or 29 bit CAN header) '4
|
|
//public byte[] Data = new byte[8]; //(1 To 8); //8
|
|
public byte Data1;
|
|
public byte Data2;
|
|
public byte Data3;
|
|
public byte Data4;
|
|
public byte Data5;
|
|
public byte Data6;
|
|
public byte Data7;
|
|
public byte Data8;
|
|
public Int32 StatusBitField3;
|
|
public Int32 StatusBitField4;
|
|
//public byte[] AckBytes = new byte[8]; //(1 To 8); //new '8
|
|
public IntPtr iExtraDataPtr; // As Single ' 4 or 8 depending on system
|
|
public byte MiscData;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct VSBSpyMessage //reff
|
|
{
|
|
public Int32 StatusBitField; //4
|
|
public Int32 StatusBitField2; //new '4
|
|
public Int32 TimeHardware; // 4
|
|
public Int32 TimeHardware2; //new ' 4
|
|
public Int32 TimeSystem; // 4
|
|
public Int32 TimeSystem2;
|
|
public byte TimeStampHardwareID; //new ' 1
|
|
public byte TimeStampSystemID;
|
|
public byte NetworkID; //new ' 1
|
|
public byte NodeID;
|
|
public byte Protocol;
|
|
public byte MessagePieceID; // 1
|
|
public byte ExtraDataPtrEnabled; //1
|
|
public byte NumberBytesHeader; // 1
|
|
public byte NumberBytesData; // 1
|
|
public Int16 DescriptionID; // 2
|
|
public Int32 ArbIDOrHeader; // Holds (up to 3 byte 1850 header or 29 bit CAN header) '4
|
|
//public byte[] Data = new byte[8]; //(1 To 8); //8
|
|
public byte Data1;
|
|
public byte Data2;
|
|
public byte Data3;
|
|
public byte Data4;
|
|
public byte Data5;
|
|
public byte Data6;
|
|
public byte Data7;
|
|
public byte Data8;
|
|
public Int32 StatusBitField3;
|
|
public Int32 StatusBitField4;
|
|
//public byte[] AckBytes = new byte[8]; //(1 To 8); //new '8
|
|
public UInt32 iExtraDataPtr; // 4
|
|
public byte MiscData;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
|
public struct stAPIFirmwareInfo
|
|
{
|
|
public Int32 iType; // 1,2,3 for Generation of HW.
|
|
|
|
// Date and Time type 1 and 2
|
|
public Int32 iMainFirmDateDay;
|
|
public Int32 iMainFirmDateMonth;
|
|
public Int32 iMainFirmDateYear;
|
|
public Int32 iMainFirmDateHour;
|
|
public Int32 iMainFirmDateMin;
|
|
public Int32 iMainFirmDateSecond;
|
|
public Int32 iMainFirmChkSum;
|
|
|
|
// Version data (only valid for type 3)
|
|
public byte iAppMajor;
|
|
public byte iAppMinor;
|
|
public byte iManufactureDay;
|
|
public byte iManufactureMonth;
|
|
public UInt16 iManufactureYear;
|
|
public byte iBoardRevMajor;
|
|
public byte iBoardRevMinor;
|
|
public byte iBootLoaderVersionMajor;
|
|
public byte iBootLoaderVersionMinor;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct icsSpyMessageLong
|
|
{
|
|
public Int32 StatusBitField; // 4
|
|
public Int32 StatusBitField2; //new '4
|
|
public Int32 TimeHardware;
|
|
public Int32 TimeHardware2; //new ' 4
|
|
public Int32 TimeSystem; //4
|
|
public Int32 TimeSystem2;
|
|
public byte TimeStampHardwareID; //new ' 1
|
|
public byte TimeStampSystemID;
|
|
public byte NetworkID; //new ' 1
|
|
public byte NodeID;
|
|
public byte Protocol;
|
|
public byte MessagePieceID; // 1
|
|
public byte ExtraDataPtrEnabled; // 1
|
|
public byte NumberBytesHeader; //
|
|
public byte NumberBytesData; //2
|
|
public Int16 DescriptionID; //2
|
|
public Int32 ArbIDOrHeader;// Holds (up to 3 byte 1850 header or 29 bit CAN header)
|
|
public Int32 DataMsb;
|
|
public Int32 DataLsb;
|
|
public Int32 StatusBitField3;
|
|
public Int32 StatusBitField4;
|
|
public Single Value; // As Single
|
|
public byte MiscData;
|
|
|
|
}
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct icsSpyMessageJ1850
|
|
{
|
|
public Int32 StatusBitField; //4
|
|
public Int32 StatusBitField2; //new '4
|
|
public Int32 TimeHardware; //4
|
|
public Int32 TimeHardware2; //new ' 4
|
|
public Int32 TimeSystem; //4
|
|
public Int32 TimeSystem2;
|
|
public byte TimeStampHardwareID; //new ' 1
|
|
public byte TimeStampSystemID;
|
|
public byte NetworkID; //new ' 1
|
|
public byte NodeID;
|
|
public byte Protocol;
|
|
public byte MessagePieceID; // 1 new
|
|
public byte ExtraDataPtrEnabled; // 1
|
|
public byte NumberBytesHeader; //1
|
|
public byte NumberBytesData; //1
|
|
public Int16 DescriptionID; //2
|
|
public byte Header1; //Holds (up to 3 byte 1850 header or 29 bit CAN header)
|
|
public byte Header2;
|
|
public byte Header3;
|
|
public byte Header4;
|
|
public byte Data1;
|
|
public byte Data2;
|
|
public byte Data3;
|
|
public byte Data4;
|
|
public byte Data5;
|
|
public byte Data6;
|
|
public byte Data7;
|
|
public byte Data8;
|
|
public byte ACK1;
|
|
public byte ACK2;
|
|
public byte ACK3;
|
|
public byte ACK4;
|
|
public byte ACK5;
|
|
public byte ACK6;
|
|
public byte ACK7;
|
|
public byte ACK8;
|
|
public IntPtr iExtraDataPtr; // As Single '4 or 8 depending on system
|
|
public byte MiscData;
|
|
}
|
|
|
|
//Structure for neoVI device types
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct NeoDevice
|
|
{
|
|
public Int32 DeviceType;
|
|
public Int32 Handle;
|
|
public Int32 NumberOfClients;
|
|
public Int32 SerialNumber;
|
|
public Int32 MaxAllowedClients;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct NeoDeviceEx
|
|
{
|
|
public NeoDevice neoDevice;
|
|
public UInt32 FirmwareMajor;
|
|
public UInt32 FirmwareMinor;
|
|
public UInt32 Status; // bit 1 = CoreMini Running Status, bit 2 = In BootLoader?
|
|
public UInt32 Options; //Use icsSpyAttachedVNEts Enum for states
|
|
|
|
public IntPtr pAvailWIFINetwork;
|
|
public IntPtr pWIFIInterfaceInfo;
|
|
public Int32 isEthernetDevice;
|
|
|
|
public byte MACAddress0;
|
|
public byte MACAddress1;
|
|
public byte MACAddress2;
|
|
public byte MACAddress3;
|
|
public byte MACAddress4;
|
|
public byte MACAddress5;
|
|
|
|
public UInt16 hardwareRev;
|
|
public UInt16 revReserved;
|
|
|
|
public UInt32 Reserved0;// may be expanded in future revisions
|
|
public UInt32 Reserved1;
|
|
public UInt32 Reserved2;
|
|
public UInt32 Reserved3;
|
|
public UInt32 Reserved4;
|
|
public UInt32 Reserved5;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct OptionsNeoEx
|
|
{
|
|
Int32 CANOptions;
|
|
Int32 Reserved00;
|
|
Int32 Reserved01;
|
|
Int32 Reserved02;
|
|
Int32 Reserved03;
|
|
Int32 Reserved04;
|
|
Int32 Reserved05;
|
|
Int32 Reserved06;
|
|
Int32 Reserved07;
|
|
Int32 Reserved08;
|
|
Int32 Reserved09;
|
|
Int32 Reserved10;
|
|
Int32 Reserved11;
|
|
Int32 Reserved12;
|
|
Int32 Reserved13;
|
|
Int32 Reserved14;
|
|
Int32 Reserved15;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct CAN_SETTINGS
|
|
{
|
|
public byte Mode;
|
|
public byte SetBaudrate;
|
|
public byte Baudrate;
|
|
public byte Transceiver_Mode;
|
|
public byte TqSeg1;
|
|
public byte TqSeg2;
|
|
public byte TqProp;
|
|
public byte TqSync;
|
|
public UInt16 BRP;
|
|
public byte auto_baud;
|
|
public byte innerFrameDelay25us; // 0 - 375us, 25us resolution
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct CANFD_SETTINGS
|
|
{
|
|
public byte FDMode; /* mode, secondary baudrate for canfd */
|
|
public byte FDBaudrate;
|
|
public byte FDTqSeg1;
|
|
public byte FDTqSeg2;
|
|
public byte FDTqProp;
|
|
public byte FDTqSync;
|
|
public UInt16 FDBRP;
|
|
public byte FDTDC;
|
|
public byte reserved;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SWCAN_SETTINGS
|
|
{
|
|
public byte Mode;
|
|
public byte SetBaudrate;
|
|
public byte Baudrate;
|
|
public byte transceiver_mode;
|
|
public byte TqSeg1;
|
|
public byte TqSeg2;
|
|
public byte TqProp;
|
|
public byte TqSync;
|
|
public UInt16 BRP;
|
|
public UInt16 high_speed_auto_switch;
|
|
public byte auto_baud;
|
|
public byte Reserved;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SVCAN3Settings
|
|
{
|
|
public CAN_SETTINGS Can1;
|
|
public CAN_SETTINGS Can2;
|
|
public UInt16 Network_enables;
|
|
public UInt16 Network_enabled_on_boot;
|
|
public Int16 Iso15765_separation_time_offset;
|
|
public UInt16 Perf_en;
|
|
public UInt16 Misc_io_initial_ddr;
|
|
public UInt16 Misc_io_initial_latch;
|
|
public UInt16 Misc_io_report_period;
|
|
public UInt16 Misc_io_on_report_events;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SVCAN412Settings
|
|
{
|
|
/* Performance Test */
|
|
public UInt16 perf_en;
|
|
|
|
public CAN_SETTINGS can1;
|
|
public CANFD_SETTINGS canfd1;
|
|
public CAN_SETTINGS can2;
|
|
public CANFD_SETTINGS canfd2;
|
|
|
|
public UInt64 network_enables;
|
|
public UInt64 termination_enables;
|
|
|
|
public UInt32 pwr_man_timeout;
|
|
public UInt32 pwr_man_enable;
|
|
|
|
public UInt16 network_enabled_on_boot;
|
|
|
|
/* ISO15765-2 Transport Layer */
|
|
public Int16 iso15765_separation_time_offset;
|
|
|
|
public STextAPISettings text_api;
|
|
public UInt32 reserved;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct LIN_SETTINGS
|
|
{
|
|
public UInt32 Baudrate;
|
|
public UInt16 spbrg;
|
|
public byte brgh;
|
|
public byte NumBitsDelay;
|
|
public byte MasterResistor;
|
|
public byte Mode;
|
|
}
|
|
|
|
// --- UART Settings
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct UART_SETTINGS
|
|
{
|
|
public UInt16 Baudrate;
|
|
public UInt16 spbrg;
|
|
public UInt16 brgh;
|
|
public UInt16 parity;
|
|
public UInt16 stop_bits;
|
|
public byte flow_control; // 0- off, 1 - Simple CTS RTS,
|
|
public byte reserved_1;
|
|
public UInt32 bOptions; //AND to combind these values invert_tx = 1 invert_rx = 2 half_duplex = 4
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct ETHERNET_SETTINGS
|
|
{
|
|
public byte duplex; //* 0 = half, 1 = full */
|
|
public byte link_speed;
|
|
public byte auto_neg;
|
|
public byte led_mode;
|
|
public byte rsvd0;
|
|
public byte rsvd1;
|
|
public byte rsvd2;
|
|
public byte rsvd3;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SNeoMostGatewaySettings
|
|
{
|
|
public UInt16 netId; //Netid of CAN network to use.
|
|
public byte zero;
|
|
public byte 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
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct OP_ETH_GENERAL_SETTINGS
|
|
{
|
|
byte ucInterfaceType;
|
|
byte reserved0;
|
|
byte reserved1;
|
|
byte reserved2;
|
|
UInt16 tapPair0;
|
|
UInt16 tapPair1;
|
|
UInt16 tapPair2;
|
|
UInt16 tapPair3;
|
|
UInt16 tapPair4;
|
|
UInt16 tapPair5;
|
|
UInt32 flags; // Bit field unsigned (bTapEnSwitch: 1; bTapEnPtp: 2; bEnReportLinkQuality: 4)
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct OP_ETH_SETTINGS
|
|
{
|
|
byte ucConfigMode;
|
|
byte preemption_en;
|
|
byte mac_addr1_0;
|
|
byte mac_addr1_1;
|
|
byte mac_addr1_2;
|
|
byte mac_addr1_3;
|
|
byte mac_addr1_4;
|
|
byte mac_addr1_5;
|
|
byte mac_addr2_0;
|
|
byte mac_addr2_1;
|
|
byte mac_addr2_2;
|
|
byte mac_addr2_3;
|
|
byte mac_addr2_4;
|
|
byte mac_addr2_5;
|
|
byte OpEthFlags;
|
|
//AND to combind these values
|
|
//mac_spoofing_en : 1
|
|
//mac_spoofing_isDstOrSrc : 2
|
|
//link_spd_A : 4
|
|
//link_spd_B : 8
|
|
//q2112_phy_mode : 16
|
|
byte Reserved;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct J1708_SETTINGS
|
|
{
|
|
public UInt16 enable_convert_mode;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SVCANRFSettings
|
|
{
|
|
public CAN_SETTINGS can1;
|
|
public CAN_SETTINGS can2;
|
|
public CAN_SETTINGS can3;
|
|
public CAN_SETTINGS can4;
|
|
|
|
public LIN_SETTINGS lin1;
|
|
public LIN_SETTINGS lin2;
|
|
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enabled_on_boot;
|
|
|
|
public UInt32 pwr_man_timeout;
|
|
public UInt16 pwr_man_enable; // 0 - off, 1 - sleep enabled, 2- idle enabled (fast wakeup)
|
|
|
|
public UInt16 misc_io_initial_ddr;
|
|
public UInt16 misc_io_initial_latch;
|
|
public UInt16 misc_io_analog_enable;
|
|
public UInt16 misc_io_report_period;
|
|
public UInt16 misc_io_on_report_events;
|
|
|
|
//ISO 15765-2 Transport Layer
|
|
public Int16 iso15765_separation_time_offset;
|
|
|
|
//ISO9141 - KEYWORD 2000 1
|
|
public Int16 iso9141_kwp_enable_reserved;
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings;
|
|
|
|
//Performance Test
|
|
public UInt16 perf_en;
|
|
|
|
//ISO9141 - Parity
|
|
public UInt16 iso_parity; // 0 - no parity, 1 - event, 2 - odd
|
|
public UInt16 iso_msg_termination; // 0 - use inner frame time, 1 - GME CIM-SCL
|
|
public UInt16 iso_tester_pullup_enable;
|
|
|
|
//Additional network enables
|
|
public UInt16 network_enables_2;
|
|
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2;
|
|
public UInt16 iso_parity_2; // 0 - no parity, 1 - event, 2 - odd
|
|
public UInt16 iso_msg_termination_2; // 0 - use inner frame time, 1 - GME CIM-SCL
|
|
|
|
public UInt16 idle_wakeup_network_enables_1;
|
|
public UInt16 idle_wakeup_network_enables_2;
|
|
|
|
public UInt16 reservedZero;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SEEVBSettings
|
|
{
|
|
public UInt32 ecu_id;
|
|
|
|
public CAN_SETTINGS can1;
|
|
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enabled_on_boot;
|
|
|
|
// ISO 15765-2 Transport layer
|
|
public UInt16 iso15765_separation_time_offset;
|
|
|
|
// Performance test
|
|
public UInt16 perf_en;
|
|
|
|
// Analog input
|
|
public UInt16 ain_sample_period;
|
|
public UInt16 ain_threshold;
|
|
|
|
public UInt32 rsvd;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct STextAPISettings
|
|
{
|
|
public UInt32 can1_tx_id;
|
|
public UInt32 can1_rx_id;
|
|
public UInt32 can1_options; // Set to 1 for Extended, 0 for standard
|
|
|
|
public UInt32 can2_tx_id;
|
|
public UInt32 can2_rx_id;
|
|
public UInt32 can2_options; // Set to 1 for Extended, 0 for standard
|
|
|
|
public UInt32 network_enables;
|
|
|
|
public UInt32 can3_tx_id3;
|
|
public UInt32 can3_rx_id3;
|
|
public UInt32 can3_options; // Set to 1 for Extended, 0 for standard
|
|
|
|
public UInt32 can4_tx_id4;
|
|
public UInt32 can4_rx_id4;
|
|
public UInt32 can4_options; // Set to 1 for Extended, 0 for standard
|
|
|
|
public Int32 Reserved0;
|
|
public Int32 Reserved1;
|
|
public Int32 Reserved2;
|
|
public Int32 Reserved3;
|
|
public Int32 Reserved4;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct ISO9141_KEYWORD2000_SETTINGS
|
|
{
|
|
public UInt32 Baudrate;
|
|
public UInt16 spbrg;
|
|
public UInt16 brgh;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_0;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_1;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_2;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_3;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_4;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_5;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_6;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_7;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_8;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_9;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_10;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_11;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_12;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_13;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_14;
|
|
public ISO9141_KEYWORD2000__INIT_STEP Init_Step_15;
|
|
public byte init_step_count;
|
|
public UInt16 p2_500us;
|
|
public UInt16 p3_500us;
|
|
public UInt16 p4_500us;
|
|
public UInt16 chksum_enabled;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct ISO9141_KEYWORD2000__INIT_STEP
|
|
{
|
|
public UInt16 time_500us;
|
|
public UInt16 k;
|
|
public UInt16 l;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct TIMESYNC_ICSHARDWARE_SETTINGS
|
|
{
|
|
public byte MasterEnable;
|
|
public byte SlaveEnable;
|
|
public byte MasterNetwork;
|
|
public byte SlaveNetwork;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADSuperMoonSettingsPack
|
|
{
|
|
public UInt32 uiDevice;
|
|
public SRADSuperMoonSettings SuperMoonSettings;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADSuperMoonSettings
|
|
{
|
|
public UInt16 perf_en;
|
|
|
|
public OP_ETH_GENERAL_SETTINGS opEthGen;
|
|
public OP_ETH_SETTINGS opEth1;
|
|
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enables_2;
|
|
public UInt16 network_enabled_on_boot;
|
|
public UInt16 network_enables_3;
|
|
|
|
public STextAPISettings text_api;
|
|
|
|
public UInt16 pc_com_mode;
|
|
public TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings;
|
|
public UInt16 hwComLatencyTestEn;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADMoon2SettingsPack
|
|
{
|
|
public UInt32 uiDevice;
|
|
public SRADMoon2Settings Moon2Settings;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADMoon2Settings
|
|
{
|
|
public UInt16 perf_en;
|
|
public OP_ETH_GENERAL_SETTINGS opEthGen;
|
|
public OP_ETH_SETTINGS opEth1;
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enables_2;
|
|
public UInt16 network_enabled_on_boot;
|
|
public UInt16 network_enables_3;
|
|
public STextAPISettings text_api;
|
|
public UInt16 pc_com_mode;
|
|
public TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings;
|
|
public UInt16 hwComLatencyTestEn;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADGalaxySettings
|
|
{
|
|
public UInt16 perf_en;
|
|
|
|
public OP_ETH_GENERAL_SETTINGS opEthGen;
|
|
public OP_ETH_SETTINGS opEth1;
|
|
public OP_ETH_SETTINGS opEth2;
|
|
public OP_ETH_SETTINGS opEth3;
|
|
public OP_ETH_SETTINGS opEth4;
|
|
public OP_ETH_SETTINGS opEth5;
|
|
public OP_ETH_SETTINGS opEth6;
|
|
public OP_ETH_SETTINGS opEth7;
|
|
public OP_ETH_SETTINGS opEth8;
|
|
public OP_ETH_SETTINGS opEth9;
|
|
public OP_ETH_SETTINGS opEth10;
|
|
public OP_ETH_SETTINGS opEth11;
|
|
public OP_ETH_SETTINGS opEth12;
|
|
|
|
//CAN
|
|
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;
|
|
|
|
/* Native CAN are either LS1/LS2 or SW1/SW2 */
|
|
public SWCAN_SETTINGS swcan1;
|
|
public UInt16 network_enables;
|
|
public SWCAN_SETTINGS swcan2;
|
|
public UInt16 network_enables_2;
|
|
|
|
public LIN_SETTINGS lin1;
|
|
public UInt16 misc_io_initial_ddr;
|
|
public UInt16 misc_io_initial_latch;
|
|
public UInt16 misc_io_report_period;
|
|
public UInt16 misc_io_on_report_events;
|
|
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 UInt16 iso_msg_termination_1;
|
|
|
|
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 TIMESYNC_ICSHARDWARE_SETTINGS timeSyncSettings;
|
|
public UInt16 hwComLatencyTestEn;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SOBD2SimSettings
|
|
{
|
|
public UInt16 can1;
|
|
public UInt16 can2;
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enabled_on_boot;
|
|
public UInt16 iso15765_separation_time_offset;
|
|
public UInt16 perf_en;
|
|
public UInt16 misc_io_initial_ddr;
|
|
public UInt16 misc_io_initial_latch;
|
|
public UInt16 misc_io_report_period;
|
|
public UInt16 misc_io_on_report_events;
|
|
public UInt16 misc_io_analog_enable;
|
|
public UInt16 ain_sample_period;
|
|
public UInt16 ain_threshold;
|
|
public UInt16 canfd1;
|
|
public UInt16 canfd2;
|
|
public UInt16 network_enables_2;
|
|
public UInt16 text_api;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SVividCANSettings
|
|
{
|
|
public UInt32 ecu_id;
|
|
public CAN_SETTINGS can1;
|
|
public SWCAN_SETTINGS swcan1;
|
|
public CAN_SETTINGS lsftcan1;
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enabled_on_boot;
|
|
public UInt16 iso15765_separation_time_offset;
|
|
public UInt16 perf_en;
|
|
public UInt32 pwr_man_timeout;
|
|
public UInt16 pwr_man_enable;
|
|
public UInt16 can_switch_mode;
|
|
public UInt16 rsvd;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADStar2Settings
|
|
{
|
|
public UInt16 perf_en;
|
|
public OP_ETH_GENERAL_SETTINGS opEthGen;
|
|
public OP_ETH_SETTINGS opEth1;
|
|
public OP_ETH_SETTINGS opEth2;
|
|
public CAN_SETTINGS can1;
|
|
public CANFD_SETTINGS canfd1;
|
|
public CAN_SETTINGS can2;
|
|
public CANFD_SETTINGS canfd2;
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enables_2;
|
|
public LIN_SETTINGS lin1;
|
|
public UInt16 misc_io_initial_ddr;
|
|
public UInt16 misc_io_initial_latch;
|
|
public UInt16 misc_io_report_period;
|
|
public UInt16 misc_io_on_report_events;
|
|
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 UInt16 iso_msg_termination_1;
|
|
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;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SFireSettings
|
|
{
|
|
public CAN_SETTINGS can1;
|
|
public CAN_SETTINGS can2;
|
|
public CAN_SETTINGS can3;
|
|
public CAN_SETTINGS can4;
|
|
public SWCAN_SETTINGS swcan;
|
|
public CAN_SETTINGS lsftcan;
|
|
public LIN_SETTINGS lin1;
|
|
public LIN_SETTINGS lin2;
|
|
public LIN_SETTINGS lin3;
|
|
public LIN_SETTINGS lin4;
|
|
|
|
public UInt16 cgi_enable_reserved;
|
|
public UInt16 cgi_baud;
|
|
public UInt16 cgi_tx_ifs_bit_times;
|
|
public UInt16 cgi_rx_ifs_bit_times;
|
|
public UInt16 cgi_chksum_enable;
|
|
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enabled_on_boot;
|
|
|
|
public UInt32 pwm_man_timeout;
|
|
public UInt16 pwr_man_enable;
|
|
|
|
public UInt16 misc_io_initial_ddr;
|
|
public UInt16 misc_io_initial_latch;
|
|
public UInt16 misc_io_analog_enable;
|
|
public UInt16 misc_io_report_period;
|
|
public UInt16 misc_io_on_report_events;
|
|
public UInt16 ain_sample_period;
|
|
public UInt16 ain_threshold;
|
|
|
|
//ISO 15765-2 Transport Layer
|
|
public UInt16 iso15765_separation_time_offset;
|
|
|
|
//ISO9141 - KEYWORD 2000
|
|
public UInt16 iso9141_kwp_enable_reserved;
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings;
|
|
|
|
//Performance Test
|
|
public UInt16 perf_en;
|
|
|
|
//ISO9141 - Parity
|
|
public UInt16 iso_parity; // 0 - no parity, 1 - event, 2 - odd
|
|
public UInt16 iso_msg_termination; // 0 - use inner frame time, 1 - GME CIM-SCL
|
|
public UInt16 iso_tester_pullup_enable;
|
|
|
|
//Additional network enables
|
|
public UInt16 network_enables_2;
|
|
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2;
|
|
public UInt16 iso_parity_2; // 0 - no parity, 1 - event, 2 - odd
|
|
public UInt16 iso_msg_termination_2; // 0 - use inner frame time, 1 - GME CIM-SCL
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3;
|
|
public UInt16 iso_parity_3; // 0 - no parity, 1 - event, 2 - odd
|
|
public UInt16 iso_msg_termination_3; // 0 - use inner frame time, 1 - GME CIM-SCL
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4;
|
|
public UInt16 iso_parity_4; // 0 - no parity, 1 - event, 2 - odd
|
|
public UInt16 iso_msg_termination_4; // 0 - use inner frame time, 1 - GME CIM-SCL
|
|
public UInt16 fast_init_network_enables_1;
|
|
public UInt16 fast_init_network_enables_2;
|
|
public UART_SETTINGS uart;
|
|
public UART_SETTINGS uart2;
|
|
public STextAPISettings text_api;
|
|
public SNeoMostGatewaySettings neoMostGateway;
|
|
public UInt16 vnetBits; //First bit enables Android Messages
|
|
}
|
|
|
|
[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;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADPlutoSettingsPack
|
|
{
|
|
public UInt32 uiDevice;
|
|
public SRADPlutoSettings PlutoSettings;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SRADPlutoSettings
|
|
{
|
|
public UInt16 perf_en;
|
|
public CAN_SETTINGS can1;
|
|
public CANFD_SETTINGS canfd1;
|
|
public CAN_SETTINGS can2;
|
|
public CANFD_SETTINGS canfd2;
|
|
public LIN_SETTINGS lin1;
|
|
|
|
public UInt16 network_enables;
|
|
public UInt16 network_enables_2;
|
|
public UInt16 network_enables_3;
|
|
public UInt64 termination_enables;
|
|
public UInt16 misc_io_analog_enable;
|
|
|
|
public UInt32 pwr_man_timeout;
|
|
public UInt16 pwr_man_enable;
|
|
|
|
public UInt16 network_enabled_on_boot;
|
|
|
|
//ISO15765-2 Transport Layer
|
|
public UInt16 iso15765_separation_time_offset;
|
|
public UInt16 iso9141_kwp_enable_reserved;
|
|
public UInt16 iso_tester_pullup_enable;
|
|
public UInt16 iso_parity;
|
|
public UInt16 iso_msg_termination;
|
|
public ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1;
|
|
public ETHERNET_SETTINGS ethernet;
|
|
|
|
public STextAPISettings text_api;
|
|
public UInt32 Flags;
|
|
//Flag values
|
|
//disableUsbCheckOnBoot 1
|
|
//enableLatencyTest 2
|
|
//enablePcEthernetComm 4
|
|
public SPluto_CustomParams custom;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct SPluto_CustomParams
|
|
{
|
|
public Byte mode0;
|
|
public Byte mode1;
|
|
public Byte mode2;
|
|
public Byte mode3;
|
|
public Byte mode4;
|
|
public Byte speed0;
|
|
public Byte speed1;
|
|
public Byte speed2;
|
|
public Byte speed3;
|
|
public Byte speed4;
|
|
public Byte PhyEnable0;
|
|
public Byte PhyEnable1;
|
|
public Byte PhyEnable2;
|
|
public Byte PhyEnable3;
|
|
public Byte PhyEnable4;
|
|
public Byte ae1Select;
|
|
public Byte usbSelect;
|
|
public Byte pad;
|
|
}
|
|
|
|
|
|
|
|
//_stChipVersions
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct fire_versions
|
|
{
|
|
public Byte mpic_maj;
|
|
public Byte mpic_min;
|
|
public Byte upic_maj;
|
|
public Byte upic_min;
|
|
public Byte lpic_maj;
|
|
public Byte lpic_min;
|
|
public Byte jpic_maj;
|
|
public Byte jpic_min;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct plasma_fire_vnet
|
|
{
|
|
public Byte mpic_maj;
|
|
public Byte mpic_min;
|
|
public Byte core_maj;
|
|
public Byte core_min;
|
|
public Byte lpic_maj;
|
|
public Byte lpic_min;
|
|
public Byte hid_maj;
|
|
public Byte hid_min;
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct vcan3_versions
|
|
{
|
|
public Byte mpic_maj;
|
|
public Byte mpic_min;
|
|
public UInt32 Reserve;
|
|
public UInt16 Reserve2;
|
|
}
|
|
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct stCM_ISO157652_TxMessage
|
|
{
|
|
//transmit message
|
|
public UInt16 vs_netid; //< The netid of the message (determines which network to transmit on), not supported
|
|
public byte padding; //< The padding byte to use to fill the unused portion of
|
|
// transmitted CAN frames (single frame, first frame, consecutive frame).
|
|
public byte reserved2;
|
|
public UInt32 id; //< arbId of transmitted frames (CAN id to transmit to).
|
|
public UInt32 fc_id; //< flow control arb id filter value (response id from receiver).
|
|
public UInt32 fc_id_mask; //< The flow control arb filter mask (response id from receiver).
|
|
public byte stMin;//< Overrides the stMin that the receiver reports, see overrideSTmin. Set to J2534's STMIN_TX if <= 0xFF.
|
|
public byte blockSize; //< Overrides the block size that the receiver reports, see overrideBlockSize. Set to J2534's BS_TX if <= 0xFF.
|
|
public byte flowControlExtendedAddress;//< Expected Extended Address byte of response from receiver. see fc_ext_address_enable, not supported.
|
|
public byte extendedAddress;//< Extended Address byte of transmitter. see ext_address_enable, not supported.
|
|
|
|
//flow control timeouts
|
|
public UInt16 fs_timeout; //< max timeout (ms) for waiting on flow control respons. Set this to N_BS_MAX's value if J2534.
|
|
public UInt16 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.
|
|
//******************************************************************************************************************
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4095)] public byte[] data;
|
|
// call: stCM_ISO157652_TxMessage.data = new byte(4096)
|
|
//******************************************************************************************************************
|
|
public UInt32 num_bytes; //< Number of data bytes
|
|
//option bits
|
|
public UInt16 flags;
|
|
//To set the flags, AND the parameter you want from the stCM_ISO157652_TxMessage_Flags Enum
|
|
public byte Reserved;
|
|
public byte tx_dl;
|
|
}
|
|
|
|
public enum stCM_ISO157652_TxMessage_Flags : int
|
|
{
|
|
id_29_bit_enable = 1, //< Enables 29 bit arbId for transmitted frames. Set to 1 so transmitted frames use 29 bit ids, not supported.
|
|
fc_id_29_bit_enable = 2, //< Enables 29 bit arbId for Flow Control filter. Set to 1 if receiver response uses 29 bit ids, not supported.
|
|
ext_address_enable = 4, //< Enables Extended Addressing, Set to 1 if transmitted frames should have extended addres byte, not supported.
|
|
fc_ext_address_enable = 8, //< Enables Extended Addressing for Flow Control filter. Set to 1 if receiver responds with extended address byte, not supported.
|
|
overrideSTmin = 16, //< Uses member stMin and not receiver's flow control's stMin.
|
|
overrideBlockSize = 32, //< Uses member BlockSize and not receiver's flow control's BlockSize.
|
|
paddingEnable = 64, //< Enable's padding
|
|
iscanFD = 128, //Enables CAN FD
|
|
isBSREnabled = 256, //Enables BSR
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential, Pack = 2)]
|
|
public struct stCM_ISO157652_RxMessage
|
|
{
|
|
//transmit message
|
|
public UInt16 vs_netid; //< The netid of the message (determines which network to decode receives), not supported
|
|
public byte padding;//< The padding byte to use to fill the unused portion of
|
|
/// transmitted CAN frames (flow control), see paddingEnable.
|
|
public UInt32 id; //< ArbId filter value for frames from transmitter (from ECU to neoVI).
|
|
public UInt32 id_mask; //< ArbId filter mask for frames from transmitter (from ECU to neoVI).
|
|
public UInt32 fc_id; //< flow control arbId to transmit in flow control (from neoVI to ECU).
|
|
public byte flowControlExtendedAddress; //< Extended Address byte used in flow control (from neoVI to ECU). see fc_ext_address_enable.
|
|
public byte extendedAddress; //< Expected Extended Address byte of frames sent by transmitter (from ECU to neoVI). see ext_address_enable.
|
|
public byte blockSize; //< Block Size to report in flow control response.
|
|
public byte stMin; //< Minimum seperation time (between consecutive frames) to report in flow control response.
|
|
//flow control timeouts
|
|
public UInt16 cf_timeout; //< max timeout (ms) for waiting on consecutive frame. Set this to N_CR_MAX's value in J2534.
|
|
//option bits
|
|
public UInt32 flags;
|
|
//To set the flags, AND the parameter you want from the stCM_ISO157652_RxMessage_Flags Enum
|
|
public byte reserved0;
|
|
public byte reserved1;
|
|
public byte reserved2;
|
|
public byte reserved3;
|
|
public byte reserved4;
|
|
public byte reserved5;
|
|
public byte reserved6;
|
|
public byte reserved7;
|
|
public byte reserved8;
|
|
public byte reserved9;
|
|
public byte reserved10;
|
|
public byte reserved11;
|
|
public byte reserved12;
|
|
public byte reserved13;
|
|
public byte reserved14;
|
|
public byte reserved15;
|
|
}
|
|
|
|
|
|
public enum stCM_ISO157652_RxMessage_Flags : int
|
|
{
|
|
id_29_bit_enable = 1, //< Enables 29 bit arbId filter for frames (from ECU to neoVI).
|
|
fc_id_29_bit_enable = 2, //< Enables 29 bit arbId for Flow Control (from neoVI to ECU).
|
|
ext_address_enable = 4, //< Enables Extended Addressing (from ECU to neoVI).
|
|
fc_ext_address_enable = 8, //< Enables Extended Addressing (from neoVI to ECU).
|
|
enableFlowControlTransmission = 16, //< Enables Flow Control frame transmission (from neoVI to ECU).
|
|
paddingEnable = 32, //< Enable's padding
|
|
iscanFD = 64,
|
|
isBRSEnabled = 128,
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct PhyRegPktClauseMess_t
|
|
{
|
|
public byte phyAddrOrPort; //5 bits clause 22 uses Address, 45 Uses Port
|
|
public byte pageOrDevice; //5 bits clause 22 uses page, 45 Uses Device
|
|
public UInt16 regAddr; //5 bits
|
|
public UInt16 regVal;
|
|
} //6 bytes
|
|
|
|
public enum PhyRegFlags : short
|
|
{
|
|
Enabled = 1,
|
|
WriteEnable = 2,
|
|
Clause45Enable = 4,
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct PhyRegPkt_t
|
|
{
|
|
public UInt16 Flags;
|
|
public PhyRegPktClauseMess_t ClausePkt;
|
|
}
|
|
|
|
public class icsNeoDll
|
|
{
|
|
public const double NEOVI_TIMEHARDWARE2_SCALING = 0.1048576;
|
|
public const double NEOVI_TIMEHARDWARE_SCALING = 0.0000016;
|
|
|
|
public const double NEOVIPRO_VCAN_TIMEHARDWARE2_SCALING = 0.065536;
|
|
public const double NEOVIPRO_VCAN_TIMEHARDWARE_SCALING = 0.000001;
|
|
|
|
// med speed CAN
|
|
public const Int16 NEO_CFG_MPIC_MS_CAN_CNF1 = 512 + 22;
|
|
public const Int16 NEO_CFG_MPIC_MS_CAN_CNF2 = 512 + 21;
|
|
public const Int16 NEO_CFG_MPIC_MS_CAN_CNF3 = 512 + 20;
|
|
|
|
public const Int16 NEO_CFG_MPIC_SW_CAN_CNF1 = 512 + 34;
|
|
public const Int16 NEO_CFG_MPIC_SW_CAN_CNF2 = 512 + 33;
|
|
public const Int16 NEO_CFG_MPIC_SW_CAN_CNF3 = 512 + 32;
|
|
|
|
public const Int16 NEO_CFG_MPIC_LSFT_CAN_CNF1 = 512 + 46;
|
|
public const Int16 NEO_CFG_MPIC_LSFT_CAN_CNF2 = 512 + 45;
|
|
public const Int16 NEO_CFG_MPIC_LSFT_CAN_CNF3 = 512 + 44;
|
|
|
|
// Protocols
|
|
public const Int16 SPY_PROTOCOL_CUSTOM = 0;
|
|
public const Int16 SPY_PROTOCOL_CAN = 1;
|
|
public const Int16 SPY_PROTOCOL_GMLAN = 2;
|
|
public const Int16 SPY_PROTOCOL_J1850VPW = 3;
|
|
public const Int16 SPY_PROTOCOL_J1850PWM = 4;
|
|
public const Int16 SPY_PROTOCOL_ISO9141 = 5;
|
|
public const Int16 SPY_PROTOCOL_Keyword2000 = 6;
|
|
public const Int16 SPY_PROTOCOL_GM_ALDL_UART = 7;
|
|
public const Int16 SPY_PROTOCOL_CHRYSLER_CCD = 8;
|
|
public const Int16 SPY_PROTOCOL_CHRYSLER_SCI = 9;
|
|
public const Int16 SPY_PROTOCOL_FORD_UBP = 10;
|
|
public const Int16 SPY_PROTOCOL_BEAN = 11;
|
|
public const Int16 SPY_PROTOCOL_LIN = 12;
|
|
|
|
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoFindNeoDevices(UInt32 DeviceTypes, ref NeoDevice pNeoDevice, ref Int32 pNumDevices);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoFindDevices(ref NeoDeviceEx pNeoDevice, ref Int32 pNumDevices, UInt32 DeviceTypes, UInt32 numDeviceTypes, ref OptionsNeoEx pOptionsFindNeoEx, UInt32 reserved);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoOpenNeoDevice(ref NeoDevice pNeoDevice, ref IntPtr hObject, ref byte bNetworkIDs, Int32 bConfigRead, Int32 bSyncToPC);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoClosePort(IntPtr hObject, ref Int32 pNumberOfErrors);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern void icsneoFreeObject(IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoOpenPortEx(Int32 lPortNumber, Int32 lPortType, Int32 lDriverType, Int32 lIPAddressMSB, Int32 lIPAddressLSBOrBaudRate, Int32 bConfigRead, ref byte bNetworkID, ref IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetMessages(IntPtr hObject, ref icsSpyMessage pMsg, ref Int32 pNumberOfMessages, ref Int32 pNumberOfErrors);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoTxMessages(IntPtr hObject, ref icsSpyMessageJ1850 pMsg, Int32 lNetworkID, Int32 lNumMessages);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoTxMessagesEx(IntPtr hObject, ref icsSpyMessage pMsg, UInt32 lNetworkID, UInt32 lNumMessages, ref UInt32 NumTxed, UInt32 reserved);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoTxMessages(IntPtr hObject, ref icsSpyMessage pMsg, Int32 lNetworkID, Int32 lNumMessages);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoWaitForRxMessagesWithTimeOut(IntPtr hObject, UInt32 iTimeOut);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoEnableNetworkRXQueue(IntPtr hObject, Int32 iEnable);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetTimeStampForMsg(IntPtr hObject, ref icsSpyMessage pMsg, ref double pTimeStamp);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern void icsneoGetISO15765Status(IntPtr hObject, Int32 lNetwork, Int32 lClearTxStatus, Int32 lClearRxStatus, ref Int32 lTxStatus, ref Int32 lRxStatus);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetConfiguration(IntPtr hObject, ref byte pData, ref Int32 lNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSendConfiguration(IntPtr hObject, ref byte pData, Int32 lNumBytes);
|
|
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetFireSettings(IntPtr hObject, ref SFireSettings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetFireSettings(IntPtr hObject, ref SFireSettings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetVCAN3Settings(IntPtr hObject, ref SVCAN3Settings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetVCAN3Settings(IntPtr hObject, ref SVCAN3Settings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetVCAN412Settings(IntPtr hObject, ref SVCAN412Settings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetVCAN412Settings(IntPtr hObject, ref SVCAN412Settings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetFire2Settings(IntPtr hObject, ref SFire2Settings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetFire2Settings(IntPtr hObject, ref SFire2Settings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetRADStar2Settings(IntPtr hObject, ref SRADStar2Settings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetRADStar2Settings(IntPtr hObject, ref SRADStar2Settings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetRADGalaxySettings(IntPtr hObject, ref SRADGalaxySettings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetRADGalaxySettings(IntPtr hObject, ref SRADGalaxySettings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetVCANRFSettings(IntPtr hObject, ref SVCANRFSettings pSettings, Int32 iNumBytes);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetVCANRFSettings(IntPtr hObject, ref SVCANRFSettings pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetDeviceSettings(IntPtr hObject, ref SRADPlutoSettingsPack pSettings, Int32 iNumBytes, Int32 bSaveToEEPROM, Int32 VnetChan);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetDeviceSettings(IntPtr hObject, ref SRADPlutoSettingsPack pSettings, Int32 iNumBytes, Int32 VnetChan);
|
|
|
|
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetBitRate(IntPtr hObject, Int32 BitRate, Int32 NetworkID);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetFDBitRate(IntPtr hObject, Int32 BitRate, Int32 NetworkID);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetDeviceParameters(IntPtr hObject, ref char pParameter, ref char pValues, Int16 ValuesLength);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSetDeviceParameters(IntPtr hObject, ref char pParmValue, ref Int32 pErrorIndex, Int32 bSaveToEEPROM);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetLastAPIError(IntPtr hObject, ref UInt32 pErrorNumber);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetErrorMessages(IntPtr hObject, ref Int32 pErrorMsgs, ref Int32 pNumberOfErrors);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern int icsneoGetErrorInfo(int iErrorNumber, StringBuilder sErrorDescriptionShort, StringBuilder sErrorDescriptionLong, ref int iMaxLengthShort, ref int iMaxLengthLong, ref int lErrorSeverity, ref int lRestartNeeded);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoValidateHObject(IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoGetDLLVersion();
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoStartSockServer(IntPtr hObject, Int32 iPort);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoStopSockServer(IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptStart(IntPtr hObject, Int32 iLocation);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptStop(IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptLoad(IntPtr hObject, ref byte bin, UInt32 len_bytes, Int32 iLocation);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptClear(IntPtr hObject, Int32 iLocation);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptStartFBlock(IntPtr hObject, UInt32 fb_index);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptGetFBlockStatus(IntPtr hObject, UInt32 fb_index, ref Int32 piRunStatus);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptStopFBlock(IntPtr hObject, UInt32 fb_index);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoScriptGetScriptStatus(IntPtr hObject, ref Int32 piStatus);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoOpenPort(Int32 lPortNumber, Int32 lPortType, Int32 lDriverType, ref byte bNetworkID, ref byte bSCPIDs, ref IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoEnableNetworkCom(IntPtr hObject, Int32 Enable);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoISO15765_DisableNetworks(IntPtr hObject);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoISO15765_EnableNetworks(IntPtr hObject, Int32 Network);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoFindAllCOMDevices(Int32 lDriverType, Int32 lGetSerialNumbers, Int32 lStopAtFirst, Int32 lUSBCommOnly, ref Int32 p_lDeviceTypes, ref Int32 p_lComPorts, ref Int32 p_lSerialNumbers, ref Int32 lNumDevices);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoISO15765_TransmitMessage(IntPtr hObject, Int32 ulNetworkID, ref stCM_ISO157652_TxMessage pMsg, Int32 ulBlockingTimeout);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoISO15765_ReceiveMessage(IntPtr hObject, Int32 ulNetworkID, ref stCM_ISO157652_RxMessage pMsg);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoSerialNumberToString(UInt32 Serial, ref byte Data, ref UInt32 DataSize);
|
|
[DllImport("icsneo40.dll")]
|
|
public static extern Int32 icsneoReadWritePHYSettings(IntPtr hObject, ref PhyRegPkt_t PHYSettings, IntPtr size, IntPtr NumEntries);
|
|
|
|
public static double icsneoGetTimeStamp(long TimeHardware, long TimeHardware2)
|
|
{
|
|
return NEOVI_TIMEHARDWARE2_SCALING * TimeHardware2 + NEOVI_TIMEHARDWARE_SCALING * TimeHardware;
|
|
}
|
|
|
|
public static void ConvertCANtoJ1850Message(ref icsSpyMessage icsCANStruct, ref icsSpyMessageJ1850 icsJ1850Struct)
|
|
{
|
|
icsJ1850Struct.StatusBitField = icsCANStruct.StatusBitField;
|
|
icsJ1850Struct.StatusBitField2 = icsCANStruct.StatusBitField2;
|
|
icsJ1850Struct.TimeHardware = icsCANStruct.TimeHardware;
|
|
icsJ1850Struct.TimeHardware2 = icsCANStruct.TimeHardware2;
|
|
icsJ1850Struct.TimeSystem = icsCANStruct.TimeSystem;
|
|
icsJ1850Struct.TimeSystem2 = icsCANStruct.TimeSystem2;
|
|
icsJ1850Struct.TimeStampHardwareID = icsCANStruct.TimeStampHardwareID;
|
|
icsJ1850Struct.TimeStampSystemID = icsCANStruct.TimeStampSystemID;
|
|
icsJ1850Struct.NetworkID = icsCANStruct.NetworkID;
|
|
icsJ1850Struct.NodeID = icsCANStruct.NodeID;
|
|
icsJ1850Struct.Protocol = icsCANStruct.Protocol;
|
|
icsJ1850Struct.MessagePieceID = icsCANStruct.MessagePieceID;
|
|
icsJ1850Struct.ExtraDataPtrEnabled = icsCANStruct.ExtraDataPtrEnabled;
|
|
icsJ1850Struct.NumberBytesHeader = icsCANStruct.NumberBytesHeader;
|
|
icsJ1850Struct.NumberBytesData = icsCANStruct.NumberBytesData;
|
|
icsJ1850Struct.DescriptionID = icsCANStruct.DescriptionID;
|
|
icsJ1850Struct.Header1 = Convert.ToByte(icsCANStruct.ArbIDOrHeader & 0xff);
|
|
icsJ1850Struct.Header2 = Convert.ToByte((0xFF00 & icsCANStruct.ArbIDOrHeader) / 256);
|
|
icsJ1850Struct.Header3 = Convert.ToByte((0xFF0000 & icsCANStruct.ArbIDOrHeader) / 65536);
|
|
icsJ1850Struct.Data1 = icsCANStruct.Data1;
|
|
icsJ1850Struct.Data2 = icsCANStruct.Data2;
|
|
icsJ1850Struct.Data3 = icsCANStruct.Data3;
|
|
icsJ1850Struct.Data4 = icsCANStruct.Data4;
|
|
icsJ1850Struct.Data5 = icsCANStruct.Data5;
|
|
icsJ1850Struct.Data6 = icsCANStruct.Data6;
|
|
icsJ1850Struct.Data7 = icsCANStruct.Data7;
|
|
icsJ1850Struct.Data8 = icsCANStruct.Data8;
|
|
icsJ1850Struct.ACK4 = Convert.ToByte((icsCANStruct.StatusBitField3 & 0xFF000000) >> 24);
|
|
icsJ1850Struct.ACK3 = Convert.ToByte((icsCANStruct.StatusBitField3 & 0xFF0000) >> 16);
|
|
icsJ1850Struct.ACK2 = Convert.ToByte((icsCANStruct.StatusBitField3 & 0xFF00) >> 8);
|
|
icsJ1850Struct.ACK1 = Convert.ToByte((icsCANStruct.StatusBitField3 & 0xFF));
|
|
icsJ1850Struct.ACK8 = Convert.ToByte((icsCANStruct.StatusBitField4 & 0xFF000000) >> 24);
|
|
icsJ1850Struct.ACK7 = Convert.ToByte((icsCANStruct.StatusBitField4 & 0xFF0000) >> 16);
|
|
icsJ1850Struct.ACK6 = Convert.ToByte((icsCANStruct.StatusBitField4 & 0xFF00) >> 8);
|
|
icsJ1850Struct.ACK5 = Convert.ToByte((icsCANStruct.StatusBitField4 & 0xFF));
|
|
icsJ1850Struct.iExtraDataPtr = icsCANStruct.iExtraDataPtr;
|
|
icsJ1850Struct.MiscData = icsCANStruct.MiscData;
|
|
}
|
|
|
|
public static void ConvertJ1850toCAN(ref icsSpyMessage icsCANStruct, ref icsSpyMessageJ1850 icsJ1850Struct)
|
|
{
|
|
//Becuse memcopy is not available.
|
|
icsCANStruct.StatusBitField = icsJ1850Struct.StatusBitField;
|
|
icsCANStruct.StatusBitField2 = icsJ1850Struct.StatusBitField2;
|
|
icsCANStruct.TimeHardware = icsJ1850Struct.TimeHardware;
|
|
icsCANStruct.TimeHardware2 = icsJ1850Struct.TimeHardware2;
|
|
icsCANStruct.TimeSystem = icsJ1850Struct.TimeSystem;
|
|
icsCANStruct.TimeSystem2 = icsJ1850Struct.TimeSystem2;
|
|
icsCANStruct.TimeStampHardwareID = icsJ1850Struct.TimeStampHardwareID;
|
|
icsCANStruct.TimeStampSystemID = icsJ1850Struct.TimeStampSystemID;
|
|
icsCANStruct.NetworkID = icsJ1850Struct.NetworkID;
|
|
icsCANStruct.NodeID = icsJ1850Struct.NodeID;
|
|
icsCANStruct.Protocol = icsJ1850Struct.Protocol;
|
|
icsCANStruct.MessagePieceID = icsJ1850Struct.MessagePieceID;
|
|
icsCANStruct.ExtraDataPtrEnabled = icsJ1850Struct.ExtraDataPtrEnabled;
|
|
icsCANStruct.NumberBytesHeader = icsJ1850Struct.NumberBytesHeader;
|
|
icsCANStruct.NumberBytesData = icsJ1850Struct.NumberBytesData;
|
|
icsCANStruct.DescriptionID = icsJ1850Struct.DescriptionID;
|
|
icsCANStruct.ArbIDOrHeader = (icsJ1850Struct.Header3 * 65536) + (icsJ1850Struct.Header2 * 256) + icsJ1850Struct.Header1;
|
|
icsCANStruct.Data1 = icsJ1850Struct.Data1;
|
|
icsCANStruct.Data2 = icsJ1850Struct.Data2;
|
|
icsCANStruct.Data3 = icsJ1850Struct.Data3;
|
|
icsCANStruct.Data4 = icsJ1850Struct.Data4;
|
|
icsCANStruct.Data5 = icsJ1850Struct.Data5;
|
|
icsCANStruct.Data6 = icsJ1850Struct.Data6;
|
|
icsCANStruct.Data7 = icsJ1850Struct.Data7;
|
|
icsCANStruct.Data8 = icsJ1850Struct.Data8;
|
|
icsCANStruct.StatusBitField3 = (icsJ1850Struct.ACK1 << 24) + (icsJ1850Struct.ACK2 << 16) + (icsJ1850Struct.ACK3 << 8) + (icsJ1850Struct.ACK4);
|
|
icsCANStruct.StatusBitField4 = (icsJ1850Struct.ACK5 << 24) + (icsJ1850Struct.ACK6 << 16) + (icsJ1850Struct.ACK7 << 8) + (icsJ1850Struct.ACK8);
|
|
icsCANStruct.iExtraDataPtr = icsJ1850Struct.iExtraDataPtr;
|
|
icsCANStruct.MiscData = icsJ1850Struct.MiscData;
|
|
}
|
|
|
|
public static string ConvertToHex(string sInput)
|
|
{
|
|
string sOut;
|
|
uint uiDecimal = 0;
|
|
|
|
try
|
|
{
|
|
//Convert text string to unsigned Int32eger
|
|
uiDecimal = checked((uint)System.Convert.ToUInt32(sInput));
|
|
}
|
|
catch (System.OverflowException)
|
|
{
|
|
sOut = "Overflow";
|
|
return sOut;
|
|
}
|
|
//Format unsigned Int32eger value to hex
|
|
sOut = String.Format("{0:x2}", uiDecimal);
|
|
return sOut;
|
|
}
|
|
|
|
public static Int32 ConvertFromHex(string num)
|
|
{
|
|
//To hold our converted unsigned Int32eger32 value
|
|
uint uiHex = 0;
|
|
try
|
|
{
|
|
// Convert hex string to unsigned Int32eger
|
|
uiHex = System.Convert.ToUInt32(num, 16);
|
|
}
|
|
catch (System.OverflowException)
|
|
{
|
|
//
|
|
}
|
|
return Convert.ToInt32(uiHex);
|
|
}
|
|
|
|
public static Int32 GetNetworkIDfromString(ref string NetworkName)
|
|
{
|
|
switch (NetworkName)
|
|
{
|
|
case "DEVICE":
|
|
return ((int)eNETWORK_ID.NETID_DEVICE);
|
|
case "HSCAN":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN);
|
|
case "MSCAN":
|
|
return ((int)eNETWORK_ID.NETID_MSCAN);
|
|
case "SWCAN":
|
|
return ((int)eNETWORK_ID.NETID_SWCAN);
|
|
case "LSFTCAN":
|
|
return ((int)eNETWORK_ID.NETID_LSFTCAN);
|
|
case "ISO":
|
|
return ((int)eNETWORK_ID.NETID_ISO);
|
|
case "ISO2":
|
|
return ((int)eNETWORK_ID.NETID_ISO2);
|
|
case "ISO14230":
|
|
return ((int)eNETWORK_ID.NETID_ISO14230);
|
|
case "LIN":
|
|
return ((int)eNETWORK_ID.NETID_LIN);
|
|
case "ISO3":
|
|
return ((int)eNETWORK_ID.NETID_ISO3);
|
|
case "HSCAN2":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN2);
|
|
case "HSCAN3":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN3);
|
|
case "ISO4":
|
|
return ((int)eNETWORK_ID.NETID_ISO4);
|
|
case "LIN2":
|
|
return ((int)eNETWORK_ID.NETID_LIN2);
|
|
case "LIN3":
|
|
return ((int)eNETWORK_ID.NETID_LIN3);
|
|
case "LIN4":
|
|
return ((int)eNETWORK_ID.NETID_LIN4);
|
|
case "LIN5":
|
|
return ((int)eNETWORK_ID.NETID_LIN5);
|
|
case "MOST":
|
|
return ((int)eNETWORK_ID.NETID_MOST);
|
|
case "CGI":
|
|
return ((int)eNETWORK_ID.NETID_CGI);
|
|
case "HSCAN4":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN4);
|
|
case "HSCAN5":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN5);
|
|
case "UART":
|
|
return ((int)eNETWORK_ID.NETID_UART);
|
|
case "UART2":
|
|
return ((int)eNETWORK_ID.NETID_UART2);
|
|
case "UART3":
|
|
return ((int)eNETWORK_ID.NETID_UART3);
|
|
case "UART4":
|
|
return ((int)eNETWORK_ID.NETID_UART4);
|
|
case "SWCAN2":
|
|
return ((int)eNETWORK_ID.NETID_SWCAN2);
|
|
case "ETHERNE":
|
|
return ((int)eNETWORK_ID.NETID_ETHERNET_DAQ);
|
|
case "FLEXRAY1A":
|
|
return ((int)eNETWORK_ID.NETID_FLEXRAY1A);
|
|
case "FLEXRAY1B":
|
|
return ((int)eNETWORK_ID.NETID_FLEXRAY1B);
|
|
case "FLEXRAY2A":
|
|
return ((int)eNETWORK_ID.NETID_FLEXRAY2A);
|
|
case "FLEXRAY2B":
|
|
return ((int)eNETWORK_ID.NETID_FLEXRAY2B);
|
|
case "FLEXRAY":
|
|
return ((int)eNETWORK_ID.NETID_FLEXRAY);
|
|
case "MOST25":
|
|
return ((int)eNETWORK_ID.NETID_MOST25);
|
|
case "MOST50":
|
|
return ((int)eNETWORK_ID.NETID_MOST50);
|
|
case "MOST150":
|
|
return ((int)eNETWORK_ID.NETID_MOST150);
|
|
case "ETHERNET":
|
|
return ((int)eNETWORK_ID.NETID_ETHERNET);
|
|
case "HSCAN6":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN6);
|
|
case "HSCAN7":
|
|
return ((int)eNETWORK_ID.NETID_HSCAN7);
|
|
case "LIN6":
|
|
return ((int)eNETWORK_ID.NETID_LIN6);
|
|
case "LSFTCAN2":
|
|
return ((int)eNETWORK_ID.NETID_LSFTCAN2);
|
|
case "OP_ETHERNET1":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET1);
|
|
case "OP_ETHERNET2":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET2);
|
|
case "OP_ETHERNET3":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET3);
|
|
case "OP_ETHERNET4":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET4);
|
|
case "OP_ETHERNET5":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET5);
|
|
case "OP_ETHERNET6":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET6);
|
|
case "OP_ETHERNET7":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET7);
|
|
case "OP_ETHERNET8":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET8);
|
|
case "OP_ETHERNET9":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET9);
|
|
case "OP_ETHERNET10":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET10);
|
|
case "OP_ETHERNET11":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET11);
|
|
case "OP_ETHERNET12":
|
|
return ((int)eNETWORK_ID.NETID_OP_ETHERNET12);
|
|
}
|
|
return (-1);
|
|
}
|
|
|
|
|
|
public static string GetStringForNetworkID(Int16 lNetworkID)
|
|
{
|
|
string sTempOutput = "N/A";
|
|
switch (lNetworkID)
|
|
{
|
|
case (short)eNETWORK_ID.NETID_DEVICE:
|
|
sTempOutput = "DEVICE";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN:
|
|
sTempOutput = "HSCAN";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_MSCAN:
|
|
sTempOutput = "MSCAN";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_SWCAN:
|
|
sTempOutput = "SWCAN";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LSFTCAN:
|
|
sTempOutput = "LSFTCAN";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ISO:
|
|
sTempOutput = "ISO";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ISO2:
|
|
sTempOutput = "ISO2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ISO14230:
|
|
sTempOutput = "ISO14230";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LIN:
|
|
sTempOutput = "LIN";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ISO3:
|
|
sTempOutput = "ISO3";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN2:
|
|
sTempOutput = "HSCAN2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN3:
|
|
sTempOutput = "HSCAN3";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ISO4:
|
|
sTempOutput = "ISO4";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LIN2:
|
|
sTempOutput = "LIN2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LIN3:
|
|
sTempOutput = "LIN3";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LIN4:
|
|
sTempOutput = "LIN4";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LIN5:
|
|
sTempOutput = "LIN5";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_MOST:
|
|
sTempOutput = "MOST";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_CGI:
|
|
sTempOutput = "CGI";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN4:
|
|
sTempOutput = "HSCAN4";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN5:
|
|
sTempOutput = "HSCAN5";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_UART:
|
|
sTempOutput = "UART";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_UART2:
|
|
sTempOutput = "UART2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_UART3:
|
|
sTempOutput = "UART3";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_UART4:
|
|
sTempOutput = "UART4";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_SWCAN2:
|
|
sTempOutput = "SWCAN2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ETHERNET_DAQ:
|
|
sTempOutput = "ETHERNE";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_FLEXRAY1A:
|
|
sTempOutput = "FLEXRAY1A";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_FLEXRAY1B:
|
|
sTempOutput = "FLEXRAY1B";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_FLEXRAY2A:
|
|
sTempOutput = "FLEXRAY2A";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_FLEXRAY2B:
|
|
sTempOutput = "FLEXRAY2B";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_FLEXRAY:
|
|
sTempOutput = "FLEXRAY";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_MOST25:
|
|
sTempOutput = "MOST25";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_MOST50:
|
|
sTempOutput = "MOST50";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_MOST150:
|
|
sTempOutput = "MOST150";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_ETHERNET:
|
|
sTempOutput = "ETHERNET";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN6:
|
|
sTempOutput = "HSCAN6";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_HSCAN7:
|
|
sTempOutput = "HSCAN7";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LIN6:
|
|
sTempOutput = "LIN6";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_LSFTCAN2:
|
|
sTempOutput = "LSFTCAN2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET1:
|
|
sTempOutput = "OP_ETHERNET1";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET2:
|
|
sTempOutput = "OP_ETHERNET2";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET3:
|
|
sTempOutput = "OP_ETHERNET3";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET4:
|
|
sTempOutput = "OP_ETHERNET4";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET5:
|
|
sTempOutput = "OP_ETHERNET5";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET6:
|
|
sTempOutput = "OP_ETHERNET6";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET7:
|
|
sTempOutput = "OP_ETHERNET7";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET8:
|
|
sTempOutput = "OP_ETHERNET8";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET9:
|
|
sTempOutput = "OP_ETHERNET9";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET10:
|
|
sTempOutput = "OP_ETHERNET10";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET11:
|
|
sTempOutput = "OP_ETHERNET11";
|
|
break;
|
|
case (short)eNETWORK_ID.NETID_OP_ETHERNET12:
|
|
sTempOutput = "OP_ETHERNET12";
|
|
break;
|
|
default:
|
|
sTempOutput = "Other";
|
|
break;
|
|
}
|
|
return sTempOutput;
|
|
}
|
|
|
|
}
|
|
}
|