From 9f9f6db125efd3efebef7ddf3675bf4c730aa5d8 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Thu, 14 Sep 2023 18:01:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=B5=8B=E7=A0=81=E6=9C=AA?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E6=89=93=E5=BC=80=E6=80=A5=E5=81=9C?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4=E4=B8=80=E7=9B=B4=E5=BF=99=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- python/file/checker_slave_20230908.bin | Bin 74804 -> 0 bytes source/ReadMe.txt | 8 +++++ source/main/compiler_info.h | 2 +- source/mycopy.py | 6 ++-- source/task/process.c | 40 +++++++++++++++++++++---- 5 files changed, 46 insertions(+), 10 deletions(-) delete mode 100644 python/file/checker_slave_20230908.bin diff --git a/python/file/checker_slave_20230908.bin b/python/file/checker_slave_20230908.bin deleted file mode 100644 index 8e5d2e19b0d8fae561a6df305f22733e6d3e49fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74804 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 diff --git a/source/ReadMe.txt b/source/ReadMe.txt index 75f4047..610973b 100644 --- a/source/ReadMe.txt +++ b/source/ReadMe.txt @@ -165,5 +165,13 @@ 控制逻辑完成60% 2023.9.9 完成赋码控制,验证通过 +2023.9.12 + 发现开启心跳注码会死机 +2023.9.14 + 启动注码输出通道改到9 + 设置异常报警翻转次数,在次数不为0是只刷新次数不再设置回调 + 急停时管壳挡板设为0(挡住管壳) + 解除急停时解除忙状态 + \ No newline at end of file diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h index e36617f..8fc3218 100644 --- a/source/main/compiler_info.h +++ b/source/main/compiler_info.h @@ -6,7 +6,7 @@ -#define BUILD_DATE "2023-09-11 10:28:07" +#define BUILD_DATE "2023-09-14 17:45:04" #define SOFT_VERSION "0.01" diff --git a/source/mycopy.py b/source/mycopy.py index e9df56f..9720da7 100644 --- a/source/mycopy.py +++ b/source/mycopy.py @@ -164,9 +164,9 @@ def main(): with open(boot_dst,"wb") as f: f.write(d) print(boot_dst+" create boot file success.") - sql=mysql.sql() - if(sql.init(SQL_BOOT_PATH)==True): - sql.insert(boot_dst) + #sql=mysql.sql() + #if(sql.init(SQL_BOOT_PATH)==True): + # sql.insert(boot_dst) else: print("please build bootloader to create boot file") if __name__=="__main__": diff --git a/source/task/process.c b/source/task/process.c index d97c5cc..e31d29f 100644 --- a/source/task/process.c +++ b/source/task/process.c @@ -41,7 +41,7 @@ #define OUTPUT_CLAMP_CYLINDER 2 #define OUTPUT_LED_OK 3 #define OUTPUT_LED_ERR 4 -#define OUTPUT_MARK 7 +#define OUTPUT_MARK 9 // 定义总线选择 #define BUS_SELECT_LEFT 0 @@ -104,6 +104,15 @@ output_set(&s->output[OUTPUT_CLAMP_CYLINDER],0);\ output_set(&s->output[OUTPUT_MARK],0);} +// 设置异常报警次数 +#define SET_ERR_TIMES(t)\ + {if(s->lederr_times>0){\ + s->lederr_times=t;\ + }else{\ + s->lederr_times=t;\ + later_execute(process_err,s,500);}\ + } + typedef struct{ @@ -141,6 +150,7 @@ typedef struct{ void *tran; array_def *code_data;// 赋码数据 rt_timer_t timer; + int lederr_times;// 异常闪烁次数 int busy;// 忙,此时不再响应启动按键 process_step step;// 流程步数0为空闲 int stop_state;// 急停标志,值1时不运行 @@ -182,20 +192,38 @@ static const char *g_errinfo_table[]={ +// 异常报警 +static void process_err(void *arg) +{ + self_def *s=arg; + if(s->lederr_times%2==1) + { + SET_LED_ERR(); + }else{ + SET_LED_OFF(); + } + if(s->lederr_times>0){ + s->lederr_times--; + later_execute(process_err,s,500); + } +} + // 急停按钮响应函数 static void process_stop(void *arg) { self_def *s=arg; s->stop_state=1; - SET_OUTPUT(OUTPUT_SHELL_BAFFLE,1); - SET_LED_ERR(); + // 管壳挡板,0是挡住 + SET_OUTPUT(OUTPUT_SHELL_BAFFLE,0); + SET_ERR_TIMES(3); DBG_LOG("stop key pressed."); } static void process_run(void *arg) { self_def *s=arg; s->stop_state=0; + s->busy=0; SET_LED_OFF(); DBG_LOG("stop key unpressed."); } @@ -236,7 +264,7 @@ static void process_timeout(void *arg) RESET_OUTPUT(); s->busy=0; - SET_LED_ERR(); + SET_ERR_TIMES(3); } // 重置定时器 static void process_timer_start(void *arg) @@ -333,7 +361,7 @@ static void process_end_slot(void *obj,int ack,array_def *data) self_def *s=obj; SAFE_CHECK(s); if(ack){ - SET_LED_ERR(); + SET_ERR_TIMES(3); // 发送异常信息 process_send_errinfo(s); // 发送赋码结果 @@ -387,7 +415,7 @@ static void process_mark_end(void *arg) SAFE_CHECK(s); // 关闭挡板 - SET_OUTPUT(OUTPUT_SHELL_BAFFLE,1); + SET_OUTPUT(OUTPUT_SHELL_BAFFLE,0); SET_OUTPUT(OUTPUT_MARK,0);