加入通道轮询宏定义,当宏为1时代表通道可++,代表四通道,反之为单通道
1. 在chrg_def.h中新增多通道轮询配置宏CHRG_MULTI_CHANNEL,以及对应通道自增宏CHRG_CHANNEL_NEXT 2. 将chrg_roll_sou.c和chrg_roll_nor.c中的原生index++替换为CHRG_CHANNEL_NEXT(index) 3. 实现单/多通道硬件的兼容适配
This commit is contained in:
@@ -997,17 +997,17 @@ void chrg_roll_nor_thread_entry (void *data)
|
||||
rt_mutex_release(pTHR->mutex);
|
||||
if (state_work_ret != 0) {
|
||||
/* 南向状态动作未成功入队时保留原状态,下轮重试且禁止北向先行。 */
|
||||
index++;
|
||||
CHRG_CHANNEL_NEXT(index);
|
||||
rt_thread_mdelay(2);
|
||||
continue;
|
||||
}
|
||||
if (source_waiting || sink_waiting) {
|
||||
index++;
|
||||
CHRG_CHANNEL_NEXT(index);
|
||||
rt_thread_mdelay(2);
|
||||
continue;
|
||||
}
|
||||
if (0 == pNOR->enable[idx]) {
|
||||
index++;
|
||||
CHRG_CHANNEL_NEXT(index);
|
||||
rt_thread_mdelay(2);
|
||||
continue;
|
||||
} else {
|
||||
@@ -1018,7 +1018,7 @@ void chrg_roll_nor_thread_entry (void *data)
|
||||
(void)chrg_roll_nor_auto_request(idx, pSW,
|
||||
pTHR, pTN, pNOR);
|
||||
}
|
||||
index++;
|
||||
CHRG_CHANNEL_NEXT(index);
|
||||
rt_thread_mdelay(NORTH_POLL_INTERVAL_MS);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -820,7 +820,7 @@ void chrg_roll_sou_thread_entry (void *data)
|
||||
idx = index%(TOTAL_SOU_CHS); // [0, 3]
|
||||
response_part = pROLL->part;
|
||||
if (0 == chrgsouth.enable[idx]) { // 通道未启用
|
||||
index++;
|
||||
CHRG_CHANNEL_NEXT(index);
|
||||
rt_thread_mdelay(10);
|
||||
continue;
|
||||
} else { // 通道启用
|
||||
@@ -837,7 +837,7 @@ void chrg_roll_sou_thread_entry (void *data)
|
||||
chrg_eload_refresh(ID_ELOAD, pROLL->part);
|
||||
}
|
||||
if (pROLL->part < TOTAL_MB_R) {
|
||||
index++;
|
||||
CHRG_CHANNEL_NEXT(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,19 @@
|
||||
|
||||
#include <rtthread.h>
|
||||
|
||||
/*
|
||||
* Channel polling mode:
|
||||
* 1 - multi-channel hardware, advance the polling channel index;
|
||||
* 0 - single-channel hardware, keep polling channel 0.
|
||||
*/
|
||||
#define CHRG_MULTI_CHANNEL 1
|
||||
|
||||
#if CHRG_MULTI_CHANNEL
|
||||
#define CHRG_CHANNEL_NEXT(index) do { (index)++; } while (0)
|
||||
#else
|
||||
#define CHRG_CHANNEL_NEXT(index) do { } while (0)
|
||||
#endif
|
||||
|
||||
// 4路选通
|
||||
typedef enum {
|
||||
IDX_CH1 = 0, // 通路1
|
||||
|
||||
Reference in New Issue
Block a user