from ctypes import Structure, Union as CTUnion
from _typeshed import Incomplete
from typing import Any, Iterable, List, NamedTuple, Optional, Set, Tuple, Union

ASPHODEL_PROTOCOL_TYPE_BASIC: int
ASPHODEL_PROTOCOL_TYPE_RF_POWER: int
ASPHODEL_PROTOCOL_TYPE_RADIO: int
ASPHODEL_PROTOCOL_TYPE_REMOTE: int
ASPHODEL_PROTOCOL_TYPE_BOOTLOADER: int
GPIO_PIN_MODE_HI_Z: int
GPIO_PIN_MODE_PULL_DOWN: int
GPIO_PIN_MODE_PULL_UP: int
GPIO_PIN_MODE_LOW: int
GPIO_PIN_MODE_HIGH: int
SPI_CS_MODE_LOW: int
SPI_CS_MODE_HIGH: int
SPI_CS_MODE_AUTO_TRANSFER: int
SPI_CS_MODE_AUTO_BYTE: int
ASPHODEL_SUPPLY_LOW_BATTERY: int
ASPHODEL_SUPPLY_TOO_LOW: int
ASPHODEL_SUPPLY_TOO_HIGH: int
ASPHODEL_TCP_FILTER_DEFAULT: int
ASPHODEL_TCP_FILTER_PREFER_IPV6: int
ASPHODEL_TCP_FILTER_PREFER_IPV4: int
ASPHODEL_TCP_FILTER_ONLY_IPV6: int
ASPHODEL_TCP_FILTER_ONLY_IPV4: int
ASPHODEL_TCP_FILTER_RETURN_ALL: int

class AsphodelError(IOError): ...

class StreamFormat(NamedTuple):
    filler_bits: int
    counter_bits: int
    rate: float
    rate_error: float
    warm_up_delay: float

class ChannelInfo(NamedTuple):
    channel_type: int
    unit_type: int
    filler_bits: int
    data_bits: int
    samples: int
    bits_per_sample: int
    minimum: float
    maximum: float
    resolution: float
    chunk_count: int

class ChannelCalibration(NamedTuple):
    base_setting_index: int
    resolution_setting_index: int
    scale: float
    offset: float
    minimum: float
    maximum: float

class SupplyInfo(NamedTuple):
    unit_type: int
    is_battery: int
    nominal: int
    scale: float
    offset: float

class CtrlVarInfo(NamedTuple):
    unit_type: int
    minimum: int
    maximum: int
    scale: float
    offset: float

class ExtraScanResult(NamedTuple):
    serial_number: int
    asphodel_type: int
    device_mode: int

class GPIOPortInfo(NamedTuple):
    input_pins: int
    output_pins: int
    floating_pins: int
    loaded_pins: int
    overridden_pins: int

class BridgeValues(NamedTuple):
    pos_sense: float
    neg_sense: float
    nominal: float
    minimum: float
    maximum: float

class SelfTestLimits(NamedTuple):
    x_min: float
    x_max: float
    y_min: float
    y_max: float
    z_min: float
    z_max: float

class StreamRateInfo(NamedTuple):
    available: bool
    channel_index: int
    invert: int
    scale: float
    offset: float

class TCPAdvInfo(NamedTuple):
    tcp_version: int
    connected: int
    max_incoming_param_length: int
    max_outgoing_param_length: int
    stream_packet_length: int
    protocol_type: int
    serial_number: str
    board_rev: int
    board_type: str
    build_info: str
    build_date: str
    user_tag1: str
    user_tag2: str
    remote_max_incoming_param_length: int
    remote_max_outgoing_param_length: int
    remote_stream_packet_length: int

class AsphodelStreamInfo(Structure):
    channel_index_list: Incomplete
    channel_count: int
    filler_bits: int
    counter_bits: int
    rate: float
    rate_error: float
    warm_up_delay: float

    def to_json_obj(self) -> Any: ...
    @classmethod
    def from_json_obj(cls, obj: Any) -> "AsphodelStreamInfo": ...

class AsphodelChannelInfo(Structure):
    name: Incomplete
    name_length: int
    channel_type: int
    unit_type: int
    filler_bits: int
    data_bits: int
    samples: int
    bits_per_sample: int
    minimum: float
    maximum: float
    resolution: float
    coefficients: Incomplete
    coefficients_length: int
    chunks: Incomplete
    chunk_lengths: Incomplete
    chunk_count: int

    def to_json_obj(self) -> Any: ...
    @classmethod
    def from_json_obj(cls, obj: Any) -> "AsphodelChannelInfo": ...

class SettingStructure(Structure): ...

class AsphodelByteSetting(SettingStructure): 
    nvm_word: int
    nvm_word_byte: int

class AsphodelByteArraySetting(SettingStructure): 
    nvm_word: int
    maximum_length: int
    length_nvm_word: int
    length_nvm_word_byte: int

class AsphodelStringSetting(SettingStructure):
    nvm_word: int
    maximum_length: int

class AsphodelInt32Setting(SettingStructure):
    nvm_word: int
    minimum: int
    maximum: int

class AsphodelInt32ScaledSetting(SettingStructure):
    nvm_word: int
    minimum: int
    maximum: int
    unit_type: int
    scale: float
    offset: float

class AsphodelFloatSetting(SettingStructure):
    nvm_word: int
    minimum: float
    maximum: float
    unit_type: int
    scale: float
    offset: float

class AsphodelFloatArraySetting(SettingStructure):
    nvm_word: int
    minimum: float
    maximum: float
    unit_type: int
    scale: float
    offset: float
    maximum_length: int
    length_nvm_word: int
    length_nvm_word_byte: int

class AsphodelCustomEnumSetting(SettingStructure):
    nvm_word: int
    nvm_word_byte: int
    custom_enum_index: int

class AsphodelSettingUnion(CTUnion):
    byte_setting: AsphodelByteSetting
    byte_array_setting: AsphodelByteArraySetting
    string_setting: AsphodelStringSetting
    int32_setting: AsphodelInt32Setting
    int32_scaled_setting: AsphodelInt32ScaledSetting
    float_setting: AsphodelFloatSetting
    float_array_setting: AsphodelFloatArraySetting
    custom_enum_setting: AsphodelCustomEnumSetting

class AsphodelSettingInfo(Structure):
    name: str
    name_length: int
    default_bytes: Incomplete
    default_bytes_length: int
    setting_type: int
    u: AsphodelSettingUnion

    @classmethod
    def from_str(cls, s: str) -> "AsphodelSettingInfo": ...

class AsphodelNative:
    missing_funcs: List[str]
    unit_type_names: List[str]
    channel_type_names: List[str]
    setting_type_names: List[str]
    protocol_version: int
    protocol_version_string: str
    build_info: str
    build_date: str
    usb_backend_version: str
    mem_test_supported: Union[bool, int]
    tcp_devices_supported: Union[bool, int]
    usb_devices_supported: Union[bool, int]

    def find_usb_devices(self) -> List[AsphodelNativeDevice]: ...
    def find_tcp_devices(self, flags: Optional[int]=None) -> List[AsphodelNativeDevice]: ...
    def create_tcp_device(self, host: str, port: int, timeout: int, serial: Optional[str] = None) -> AsphodelNativeDevice: ...
    def tcp_get_advertisement(self, device: AsphodelNativeDevice) -> TCPAdvInfo: ...
    def create_channel_decoder(self, channel_info: AsphodelChannelInfo, bit_offset: int) -> AsphodelNativeChannelDecoder: ...
    def create_stream_decoder(self, stream_info: AsphodelStreamInfo, channel_info_list: Iterable[AsphodelChannelInfo], bit_offset: int) -> AsphodelNativeStreamDecoder: ...
    def create_device_decoder(self, info_list: Iterable[Tuple[int, AsphodelStreamInfo, Iterable[AsphodelChannelInfo]]], filler_bits: int, id_bits: int) -> AsphodelNativeDeviceDecoder: ...
    def get_streaming_counts(self, streams: Iterable[AsphodelStreamInfo], response_time: float, buffer_time: float, timeout: int) -> Tuple[int, int, int]: ...
    def create_unit_formatter(self, unit_type: int, minimum: float, maximum: float, resolution: float, use_metric: bool = True) -> AsphodelNativeUnitFormatter: ...
    def create_custom_unit_formatter(self, scale: float, offset: float, resolution: float, unit_ascii: str, unit_utf8: str, unit_html: str) -> AsphodelNativeUnitFormatter: ...
    def format_value_ascii(self, unit_type: int, resolution: float, value: float, use_metric: bool = True) -> str: ...
    def format_value_utf8(self, unit_type: int, resolution: float, value: float, use_metric: bool = True) -> str: ...
    def format_value_html(self, unit_type: int, resolution: float, value: float, use_metric: bool = True) -> str: ...
    def mem_test_set_limit(self, limit: int) -> None: ...
    def mem_test_get_limit(self) -> int: ...

class AsphodelNativeDevice:
    lib: AsphodelNative
    reconnect_time: float

    def open(self) -> None: ...
    def close(self) -> None: ...
    def free(self) -> None: ...
    def __del__(self) -> None: ...
    def get_location_string(self) -> str: ...
    def get_transport_type(self) -> str: ...
    def get_serial_number(self) -> str: ...
    def do_transfer(self, cmd: int, params: bytes, callback) -> None: ...
    def do_transfer_reset(self, cmd: int, params: bytes, callback) -> None: ...
    def start_streaming_packets(self, packet_count: int, transfer_count: int, timeout: int, callback) -> None: ...
    def stop_streaming_packets(self) -> None: ...
    def get_stream_packets_blocking(self, byte_count: int, timeout: int) -> bytes: ...
    def get_max_incoming_param_length(self) -> int: ...
    def get_max_outgoing_param_length(self) -> int: ...
    def get_stream_packet_length(self) -> int: ...
    def poll_device(self, milliseconds: int) -> None: ...
    def set_connect_callback(self, callback) -> None: ...
    def wait_for_connect(self, timeout: int) -> None: ...
    def get_remote_device(self) -> AsphodelNativeDevice: ...
    def reconnect(self, bootloader: bool = False, application: bool = False, serial_number: Optional[str] = None) -> None: ...
    def reconnect_device(self, reopen: bool = False) -> None: ...
    def reconnect_device_bootloader(self, reopen: bool = False) -> None: ...
    def reconnect_device_application(self, reopen: bool = False) -> None: ...
    def supports_rf_power_commands(self) -> bool: ...
    def supports_radio_commands(self) -> bool: ...
    def supports_remote_commands(self) -> bool: ...
    def supports_bootloader_commands(self) -> bool: ...
    def set_error_callback(self, callback) -> None: ...
    def tcp_get_advertisement(self) -> TCPAdvInfo: ...
    def get_protocol_version(self) -> int: ...
    def get_protocol_version_string(self) -> str: ...
    def get_board_info(self) -> Tuple[str, int]: ...
    def get_user_tag_locations(self) -> Tuple[Tuple[int, int], Tuple[int, int], Tuple[int, int]]: ...
    def get_build_info(self) -> str: ...
    def get_build_date(self) -> str: ...
    def get_commit_id(self) -> str: ...
    def get_repo_branch(self) -> str: ...
    def get_repo_name(self) -> str: ...
    def get_chip_family(self) -> str: ...
    def get_chip_model(self) -> str: ...
    def get_chip_id(self) -> str: ...
    def get_nvm_size(self) -> int: ...
    def erase_nvm(self) -> None: ...
    def write_nvm_raw(self, address: int, values: bytes) -> None: ...
    def write_nvm_section(self, address: int, values: bytes) -> None: ...
    def read_nvm_raw(self, address: int) -> bytes: ...
    def read_nvm_section(self, address: int, length: int) -> bytes: ...
    def read_user_tag_string(self, offset: int, length: int) -> str: ...
    def write_user_tag_string(self, offset: int, length: int, string: str) -> None: ...
    def get_nvm_modified(self) -> bool: ...
    def get_nvm_hash(self) -> str: ...
    def get_setting_hash(self) -> str: ...
    def flush(self) -> None: ...
    def reset(self) -> None: ...
    def get_bootloader_info(self) -> str: ...
    def bootloader_jump(self) -> None: ...
    def get_reset_flag(self) -> int: ...
    def clear_reset_flag(self) -> None: ...
    def get_rgb_count(self) -> int: ...
    def get_rgb_values(self, index: int) -> Tuple[int, int, int]: ...
    def set_rgb_values(self, index: int, values: Tuple[int, int, int], instant: bool = ...) -> None: ...
    def set_rgb_values_hex(self, index: int, hex_color: int, instant: bool = ...) -> None: ...
    def get_led_count(self) -> int: ...
    def get_led_value(self, index: int) -> int: ...
    def set_led_value(self, index: int, value: int, instant: bool = ...) -> None: ...
    def set_device_mode(self, mode) -> None: ...
    def get_device_mode(self) -> int: ...
    def get_stream_count(self) -> int: ...
    def get_stream(self, index: int) -> AsphodelStreamInfo: ...
    def get_stream_channels(self, index: int) -> Tuple[int, ...]: ...
    def get_stream_format(self, index: int) -> StreamFormat: ...
    def enable_stream(self, index: int, enable: bool = ...) -> None: ...
    def warm_up_stream(self, index: int, enable: bool = ...) -> None: ...
    def get_stream_status(self, index: int) -> Tuple[bool, bool]: ...
    def get_stream_rate_info(self, index: int) -> StreamRateInfo: ...
    def get_channel_count(self) -> int: ...
    def get_channel(self, index: int) -> AsphodelChannelInfo: ...
    def get_channel_name(self, index: int) -> str: ...
    def get_channel_info(self, index: int) -> ChannelInfo: ...
    def get_channel_coefficients(self, index: int) -> Tuple[float, ...]: ...
    def get_channel_chunk(self, index: int, chunk_number: int) -> bytes: ...
    def channel_specific(self, index: int, values: bytes) -> bytes: ...
    def get_channel_calibration(self, index: int) -> Optional[ChannelCalibration]: ...
    def get_supply_count(self) -> int: ...
    def get_supply_name(self, index: int) -> str: ...
    def get_supply_info(self, index: int) -> SupplyInfo: ...
    def check_supply(self, index: int, tries: int = ...) -> Tuple[int, int]: ...
    def get_ctrl_var_count(self) -> int: ...
    def get_ctrl_var_name(self, index: int) -> str: ...
    def get_ctrl_var_info(self, index: int) -> CtrlVarInfo: ...
    def get_ctrl_var(self, index: int) -> int: ...
    def set_ctrl_var(self, index: int, value: int) -> None: ...
    def get_setting_count(self) -> int: ...
    def get_setting_name(self, index: int) -> str: ...
    def get_setting_info(self, index: int) -> AsphodelSettingInfo: ...
    def get_setting_default(self, index: int) -> bytes: ...
    def get_custom_enum_counts(self) -> Tuple[int, ...]: ...
    def get_custom_enum_value_name(self, index: int, value: int) -> str: ...
    def get_setting_category_count(self) -> int: ...
    def get_setting_category_name(self, index: int) -> str: ...
    def get_setting_category_settings(self, index: int) -> Tuple[int, ...]: ...
    def get_gpio_port_count(self) -> int: ...
    def get_gpio_port_name(self, index: int) -> str: ...
    def get_gpio_port_info(self, index: int) -> GPIOPortInfo: ...
    def get_gpio_port_values(self, index: int) -> int: ...
    def set_gpio_port_modes(self, index: int, mode: int, pins: int) -> None: ...
    def disable_gpio_overrides(self) -> None: ...
    def get_bus_counts(self) -> Tuple[int, int]: ...
    def set_spi_cs_mode(self, index: int, mode: int) -> None: ...
    def do_spi_transfer(self, index: int, write_bytes: bytes) -> bytes: ...
    def do_i2c_write(self, index: int, addr: int, write_bytes: bytes) -> None: ...
    def do_i2c_read(self, index: int, addr: int, read_length: int) -> bytes: ...
    def do_i2c_write_read(self, index: int, addr: int, write_bytes: bytes, read_length: int) -> bytes: ...
    def do_radio_fixed_test(self, channel: int, duration: int, mode: int) -> None: ...
    def do_radio_sweep_test(self, start: int, stop: int, hop_interval: int, hop_count: int, mode: int) -> None: ...
    def get_info_region_count(self) -> int: ...
    def get_info_region_name(self, index: int) -> str: ...
    def get_info_region(self, index: int) -> Tuple[int, ...]: ...
    def get_stack_info(self) -> Tuple[int, int]: ...
    def echo_raw(self, values: bytes) -> bytes: ...
    def echo_transaction(self, values: bytes) -> bytes: ...
    def echo_params(self, values: bytes) -> bytes: ...
    def enable_rf_power(self, enable: bool = ...) -> None: ...
    def get_rf_power_status(self) -> bool: ...
    def get_rf_power_ctrl_vars(self) -> Tuple[int, ...]: ...
    def reset_rf_power_timeout(self, timeout: int) -> None: ...
    def stop_radio(self) -> None: ...
    def start_radio_scan(self) -> None: ...
    def get_raw_radio_scan_results(self) -> Tuple[int, ...]: ...
    def get_radio_scan_results(self) -> Set[int]: ...
    def get_raw_radio_extra_scan_results(self) -> List[ExtraScanResult]: ...
    def get_radio_extra_scan_results(self) -> List[ExtraScanResult]: ...
    def get_radio_scan_power(self, serial_numbers: Iterable[int]) -> List[int]: ...
    def connect_radio(self, serial_number: int) -> None: ...
    def get_radio_status(self) -> Tuple[bool, int, int, bool]: ...
    def get_radio_ctrl_vars(self) -> Tuple[int, ...]: ...
    def get_radio_default_serial(self) -> int: ...
    def start_radio_scan_boot(self) -> None: ...
    def connect_radio_boot(self, serial_number: int) -> None: ...
    def stop_remote(self) -> None: ...
    def restart_remote(self) -> None: ...
    def get_remote_status(self) -> Tuple[bool, int, int]: ...
    def restart_remote_app(self) -> None: ...
    def restart_remote_boot(self) -> None: ...
    def bootloader_start_program(self) -> None: ...
    def get_bootloader_page_info(self) -> Tuple[Tuple[int, int], ...]: ...
    def get_bootloader_block_sizes(self) -> Tuple[int, ...]: ...
    def start_bootloader_page(self, page_number: int, nonce: bytes) -> None: ...
    def write_bootloader_code_block(self, data: bytes) -> None: ...
    def write_bootloader_page(self, data: bytes, block_sizes: Iterable[int]) -> None: ...
    def finish_bootloader_page(self, mac_tag: Optional[bytes] = None) -> None: ...
    def verify_bootloader_page(self, mac_tag: Optional[bytes] = None) -> None: ...
    def get_strain_bridge_count(self, channel_info: AsphodelChannelInfo) -> int: ...
    def get_strain_bridge_subchannel(self, channel_info: AsphodelChannelInfo, bridge_index: int) -> int: ...
    def get_strain_bridge_values(self, channel_info: AsphodelChannelInfo, bridge_index: int) -> BridgeValues: ...
    def set_strain_outputs(self, channel_index: int, bridge_index: int, pos: int, neg: int) -> None: ...
    def check_strain_resistances(self, channel_info: AsphodelChannelInfo, bridge_index: int, baseline: float, pos_high: float, neg_high: float) -> Tuple[bool, float, float]: ...
    def get_accel_self_test_limits(self, channel_info: AsphodelChannelInfo) -> SelfTestLimits: ...
    def enable_accel_self_test(self, channel_index: int, enable: bool = ...) -> None: ...
    def check_accel_self_test(self, channel_info: AsphodelChannelInfo, disabled: Tuple[float, float, float], enabled: Tuple[float, float, float]) -> bool: ...
    def get_channel_decoder(self, index: int, bit_offset: int) -> AsphodelNativeChannelDecoder: ...
    def get_stream_decoder(self, index: int, bit_offset: int) -> AsphodelNativeStreamDecoder: ...
    def get_device_decoder(self) -> AsphodelNativeDeviceDecoder: ...
    def get_streaming_counts(self, response_time: float, buffer_time: float, timeout: int) -> Tuple[int, int, int]: ...
    def get_channel_unit_formatter(self, index: int, use_metric: bool) -> AsphodelNativeUnitFormatter: ...
    def get_ctrl_var_unit_formatter(self, index: int, use_metric: bool) -> AsphodelNativeUnitFormatter: ...
    def get_setting(self, index: int) -> AsphodelSettingInfo: ...

class AsphodelNativeChannelDecoder:
    lib: AsphodelNative
    channel_info: AsphodelChannelInfo
    stream_decoder: AsphodelNativeStreamDecoder
    channel_bit_offset: int
    samples: int
    channel_name: str
    subchannels: int
    subchannel_names: List[str]

    def free(self) -> None: ...
    def reset(self) -> None: ...
    def decode(self, counter: int, buffer: bytes) -> None: ...
    def set_conversion_factor(self, scale: float, offset: float) -> None: ...
    def set_callback(self, cb) -> None: ...

class AsphodelNativeStreamDecoder:
    lib: AsphodelNative
    stream_info: AsphodelStreamInfo
    bit_offset: int
    device_decoder: AsphodelNativeDeviceDecoder
    counter_byte_offset: int
    used_bits: int
    channels: int
    decoders: List[AsphodelNativeChannelDecoder]
    last_count: int

    def free(self) -> None: ...
    def reset(self) -> None: ...
    def decode(self, buffer: bytes) -> None: ...
    def set_lost_packet_callback(self, cb) -> None: ...

class AsphodelNativeDeviceDecoder:
    lib: AsphodelNative
    id_byte_offset: int
    used_bits: int
    streams: int
    stream_ids: List[int]
    decoders: List[AsphodelNativeStreamDecoder]

    def free(self) -> None: ...
    def reset(self) -> None: ...
    def decode(self, buffer: bytes) -> None: ...
    def set_unknown_id_callback(self, cb) -> None: ...

class AsphodelNativeUnitFormatter:
    lib: AsphodelNative
    unit_ascii: str
    unit_utf8: str
    unit_html: str
    conversion_scale: float
    conversion_offset: float

    def free(self) -> None: ...
    def format_bare(self, value: float) -> str: ...
    def format_ascii(self, value: float) -> str: ...
    def format_utf8(self, value: float) -> str: ...
    def format_html(self, value: float) -> str: ...

def format_nvm_data(data, size: int = ...) -> List[str]: ...
def find_devices() -> List[AsphodelNativeDevice]: ...
def find_device_by_serial(serial: str) -> Optional[AsphodelNativeDevice]: ...

nativelib: AsphodelNative
protocol_version: int
protocol_version_string: str
build_info: str
build_date: str
usb_backend_version: str
def find_usb_devices() -> List[AsphodelNativeDevice]: ...
def find_tcp_devices(flags: Optional[int]=None) -> List[AsphodelNativeDevice]: ...
def create_tcp_device(host: str, port: int, timeout: int, serial: Optional[str] = None) -> AsphodelNativeDevice: ...
unit_type_names: List[str]
channel_type_names: List[str]
setting_type_names: List[str]
def format_value_ascii(unit_type: int, resolution: float, value: float, use_metric: bool = True) -> str: ...
def format_value_utf8(unit_type: int, resolution: float, value: float, use_metric: bool = True) -> str: ...
def format_value_html(unit_type: int, resolution: float, value: float, use_metric: bool = True) -> str: ...

UNIT_TYPE_NONE: int
UNIT_TYPE_LSB: int
UNIT_TYPE_PERCENT: int
UNIT_TYPE_VOLT: int
UNIT_TYPE_AMPERE: int
UNIT_TYPE_WATT: int
UNIT_TYPE_OHM: int
UNIT_TYPE_CELSIUS: int
UNIT_TYPE_PASCAL: int
UNIT_TYPE_NEWTON: int
UNIT_TYPE_M_PER_S: int
UNIT_TYPE_M_PER_S2: int
UNIT_TYPE_DB: int
UNIT_TYPE_DBM: int
UNIT_TYPE_STRAIN: int
UNIT_TYPE_HZ: int
UNIT_TYPE_SECOND: int
UNIT_TYPE_LSB_PER_CELSIUS: int
UNIT_TYPE_GRAM_PER_S: int
UNIT_TYPE_L_PER_S: int
UNIT_TYPE_NEWTON_METER: int
UNIT_TYPE_METER: int
UNIT_TYPE_GRAM: int
UNIT_TYPE_M3_PER_S: int
CHANNEL_TYPE_LINEAR: int
CHANNEL_TYPE_NTC: int
CHANNEL_TYPE_ARRAY: int
CHANNEL_TYPE_SLOW_STRAIN: int
CHANNEL_TYPE_FAST_STRAIN: int
CHANNEL_TYPE_SLOW_ACCEL: int
CHANNEL_TYPE_PACKED_ACCEL: int
CHANNEL_TYPE_COMPOSITE_STRAIN: int
CHANNEL_TYPE_LINEAR_ACCEL: int
CHANNEL_TYPE_BIG_ENDIAN_FLOAT32: int
CHANNEL_TYPE_BIG_ENDIAN_FLOAT64: int
CHANNEL_TYPE_LITTLE_ENDIAN_FLOAT32: int
CHANNEL_TYPE_LITTLE_ENDIAN_FLOAT64: int
SETTING_TYPE_BYTE: int
SETTING_TYPE_BOOLEAN: int
SETTING_TYPE_UNIT_TYPE: int
SETTING_TYPE_CHANNEL_TYPE: int
SETTING_TYPE_BYTE_ARRAY: int
SETTING_TYPE_STRING: int
SETTING_TYPE_INT32: int
SETTING_TYPE_INT32_SCALED: int
SETTING_TYPE_FLOAT: int
SETTING_TYPE_FLOAT_ARRAY: int
SETTING_TYPE_CUSTOM_ENUM: int
