C2 API

Typedefs

typedef struct icsneoc2_device_info_t icsneoc2_device_info_t
typedef struct icsneoc2_device_t icsneoc2_device_t
typedef struct icsneoc2_message_t icsneoc2_message_t
typedef struct icsneoc2_event_t icsneoc2_event_t
typedef struct icsneoc2_supported_device_t icsneoc2_supported_device_t
typedef enum _icsneoc2_error_t _icsneoc2_error_t
typedef uint32_t icsneoc2_error_t

Enums

enum _icsneoc2_error_t

Values:

enumerator icsneoc2_error_success
enumerator icsneoc2_error_invalid_parameters
enumerator icsneoc2_error_open_failed
enumerator icsneoc2_error_go_online_failed
enumerator icsneoc2_error_enable_message_polling_failed
enumerator icsneoc2_error_sync_rtc_failed
enumerator icsneoc2_error_get_messages_failed
enumerator icsneoc2_error_invalid_type
enumerator icsneoc2_error_rtc_failure
enumerator icsneoc2_error_get_settings_failure
enumerator icsneoc2_error_set_settings_failure
enumerator icsneoc2_error_transmit_message_failed
enumerator icsneoc2_error_string_copy_failed
enumerator icsneoc2_error_invalid_device
enumerator icsneoc2_error_invalid_message
enumerator icsneoc2_error_out_of_memory
enumerator icsneoc2_error_format_disk_failed
enumerator icsneoc2_error_script_start_failed
enumerator icsneoc2_error_script_stop_failed
enumerator icsneoc2_error_script_clear_failed
enumerator icsneoc2_error_script_upload_failed
enumerator icsneoc2_error_script_load_prepare_failed
enumerator icsneoc2_error_close_failed
enumerator icsneoc2_error_reconnect_failed
enumerator icsneoc2_error_invalid_data
enumerator icsneoc2_error_maxsize

Functions

icsneoc2_error_t icsneoc2_error_code_get(icsneoc2_error_t error_code, char *value, size_t *value_length)

Get the error string for an error code.

Parameters:
  • error_code[in] The error code to get the description of.

  • value[out] Pointer to a buffer to copy the description into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_supported_devices_enumerate(icsneoc2_supported_device_t **supported_devices)

Enumerate supported device types.

Parameters:

supported_devices[out] Pointer to receive the head of the supported device types linked list. Must be freed with icsneoc2_supported_devices_free().

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_supported_devices_free(icsneoc2_supported_device_t *supported_devices)

Free a supported device types list returned by icsneoc2_supported_devices_enumerate().

Parameters:

supported_devices[in] The head of the supported device types linked list to free.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_supported_device_t *icsneoc2_supported_devices_next(const icsneoc2_supported_device_t *supported_device)

Advance to the next supported device type in a list.

Parameters:

supported_device[in] The current supported device type node.

Returns:

The next supported device type node, or NULL at the end of the list.

icsneoc2_error_t icsneoc2_supported_device_get(const icsneoc2_supported_device_t *supported_device, icsneoc2_devicetype_t *device_type)

Get the device type from a supported device node.

Parameters:
  • supported_device[in] The supported device node.

  • device_type[out] Pointer to receive the device type.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_type_name_get(icsneoc2_devicetype_t device_type, char *value, size_t *value_length)

Get the device type string for a icsneoc2_devicetype_t.

Parameters:
  • device_type[in] The device type to get the description of.

  • value[out] Pointer to a buffer to copy the description into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_enumerate(icsneoc2_devicetype_t device_type, icsneoc2_device_info_t **devices)

Enumerate connected devices. Returns head of an opaque linked list. Pass 0 for device_type to enumerate all devices, or a specific type to filter.

Parameters:
  • device_type[in] The device type to filter by, or 0 for all devices.

  • devices[out] Pointer to receive the head of the device info linked list.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

void icsneoc2_enumeration_free(icsneoc2_device_info_t *devices)

Free an enumeration list returned by icsneoc2_device_enumerate(). Safe to call after opening devices from the list.

Parameters:

devices[in] The head of the device info linked list to free.

icsneoc2_device_info_t *icsneoc2_device_info_next(const icsneoc2_device_info_t *device_info)

Advance to the next device in an enumeration list.

Parameters:

device_info[in] The current device info node.

Returns:

The next device info node, or NULL at the end of the list.

icsneoc2_error_t icsneoc2_device_info_serial_get(const icsneoc2_device_info_t *device_info, char *serial, size_t *serial_length)

Get the serial number of an enumerated device.

Parameters:
  • device_info[in] The device info node.

  • serial[out] Buffer to copy the serial string into. Null terminated.

  • serial_length[inout] Size of the serial buffer. Modified with the length of the serial.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_device_info_type_get(const icsneoc2_device_info_t *device_info, icsneoc2_devicetype_t *type)

Get the device type of an enumerated device.

Parameters:
  • device_info[in] The device info node.

  • type[out] Pointer to receive the device type.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_device_info_type_name_get(const icsneoc2_device_info_t *device_info, char *type_name, size_t *type_name_length)

Get the human-readable type name of an enumerated device.

Parameters:
  • device_info[in] The device info node.

  • type_name[out] Buffer to copy the type name into. Null terminated.

  • type_name_length[inout] Size of the buffer. Modified with the length of the name.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_device_info_description_get(const icsneoc2_device_info_t *device_info, char *description, size_t *description_length)

Get the full description of an enumerated device (e.g. “neoVI FIRE 3 RS2043”).

Parameters:
  • device_info[in] The device info node.

  • description[out] Buffer to copy the description into. Null terminated.

  • description_length[inout] Size of the buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_device_is_valid(const icsneoc2_device_t *device)

Check to make sure a device is valid.

Parameters:

device[in] The device to check.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_is_open(const icsneoc2_device_t *device, bool *is_open)

Check to make sure a device is open.

Parameters:
  • device[in] The device to check.

  • is_open[out] true if the device is open, false otherwise

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_create(const icsneoc2_device_info_t *device_info, icsneoc2_device_t **device)

Create a device handle from an enumeration node without opening it. Need to call icsneoc2_device_free() to free the handle when finished. The device can then be opened with icsneoc2_device_open().

Parameters:
  • device_info[in] The device info node to create from.

  • device[out] Pointer to receive the created device handle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_device otherwise.

icsneoc2_error_t icsneoc2_device_open(const icsneoc2_device_t *device, icsneoc2_open_options_t options)

Open a device from an enumeration node.

After a successful call, icsneoc2_device_close() must be called to close the device.

Parameters:
  • device[in] Pointer to the device to open.

  • options[in] Open options (e.g. icsneoc2_open_options_default).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_open_failed otherwise.

icsneoc2_error_t icsneoc2_device_open_serial(const char *serial, icsneoc2_open_options_t options, icsneoc2_device_t **device)

Convenience: enumerate, find by serial, open, and free enumeration.

Parameters:
  • serial[in] Serial number string to match (e.g. “RS2043”).

  • options[in] Open options (e.g. icsneoc2_open_options_default).

  • device[out] Pointer to receive the opened device handle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_device_open_first(icsneoc2_devicetype_t device_type, icsneoc2_open_options_t options, icsneoc2_device_t **device)

Convenience: enumerate, find first available device (optionally filtered by type), open, and free enumeration. Pass 0 for device_type to match any device.

Parameters:
  • device_type[in] The device type to match, or 0 for any.

  • options[in] Open options (e.g. icsneoc2_open_options_default).

  • device[out] Pointer to receive the opened device handle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_device_reconnect(icsneoc2_device_t *device, icsneoc2_open_options_t options, uint32_t timeout_ms)

Reconnect to a device. This is useful if the device was disconnected and reconnected, or if the connection was lost for some reason.

Parameters:
  • device[in] The device to reconnect.

  • options[in] Open options (e.g. icsneoc2_open_options_default).

  • timeout_ms[in] The timeout in milliseconds to keep trying to reconnect before giving up.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_reconnect_failed if the timeout was reached without reconnecting, or icsneoc2_device_is_valid() errors otherwise.

icsneoc2_error_t icsneoc2_device_close(icsneoc2_device_t *device)

Close a connection to a previously opened device.

After a successful call to icsneoc2_device_open(), this function must be called to close the device. An already closed device will still succeed. The device handle must be freed with icsneoc2_device_free() when finished.

Parameters:

device[inout] Pointer to the device to close.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_device_is_valid() errors otherwise.

icsneoc2_error_t icsneoc2_device_free(icsneoc2_device_t *device)

Free a device handle created by icsneoc2_device_create(). Device should be closed before freeing.

Parameters:

device[in] The device handle to free.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_device_is_valid() errors otherwise.

icsneoc2_error_t icsneoc2_device_description_get(const icsneoc2_device_t *device, char *value, size_t *value_length)

Get the description of a device

Parameters:
  • device[in] The device to get the description of.

  • value[out] Pointer to a buffer to copy the description into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_type_get(const icsneoc2_device_t *device, icsneoc2_devicetype_t *value)

Get the type of a device

Parameters:
  • device[in] The device to get the type of.

  • value[out] Pointer to an icsneoc2_devicetype_t to copy the type into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_serial_get(const icsneoc2_device_t *device, char *value, size_t *value_length)

Get the serial of a device

Parameters:
  • device[in] The device to get the serial of.

  • value[out] Pointer to a buffer to copy the serial into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the serial.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_pcb_serial_get(const icsneoc2_device_t *device, uint8_t *value, size_t *value_length)

Get the PCB serial of a device.

Parameters:
  • device[in] The device to get the PCB serial of.

  • value[out] Pointer to a buffer to copy the PCB serial into. If NULL, only value_length is written.

  • value_length[inout] Size of the value buffer in bytes. Modified with the length of the PCB serial.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_type if the device does not have a PCB serial.

icsneoc2_error_t icsneoc2_device_mac_addresses_enumerate(const icsneoc2_device_t *device, icsneoc2_mac_addr_entry_t **mac_entries)

Enumerate MAC addresses from a device.

Parameters:
  • device[in] The device to query.

  • mac_entries[out] Pointer to receive the head of the MAC addresses linked list.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters on failure.

icsneoc2_error_t icsneoc2_mac_network_id_get(const icsneoc2_mac_addr_entry_t *mac_address, _icsneoc2_netid_t *network_id)

Get the network ID of a MAC address.

Parameters:
  • mac_address[in] The MAC address object to get the network ID of.

  • network_id[out] Pointer to an icsneoc2_netid_t to copy the network ID into.

Returns:

icsneoc2_error_t icsneoc2_error success if successful, icsneoc2_error_invalid_parameters on failure.

icsneoc2_error_t icsneoc2_mac_address_get(const icsneoc2_mac_addr_entry_t *mac_address, uint8_t *value, size_t *value_length)

Get the MAC Address bytes of a MAC address.

Parameters:
  • mac_address[in] The MAC address object to get the MAC address bytes of.

  • value[out] Pointer to a buffer to copy the MAC address into. If NULL, only value_length is written.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters on failure.

icsneoc2_mac_addr_entry_t *icsneoc2_mac_addresses_next(const icsneoc2_mac_addr_entry_t *mac_address)

Advance to the next MAC address in an enumeration list.

Parameters:

mac_address[in] The current MAC address node.

Returns:

icsneoc2_mac_addr_entry_t The next MAC address node.

icsneoc2_error_t icsneoc2_mac_addresses_free(icsneoc2_mac_addr_entry_t *mac_address)

Free all MAC addresses in enumeration handle returned by icsneoc2_device_mac_addresses_enumerate().

Parameters:

mac_address[in] The head of the MAC address enumeration to free. May be NULL.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_go_online(const icsneoc2_device_t *device, bool go_online)

Set the online state of a device.

Parameters:
  • device[in] The device to set the online state of.

  • go_online[in] true to go online, false to go offline.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_go_online_failed otherwise.

icsneoc2_error_t icsneoc2_device_is_online(const icsneoc2_device_t *device, bool *is_online)

Get the online state of a device.

Parameters:
  • device[in] The device to get the online state of.

  • is_online[out] true if online, false if offline.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_is_online_supported(const icsneoc2_device_t *device, bool *is_online_supported)

Get the online supported state of a device.

Parameters:
  • device[in] The device to get the online supported state of.

  • is_online_supported[out] true if online supported, false if not.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_message_polling_limit_set(const icsneoc2_device_t *device, uint32_t limit)

Set the message polling limit of a device.

This will truncate the message queue to the specified limit.

Parameters:
  • device[in] The device to enforce the message polling limit.

  • limit[in] The limit to enforce.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_message_polling_limit_get(const icsneoc2_device_t *device, uint32_t *limit)

Get the message polling limit of a device.

Parameters:
  • device[in] The device to get the message polling limit from.

  • limit[out] The limit to get.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_timestamp_resolution_get(icsneoc2_device_t *device, uint32_t *resolution)

Get the timestamp resolution (nanoseconds) of a device

Parameters:
  • device[in] The device to get the timestamp resolution of.

  • resolution[out] Pointer to a uint32_t to copy the timestamp resolution in nanoseconds into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_message_get(const icsneoc2_device_t *device, icsneoc2_message_t **message, uint32_t timeout_ms)

Get a message from a device

Parameters:
  • device[in] The device to get the message from.

  • message[out] Pointer to a icsneoc2_message_t to copy the message into.

  • timeout_ms[in] The timeout in milliseconds to wait for a message. A value of 0 indicates a non-blocking call.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_message_transmit(const icsneoc2_device_t *device, const icsneoc2_message_t *messages)

Transmit messages from a device

Parameters:
  • device[in] The device to transmit the message from.

  • messages[in] Pointer to an icsneoc2_message_t to transmit.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_transmit_message_failed otherwise.

icsneoc2_error_t icsneoc2_network_type_name_get(icsneoc2_network_type_t network_type, char *value, size_t *value_length)

Get the network type string for a icsneoc2_network_type_t.

Parameters:
  • network_type[in] The network type to get the description of.

  • value[out] Pointer to a buffer to copy the description into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_event_get(icsneoc2_event_t **event, const icsneoc2_device_t *device)

Get the last event to occur, with an optional device filter.

Parameters:
  • event[out] Pointer to an icsneoc2_event_t to copy the event into.

  • device[in] Optional device filter to get event for.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_event_free(icsneoc2_event_t *event)

Pop the last event not related to a specific device.

Parameters:

event[out] Pointer to an icsneoc2_event_t to copy the event into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_event_description_get(const icsneoc2_event_t *event, char *value, size_t *value_length)

Get the description of an event.

Parameters:
  • event[in] The event to get the description of.

  • value[out] Pointer to a buffer to copy the description into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_rtc_get(const icsneoc2_device_t *device, int64_t *unix_epoch)

Get the RTC (Real time clock) of a device.

Parameters:
  • device[in] The device to get the RTC of.

  • unix_epoch[out] Pointer to an int64_t to copy the RTC into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_rtc_set(const icsneoc2_device_t *device, int64_t unix_epoch)

Set the RTC (Real time clock) of a device.

Parameters:
  • device[in] The device to set the RTC of.

  • unix_epoch[in] int64_t to set the RTC to.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_supports_tc10(const icsneoc2_device_t *device, bool *supported)

Check if the device supports TC10.

Parameters:
  • device[in] The device to check against.

  • supported[out] Pointer to a bool to copy the value into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_tc10_wake_request(const icsneoc2_device_t *device, icsneoc2_netid_t netid)

Send a TC10 wake request to the device on a specific network. This is used to wake up ECUs that support TC10 wake on the specified network.

Parameters:
  • device[in] The device to send the wake request from.

  • netid[in] The network to send the wake request on.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_transmit_message_failed otherwise.

icsneoc2_error_t icsneoc2_device_tc10_sleep_request(const icsneoc2_device_t *device, icsneoc2_netid_t netid)

Send a TC10 sleep request to the device on a specific network. This is used to put ECUs that support TC10 sleep on the specified network to sleep.

Parameters:
  • device[in] The device to send the sleep request from.

  • netid[in] The network to send the sleep request on.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_transmit_message_failed otherwise.

icsneoc2_error_t icsneoc2_device_tc10_status_get(const icsneoc2_device_t *device, icsneoc2_netid_t netid, icsneoc2_tc10_sleep_status_t *sleep_status, icsneoc2_tc10_wake_status_t *wake_status)

Get the current TC10 sleep/wake status of a specific network.

Parameters:
  • device[in] The device to query.

  • netid[in] The network to query the TC10 status of.

  • sleep_status[out] Pointer to a icsneoc2_tc10_sleep_status_t to copy the sleep status into. May be NULL if sleep status is not needed.

  • wake_status[out] Pointer to a icsneoc2_tc10_wake_status_t to copy the wake status into. May be NULL if wake status is not needed.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_digital_io_get(const icsneoc2_device_t *device, icsneoc2_io_type_t type, uint32_t number, bool *value)

Get the current state of a digital I/O pin.

Parameters:
  • device[in] The device to query.

  • type[in] The I/O pin type.

  • number[in] The pin number (for misc/emisc types).

  • value[out] Pointer to store the current pin state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_digital_io_set(const icsneoc2_device_t *device, icsneoc2_io_type_t type, uint32_t number, bool value)

Set the state of a digital I/O pin.

Parameters:
  • device[in] The device to configure.

  • type[in] The I/O pin type.

  • number[in] The pin number (for misc/emisc types).

  • value[in] The desired pin state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_set_settings_failure otherwise.

icsneoc2_error_t icsneoc2_version_get(char *value, size_t *value_length)

Get the version of the icsneoc2 API.

Parameters:
  • value[out] Pointer to a buffer to copy the version string into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the version string.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_serial_num_to_string(uint32_t num, char *str, size_t *str_length)

Convert a device serial number to a string.

Parameters:
  • num[in] The serial number to convert.

  • str[out] Pointer to a buffer to copy the serial string into. Null terminated.

  • str_length[inout] Size of the str buffer. Modified with the length of the serial string.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_string_copy_failed otherwise.

icsneoc2_error_t icsneoc2_serial_string_to_num(char *str, size_t str_length, uint32_t *num)

Convert a device serial string to a number.

Parameters:
  • str[in] The serial string to convert (e.g., “GS1128”).

  • str_length[in] The length of the serial string. This should match strlen(str).

  • num[out] Pointer to store the converted serial number.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_disk_count_get(const icsneoc2_device_t *device, size_t *count)

Get the number of disk slots on a device.

Parameters:
  • device[in] The device to query.

  • count[out] Pointer to receive the number of disk slots.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_supports_disk_formatting(const icsneoc2_device_t *device, bool *supported)

Check if a device supports disk formatting.

Parameters:
  • device[in] The device to query.

  • supported[out] Pointer to receive true if the device supports disk formatting, false otherwise.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_disk_details_get(const icsneoc2_device_t *device, icsneoc2_disk_details_t **disk_details)

Query the current disk details from a device.

On success, the caller owns the returned icsneoc2_disk_details_t and must free it with icsneoc2_disk_details_free() when done.

Parameters:
  • device[in] The device to query.

  • disk_details[out] Pointer to receive the allocated disk details handle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

void icsneoc2_disk_details_free(icsneoc2_disk_details_t *disk_details)

Free a disk details handle returned by icsneoc2_device_disk_details_get().

Parameters:

disk_details[in] The disk details handle to free. May be NULL.

icsneoc2_error_t icsneoc2_disk_details_count_get(const icsneoc2_disk_details_t *disk_details, size_t *count)

Get the number of disks described in a disk details handle.

Parameters:
  • disk_details[in] The disk details handle.

  • count[out] Pointer to receive the disk count.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_disk_details_layout_get(const icsneoc2_disk_details_t *disk_details, icsneoc2_disk_layout_t *layout)

Get the layout of the disks (e.g. spanned or RAID0).

Parameters:
  • disk_details[in] The disk details handle.

  • layout[out] Pointer to receive the layout.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_disk_details_layout_set(const icsneoc2_disk_details_t *disk_details, icsneoc2_disk_layout_t layout)

Set the layout of the disks (e.g. spanned or RAID0).

Parameters:
  • disk_details[in] The disk details handle.

  • layout[in] The layout to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_disk_details_flags_get(const icsneoc2_disk_details_t *disk_details, size_t index, icsneoc2_disk_format_flags_t *flags)

Get the status flags for a specific disk by index.

Flags are a bitmask of icsneoc2_disk_format_flag_present, icsneoc2_disk_format_flag_initialized, and icsneoc2_disk_format_flag_formatted.

Parameters:
  • disk_details[in] The disk details handle.

  • index[in] Zero-based disk index.

  • flags[out] Pointer to receive the flags bitmask.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters if out of range.

icsneoc2_error_t icsneoc2_disk_details_flags_set(const icsneoc2_disk_details_t *disk_details, size_t index, icsneoc2_disk_format_flags_t flags)

Set the status flags for a specific disk by index.

Flags are a bitmask of icsneoc2_disk_format_flag_present, icsneoc2_disk_format_flag_initialized, and icsneoc2_disk_format_flag_formatted.

Parameters:
  • disk_details[in] The disk details handle.

  • index[in] Zero-based disk index.

  • flags[in] Flags bitmask to apply.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters if out of range.

icsneoc2_error_t icsneoc2_disk_details_size_get(const icsneoc2_disk_details_t *disk_details, size_t index, uint64_t *sectors, uint64_t *bytes_per_sector)

Get the size of a specific disk by index.

Parameters:
  • disk_details[in] The disk details handle.

  • index[in] Zero-based disk index.

  • sectors[out] Pointer to receive the number of sectors.

  • bytes_per_sector[out] Pointer to receive the number of bytes per sector.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters if out of range.

icsneoc2_error_t icsneoc2_disk_details_full_format_get(const icsneoc2_disk_details_t *disk_details, bool *full_format)

Get whether a full format is configured.

Parameters:
  • disk_details[in] The disk details handle.

  • full_format[out] Pointer to receive true for full format, false for quick format.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_disk_details_full_format_set(const icsneoc2_disk_details_t *disk_details, bool full_format)

Set whether to perform a full format.

Parameters:
  • disk_details[in] The disk details handle.

  • full_format[in] true for a full (slow) format, false for a quick format.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_format_disk(const icsneoc2_device_t *device, icsneoc2_disk_details_t *disk_details, icsneoc2_disk_format_progress_fn progress_callback, void *user_data)

Format the disk(s) on a device.

This is a blocking call that runs until formatting completes or the progress callback returns icsneoc2_disk_format_directive_stop.

Parameters:
  • device[in] The device whose disks should be formatted.

  • disk_details[in] A disk details handle describing the format configuration. Use icsneoc2_device_disk_details_get() to obtain a handle, then modify flags (set icsneoc2_disk_format_flag_formatted on disks you want to format).

  • progress_callback[in] Optional callback invoked periodically with progress. Return icsneoc2_disk_format_directive_continue to keep going, or icsneoc2_disk_format_directive_stop to cancel. May be NULL.

  • user_data[in] Opaque pointer passed through to the progress callback.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_format_disk_failed otherwise.

icsneoc2_error_t icsneoc2_device_supported_rx_networks_get(const icsneoc2_device_t *device, icsneoc2_netid_t *networks, size_t *count)

Get the list of networks this device supports for receiving.

If networks is NULL, only the count is written. Otherwise, up to *count network IDs are copied into the caller-provided buffer and *count is set to the number written.

Parameters:
  • device[in] The device to query.

  • networks[out] Caller-allocated array to receive network IDs, or NULL to query count only.

  • count[inout] On input, the maximum number of entries the buffer can hold. On output, the number of entries written (or total available if networks is NULL).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_supported_tx_networks_get(const icsneoc2_device_t *device, icsneoc2_netid_t *networks, size_t *count)

Get the list of networks this device supports for transmitting.

If networks is NULL, only the count is written. Otherwise, up to *count network IDs are copied into the caller-provided buffer and *count is set to the number written.

Parameters:
  • device[in] The device to query.

  • networks[out] Caller-allocated array to receive network IDs, or NULL to query count only.

  • count[inout] On input, the maximum number of entries the buffer can hold. On output, the number of entries written (or total available if networks is NULL).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_supports_coremini_script(const icsneoc2_device_t *device, bool *supported)

Check whether this device supports CoreMini scripts.

Parameters:
  • device[in] The device to query.

  • supported[out] Set to true if the device supports CoreMini scripts, false otherwise.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_script_start(const icsneoc2_device_t *device, icsneoc2_memory_type_t memory_type)

Start a CoreMini script on the device.

Parameters:
  • device[in] The device to start the script on.

  • memory_type[in] The memory location of the script (flash or SD).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_script_start_failed otherwise.

icsneoc2_error_t icsneoc2_device_script_stop(const icsneoc2_device_t *device)

Stop a running CoreMini script on the device.

Parameters:

device[in] The device to stop the script on.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_script_stop_failed otherwise.

icsneoc2_error_t icsneoc2_device_script_clear(const icsneoc2_device_t *device, icsneoc2_memory_type_t memory_type)

Clear a CoreMini script from the device.

Parameters:
  • device[in] The device to clear the script from.

  • memory_type[in] The memory location to clear the script from (flash or SD).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_script_clear_failed otherwise.

icsneoc2_error_t icsneoc2_device_script_prepare_load(const icsneoc2_device_t *device, int8_t *status)

Prepare the device for a script load operation.

Parameters:
  • device[in] The device to prepare.

  • status[out] Receives the prepare status code from the device.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_script_load_prepare_failed otherwise.

icsneoc2_error_t icsneoc2_device_coremini_upload_file(const icsneoc2_device_t *device, const char *path, icsneoc2_memory_type_t memory_type)

Upload a CoreMini script to the device from a file path.

Parameters:
  • device[in] The device to upload to.

  • path[in] Null-terminated file path to the CoreMini binary.

  • memory_type[in] The memory location to upload to (flash or SD).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_script_upload_failed otherwise.

icsneoc2_error_t icsneoc2_device_coremini_upload(const icsneoc2_device_t *device, const uint8_t *data, size_t length, icsneoc2_memory_type_t memory_type)

Upload a CoreMini script to the device from a memory buffer.

Parameters:
  • device[in] The device to upload to.

  • data[in] Pointer to the CoreMini binary data.

  • length[in] Length of the data in bytes.

  • memory_type[in] The memory location to upload to (flash or SD).

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_script_upload_failed otherwise.

icsneoc2_error_t icsneoc2_device_script_status_get(const icsneoc2_device_t *device, icsneoc2_script_status_t **script_status)

Get the current script status from the device.

Returns an opaque handle that must be freed with icsneoc2_script_status_free() when done.

Parameters:
  • device[in] The device to query.

  • script_status[out] Receives a newly allocated script status handle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

void icsneoc2_script_status_free(icsneoc2_script_status_t *script_status)

Free a script status handle returned by icsneoc2_device_script_status_get().

Parameters:

script_status[in] The handle to free. May be NULL.

icsneoc2_error_t icsneoc2_script_status_is_coremini_running(const icsneoc2_script_status_t *script_status, bool *value)

Get whether the CoreMini script is currently running.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Set to true if a script is running, false otherwise.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_is_encrypted(const icsneoc2_script_status_t *script_status, bool *value)

Get whether the script is encrypted.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Set to true if the script is encrypted, false otherwise.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_sector_overflows_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the number of sector overflows.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the sector overflow count.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_remaining_sector_buffers_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the number of remaining sector buffers.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the remaining sector buffer count.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_last_sector_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the last sector written.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the last sector value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_read_bin_size_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the read binary size.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the read binary size in bytes.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_min_sector_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the minimum sector.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the minimum sector value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_max_sector_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the maximum sector.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the maximum sector value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_current_sector_get(const icsneoc2_script_status_t *script_status, uint32_t *value)

Get the current sector.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the current sector value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_coremini_create_time_get(const icsneoc2_script_status_t *script_status, uint64_t *value)

Get the CoreMini creation timestamp.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the creation timestamp as a Unix epoch value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_file_checksum_get(const icsneoc2_script_status_t *script_status, uint16_t *value)

Get the file checksum.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the file checksum.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_coremini_version_get(const icsneoc2_script_status_t *script_status, uint16_t *value)

Get the CoreMini version.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the CoreMini version.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_coremini_header_size_get(const icsneoc2_script_status_t *script_status, uint16_t *value)

Get the CoreMini header size.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the CoreMini header size in bytes.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_diagnostic_error_code_get(const icsneoc2_script_status_t *script_status, uint8_t *value)

Get the diagnostic error code.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the diagnostic error code.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_diagnostic_error_code_count_get(const icsneoc2_script_status_t *script_status, uint8_t *value)

Get the diagnostic error code count.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the diagnostic error code count.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_script_status_max_coremini_size_kb_get(const icsneoc2_script_status_t *script_status, uint16_t *value)

Get the maximum CoreMini size in kilobytes.

Parameters:
  • script_status[in] The script status handle.

  • value[out] Receives the maximum CoreMini size in KB.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_device_chip_versions_enumerate(const icsneoc2_device_t *device, icsneoc2_chip_versions_t **chip_versions, bool refresh, size_t *count)

Get the list of chip versions on the device.

Parameters:
  • device[in] The device to query.

  • chip_versions[out] Receives a newly allocated chip versions handle. The caller owns this handle and must free it with icsneoc2_chip_versions_free() when done.

  • refresh[in] Whether to refresh the chip versions from the device.

  • count[out] Receives the number of chip versions. May be NULL if not needed.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_chip_versions_free(icsneoc2_chip_versions_t *chip_versions)

Free a chip versions handle returned by icsneoc2_device_chip_versions_enumerate().

Parameters:

chip_versions[in] The chip versions handle to free. May be NULL.

icsneoc2_chip_versions_t *icsneoc2_chip_versions_next(const icsneoc2_chip_versions_t *chip_versions)

Advance to the next chip version in an enumeration list.

Parameters:

chip_versions[in] The current chip versions handle.

Returns:

The next chip version handle, or NULL at the end of the list.

icsneoc2_error_t icsneoc2_chip_versions_props_get(const icsneoc2_chip_versions_t *chip_versions, char *name, size_t *name_length, uint8_t *major, uint8_t *minor, uint8_t *maintenance, uint8_t *build)

Get the properties of a chip version.

Parameters:
  • chip_versions[in] The chip versions handle to query.

  • name[out] Pointer to a buffer to copy the null-terminated chip name into. May be NULL if the name is not needed.

  • name_length[inout] On input, the size of the name buffer. On output, the length of the chip name. May be NULL if the name is not needed.

  • major[out] Pointer to receive the major version number. May be NULL.

  • minor[out] Pointer to receive the minor version number. May be NULL.

  • maintenance[out] Pointer to receive the maintenance version number. May be NULL.

  • build[out] Pointer to receive the build version number. May be NULL.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_string_copy_failed otherwise.

Variables

static const icsneoc2_open_options_t icsneoc2_open_options_default = ICSNEOC2_OPEN_OPTIONS_GO_ONLINE | ICSNEOC2_OPEN_OPTIONS_SYNC_RTC | ICSNEOC2_OPEN_OPTIONS_ENABLE_AUTO_UPDATE

Defines

ICSNEOC2_MESSAGE_CAN_FLAGS_RTR
ICSNEOC2_MESSAGE_CAN_FLAGS_IDE
ICSNEOC2_MESSAGE_CAN_FLAGS_FDF
ICSNEOC2_MESSAGE_CAN_FLAGS_BRS
ICSNEOC2_MESSAGE_CAN_FLAGS_ESI
ICSNEOC2_MESSAGE_CAN_FLAGS_TX_ABORTED
ICSNEOC2_MESSAGE_CAN_FLAGS_TX_LOST_ARB
ICSNEOC2_MESSAGE_CAN_FLAGS_TX_ERROR
ICSNEOC2_MESSAGE_ETH_FLAGS_FRAME_TOO_SHORT
ICSNEOC2_MESSAGE_ETH_FLAGS_NO_PADDING
ICSNEOC2_MESSAGE_ETH_FLAGS_FCS_VERIFIED
ICSNEOC2_MESSAGE_ETH_FLAGS_TX_ABORTED
ICSNEOC2_MESSAGE_ETH_FLAGS_CRC_ERROR
ICSNEOC2_MESSAGE_ETH_FLAGS_IS_T1S
ICSNEOC2_MESSAGE_ETH_FLAGS_PREEMPTION_ENABLED
ICSNEOC2_MESSAGE_ETH_T1S_FLAGS_IS_T1S_SYMBOL
ICSNEOC2_MESSAGE_ETH_T1S_FLAGS_IS_T1S_BURST
ICSNEOC2_MESSAGE_ETH_T1S_FLAGS_TX_COLLISION
ICSNEOC2_MESSAGE_ETH_T1S_FLAGS_IS_T1S_WAKE
ICSNEOC2_LIN_ERR_RX_BREAK_ONLY
ICSNEOC2_LIN_ERR_RX_BREAK_SYNC_ONLY
ICSNEOC2_LIN_ERR_TX_RX_MISMATCH
ICSNEOC2_LIN_ERR_RX_BREAK_NOT_ZERO
ICSNEOC2_LIN_ERR_RX_BREAK_TOO_SHORT
ICSNEOC2_LIN_ERR_RX_SYNC_NOT_55
ICSNEOC2_LIN_ERR_RX_DATA_LEN_OVER_8
ICSNEOC2_LIN_ERR_FRAME_SYNC
ICSNEOC2_LIN_ERR_FRAME_MESSAGE_ID
ICSNEOC2_LIN_ERR_FRAME_RESPONDER_DATA
ICSNEOC2_LIN_ERR_CHECKSUM_MATCH
ICSNEOC2_LIN_STATUS_TX_CHECKSUM_ENHANCED
ICSNEOC2_LIN_STATUS_TX_COMMANDER
ICSNEOC2_LIN_STATUS_TX_RESPONDER
ICSNEOC2_LIN_STATUS_TX_ABORTED
ICSNEOC2_LIN_STATUS_UPDATE_RESPONDER_ONCE
ICSNEOC2_LIN_STATUS_HAS_UPDATED_RESPONDER_ONCE
ICSNEOC2_LIN_STATUS_BUS_RECOVERED
ICSNEOC2_LIN_STATUS_BREAK_ONLY

Typedefs

typedef uint64_t icsneoc2_message_can_flags_t
typedef uint64_t icsneoc2_message_eth_flags_t
typedef uint64_t icsneoc2_message_eth_t1s_flags_t
typedef enum _icsneoc2_lin_msg_type_t _icsneoc2_lin_msg_type_t
typedef uint8_t icsneoc2_lin_msg_type_t
typedef uint32_t icsneoc2_lin_err_flags_t
typedef uint32_t icsneoc2_lin_status_flags_t

Enums

enum _icsneoc2_lin_msg_type_t

Values:

enumerator icsneoc2_lin_msg_type_not_set
enumerator icsneoc2_lin_msg_type_commander_msg
enumerator icsneoc2_lin_msg_type_header_only
enumerator icsneoc2_lin_msg_type_break_only
enumerator icsneoc2_lin_msg_type_sync_only
enumerator icsneoc2_lin_msg_type_update_responder
enumerator icsneoc2_lin_msg_type_error

Functions

icsneoc2_error_t icsneoc2_message_can_create(icsneoc2_message_t **message)

Create CAN message

Parameters:

message[out] Pointer to icsneoc2_message_t to copy the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_free(icsneoc2_message_t *message)

Free message

Parameters:

message[in] The message to free.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_transmit(icsneoc2_message_t *message, bool *value)

Get the transmission status of a message.

When a message is transmitted from the device, it will be returned in the receive buffer.

See also

icsneoc2_device_messages_transmit

Parameters:
  • message[in] The message to check.

  • value[out] Pointer to a bool to copy the transmission status into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_error(icsneoc2_message_t *message, bool *value)

Get the frame error status of a message.

Parameters:
  • message[in] The message to check.

  • value[out] Pointer to a bool to copy the frame error status into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_netid_get(icsneoc2_message_t *message, icsneoc2_netid_t *netid)

Get the Network ID (netid) of a bus message

Parameters:
  • message[in] The message to check.

  • netid[out] Pointer to a icsneoc2_netid_t to copy the netid into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_netid_name_get(icsneoc2_netid_t netid, char *value, size_t *value_length)

Get the netid string for a icsneoc2_netid_t.

Parameters:
  • netid[in] The network id to get the description of.

  • value[out] Pointer to a buffer to copy the description into. Null terminated.

  • value_length[inout] Size of the value buffer. Modified with the length of the description.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_netid_network_type_get(icsneoc2_netid_t netid, icsneoc2_network_type_t *network_type)

Get the network type for a icsneoc2_netid_t.

Parameters:
  • netid[in] The network id to get the type of.

  • network_type[out] Pointer to a icsneoc2_network_type_t to copy the network type into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_netid_set(icsneoc2_message_t *message, icsneoc2_netid_t netid)

Set the Network ID (netid) of a bus message

Parameters:
  • device[in] The device to check against.

  • message[in] The message to modify.

  • netid[in] The netid to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_data_set(icsneoc2_message_t *message, uint8_t *data, size_t data_length)

Set the data bytes of a message

Parameters:
  • message[in] The message to copy the data into.

  • data[in] Pointer to a uint8_t array to copy from.

  • data_length[in] length of the data.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_data_get(icsneoc2_message_t *message, uint8_t *data, size_t *data_length)

Get the data bytes of a message

Parameters:
  • message[in] The message to check.

  • data[out] Pointer to a uint8_t to copy the data bytes into.

  • data_length[inout] Pointer to a size_t to copy the length of the data into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_timestamp_set(icsneoc2_message_t *message, uint64_t timestamp)

Set the timestamp of a message.

Timestamps are in nanoseconds since 2007-01-01 UTC.

Parameters:
  • message[in] The message to modify.

  • timestamp[in] The timestamp value to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_message otherwise.

icsneoc2_error_t icsneoc2_message_timestamp_get(icsneoc2_message_t *message, uint64_t *timestamp)

Get the timestamp of a message.

Timestamps are in nanoseconds since 2007-01-01 UTC.

Parameters:
  • message[in] The message to check.

  • timestamp[out] Pointer to a uint64_t to copy the timestamp into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_message otherwise.

icsneoc2_error_t icsneoc2_message_can_props_set(icsneoc2_message_t *message, const uint64_t *arb_id, const icsneoc2_message_can_flags_t *flags)

Set the CAN specific properties of a message

Parameters:
  • message[in] The message to modify.

  • arb_id[in] Pointer to a uint64_t containing the arbitration ID to set. If NULL, it’s ignored.

  • flags[in] Pointer to a icsneoc2_message_can_flags_t containing the flags to set. If NULL, it’s ignored. See icsneoc2_message_can_flags_t for details.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_can_props_get(icsneoc2_message_t *message, uint64_t *arb_id, icsneoc2_message_can_flags_t *flags)

Get the CAN specific properties of a message

Parameters:
  • message[in] The message to check.

  • arb_id[out] Pointer to a uint64_t to copy the arbitration ID into. If NULL, it’s ignored.

  • flags[out] Pointer to a series of flags. If NULL, it’s ignored. See icsneoc2_message_can_flags_t for details. TX status flags are read-only and are only reported for CAN frames received back from the device.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_eth_create(icsneoc2_message_t **message)

Create Ethernet message

Parameters:

message[out] Pointer to icsneoc2_message_t to copy the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_eth_props_set(icsneoc2_message_t *message, const icsneoc2_message_eth_flags_t *flags, const bool *has_fcs, const uint32_t *fcs)

Set the Ethernet specific properties of a message

Parameters:
  • message[in] The message to modify.

  • flags[in] Pointer to a icsneoc2_message_eth_flags_t containing the flags to set. If NULL, flags are not modified.

  • has_fcs[in] Pointer to a bool indicating whether the FCS is present. If NULL, it’s ignored.

  • fcs[in] Pointer to a uint32_t containing the FCS value. If NULL, the FCS is not modified.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_eth_props_get(icsneoc2_message_t *message, icsneoc2_message_eth_flags_t *flags, bool *has_fcs, uint32_t *fcs)

Get the Ethernet specific properties of a message

Parameters:
  • message[in] The message to check.

  • flags[out] Pointer to a icsneoc2_message_eth_flags_t to copy the flags into. If NULL, it’s ignored.

  • has_fcs[out] Pointer to a bool indicating whether the FCS is present. If NULL, it’s ignored.

  • fcs[out] Pointer to a uint32_t to copy the FCS value into. Only valid if has_fcs is true, set to 0 if FCS is not present. If NULL, it’s ignored.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_eth_mac_get(icsneoc2_message_t *message, uint8_t *dst_mac, uint8_t *src_mac)

Get the destination and/or source MAC address from an Ethernet message. The MAC addresses are extracted from the message data bytes.

Parameters:
  • message[in] The message to check.

  • dst_mac[out] Pointer to a 6-byte buffer to copy the destination MAC into. If NULL, it’s ignored.

  • src_mac[out] Pointer to a 6-byte buffer to copy the source MAC into. If NULL, it’s ignored.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_eth_ether_type_get(icsneoc2_message_t *message, uint16_t *ether_type)

Helper function to get the EtherType field from an Ethernet message payload.

EtherType is a two-octet field in an Ethernet frame (big-endian). It is used to indicate which protocol is encapsulated in the payload of the frame and is used at the receiving end by the data link layer to determine how the payload is processed. For example, an EtherType of 0x0800 indicates that the payload is an IPv4 packet, while 0x86DD indicates an IPv6 packet.

Note

The EtherType is extracted from the message data bytes, so the message must have the data field and it must be large enough to contain the EtherType (at least 14 bytes). Returned value is host byte order.

Parameters:
  • message[in] The message to check.

  • ether_type[out] Pointer to a uint16_t to copy the EtherType into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters, icsneoc2_error_invalid_type, icsneoc2_error_invalid_data otherwise.

icsneoc2_error_t icsneoc2_message_eth_t1s_props_set(icsneoc2_message_t *message, const icsneoc2_message_eth_t1s_flags_t *flags, const uint8_t *node_id, const uint8_t *burst_count, const uint8_t *symbol_type)

Set the T1S specific properties of an Ethernet message

Note

If all four optional parameters are NULL, the T1S-specific state is cleared.

Parameters:
  • message[in] The message to modify.

  • flags[in] Pointer to a icsneoc2_message_eth_t1s_flags_t containing the T1S flags to set. If NULL, flags are not modified.

  • node_id[in] Pointer to a uint8_t containing the T1S node ID. If NULL, it’s ignored.

  • burst_count[in] Pointer to a uint8_t containing the T1S burst count. If NULL, it’s ignored.

  • symbol_type[in] Pointer to a uint8_t containing the T1S symbol type. If NULL, it’s ignored.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_eth_t1s_props_get(icsneoc2_message_t *message, icsneoc2_message_eth_t1s_flags_t *flags, uint8_t *node_id, uint8_t *burst_count, uint8_t *symbol_type)

Get the T1S specific properties of an Ethernet message

Parameters:
  • message[in] The message to check.

  • flags[out] Pointer to a icsneoc2_message_eth_t1s_flags_t to copy the T1S flags into. If NULL, it’s ignored.

  • node_id[out] Pointer to a uint8_t to copy the T1S node ID into. If NULL, it’s ignored.

  • burst_count[out] Pointer to a uint8_t to copy the T1S burst count into. If NULL, it’s ignored.

  • symbol_type[out] Pointer to a uint8_t to copy the T1S symbol type into. If NULL, it’s ignored.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_is_ethernet(icsneoc2_message_t *message, bool *is_ethernet)

Check if a message is an Ethernet message

Parameters:
  • message[in] The message to check.

  • is_ethernet[out] Pointer to a bool to copy the Ethernet status of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_valid(icsneoc2_message_t *message, bool *is_valid)

Check if a message is valid

Parameters:
  • device[in] The device to check against.

  • message[in] The message to check.

  • is_valid[out] Pointer to a bool to copy the validity of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_raw(icsneoc2_message_t *message, bool *is_raw)

Check if a message is a raw message (message with data)

Parameters:
  • device[in] The device to check against.

  • message[in] The message to check.

  • is_raw[out] Pointer to a bool to copy the raw status of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_frame(icsneoc2_message_t *message, bool *is_frame)

Check if a message is a frame message (message with data)

Parameters:
  • device[in] The device to check against.

  • message[in] The message to check.

  • is_frame[out] Pointer to a bool to copy the frame status of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_can(icsneoc2_message_t *message, bool *is_can)

Check if a message is a CAN message

Parameters:
  • device[in] The device to check against.

  • message[in] The message to check.

  • is_can[out] Pointer to a bool to copy the CAN status of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_is_lin(icsneoc2_message_t *message, bool *is_lin)

Check if a message is a LIN message

Parameters:
  • message[in] The message to check.

  • is_lin[out] Pointer to a bool to copy the LIN status of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_lin_create(icsneoc2_message_t **message, uint8_t id)

Create a LIN message.

Parameters:
  • message[out] Pointer to receive the new LIN message handle.

  • id[in] The LIN frame ID (0-63). Bits above 0x3F are masked off.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful.

icsneoc2_error_t icsneoc2_message_lin_props_get(const icsneoc2_message_t *message, uint8_t *id, uint8_t *protected_id, uint8_t *checksum, icsneoc2_lin_msg_type_t *msg_type, bool *is_enhanced_checksum)

Get the LIN-specific properties of a message.

Any output pointer may be NULL to skip that field.

Parameters:
  • message[in] The message to query (must be a LIN message).

  • id[out] Pointer to receive the LIN frame ID.

  • protected_id[out] Pointer to receive the protected ID (ID with parity bits).

  • checksum[out] Pointer to receive the checksum byte.

  • msg_type[out] Pointer to receive the LIN message type.

  • is_enhanced_checksum[out] Pointer to receive whether enhanced checksum is used.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_type if not a LIN message.

icsneoc2_error_t icsneoc2_message_lin_props_set(icsneoc2_message_t *message, const uint8_t *id, const uint8_t *checksum, const icsneoc2_lin_msg_type_t *msg_type, const bool *is_enhanced_checksum)

Set the LIN-specific properties of a message.

Any input pointer may be NULL to skip that field. Setting the ID also recalculates the protected ID.

Parameters:
  • message[in] The message to modify (must be a LIN message).

  • id[in] Pointer to the LIN frame ID to set (0-63). NULL to skip.

  • checksum[in] Pointer to the checksum byte to set. NULL to skip.

  • msg_type[in] Pointer to the LIN message type to set. NULL to skip.

  • is_enhanced_checksum[in] Pointer to set enhanced checksum mode. NULL to skip.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_type if not a LIN message.

icsneoc2_error_t icsneoc2_message_lin_err_flags_get(const icsneoc2_message_t *message, icsneoc2_lin_err_flags_t *err_flags)

Get the LIN error flags of a message.

See also

ICSNEOC2_LIN_ERR_*

Parameters:
  • message[in] The message to query (must be a LIN message).

  • err_flags[out] Pointer to receive the error flags bitmask.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_type if not a LIN message.

icsneoc2_error_t icsneoc2_message_lin_status_flags_get(const icsneoc2_message_t *message, icsneoc2_lin_status_flags_t *status_flags)

Get the LIN status flags of a message.

See also

ICSNEOC2_LIN_STATUS_*

Parameters:
  • message[in] The message to query (must be a LIN message).

  • status_flags[out] Pointer to receive the status flags bitmask.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_type if not a LIN message.

icsneoc2_error_t icsneoc2_message_lin_calc_checksum(icsneoc2_message_t *message)

Calculate and set the checksum on a LIN message.

Uses enhanced or classic checksum based on the isEnhancedChecksum property.

Parameters:

message[in] The LIN message to calculate the checksum for.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_type if not a LIN message.

icsneoc2_error_t icsneoc2_message_network_type_get(icsneoc2_message_t *message, icsneoc2_network_type_t *network_type)

Get the network type of a message

Parameters:
  • message[in] The message to check.

  • network_type[out] Pointer to a icsneoc2_network_type_t to copy the network type into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

icsneoc2_error_t icsneoc2_message_is_can_error(icsneoc2_message_t *message, bool *is_can_error)

Check if a message is a CAN error message

Parameters:
  • message[in] The message to check.

  • is_can_error[out] Pointer to a bool to copy the CAN error status of the message into.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_message_can_error_props_get(icsneoc2_message_t *message, uint8_t *tx_err_count, uint8_t *rx_err_count, icsneoc2_can_error_code_t *error_code, icsneoc2_can_error_code_t *data_error_code, icsneoc2_message_can_error_flags_t *flags)

Get the CAN error specific properties of a message

Parameters:
  • message[in] The message to check.

  • tx_err_count[out] Pointer to a uint8_t to copy the transmit error count into. If NULL, it’s ignored.

  • rx_err_count[out] Pointer to a uint8_t to copy the receive error count into. If NULL, it’s ignored.

  • error_code[out] Pointer to a icsneoc2_can_error_code_t to copy the error code into. If NULL, it’s ignored.

  • data_error_code[out] Pointer to a icsneoc2_can_error_code_t to copy the data phase error code into. If NULL, it’s ignored.

  • flags[out] Pointer to a icsneoc2_message_can_error_flags_t to copy the error flags into. If NULL, it’s ignored. See ICSNEOC2_MESSAGE_CAN_ERROR_FLAGS_* for controller-error bits.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_invalid_type otherwise.

Functions

icsneoc2_error_t icsneoc2_settings_apply_defaults(icsneoc2_device_t *device, bool save)

Apply the default settings for a device

Parameters:
  • device[in] The device to apply the settings for.

  • save[in] True to make the settings permanent, false will be reverted on power cycle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_set_settings_failure otherwise.

icsneoc2_error_t icsneoc2_settings_apply(icsneoc2_device_t *device)

Apply the current settings for a device.

This makes all settings persistent across power cycles.

Parameters:

device[in] The device to apply the settings for.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_set_settings_failure otherwise.

icsneoc2_error_t icsneoc2_settings_refresh(icsneoc2_device_t *device)

Refresh the settings for a device. This reads the current settings from the device, overwriting any unsaved local changes.

Parameters:

device[in] The device to refresh the settings for.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_get_settings_failure otherwise.

icsneoc2_error_t icsneoc2_settings_baudrate_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, int64_t *baudrate)

Get the baudrate for a network

Note

Parameters:
  • device[in] The device to get the baudrate value.

  • netid[in] The network to get the baudrate value.

  • baudrate[out] Pointer to store the baudrate value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_baudrate_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, int64_t baudrate)

Set the baudrate for a network

Note

Parameters:
  • device[in] The device to set the baudrate for.

  • netid[in] The network to set the baudrate for.

  • baudrate[in] The baudrate to set the network to.

  • save[in] True to make the settings permanent, false will be reverted on power cycle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_canfd_baudrate_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, int64_t *baudrate)

Get the baudrate for a CAN FD network

Parameters:
  • device[in] The device to get the baudrate value.

  • netid[in] The network to get the baudrate value.

  • baudrate[out] Pointer to store the baudrate value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_canfd_baudrate_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, int64_t baudrate)

Set the baudrate for a CANFD network

Parameters:
  • device[in] The device to set the baudrate for.

  • netid[in] The network to set the baudrate for.

  • baudrate[in] The baudrate to set the network to.

  • save[in] True to make the settings permanent, false will be reverted on power cycle.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_termination_is_supported(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *supported)

Check if termination is supported for a network.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check termination support for.

  • supported[out] Pointer to store whether termination is supported.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_termination_can_enable(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *can_enable)

Check if termination can be enabled for a network.

Termination may be supported but not currently able to be enabled (e.g., due to hardware constraints).

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • can_enable[out] Pointer to store whether termination can be enabled.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_termination_is_enabled(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *enabled)

Check if termination is currently enabled for a network.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • enabled[out] Pointer to store whether termination is currently enabled.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_termination_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool enable)

Enable or disable termination for a network.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure termination for.

  • enable[in] True to enable termination, false to disable.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_set_settings_failure otherwise.

icsneoc2_error_t icsneoc2_settings_commander_resistor_enabled(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *enabled)

Check if the commander resistor is currently enabled for a network.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • enabled[out] Pointer to store whether the commander resistor is currently enabled.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_commander_resistor_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool enable)

Enable or disable the commander resistor for a network.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure the commander resistor for.

  • enable[in] True to enable the commander resistor, false to disable.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_set_settings_failure otherwise.

icsneoc2_error_t icsneoc2_settings_lin_mode_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, icsneoc2_lin_mode_t *value)

Get the LIN mode for a given network in the currently active device settings.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the LIN mode.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_lin_mode_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, icsneoc2_lin_mode_t value)

Set the LIN mode for a given network in the currently active device settings.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The LIN mode to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_lin_commander_response_time_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get number of bit delays between commander ID and first responder byte for a given network in the currently active device settings.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the number of bit delays.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_lin_commander_response_time_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set number of bit delays between commander ID and first responder byte for a given network in the currently active device settings.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The number of bit delays to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_phy_enable_get(icsneoc2_device_t *device, uint8_t index, bool *value)

Get PHY enable state for switch devices (Epsilon/XL, Jupiter, etc) using port index. For all other devices, use icsneoc2_settings_phy_enable_for_get() instead.

Parameters:
  • device[in] The device to check.

  • index[in] The port index to check.

  • value[out] Pointer to store the PHY enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_phy_enable_set(icsneoc2_device_t *device, uint8_t index, bool value)

Enable/disable PHY for switch devices (Epsilon/XL, Jupiter, etc) using port index. For all other devices, use icsneoc2_settings_phy_enable_for_set() instead.

Parameters:
  • device[in] The device to configure.

  • index[in] The port index to configure.

  • value[in] bool to set the PHY enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Get PHY role (Master/Slave/Auto) for switch devices (Epsilon/XL, Jupiter, etc) using port index. For all other devices, use icsneoc2_settings_phy_role_for_get() instead.

Parameters:
  • device[in] The device to check.

  • index[in] The port index to check.

  • value[out] Pointer to store the link mode state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Set PHY role (Master/Slave/Auto) for switch devices (Epsilon/XL, Jupiter, etc) using port index. For all other devices, use icsneoc2_settings_phy_role_for_set() instead.

Parameters:
  • device[in] The device to configure.

  • index[in] The port index to configure.

  • value[in] The link mode state to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Get PHY link mode (speed and duplex) for switch devices (Epsilon/XL, Jupiter, etc) using port index. For all other devices, use icsneoc2_settings_phy_link_mode_for_get() instead.

Parameters:
  • device[in] The device to check.

  • index[in] The port index to check.

  • value[out] Pointer to store the link mode state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Set PHY link mode (speed and duplex) for switch devices (Epsilon/XL, Jupiter, etc) using port index. For all other devices, use icsneoc2_settings_phy_link_mode_for_set() instead.

Parameters:
  • device[in] The device to configure.

  • index[in] The port index to configure.

  • value[in] The link mode state to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Get PHY role (Master/Slave/Auto) for network-based devices. For switch devices, use icsneoc2_settings_phy_mode_get() with port index instead.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the PHY role state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Set PHY role (Master/Slave/Auto) for network-based devices. For switch devices, use icsneoc2_settings_phy_mode_set() with port index instead.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The PHY role state to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Get PHY link mode (speed and duplex) for network-based devices. For switch devices, use icsneoc2_settings_phy_speed_get() with port index instead.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the PHY link mode state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Set PHY link mode (speed and duplex) for network-based devices. For switch devices, use icsneoc2_settings_phy_speed_set() with port index instead.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The PHY link mode to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters or icsneoc2_error_set_settings_failure otherwise.

icsneoc2_error_t icsneoc2_settings_phy_enable_for_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *value)

Get PHY enable state for network-based devices. For switch devices, use icsneoc2_settings_phy_enable_get() with port index instead.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the PHY enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_phy_enable_for_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool value)

Enable/disable PHY for network-based devices. For switch devices, use icsneoc2_settings_phy_enable_set() with port index instead.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The PHY enable state to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Get supported PHY link modes (combined speed+duplex) for a network. Each mode represents a valid hardware configuration.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • link_modes[out] Pointer to store the supported PHY link modes. Should be at least the size of icsneoc2_eth_phy_link_mode_maxsize.

  • link_modes_count[inout] Pointer to the size of link_modes array. Updated with the number of link modes written to the array.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_is_plca_enabled_for(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *value)

Check if PLCA is enabled for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the PLCA enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_plca_enabled_for_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool value)

Set PLCA enabled for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The PLCA enable state to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_local_id_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the local ID for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the local ID.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_local_id_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the local ID for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The local ID to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_max_nodes_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the maximum number of nodes for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the maximum number of nodes.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_max_nodes_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the maximum number of nodes for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The maximum number of nodes to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_tx_opp_timer_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the OOP Timer for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the OOP Timer value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_tx_opp_timer_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the OOP Timer for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The OOP Timer value to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_burst_timer_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the burst timer for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the burst timer value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_burst_timer_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the burst timer for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The burst timer value to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_max_burst_timer_for_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the Max burst timer for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the Max burst timer value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_max_burst_timer_for_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the Max burst timer for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The Max burst timer value to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_local_id_alternate_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the alternate local ID for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the alternate local ID.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_local_id_alternate_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the alternate local ID for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The alternate local ID to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_is_termination_enabled_for(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *value)

Check if T1S termination is enabled for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the termination enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_termination_for_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool value)

Enable or disable T1S termination for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] True to enable termination, false to disable.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_is_bus_decoding_beacons_enabled_for(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *value)

Check if T1S bus decoding beacons are enabled for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the bus decoding beacons enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_bus_decoding_beacons_for_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool value)

Enable or disable T1S bus decoding beacons for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] True to enable bus decoding beacons, false to disable.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_is_bus_decoding_all_enabled_for(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool *value)

Check if T1S bus decoding all is enabled for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the bus decoding all enable state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_bus_decoding_all_for_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, bool value)

Enable or disable T1S bus decoding all for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] True to enable bus decoding all, false to disable.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_multi_id_enable_mask_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t *value)

Get the multi-ID enable mask for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • value[out] Pointer to store the multi-ID enable mask.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_multi_id_enable_mask_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t value)

Set the multi-ID enable mask for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • value[in] The multi-ID enable mask to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_multi_id_get(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t index, uint8_t *value)

Get a multi-ID entry for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to check.

  • netid[in] The network ID to check.

  • index[in] The multi-ID index to get (0-6).

  • value[out] Pointer to store the multi-ID value.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_t1s_multi_id_set(icsneoc2_device_t *device, icsneoc2_netid_t netid, uint8_t index, uint8_t value)

Set a multi-ID entry for a network that supports 10BASE-T1S.

Parameters:
  • device[in] The device to configure.

  • netid[in] The network ID to configure.

  • index[in] The multi-ID index to set (0-6).

  • value[in] The multi-ID value to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_misc_io_analog_output_enabled_set(icsneoc2_device_t *device, uint8_t pin, uint8_t value)

Set the analog output enabled.

Parameters:
  • device[in] The device to configure.

  • pin[in] The analog output pin to configure.

  • value[in] The analog output value to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_misc_io_analog_output_set(icsneoc2_device_t *device, uint8_t pin, icsneoc2_misc_io_analog_voltage_t value)

Set the analog output voltage for a misc IO pin.

Parameters:
  • device[in] The device to configure.

  • pin[in] The analog output pin to configure.

  • value[in] The analog output voltage to set.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_disabled_get(icsneoc2_device_t *device, bool *value)

Check if settings are disabled.

Parameters:
  • device[in] The device to check.

  • value[out] Pointer to store the disabled state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

icsneoc2_error_t icsneoc2_settings_readonly_get(icsneoc2_device_t *device, bool *value)

Check if settings are read-only.

Parameters:
  • device[in] The device to check.

  • value[out] Pointer to store the read-only state.

Returns:

icsneoc2_error_t icsneoc2_error_success if successful, icsneoc2_error_invalid_parameters otherwise.

Defines

ICSNEOC2_OPEN_OPTIONS_NONE
ICSNEOC2_OPEN_OPTIONS_GO_ONLINE
ICSNEOC2_OPEN_OPTIONS_SYNC_RTC
ICSNEOC2_OPEN_OPTIONS_ENABLE_AUTO_UPDATE
ICSNEOC2_OPEN_OPTIONS_FORCE_UPDATE
ICSNEOC2_DISK_FORMAT_FLAGS_PRESENT
ICSNEOC2_DISK_FORMAT_FLAGS_INITIALIZED
ICSNEOC2_DISK_FORMAT_FLAGS_FORMATTED
ICSNEOC2_MESSAGE_CAN_ERROR_FLAGS_BUS_OFF
ICSNEOC2_MESSAGE_CAN_ERROR_FLAGS_ERROR_PASSIVE
ICSNEOC2_MESSAGE_CAN_ERROR_FLAGS_ERROR_WARN

Typedefs

typedef uint32_t icsneoc2_open_options_t
typedef enum _icsneoc2_devicetype_t _icsneoc2_devicetype_t
typedef uint32_t icsneoc2_devicetype_t
typedef enum _icsneoc2_network_type_t _icsneoc2_network_type_t
typedef uint8_t icsneoc2_network_type_t
typedef enum _icsneoc2_netid_t _icsneoc2_netid_t
typedef uint16_t icsneoc2_netid_t
typedef enum _icsneoc2_io_type_t _icsneoc2_io_type_t
typedef uint32_t icsneoc2_io_type_t
typedef enum _icsneoc2_lin_mode_t _icsneoc2_lin_mode_t
typedef uint32_t icsneoc2_lin_mode_t
typedef enum _icsneoc2_ae_link_mode_t _icsneoc2_ae_link_mode_t
typedef enum _icsneoc2_eth_phy_link_mode_t _icsneoc2_eth_phy_link_mode_t
typedef enum _icsneoc2_misc_io_analog_voltage_t _icsneoc2_misc_io_analog_voltage_t
typedef uint8_t icsneoc2_misc_io_analog_voltage_t
typedef struct icsneoc2_disk_details_t icsneoc2_disk_details_t
typedef enum _icsneoc2_disk_layout_t _icsneoc2_disk_layout_t
typedef uint8_t icsneoc2_disk_layout_t
typedef uint32_t icsneoc2_disk_format_flags_t
typedef enum _icsneoc2_disk_format_directive_t _icsneoc2_disk_format_directive_t
typedef uint8_t icsneoc2_disk_format_directive_t
typedef icsneoc2_disk_format_directive_t (*icsneoc2_disk_format_progress_fn)(uint64_t sectors_formatted, uint64_t total_sectors, void *user_data)
typedef struct icsneoc2_script_status_t icsneoc2_script_status_t
typedef enum _icsneoc2_memory_type_t _icsneoc2_memory_type_t
typedef uint8_t icsneoc2_memory_type_t
typedef enum _icsneoc2_can_error_code_t _icsneoc2_can_error_code_t
typedef uint8_t icsneoc2_can_error_code_t
typedef uint64_t icsneoc2_message_can_error_flags_t
typedef enum _icsneoc2_tc10_wake_status_t _icsneoc2_tc10_wake_status_t
typedef uint8_t icsneoc2_tc10_wake_status_t
typedef enum _icsneoc2_tc10_sleep_status_t _icsneoc2_tc10_sleep_status_t
typedef uint8_t icsneoc2_tc10_sleep_status_t
typedef struct icsneoc2_chip_versions_t icsneoc2_chip_versions_t
typedef enum _icsneoc2_chip_id_t _icsneoc2_chip_id_t
typedef uint8_t icsneoc2_chip_id_t
typedef struct icsneoc2_mac_addr_entry_t icsneoc2_mac_addr_entry_t

Enums

enum _icsneoc2_devicetype_t

Values:

enumerator icsneoc2_devicetype_unknown
enumerator icsneoc2_devicetype_blue
enumerator icsneoc2_devicetype_ecu_avb
enumerator icsneoc2_devicetype_rad_supermoon
enumerator icsneoc2_devicetype_dw_vcan
enumerator icsneoc2_devicetype_rad_moon2
enumerator icsneoc2_devicetype_rad_mars
enumerator icsneoc2_devicetype_vcan41
enumerator icsneoc2_devicetype_fire
enumerator icsneoc2_devicetype_rad_pluto
enumerator icsneoc2_devicetype_vcan42_el
enumerator icsneoc2_devicetype_radio_canhub
enumerator icsneoc2_devicetype_neo_ecu12
enumerator icsneoc2_devicetype_obd2_lc_badge
enumerator icsneoc2_devicetype_rad_moon_duo
enumerator icsneoc2_devicetype_fire3
enumerator icsneoc2_devicetype_vcan3
enumerator icsneoc2_devicetype_rad_jupiter
enumerator icsneoc2_devicetype_vcan4_industrial
enumerator icsneoc2_devicetype_rad_gigastar
enumerator icsneoc2_devicetype_red2
enumerator icsneoc2_devicetype_etherbadge
enumerator icsneoc2_devicetype_rad_a2b
enumerator icsneoc2_devicetype_rad_epsilon
enumerator icsneoc2_devicetype_rad_epsilon_xl
enumerator icsneoc2_devicetype_rad_galaxy2
enumerator icsneoc2_devicetype_rad_moon3
enumerator icsneoc2_devicetype_rad_comet2
enumerator icsneoc2_devicetype_fire3_flexray
enumerator icsneoc2_devicetype_connect
enumerator icsneoc2_devicetype_rad_comet3
enumerator icsneoc2_devicetype_rad_moon_t1s
enumerator icsneoc2_devicetype_rad_gigastar2
enumerator icsneoc2_devicetype_fire3_t1s_lin
enumerator icsneoc2_devicetype_fire3_t1s_sent
enumerator icsneoc2_devicetype_rad_gemini
enumerator icsneoc2_devicetype_red
enumerator icsneoc2_devicetype_ecu
enumerator icsneoc2_devicetype_ievb
enumerator icsneoc2_devicetype_pendant
enumerator icsneoc2_devicetype_obd2_pro
enumerator icsneoc2_devicetype_ecuchip_uart
enumerator icsneoc2_devicetype_plasma
enumerator icsneoc2_devicetype_neo_analog
enumerator icsneoc2_devicetype_ct_obd
enumerator icsneoc2_devicetype_ion
enumerator icsneoc2_devicetype_rad_star
enumerator icsneoc2_devicetype_vcan44
enumerator icsneoc2_devicetype_vcan42
enumerator icsneoc2_devicetype_cm_probe
enumerator icsneoc2_devicetype_eevb
enumerator icsneoc2_devicetype_vcan_rf
enumerator icsneoc2_devicetype_fire2
enumerator icsneoc2_devicetype_flex
enumerator icsneoc2_devicetype_rad_galaxy
enumerator icsneoc2_devicetype_rad_star2
enumerator icsneoc2_devicetype_vividcan
enumerator icsneoc2_devicetype_obd2_sim
enumerator icsneoc2_devicetype_maxsize
enum _icsneoc2_network_type_t

Values:

enumerator icsneoc2_network_type_invalid
enumerator icsneoc2_network_type_internal
enumerator icsneoc2_network_type_can
enumerator icsneoc2_network_type_lin
enumerator icsneoc2_network_type_flexray
enumerator icsneoc2_network_type_most
enumerator icsneoc2_network_type_ethernet
enumerator icsneoc2_network_type_lsftcan
enumerator icsneoc2_network_type_swcan
enumerator icsneoc2_network_type_iso9141
enumerator icsneoc2_network_type_i2c
enumerator icsneoc2_network_type_a2b
enumerator icsneoc2_network_type_spi
enumerator icsneoc2_network_type_mdio
enumerator icsneoc2_network_type_automotive_ethernet
enumerator icsneoc2_network_type_maxsize
enumerator icsneoc2_network_type_any
enumerator icsneoc2_network_type_other
enum _icsneoc2_netid_t

Values:

enumerator icsneoc2_netid_device
enumerator icsneoc2_netid_dwcan_01
enumerator icsneoc2_netid_dwcan_08
enumerator icsneoc2_netid_swcan_01
enumerator icsneoc2_netid_lsftcan_01
enumerator icsneoc2_netid_fordscp
enumerator icsneoc2_netid_j1708
enumerator icsneoc2_netid_aux
enumerator icsneoc2_netid_j1850vpw
enumerator icsneoc2_netid_iso9141
enumerator icsneoc2_netid_disk_data
enumerator icsneoc2_netid_main51
enumerator icsneoc2_netid_red
enumerator icsneoc2_netid_sci
enumerator icsneoc2_netid_iso9141_02
enumerator icsneoc2_netid_iso14230
enumerator icsneoc2_netid_lin_01
enumerator icsneoc2_netid_ae_01
enumerator icsneoc2_netid_ae_02
enumerator icsneoc2_netid_ae_03
enumerator icsneoc2_netid_red_ext_memoryread
enumerator icsneoc2_netid_red_int_memoryread
enumerator icsneoc2_netid_red_dflash_read
enumerator icsneoc2_netid_neo_memory_sdread
enumerator icsneoc2_netid_can_errbits
enumerator icsneoc2_netid_neo_memory_write_done
enumerator icsneoc2_netid_red_wave_can1_logical
enumerator icsneoc2_netid_red_wave_can2_logical
enumerator icsneoc2_netid_red_wave_lin1_logical
enumerator icsneoc2_netid_red_wave_lin2_logical
enumerator icsneoc2_netid_red_wave_lin1_analog
enumerator icsneoc2_netid_red_wave_lin2_analog
enumerator icsneoc2_netid_red_wave_misc_analog
enumerator icsneoc2_netid_red_wave_miscdio2_logical
enumerator icsneoc2_netid_red_network_com_enable_ex
enumerator icsneoc2_netid_red_neovi_network
enumerator icsneoc2_netid_red_read_baud_settings
enumerator icsneoc2_netid_red_oldformat
enumerator icsneoc2_netid_red_scope_capture
enumerator icsneoc2_netid_red_hardware_excep
enumerator icsneoc2_netid_red_get_rtc
enumerator icsneoc2_netid_iso9141_03
enumerator icsneoc2_netid_dwcan_02
enumerator icsneoc2_netid_dwcan_03
enumerator icsneoc2_netid_ae_04
enumerator icsneoc2_netid_ae_05
enumerator icsneoc2_netid_iso9141_04
enumerator icsneoc2_netid_lin_02
enumerator icsneoc2_netid_lin_03
enumerator icsneoc2_netid_lin_04
enumerator icsneoc2_netid_most_unused
enumerator icsneoc2_netid_red_app_error
enumerator icsneoc2_netid_cgi
enumerator icsneoc2_netid_reset_status
enumerator icsneoc2_netid_fb_status
enumerator icsneoc2_netid_app_signal_status
enumerator icsneoc2_netid_logging_overflow
enumerator icsneoc2_netid_read_settings
enumerator icsneoc2_netid_dwcan_04
enumerator icsneoc2_netid_dwcan_05
enumerator icsneoc2_netid_rs232
enumerator icsneoc2_netid_uart_01
enumerator icsneoc2_netid_uart_02
enumerator icsneoc2_netid_uart_03
enumerator icsneoc2_netid_uart_04
enumerator icsneoc2_netid_swcan_02
enumerator icsneoc2_netid_ethernet_daq
enumerator icsneoc2_netid_data_to_host
enumerator icsneoc2_netid_textapi_to_host
enumerator icsneoc2_netid_spi_01
enumerator icsneoc2_netid_ae_06
enumerator icsneoc2_netid_red_vbat
enumerator icsneoc2_netid_ae_07
enumerator icsneoc2_netid_ae_08
enumerator icsneoc2_netid_ae_09
enumerator icsneoc2_netid_ae_10
enumerator icsneoc2_netid_ae_11
enumerator icsneoc2_netid_flexray_01a
enumerator icsneoc2_netid_flexray_01b
enumerator icsneoc2_netid_flexray_02a
enumerator icsneoc2_netid_flexray_02b
enumerator icsneoc2_netid_lin_05
enumerator icsneoc2_netid_flexray_01
enumerator icsneoc2_netid_flexray_02
enumerator icsneoc2_netid_ae_12
enumerator icsneoc2_netid_i2c_01
enumerator icsneoc2_netid_most_25
enumerator icsneoc2_netid_most_50
enumerator icsneoc2_netid_most_150
enumerator icsneoc2_netid_ethernet_01
enumerator icsneoc2_netid_gmfsa
enumerator icsneoc2_netid_tcp
enumerator icsneoc2_netid_dwcan_06
enumerator icsneoc2_netid_dwcan_07
enumerator icsneoc2_netid_lin_06
enumerator icsneoc2_netid_lsftcan_02
enumerator icsneoc2_netid_logical_disk_info
enumerator icsneoc2_netid_wivi_command
enumerator icsneoc2_netid_script_status
enumerator icsneoc2_netid_eth_phy_control
enumerator icsneoc2_netid_extended_command
enumerator icsneoc2_netid_extended_data
enumerator icsneoc2_netid_flexray_control
enumerator icsneoc2_netid_coremini_preload
enumerator icsneoc2_netid_hw_com_latency_test
enumerator icsneoc2_netid_device_status
enumerator icsneoc2_netid_udp
enumerator icsneoc2_netid_forwarded_message
enumerator icsneoc2_netid_i2c_02
enumerator icsneoc2_netid_i2c_03
enumerator icsneoc2_netid_i2c_04
enumerator icsneoc2_netid_ethernet_02
enumerator icsneoc2_netid_ethernet_tx_wrap
enumerator icsneoc2_netid_a2b_01
enumerator icsneoc2_netid_a2b_02
enumerator icsneoc2_netid_ethernet_03
enumerator icsneoc2_netid_wbms_01
enumerator icsneoc2_netid_dwcan_09
enumerator icsneoc2_netid_dwcan_10
enumerator icsneoc2_netid_dwcan_11
enumerator icsneoc2_netid_dwcan_12
enumerator icsneoc2_netid_dwcan_13
enumerator icsneoc2_netid_dwcan_14
enumerator icsneoc2_netid_dwcan_15
enumerator icsneoc2_netid_dwcan_16
enumerator icsneoc2_netid_lin_07
enumerator icsneoc2_netid_lin_08
enumerator icsneoc2_netid_spi_02
enumerator icsneoc2_netid_mdio_01
enumerator icsneoc2_netid_mdio_02
enumerator icsneoc2_netid_mdio_03
enumerator icsneoc2_netid_mdio_04
enumerator icsneoc2_netid_mdio_05
enumerator icsneoc2_netid_mdio_06
enumerator icsneoc2_netid_mdio_07
enumerator icsneoc2_netid_mdio_08
enumerator icsneoc2_netid_ae_13
enumerator icsneoc2_netid_ae_14
enumerator icsneoc2_netid_ae_15
enumerator icsneoc2_netid_ae_16
enumerator icsneoc2_netid_spi_03
enumerator icsneoc2_netid_spi_04
enumerator icsneoc2_netid_spi_05
enumerator icsneoc2_netid_spi_06
enumerator icsneoc2_netid_spi_07
enumerator icsneoc2_netid_spi_08
enumerator icsneoc2_netid_lin_09
enumerator icsneoc2_netid_lin_10
enumerator icsneoc2_netid_lin_11
enumerator icsneoc2_netid_lin_12
enumerator icsneoc2_netid_lin_13
enumerator icsneoc2_netid_lin_14
enumerator icsneoc2_netid_lin_15
enumerator icsneoc2_netid_lin_16
enumerator icsneoc2_netid_maxsize
enumerator icsneoc2_netid_any
enumerator icsneoc2_netid_invalid
enum _icsneoc2_io_type_t

Values:

enumerator icsneoc2_io_type_eth_activation
enumerator icsneoc2_io_type_usb_host_power
enumerator icsneoc2_io_type_backup_power_en
enumerator icsneoc2_io_type_backup_power_good
enumerator icsneoc2_io_type_misc
enumerator icsneoc2_io_type_emisc
enumerator icsneoc2_io_type_maxsize
enum _icsneoc2_lin_mode_t

Values:

enumerator icsneoc2_lin_mode_sleep
enumerator icsneoc2_lin_mode_slow
enumerator icsneoc2_lin_mode_normal
enumerator icsneoc2_lin_mode_fast
enumerator icsneoc2_lin_mode_maxsize

Values:

Values:

enum _icsneoc2_misc_io_analog_voltage_t

Values:

enumerator icsneoc2_misc_io_analog_voltage_v0
enumerator icsneoc2_misc_io_analog_voltage_v1
enumerator icsneoc2_misc_io_analog_voltage_v2
enumerator icsneoc2_misc_io_analog_voltage_v3
enumerator icsneoc2_misc_io_analog_voltage_v4
enumerator icsneoc2_misc_io_analog_voltage_v5
enumerator icsneoc2_misc_io_analog_voltage_maxsize
enum _icsneoc2_disk_layout_t

Values:

enumerator icsneoc2_disk_layout_spanned
enumerator icsneoc2_disk_layout_raid0
enumerator icsneoc2_disk_layout_maxsize
enum _icsneoc2_disk_format_directive_t

Values:

enumerator icsneoc2_disk_format_directive_continue
enumerator icsneoc2_disk_format_directive_stop
enumerator icsneoc2_disk_format_directive_maxsize
enum _icsneoc2_memory_type_t

Values:

enumerator icsneoc2_memory_type_flash
enumerator icsneoc2_memory_type_sd
enumerator icsneoc2_memory_type_maxsize
enum _icsneoc2_can_error_code_t

Values:

enumerator icsneoc2_can_error_code_no_error
enumerator icsneoc2_can_error_code_stuff_error
enumerator icsneoc2_can_error_code_form_error
enumerator icsneoc2_can_error_code_ack_error
enumerator icsneoc2_can_error_code_bit1_error
enumerator icsneoc2_can_error_code_bit0_error
enumerator icsneoc2_can_error_code_crc_error
enumerator icsneoc2_can_error_code_no_change
enumerator icsneoc2_can_error_code_maxsize
enum _icsneoc2_tc10_wake_status_t

Values:

enumerator icsneoc2_tc10_wake_status_no_wake_received
enumerator icsneoc2_tc10_wake_status_wake_received
enumerator icsneoc2_tc10_wake_status_maxsize
enum _icsneoc2_tc10_sleep_status_t

Values:

enumerator icsneoc2_tc10_sleep_status_no_sleep_received
enumerator icsneoc2_tc10_sleep_status_sleep_received
enumerator icsneoc2_tc10_sleep_status_sleep_failed
enumerator icsneoc2_tc10_sleep_status_sleep_aborted
enumerator icsneoc2_tc10_sleep_status_maxsize
enum _icsneoc2_chip_id_t

Values:

enumerator icsneoc2_chip_id_neovifire_mchip
enumerator icsneoc2_chip_id_neovifire_lchip
enumerator icsneoc2_chip_id_neovifire_uchip
enumerator icsneoc2_chip_id_neovifire_jchip
enumerator icsneoc2_chip_id_valuecan3_mchip
enumerator icsneoc2_chip_id_neoviecu_mpic
enumerator icsneoc2_chip_id_neoviievb_mpic
enumerator icsneoc2_chip_id_neovipendant_mpic
enumerator icsneoc2_chip_id_neovifire_vnet_mchip
enumerator icsneoc2_chip_id_neovifire_vnet_lchip
enumerator icsneoc2_chip_id_neoviplasma_core
enumerator icsneoc2_chip_id_neoviplasma_hid
enumerator icsneoc2_chip_id_neovianalog_mpic
enumerator icsneoc2_chip_id_neoviplasma_analog_core
enumerator icsneoc2_chip_id_neoviplasma_flexray_core
enumerator icsneoc2_chip_id_neoviplasma_core_1_12
enumerator icsneoc2_chip_id_neovifire_slave_vnet_mchip
enumerator icsneoc2_chip_id_neovifire_slave_vnet_lchip
enumerator icsneoc2_chip_id_neoviion_core
enumerator icsneoc2_chip_id_neoviion_hid
enumerator icsneoc2_chip_id_neoviion_core_loader
enumerator icsneoc2_chip_id_neoviion_hid_loader
enumerator icsneoc2_chip_id_neoviion_fpga_bit
enumerator icsneoc2_chip_id_neovifire_vnet_ep_mchip
enumerator icsneoc2_chip_id_neovifire_vnet_ep_lchip
enumerator icsneoc2_chip_id_neovianalogout_mchip
enumerator icsneoc2_chip_id_neovimost25_mchip
enumerator icsneoc2_chip_id_neovimost50_mchip
enumerator icsneoc2_chip_id_neovimost150_mchip
enumerator icsneoc2_chip_id_valuecan4_4_mchip
enumerator icsneoc2_chip_id_valuecan4_4_schip
enumerator icsneoc2_chip_id_cmprobe_zynq
enumerator icsneoc2_chip_id_eevb_stm32
enumerator icsneoc2_chip_id_neovifire_slave_vnet_ep_mchip
enumerator icsneoc2_chip_id_neovifire_slave_vnet_ep_lchip
enumerator icsneoc2_chip_id_radstar_mchip
enumerator icsneoc2_chip_id_valuecanrf_mchip
enumerator icsneoc2_chip_id_neovifire2_mchip
enumerator icsneoc2_chip_id_neovifire2_cchip
enumerator icsneoc2_chip_id_neovifire2_core
enumerator icsneoc2_chip_id_neovifire2_blechip
enumerator icsneoc2_chip_id_neovifire2_zynq
enumerator icsneoc2_chip_id_neovifire2_securitychip
enumerator icsneoc2_chip_id_radgalaxy_zynq
enumerator icsneoc2_chip_id_neovifire2_vnet_mchip
enumerator icsneoc2_chip_id_neovifire2_slave_vnet_a_mchip
enumerator icsneoc2_chip_id_neovifire2_slave_vnet_a_cchip
enumerator icsneoc2_chip_id_neovifire2_vnet_cchip
enumerator icsneoc2_chip_id_neovifire2_vnet_core
enumerator icsneoc2_chip_id_radstar2_zynq
enumerator icsneoc2_chip_id_vividcan_mchip
enumerator icsneoc2_chip_id_neoobd2sim_mchip
enumerator icsneoc2_chip_id_neovifire2_vnetz_mchip
enumerator icsneoc2_chip_id_neovifire2_vnetz_zynq
enumerator icsneoc2_chip_id_neovifire2_slave_vnetz_a_mchip
enumerator icsneoc2_chip_id_neovifire2_slave_vnetz_a_zynq
enumerator icsneoc2_chip_id_vividcan_ext_flash
enumerator icsneoc2_chip_id_vividcan_nrf52
enumerator icsneoc2_chip_id_cmprobe_zynq_unused
enumerator icsneoc2_chip_id_neoobd2pro_mchip
enumerator icsneoc2_chip_id_valuecan4_1_mchip
enumerator icsneoc2_chip_id_valuecan4_2_mchip
enumerator icsneoc2_chip_id_valuecan4_4_2el_core
enumerator icsneoc2_chip_id_neoobd2pro_schip
enumerator icsneoc2_chip_id_valuecan4_2el_mchip
enumerator icsneoc2_chip_id_neoecuavbtsn_mchip
enumerator icsneoc2_chip_id_neoobd2pro_core
enumerator icsneoc2_chip_id_radsupermoon_zynq
enumerator icsneoc2_chip_id_radmoon2_zynq
enumerator icsneoc2_chip_id_vividcanpro_mchip
enumerator icsneoc2_chip_id_vividcanpro_ext_flash
enumerator icsneoc2_chip_id_radpluto_mchip
enumerator icsneoc2_chip_id_radmars_zynq
enumerator icsneoc2_chip_id_neoecu12_mchip
enumerator icsneoc2_chip_id_radiocanhub_mchip
enumerator icsneoc2_chip_id_flexray_vnetz_zchip
enumerator icsneoc2_chip_id_neoobd2_lcbadge_mchip
enumerator icsneoc2_chip_id_neoobd2_lcbadge_schip
enumerator icsneoc2_chip_id_radmoonduo_mchip
enumerator icsneoc2_chip_id_neovifire3_zchip
enumerator icsneoc2_chip_id_flexray_vnetz_fchip
enumerator icsneoc2_chip_id_radjupiter_mchip
enumerator icsneoc2_chip_id_valuecan4industrial_mchip
enumerator icsneoc2_chip_id_etherbadge_mchip
enumerator icsneoc2_chip_id_radmars_3_zynq
enumerator icsneoc2_chip_id_radgigastar_usbz_zynq
enumerator icsneoc2_chip_id_radgigastar_zynq
enumerator icsneoc2_chip_id_rad4g_mchip
enumerator icsneoc2_chip_id_neovifire3_schip
enumerator icsneoc2_chip_id_radepsilon_mchip
enumerator icsneoc2_chip_id_rada2b_zchip
enumerator icsneoc2_chip_id_neoobd2dev_mchip
enumerator icsneoc2_chip_id_neoobd2dev_schip
enumerator icsneoc2_chip_id_neoobd2simdoip_mchip
enumerator icsneoc2_chip_id_sfpmodule_88q2112_mchip
enumerator icsneoc2_chip_id_radepsilont_mchip
enumerator icsneoc2_chip_id_radepsilonexpress_mchip
enumerator icsneoc2_chip_id_radproxima_mchip
enumerator icsneoc2_chip_id_newdevice57_zchip
enumerator icsneoc2_chip_id_rad_galaxy_2_zmpchip_id
enumerator icsneoc2_chip_id_newdevice59_mchip
enumerator icsneoc2_chip_id_radmoon2_z7010_zynq
enumerator icsneoc2_chip_id_neovifire2_core_sg4
enumerator icsneoc2_chip_id_radbms_mchip
enumerator icsneoc2_chip_id_radmoon2_zl_mchip
enumerator icsneoc2_chip_id_radgigastar_usbz_z7010_zynq
enumerator icsneoc2_chip_id_neovifire3_linux
enumerator icsneoc2_chip_id_radgigastar_usbz_z7007s_zynq
enumerator icsneoc2_chip_id_vem_01_8dw_zchip
enumerator icsneoc2_chip_id_radgalaxy_ffg_zynq
enumerator icsneoc2_chip_id_radmoon3_mchip
enumerator icsneoc2_chip_id_radcomet2_zynq
enumerator icsneoc2_chip_id_vem_02_fr_zchip
enumerator icsneoc2_chip_id_rada2b_revb_zchip
enumerator icsneoc2_chip_id_radgigastar_ffg_zynq
enumerator icsneoc2_chip_id_vem_02_fr_fchip
enumerator icsneoc2_chip_id_connect_zchip
enumerator icsneoc2_chip_id_sfpmodule_88q2221_mchip
enumerator icsneoc2_chip_id_radgalaxy2_sysmon_chip
enumerator icsneoc2_chip_id_sfpmodule_88q3244_mchip
enumerator icsneoc2_chip_id_radcomet3_zchip
enumerator icsneoc2_chip_id_connect_linux
enumerator icsneoc2_chip_id_sfpmodule_lan8670_mchip
enumerator icsneoc2_chip_id_vem_04_t1s_lin_zchip
enumerator icsneoc2_chip_id_radmoont1s_zchip
enumerator icsneoc2_chip_id_radgigastar2_zynq
enumerator icsneoc2_chip_id_sfpmodule_ent11100_mchip
enumerator icsneoc2_chip_id_radgemini_mchip
enumerator icsneoc2_chip_id_maxsize
enumerator icsneoc2_chip_id_invalid