static void HMI_thread_entry(void *parameter) { u8 counter_printer = 0; TIRED_DoorValue_Init(); Init_4442(); IC_info_default(); while(1) { pMenuItem = &Menu_0_0_self_Checking; pMenuItem->show(); pMenuItem->timetick(10); pMenuItem->keypress(10); if(self_checking_result == 10) //自检正常 { //rt_kprintf("\r\n------------------自检正常,退出-------"); break; } if(self_checking_result == 30) //自检异常2,按 确认 后为3 { //rt_kprintf("\r\n------------------自检异常,退出-------"); break; } rt_thread_delay(25); } //--------自检过后操作DF 读取----- DF_init(); SysConfiguration(); // system config total_ergotic(); DF_initOver = 1; Gsm_RegisterInit(); // init register states ,then it will power on the module SIMID_Convert_SIMCODE(); // translate //----------------------------------------------------------------- if(Login_Menu_Flag == 0) { JT808Conf_struct.Regsiter_Status = 0; //需要重新注册 pMenuItem = &Menu_0_0_password; pMenuItem->show(); } else { pMenuItem = &Menu_1_Idle; pMenuItem->show(); } while (1) { // 6. ACC 状态检测 ACC_status_Check(); #if 1 pMenuItem->timetick( 10 ); pMenuItem->keypress( 10 ); //------- if((print_rec_flag == 1) && (TTS_Var.Playing == 0)) // 为了避开大电流 播报时候不打印 { counter_printer++; if(counter_printer >= 5) //加电后1s开始打印,打印间隔必须>300ms { counter_printer = 0; #ifdef SPD_WARN_SAVE if(ExpSpdRec_write > 0) { ReadEXspeed(1); WatchDog_Feed(); Dis_chaosu(data_tirexps); } #endif print_rec_flag = 2; DaYin = 1; //开始打印 WatchDog_Feed(); } } else if(print_rec_flag == 2) { counter_printer++; if(counter_printer >= 2) //打印间隔必须>300ms 7 { counter_printer = 0; Dayin_Fun(1); } } if(ASK_Centre.ASK_disp_Enable == 1) { ASK_Centre.ASK_disp_Enable = 0; pMenuItem = &Menu_3_1_CenterQuesSend; pMenuItem->show(); } else if(TextInfo.TEXT_SD_FLAG == 1) { TextInfo.TEXT_SD_FLAG = 0; pMenuItem = &Menu_7_CentreTextDisplay; pMenuItem->show(); } #endif //-------------------------------------------- rt_thread_delay(25); //25 } }
static void HMI_thread_entry(void* parameter) { u8 counter_printer=0; // finsh_init(&shell->parser); rt_kprintf("\r\n ---> HMI thread start !\r\n"); //------------ lcd related -------------- // Init_lcdkey(); // delay_ms(400); // 屏rst 拉低 维持一段时间 //lcd_init(); //-------- IC card related --------------- Init_4442(); rt_kprintf("\r\nVechicle_Info.loginpassword_flag=%d\r\n",Login_Menu_Flag); if(Login_Menu_Flag==0) { JT808Conf_struct.Regsiter_Status=0; //需要重新注册 pMenuItem=&Menu_0_0_password; pMenuItem->show(); } else { pMenuItem=&Menu_1_Idle; pMenuItem->show(); } while (1) { KeyCheckFun(); pMenuItem->timetick( 10 ); pMenuItem->keypress( 10 ); if(print_rec_flag==1) { counter_printer++; if(counter_printer>=10)//加电后1s开始打印,打印间隔必须>300ms { counter_printer=0; if(TiredDrv_write>0) { ReadPiLao(1); Dis_pilao(data_tirexps); } if(ExpSpdRec_write>0) { ReadEXspeed(1); Dis_chaosu(data_tirexps); } Fetch_15minSpeed(15); print_rec_flag=2; DaYin=1;//开始打印 /*if(0==Fetch_15minSpeed(15)) { print_rec_flag=2; DaYin=1;//开始打印 } else { DaYin=0; print_rec_flag=0; //----------------------------------------------------- gps_onoff(1); //开启GPS 模块的点 print_workingFlag=0; // 打印状态进行中 Power_485CH1_ON; // 开启485 //Speak_ON; // 开启音频功放 //----------------------------------------------------- }*/ WatchDog_Feed(); rt_kprintf("\r\n----------开始打印"); } } else if(print_rec_flag==2) { counter_printer++; if(counter_printer>=4)//打印间隔必须>300ms 7 { counter_printer=0; //if(ModuleStatus&Status_GPS) Dayin_Fun(1); /*else Dayin_Fun(0);*/ } } //---------- IC card insert -------------------------- // if(GSM_PWR.GSM_power_over==1) CheckICInsert(); //------- Buzzer ----------------------------------- KeyBuzzer(IC_CardInsert); //-------------------------------------------- if(ASK_Centre.ASK_disp_Enable==1) { ASK_Centre.ASK_disp_Enable=0; pMenuItem=&Menu_3_1_CenterQuesSend; pMenuItem->show(); } else if(TextInfo.TEXT_SD_FLAG==1) { TextInfo.TEXT_SD_FLAG=0; pMenuItem=&Menu_7_CentreTextDisplay; pMenuItem->show(); } //-------------------------------------------- rt_thread_delay(10); } }
static void HMI_thread_entry(void* parameter) { u8 counter_printer=0; // finsh_init(&shell->parser); rt_kprintf("\r\n ---> HMI thread start !\r\n"); //------------ lcd related -------------- Init_lcdkey(); lcd_init(); rt_kprintf("\r\nJT808Conf_struct.password_flag=%d\r\n",JT808Conf_struct.password_flag); if(JT808Conf_struct.password_flag==0) { JT808Conf_struct.Regsiter_Status=0; //需要重新注册 pMenuItem=&Menu_0_0_password; pMenuItem->show(); } else { pMenuItem=&Menu_1_Idle; pMenuItem->show(); } while (1) { KeyCheckFun(); pMenuItem->timetick( 10 ); pMenuItem->keypress( 10 ); if(print_rec_flag==1) { counter_printer++; if(counter_printer>=20)//加电后1s开始打印,打印间隔必须>300ms { counter_printer=0; if(TiredDrv_write>0) { ReadPiLao(1); Dis_pilao(data_tirexps); } if(ExpSpdRec_write>0) { ReadEXspeed(1); Dis_chaosu(data_tirexps); } if(0==Fetch_15minSpeed(15)) { print_rec_flag=2; DaYin=1;//开始打印 } else { DaYin=0; print_rec_flag=0; } WatchDog_Feed(); rt_kprintf("\r\n----------开始打印"); } } else if(print_rec_flag==2) { counter_printer++; if(counter_printer>=7)//打印间隔必须>300ms 7 { counter_printer=0; if(ModuleStatus&Status_GPS) Dayin_Fun(1); else Dayin_Fun(0); } } //-------------------------------------------- if(ASK_Centre.ASK_disp_Enable==1) { ASK_Centre.ASK_disp_Enable=0; pMenuItem=&Menu_3_1_CenterQuesSend; pMenuItem->show(); } else if(TextInfo.TEXT_SD_FLAG==1) { TextInfo.TEXT_SD_FLAG=0; pMenuItem=&Menu_7_CentreTextDisplay; pMenuItem->show(); } //-------------------------------------------- rt_thread_delay(5); } }
static void keypress(unsigned int key) { unsigned char temp=0; unsigned char exspeed_num=0; switch(KeyValue) { case KeyValueMenu: pMenuItem=&Menu_4_InforTirExspd; pMenuItem->show(); CounterBack=0; ErrorRecord=0;//疲劳超速记录错误清0 StartDisTiredExpspeed=0; expsp_Flag=0;//查看疲劳报警记录过程标志清0; ChaoScreen=1; break; case KeyValueOk: if(ChaoScreen==1) { ChaoScreen=2; exspeed_num=Api_DFdirectory_Query(spd_warn,0); //查询当前疲劳驾驶记录数目 if(exspeed_num>0) { expsp_Flag=1; //rt_kprintf("\r\n 已有 疲劳驾驶 的记录 %d 条\r\n",TiredDrv_write); if(exspeed_num>=3) ReadEXspeed(3); else ReadEXspeed(exspeed_num); Dis_chaosu(data_tirexps); } else { expsp_Flag=2; //rt_kprintf("\r\n无超速驾驶记录 read\r\n"); } } else if(ChaoScreen==2) { ChaoScreen=3; if(expsp_Flag==3) { expsp_Flag=4; ChaoSuNumScreen=0; StartDisTiredExpspeed=1; lcd_fill(0); lcd_text12(18,10,"按下翻逐条查看",14,LCD_MODE_SET); lcd_update_all(); } } break; case KeyValueUP: if(expsp_Flag==4) { if(ChaoSuNumScreen>0) ChaoSuNumScreen--; if(ChaoSuNumScreen<1) ChaoSuNumScreen=1; if(ChaoSuNumScreen%2==1) drawChaoSu_1(); else { if(ErrorRecord==0) { StartDisTiredExpspeed=0; drawChaoSu_2();//开始时间 结束时间 } } } break; case KeyValueDown: if(expsp_Flag==4) { ChaoSuNumScreen++; /*if(ExpSpdRec_write>=3) temp=6; else temp=ExpSpdRec_write*2;*/ if(ChaoSuNumScreen>=temp) ChaoSuNumScreen=temp; if(ChaoSuNumScreen%2==1) drawChaoSu_1(); else { if(ErrorRecord==0) { StartDisTiredExpspeed=0; drawChaoSu_2();//开始时间 结束时间 } } } break; } KeyValue=0; }