Flag and State
2016-12-19 09:34:05 0 举报
AI智能生成
flag and state
作者其他创作
大纲/内容
pack_state
if(g_bcu_communication_abort_num_temp) bcu_flag_pack_state(1 << PACK_COMM_ALERT_BIT);else bcu_unflag_pack_state(1 <<PACK_COMM_ALERT_BIT);
if(!(charger_get_heat_state() == kChgHeatLTHeat || charger_get_heat_state() == kChgHeatNormalHeat))bcu_flag_pack_state(1 << PACK_CHG_BIT); /*充电标识*/
BCU_BMS_FLAG_VAR_WITH_EVENT_DEF(INT32U, pack_state, kInfoEventPackState)
bcu_flag_##pack_state(TYPE flag)
g_bms_info.pack_state |= flag;
event_dispatch(EVENT, &g_bms_info.pack_state);
根据不同的条件置不同的位
bcu.c
bcu_get宏获取个状态信息
ems_task_ecu_tx_message1_fill
bcu_get_status_flag
16bit Flag 表示各种状态?
BCU_ADD_FLAG(flag, BMS_OHV_STS_BIT);
BCU_ADD_FLAG(NAME, FLAG) SET(NAME,FLAG)将Flag某位置位
根据电压电流温度等参数将16bit的Flag某个位置位,每个位代表一个状态。
current
bcu_get宏获取值
bcu_set_current(current);刷新系统电流信息
参数current从哪里来?
bms_current_impl.c
current_sample_get();
total_voltage
bcu_set_total_voltage(total_voltage);
参数total_voltage从哪里来?
bmu_stat_refersh_voltages()计算voltate
bmu_get_total_voltage函数用在何处?
SOC
soc = soc_from_cap2(bcu_get_left_cap_interm(), total_cap);
soc_set_soc(soc);计算吗soc并更新全局soc
bcu_set_SOC
SOH
soh_refersh中有soh的计算方法
bcu_set_SOH
average_voltage
average_temperature
high_voltage
high_voltage_id
low_voltage
low_voltage_id
high_temperature
low_temperature
high_temperature_id
low_temperature_id
com_abort_num
insulation
0 条评论
下一页