internal void ProcessInfo(PluginTypes.TrackedDeviceInfo info) { const byte gpio_id_mask = 0x3; const byte gpio_rev_mask = 0xC; m_SerialNumber = info.serial_number; m_HardwareType = (Hardware)info.device_type; // m_Index = info.tracked_device_index; // Redundant, and screws up Hydra byte bid = (byte)(info.board_hardware_gpio & gpio_id_mask); byte brev = (byte)(info.board_hardware_gpio & gpio_rev_mask); m_Hardware = info.hardware_revision.ToString("X2") + "-" + bid.ToString("X") + "r" + brev.ToString("X"); m_Firmware = info.mcu_firmware_version_major.ToString("X2") + "." + info.mcu_firmware_version_minor.ToString("X2") + "-" + info.dsp_firmware_version_major.ToString("X2") + "." + info.dsp_firmware_version_minor.ToString("X2"); m_Runtime = info.runtime_version_major + "." + info.runtime_version_minor.ToString("00"); m_MagneticFrequency = info.magnetic_frequency; m_batteryVoltage = info.battery_voltage; m_hasInfo = (m_HardwareType != Hardware.NONE); if (m_hasInfo) { m_Connected = true; } }
public static extern PluginTypes.Result sxCoreGetInfo(uint tracked_device_index, out PluginTypes.TrackedDeviceInfo info);