加入test error count ,fix set_bit / clr_bit
This commit is contained in:
parent
1970f178fd
commit
2fabd78466
|
@ -51,16 +51,16 @@
|
|||
|
||||
#define GET_BIT(value, bit) (((value) >> (bit)) & 1) // 读取指定位
|
||||
#define CPL_BIT(value, bit) ((value) ^= (1 << (bit))) // 取反指定位
|
||||
#define SET_BIT(value, bit) ((value) &= ~(1 << (bit))) // 把某个位置0
|
||||
#define CLR_BIT(value, bit) ((value) |= (1 << (bit))) // 把某个位置1
|
||||
#define CLR_BIT(value, bit) ((value) &= ~(1 << (bit))) // 把某个位置0
|
||||
#define SET_BIT(value, bit) ((value) |= (1 << (bit))) // 把某个位置1
|
||||
|
||||
#define show_err(fmt, ...) \
|
||||
do \
|
||||
{ \
|
||||
/* 擦除行, 输出 */ \
|
||||
sprintf(err.str + strlen(err.str), CSI_START "2K" fmt, ##__VA_ARGS__); \
|
||||
err.cnt++; \
|
||||
err.is_showed = false; \
|
||||
#define show_err(fmt, ...) \
|
||||
do \
|
||||
{ \
|
||||
/* 擦除行, 输出 */ \
|
||||
sprintf(ec_error.str + strlen(ec_error.str), CSI_START "2K" fmt, ##__VA_ARGS__); \
|
||||
ec_error.cnt++; \
|
||||
ec_error.is_showed = false; \
|
||||
} while (0)
|
||||
|
||||
#define time_cmp(a, b, CMP) \
|
||||
|
@ -103,7 +103,7 @@ static struct
|
|||
char str[1024];
|
||||
size_t cnt;
|
||||
bool is_showed;
|
||||
} err;
|
||||
} ec_error;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
@ -118,6 +118,7 @@ typedef struct
|
|||
ec_timet max_in_out_time_diff[32];
|
||||
|
||||
bool error[32];
|
||||
size_t err_cnt[32];
|
||||
} io_test_t;
|
||||
|
||||
io_test_t io_test[MAX_SLAVE + 1] = {0};
|
||||
|
@ -180,7 +181,7 @@ static void show_check(void)
|
|||
|
||||
char ch;
|
||||
bool is_first = true;
|
||||
err.is_showed = true;
|
||||
ec_error.is_showed = true;
|
||||
for (;;)
|
||||
{
|
||||
// 按 'q` 键退出
|
||||
|
@ -195,17 +196,17 @@ static void show_check(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
printf(CSI_START "4F"); // 光标上移2行,到行首
|
||||
printf(CSI_START "4F"); // 光标上移4行,到行首
|
||||
for (int i = 1; i <= ec_slavecount; i++)
|
||||
{
|
||||
printf(CSI_START "4F"); // 光标上移4行,到行首
|
||||
printf(CSI_START "5F"); // 光标上移5行,到行首
|
||||
}
|
||||
}
|
||||
if (!err.is_showed)
|
||||
if (!ec_error.is_showed)
|
||||
{
|
||||
printf("%s", err.str); // 输出
|
||||
err.str[0] = '\0';
|
||||
err.is_showed = true;
|
||||
printf("%s", ec_error.str); // 输出
|
||||
ec_error.str[0] = '\0';
|
||||
ec_error.is_showed = true;
|
||||
}
|
||||
printf("ID | Type | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |\n"
|
||||
"---+-------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+\n");
|
||||
|
@ -309,12 +310,40 @@ static void show_check(void)
|
|||
{
|
||||
p += sprintf(p, " | | | | | | | |");
|
||||
}
|
||||
// err_cnt
|
||||
p += sprintf(p, "\n |ErrCnt |");
|
||||
j = 0;
|
||||
for (; j < io_test[i].input_bytes; j++)
|
||||
{
|
||||
for (int k = 0; k < 8; k++)
|
||||
{
|
||||
int idx = j * 8 + k;
|
||||
if (io_test[i].err_cnt[idx] == 0)
|
||||
{
|
||||
p += sprintf(p, " 0");
|
||||
}
|
||||
else if (io_test[i].err_cnt[idx] > 999)
|
||||
{
|
||||
p += sprintf(p, SET_COLOR(B_YELLOW, "999+"));
|
||||
}
|
||||
else
|
||||
{
|
||||
p += sprintf(p, SET_COLOR(B_YELLOW, " %3lu"), io_test[i].err_cnt[idx]);
|
||||
}
|
||||
p += sprintf(p, "|");
|
||||
}
|
||||
}
|
||||
for (; j < 2; j++)
|
||||
{
|
||||
p += sprintf(p, " | | | | | | | |");
|
||||
}
|
||||
|
||||
p += sprintf(p, "\n---+-------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+\n");
|
||||
printf("%s", buff);
|
||||
}
|
||||
printf("Processdata cycle %5d, cycletime %dus, Wck %3d, DCtime %12" PRId64 "ns, dt " CSI_START "K" /*擦除到行尾*/ "%6" PRId64 "ns\n",
|
||||
dorun, cycletime, wkc, ec_DCtime, gl_delta);
|
||||
printf("Test cycle %d, Test step %3d, Error count %lu " SET_COLOR(F_B_RED, "(Press 'q' to exit)\n"), test_cycle, test_step, err.cnt);
|
||||
printf("Test cycle %d, Test step %3d, Error count %lu " SET_COLOR(F_B_RED, "(Press 'q' to exit)\n"), test_cycle, test_step, ec_error.cnt);
|
||||
|
||||
fflush(stdout);
|
||||
osal_usleep(50000);
|
||||
|
@ -478,6 +507,8 @@ static void check_io()
|
|||
if (time_cmp(&io_test[i].check_stop_time[idx], ¤t_time, <)) // 到期
|
||||
{
|
||||
io_test[i].error[idx] = true;
|
||||
io_test[i].err_cnt[idx]++;
|
||||
CLR_BIT(io_test[i].is_changed[j], k);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue