#include "app_common.h" #include "../clib/md5.h" #include "../msp/uart0.h" #include "../msp/uart2.h" #include "../app/app_task_gm35.h" #include "../app/app_paraid.h" #include "../app/app_task_relay.h" struct printer_maintenance_global G; U8 ccmodbus_len = 0; #define KEY_RFID_MAP_SIZE 30 U32 code key_rfid_map[KEY_RFID_MAP_SIZE] = { /// key, rfid //0x01,1, ///S1 ///key_map[0] key_map[1] //0x02,11, ///S2 ///key_map[n] key_map[n+1] 0x03,0x02000020, ///呼叫 S2 0x04,0x02000001, ///分诊 S12 0x08,0x03010301, ///一线 S3 医生1 0x08,0x03010302, ///一线 S3 医生2 0x09,0x02000059, ///采血 S13 0x0A,0x02000025, ///心电 S4 0x0B,0x02000003, ///CT S14 0x0F,0x03020301, ///二线 S5 医生1 0x0F,0x03020302, ///二线 S5 医生2 0x10,0x01000008, ///谈话 S15 0x11,0x01000009, ///签字 S6 0x12,0x02000060, ///团注 S16 0x16,0x02000005, ///介入 S7 0x17,0x0100000C, ///置鞘(穿刺) S17 0x18,0x02000023, ///病房 S8 //0x1d,9, ///S16 //0x1f,10, ///S17 //0x1e,0 /// 清零按键,无需亮灯 }; U32 key_rfid_map_out(U32 key) { U8 n; for(n = 0; n < KEY_RFID_MAP_SIZE; n+=2) { if(key == key_rfid_map[n]) { return key_rfid_map[n+1]; } } return 0; } U32 rfid_key_map_out(U32 rfid) { U8 n; for(n = 0; n < KEY_RFID_MAP_SIZE; n+=2) { if(rfid == key_rfid_map[n+1]) { return key_rfid_map[n]; } } return 0; } void L2_register_init() { U8 i = 0; G.p.slaverId = 0x10; G.p.wisdom_car_no = 0x93; //第一台车91,第二台车92 G.p.thrombolytic_ratio = 9; //0.9 G.p.bolus_ratio = 1; //0.9 G.p.hold_ratio = 9; //0.1 G.total_weight = 0; G.pi_weight = 0; G.jing_weight = 0; G.ch_weight[0] = 0; G.ch_weight[1] = 0; G.ch_weight[2] = 0; G.ch_weight[3] = 0; G.thrombolytic_val = G.bolus_val = G.hold_val = 0; G.asga.xaxis = G.asga.yaxis = G.asga.zaxis = 0; G.rfidval = G.rfidHospitalNo = 0; for(i=0;i<6;i++) { G.rfid[i] = 0; } for(i=0;i无效 1:暂时有效 2->永久有效 G.md_slaver_info[1].slaver = SLAVER_ASGA03_ID; //倾角XYZ G.md_slaver_info[1].oper = MODBUS_OPER_READ; G.md_slaver_info[1].reg = 0x04; G.md_slaver_info[1].regnum = 0x03; G.md_slaver_info[1].mask = 2; G.md_slaver_info[2].slaver = SLAVER_SHOW01_ID; //重量2,溶栓,团注,维? G.md_slaver_info[2].oper = MODBUS_OPER_WRITE_M; G.md_slaver_info[2].reg = 0x02; G.md_slaver_info[2].regnum = 0x05; G.md_slaver_info[2].bytes = G.md_slaver_info[2].regnum * 2; G.md_slaver_info[2].buf = (U8*)&G.jing_weight; G.md_slaver_info[2].mask = 0; G.md_slaver_info[3].slaver = SLAVER_SHOW01_ID; //RFID G.md_slaver_info[3].oper = MODBUS_OPER_WRITE_M; G.md_slaver_info[3].reg = 0x07; G.md_slaver_info[3].regnum = 0x01; G.md_slaver_info[3].bytes = G.md_slaver_info[3].regnum * 2; G.md_slaver_info[3].buf = (U8*)&G._key; G.md_slaver_info[3].mask = 0; G.md_slaver_info[4].slaver = SLAVER_SHOW01_ID; //显示板按键 G.md_slaver_info[4].oper = MODBUS_OPER_READ; G.md_slaver_info[4].reg = 0x08; G.md_slaver_info[4].regnum = 0x01; G.md_slaver_info[4].mask = 2; G.md_slaver_info[5].slaver = SLAVER_ASGA03_UPDOWN_ID; //升降倾角 G.md_slaver_info[5].oper = MODBUS_OPER_READ; G.md_slaver_info[5].reg = 0x04; G.md_slaver_info[5].regnum = 0x03; G.md_slaver_info[5].mask = 2; for(i=0;ioper) { case OPER_SET_DEBUG: G.debug = ccmodbus->buf[0]; break; } } #if 0 void L3_protocol_handler_uart4_fun(U8 *pPara) { #if 0 if(g_at_send_status.module_ok == 0) { if(StrStartsWith(pPara,"OK")) //module ok { g_at_send_status.module_ok = 1; } } else if(g_at_send_status.sim_ok == 0) { if(StrStartsWith(pPara,"+CCID")) //sim ok { L0_uart0_uc('s'); libc_memcpy(G.ccid,pPara+7,20); g_at_send_status.sim_ok = 1; } } else if(g_at_send_status.net_ok == 0) { if(StrStartsWith(pPara,"+CREG: 1,1")) //net ok { L0_uart0_uc('n'); g_at_send_status.net_ok = 1; } } else if(g_at_send_status.gprs_ok == 0) { if(StrStartsWith(pPara,"+CGATT:1")) //gprs ok { L0_uart0_uc('g'); g_at_send_status.gprs_ok = 1; } } else if(g_at_send_status.conn_ok == 0) { if(StrStartsWith(pPara,"ALREAY") || StrStartsWith(pPara,"CONNECT OK") /*|| StrStartsWith(pPara,"STATE:CONNECT OK")*/) //conn ok { //ALREAY CONNECT????????????????????????????????????????????????????????????????? L0_uart0_uc('c'); g_at_send_status.conn_ok = 1; } } else if(g_at_send_status.conn_ok == 1) { if(StrStartsWith(pPara,"CLOSE") || StrStartsWith(pPara,"STATE:CLOSED")) //conn close //CLOSE OK / CLOSED { L0_uart0_uc('d'); g_at_send_status.conn_ok = 0; g_at_send_status.tcp_close_stmp = s_nos_tick.t_1s; } } #else if(g_at_send_status.conn_ok == 0) { if(StrStartsWith(pPara,"CONNECT OK") || StrStartsWith(pPara,"STATE:CONNECT OK") /*|| StrStartsWith(pPara,"ALREAY")*/ ) //conn ok { //ALREAY CONNECT不需要判断了,使用AT+CTPSTATUS指令进行查询连接状态 L0_uart0_uc('c'); g_at_send_status.conn_ok = 1; } else if(g_at_send_status.module_ok == 0) { if(StrStartsWith(pPara,"OK")) //module ok { g_at_send_status.module_ok = 1; } } else if(g_at_send_status.sim_ok == 0) { if(StrStartsWith(pPara,"+CCID")) //sim ok { L0_uart0_uc('s'); libc_memcpy(G.ccid,pPara+7,20); getPwd(G.ccid, G.ccid_passwd); g_at_send_status.sim_ok = 1; } } else if(g_at_send_status.net_ok == 0) { if(StrStartsWith(pPara,"+CREG: 1,1")) //net ok { L0_uart0_uc('n'); g_at_send_status.net_ok = 1; } } else if(g_at_send_status.gprs_ok == 0) { if(StrStartsWith(pPara,"+CGATT:1")) //gprs ok { L0_uart0_uc('g'); g_at_send_status.gprs_ok = 1; } } } else { if(StrStartsWith(pPara,"CLOSE") || StrStartsWith(pPara,"STATE:CLOSED")) //conn close //CLOSE OK / CLOSED { L0_uart0_uc('d'); g_at_send_status.conn_ok = 0; } } #endif } #endif void L2_do_board_reset(void) { G.reset = 1; //wdt stop feed GM35_DISABLE(); //gm35 poweroff } void L2_do_gm35_reset(void) { GM35_DISABLE(); //gm35 poweroff Lc_delay_ms(5000); GM35_ENABLE(); }