コード例 #1
0
ファイル: app_hmi.c プロジェクト: nathanlnw/tw705_HB_gghypt
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
    }
}
コード例 #2
0
ファイル: app_hmi.c プロジェクト: nathanlnw/NXCDMA
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);            
     }  
}
コード例 #3
0
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);       
     }  
}
コード例 #4
0
ファイル: Menu_4_2_chaosu.c プロジェクト: mildrock/BD1
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;
}