裝置資訊
監聽
FarmLandBikeKit.sleipnir.deviceInfoPublisher()
.compactMap({ $0.deviceInfo })
.tryMap({ try $0.asAppleDeviceInfo() })
.sink(receiveCompletion: { _ in
}, receiveValue: { deviceInfo in
// 取得裝置資訊。
print("警告碼: \(deviceInfo.warningCodes)")
print("錯誤碼: \(deviceInfo.errorCodes)")
})結構
struct DllExport Apple_Info_st
{
//當前助力段數
unsigned int current_assist_lv;
//系統電源控制狀態
bool system_power_control;
//助推控制狀態
bool walk_assist_control;
//燈控制狀態
bool light_control;
//系統支援的最大助力段數
unsigned int support_assist_lv;
//電源鍵狀態
bool power_key_status;
//上鍵狀態
bool up_key_status;
//下鍵狀態
bool down_key_status;
//助推鍵狀態
bool walk_key_status;
//燈控制鍵狀態
bool light_key_status;
//旅行里程
float trip_odo; // Unit:1 km
//旅行時間
unsigned int trip_time_sec;
//旅行平均時速
float trip_avg_speed; // Unit:0.1 km/hr
//旅行最大時速
float trip_max_speed; // Unit:0.1 km/hr
//旅行平均電流
unsigned int trip_avg_current; // Unit:1mA
//旅行最大電流
unsigned int trip_max_current; // Unit:1mA
//旅行平均踏板速度
unsigned int trip_avg_pedal_speed; // Unit:RPM
//旅行最大踏板速度
unsigned int trip_max_pedal_speed; // Unit:RPM
//旅行平均踏板扭矩
unsigned int trip_avg_pedal_torque; // Unit:1Nm
//旅行最大踏板扭矩
unsigned int trip_max_pedal_torque; // Unit:1Nm
//HMI 當前發送警告碼清單
unsigned int HMI_warning_list[28];
//HMI 當前發送警告碼清單長度
unsigned int HMI_warning_leng;
//HMI 當前發送錯誤碼清單
unsigned int HMI_error_list[28];
//HMI 當前發送錯誤碼清單長度
unsigned int HMI_error_leng;
//HMI KEY NUMBER 1累積按壓計數次數
unsigned int key_1_count;
//HMI KEY NUMBER 2累積按壓計數次數
unsigned int key_2_count;
//HMI KEY NUMBER 3累積按壓計數次數
unsigned int key_3_count;
//HMI KEY NUMBER 4累積按壓計數次數
unsigned int key_4_count;
//HMI KEY NUMBER 5累積按壓計數次數
unsigned int key_5_count;
//HMI KEY NUMBER 6累積按壓計數次數
unsigned int key_6_count;
//HMI KEY NUMBER 7累積按壓計數次數
unsigned int key_7_count;
//HMI KEY NUMBER 8累積按壓計數次數
unsigned int key_8_count;
//HMI 密碼錯誤次數
unsigned int screen_lock_error_count;
//HMI 狀態 0:Lock , 1:Unlock , 2:Disabled
unsigned int screen_lock_state;
//當前車速
float bike_speed; // Unit:1Km/hr
//馬達轉速
unsigned int motor_speed;
//輪轉速
unsigned int wheel_speed;
//系統限速
float limit_speed; // Unit:1Km/hr
//控制器偵測電壓
float bus_voltage;
//控制器偵測電流
float avg_bus_current;
//燈電流
float light_current;
//控制器平均輸出百分比
unsigned int avg_output_amplitube;
//控制器溫度
int controller_temperature;
//油門輸出百分比
unsigned int throttle_amplitube;
//踏板轉速
unsigned int pedal_cadence;
//踏板扭矩
float pedal_torque;
//踏板輸入功率
float pedal_power;
//系統累積總里程
float total_odo; // Unit:1Km
//可行駛剩餘里程
float range_odo; // Unit:1Km
//助力等級
unsigned int assist_level;
//助力類型
unsigned int assist_type;
//當前助力啟動狀態
bool assist_on;
//當前前燈輸出狀態
bool front_light_on;
//當前尾燈輸出狀態
bool rear_light_on;
//當前剎車燈輸出狀態
bool brake_light_on;
//是否可控燈
bool activate_light_ctrl;
//當前煞車感測觸發狀態
bool brake_on;
//當前踏板旋轉方向狀態
bool candence_direction;
//當前馬達旋轉方向狀態
bool motor_direction;
//控制器當前發送警告碼清單
unsigned int controller_warning_list[28];
//控制器當前發送警告碼清單長度
unsigned int controller_warning_leng;
//控制器當前發送錯誤碼清單
unsigned int controller_error_list[28];
//控制器當前發送錯誤碼清單長度
unsigned int controller_error_leng;
//無扭矩電壓值
unsigned int zero_torque_volt;
//當前扭矩電壓值
unsigned int current_torque_volt;
//無油門電壓值
unsigned int zero_throttle_volt;
//當前油門電壓值
unsigned int current_throttle_volt;
//即時主線電流
float actual_bus_current;
//馬達U相電流
float u_phase_current;
//馬達V相電流
float v_phase_current;
//馬達W相電流
float w_phase_current;
//輪轉動累積圈數
unsigned int wheel_rotate_laps;
//控制器輸出百分比
unsigned int output_amplitude;
//馬達HALL狀態
unsigned char hall_state;
//預估角度扇區狀態
unsigned char sector_state;
//主電池當前充電MOSFET啟動狀態
bool m_batt_charge_fet;
//主電池當前是否為充電中
bool m_batt_charging;
//主電池是否已接近滿充電
bool m_batt_fully_charged;
//主電池是否偵測到充電器接入
bool m_batt_charge_detected;
//主電池放電MOSFET狀態
bool m_batt_discharge_fet;
//主電池當前是否為放電中
bool m_batt_discharging;
//主電池電量為低點
bool m_batt_nearly_discharged;
//主電池電量為空
bool m_batt_fully_discharged;
//主電池設計電壓值
unsigned int m_batt_design_volt;
//主電池設計容量值
float m_batt_design_capacity;
//主電池累積循環次數
unsigned int m_batt_cycle_count;
//主電池累積未充電天數
unsigned int m_batt_uncharged_day;
//主電池當前電壓值
unsigned int m_batt_actual_volt;
//主電池當前電流值
unsigned int m_batt_actual_current;
//主電池當前溫度值
signed char m_batt_temperature;
//主電池當前相對容量
unsigned int m_batt_rsoc;
//主電池當前實際容量
unsigned int m_batt_asoc;
//主電池當前相對健康度
unsigned int m_batt_rsoh;
//主電池當前實際健康度
unsigned int m_batt_asoh;
//主電池系統當前UNIX時間
//unsigned long long m_sys_unix_time;
unsigned long long m_batt_sys_unix_time;
//主電池當前發送警告碼清單
unsigned int m_batt_warning_list[28];
//主電池當前發送警告碼清單長度
unsigned int m_batt_warning_leng;
//主電池當前發送錯誤碼清單
unsigned int m_batt_error_list[28];
//主電池當前發送錯誤碼清單長度
unsigned int m_batt_error_leng;
//主電池第1節電芯電壓值
unsigned int m_batt_cell_1_volt; // Unit:1mV
//主電池第2節電芯電壓值
unsigned int m_batt_cell_2_volt; // Unit:1mV
//主電池第3節電芯電壓值
unsigned int m_batt_cell_3_volt; // Unit:1mV
//主電池第4節電芯電壓值
unsigned int m_batt_cell_4_volt; // Unit:1mV
//主電池第5節電芯電壓值
unsigned int m_batt_cell_5_volt; // Unit:1mV
//主電池第6節電芯電壓值
unsigned int m_batt_cell_6_volt; // Unit:1mV
//主電池第7節電芯電壓值
unsigned int m_batt_cell_7_volt; // Unit:1mV
//主電池第8節電芯電壓值
unsigned int m_batt_cell_8_volt; // Unit:1mV
//主電池第9節電芯電壓值
unsigned int m_batt_cell_9_volt; // Unit:1mV
//主電池第10節電芯電壓值
unsigned int m_batt_cell_10_volt; // Unit:1mV
//主電池第11節電芯電壓值
unsigned int m_batt_cell_11_volt; // Unit:1mV
//主電池第12節電芯電壓值
unsigned int m_batt_cell_12_volt; // Unit:1mV
//主電池第13節電芯電壓值
unsigned int m_batt_cell_13_volt; // Unit:1mV
//主電池第14節電芯電壓值
unsigned int m_batt_cell_14_volt; // Unit:1mV
//主電池第15節電芯電壓值
unsigned int m_batt_cell_15_volt; // Unit:1mV
//主電池第16節電芯電壓值
unsigned int m_batt_cell_16_volt; // Unit:1mV
//主電池第17節電芯電壓值
unsigned int m_batt_cell_17_volt; // Unit:1mV
//主電池第18節電芯電壓值
unsigned int m_batt_cell_18_volt; // Unit:1mV
//主電池第19節電芯電壓值
unsigned int m_batt_cell_19_volt; // Unit:1mV
//主電池第20節電芯電壓值
unsigned int m_batt_cell_20_volt; // Unit:1mV
//主電池溫度感測器1 溫度值
int m_batt_temperature_1;
//主電池溫度感測器2 溫度值
int m_batt_temperature_2;
//主電池溫度感測器3 溫度值
int m_batt_temperature_3;
//主電池溫度感測器4 溫度值
int m_batt_temperature_4;
//主電池溫度感測器5 溫度值
int m_batt_temperature_5;
//主電池溫度感測器6 溫度值
int m_batt_temperature_6;
//主電池溫度感測器7 溫度值
int m_batt_temperature_7;
//主電池溫度感測器8 溫度值
int m_batt_temperature_8;
//E Lock當前狀態
//Enum C/C++ 可以指定型別為 Byte但是, 實際上編譯後所佔用記憶體長度(位元組)可能有所變化
ELockStates e_lock_states;
//遠燈狀態
bool high_beam_light_on;
//近燈狀態
bool low_beam_light_on;
//左轉燈狀態
bool turn_left_light_on;
//右轉燈狀態
bool turn_right_light_on;
//剎車開關狀態
bool brake_key_status;
//HMI油門開度
unsigned int hmi_throttle_amplitude;
//定速巡航啟動
bool cruise_ctrl;
//電門啟動
bool ACC_on;
//竊盜模式啟動
bool anti_theft_ctrl;
//倒車模式
bool reverse_ctrl_on;
//駐車模式
bool parking_on;
// 控制器霍爾感測器校正執行狀態
unsigned char tuning_hall_sensor_state;
// 控制器霍爾感測器校正數值
unsigned char tuning_hall_sensor_angle;
// 控制器霍爾排序校正狀態
unsigned char tuning_hall_sensor_seq_state;
// 控制器霍爾排序校正數值
unsigned char tuning_hall_sensor_seq_result;
//副電池當前充電MOSFET啟動狀態
bool s_batt_charge_fet;
//副電池當前是否為充電中
bool s_batt_charging;
//副電池是否已接近滿充電
bool s_batt_fully_charged;
//副電池是否偵測到充電器接入
bool s_batt_charge_detected;
//副電池放電MOSFET狀態
bool s_batt_discharge_fet;
//副電池當前是否為放電中
bool s_batt_discharging;
//副電池電量為低點
bool s_batt_nearly_discharged;
//副電池電量為空
bool s_batt_fully_discharged;
//副電池設計電壓值
unsigned int s_batt_design_volt;
//副電池設計容量值
float s_batt_design_capacity;
//副電池累積循環次數
unsigned int s_batt_cycle_count;
//副電池累積未充電天數
unsigned int s_batt_uncharged_day;
//副電池當前電壓值
unsigned int s_batt_actual_volt;
//副電池當前電流值
unsigned int s_batt_actual_current;
//副電池當前溫度值
signed char s_batt_temperature;
//副電池當前相對容量
unsigned int s_batt_rsoc;
//副電池當前實際容量
unsigned int s_batt_asoc;
//副電池當前相對健康度
unsigned int s_batt_rsoh;
//副電池當前實際健康度
unsigned int s_batt_asoh;
//副電池系統當前UNIX時間
//unsigned long long s_sys_unix_time;
unsigned long long s_batt_sys_unix_time;
//副電池當前發送警告碼清單
unsigned int s_batt_warning_list[28];
//副電池當前發送警告碼清單長度
unsigned int s_batt_warning_leng;
//副電池當前發送錯誤碼清單
unsigned int s_batt_error_list[28];
//副電池當前發送錯誤碼清單長度
unsigned int s_batt_error_leng;
//副電池第1節電芯電壓值
unsigned int s_batt_cell_1_volt; // Unit:1mV
//副電池第2節電芯電壓值
unsigned int s_batt_cell_2_volt; // Unit:1mV
//副電池第3節電芯電壓值
unsigned int s_batt_cell_3_volt; // Unit:1mV
//副電池第4節電芯電壓值
unsigned int s_batt_cell_4_volt; // Unit:1mV
//副電池第5節電芯電壓值
unsigned int s_batt_cell_5_volt; // Unit:1mV
//副電池第6節電芯電壓值
unsigned int s_batt_cell_6_volt; // Unit:1mV
//副電池第7節電芯電壓值
unsigned int s_batt_cell_7_volt; // Unit:1mV
//副電池第8節電芯電壓值
unsigned int s_batt_cell_8_volt; // Unit:1mV
//副電池第9節電芯電壓值
unsigned int s_batt_cell_9_volt; // Unit:1mV
//副電池第10節電芯電壓值
unsigned int s_batt_cell_10_volt; // Unit:1mV
//副電池第11節電芯電壓值
unsigned int s_batt_cell_11_volt; // Unit:1mV
//副電池第12節電芯電壓值
unsigned int s_batt_cell_12_volt; // Unit:1mV
//副電池第13節電芯電壓值
unsigned int s_batt_cell_13_volt; // Unit:1mV
//副電池第14節電芯電壓值
unsigned int s_batt_cell_14_volt; // Unit:1mV
//副電池第15節電芯電壓值
unsigned int s_batt_cell_15_volt; // Unit:1mV
//副電池第16節電芯電壓值
unsigned int s_batt_cell_16_volt; // Unit:1mV
//副電池第17節電芯電壓值
unsigned int s_batt_cell_17_volt; // Unit:1mV
//副電池第18節電芯電壓值
unsigned int s_batt_cell_18_volt; // Unit:1mV
//副電池第19節電芯電壓值
unsigned int s_batt_cell_19_volt; // Unit:1mV
//副電池第20節電芯電壓值
unsigned int s_batt_cell_20_volt; // Unit:1mV
//副電池溫度感測器1 溫度值
int s_batt_temperature_1;
//副電池溫度感測器2 溫度值
int s_batt_temperature_2;
//副電池溫度感測器3 溫度值
int s_batt_temperature_3;
//副電池溫度感測器4 溫度值
int s_batt_temperature_4;
//副電池溫度感測器5 溫度值
int s_batt_temperature_5;
//副電池溫度感測器6 溫度值
int s_batt_temperature_6;
//副電池溫度感測器7 溫度值
int s_batt_temperature_7;
//副電池溫度感測器8 溫度值
int s_batt_temperature_8;
};