コード例 #1
0
static void timetick(unsigned int systick)  
{
	//u8 Reg_buf[22];  
	
if(reset_firstset==6)
	{
	reset_firstset++;
	//----------------------------------------------------------------------------------	
		JT808Conf_struct.password_flag=0;     // clear  first flag		
		Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));    
	//----------------------------------------------------------------------------------
	}
else if((reset_firstset>=7)&&(reset_firstset<=1207))//50ms一次,,60s
	{
	if(reset_firstset==1207)
		reset_firstset=0;
	lcd_fill(0);
	lcd_text12(0,3,"需重新设置车牌号和ID",20,LCD_MODE_SET);
	lcd_text12(24,18,"重新加电查看",12,LCD_MODE_SET); 
	lcd_update_all();
	}
else
	{
	if(Antenna_open_flag)
		return;
	//循环显示待机界面
	tickcount++;
	if(tickcount>=10) 
		{
		tickcount=0;	
	    Disp_Idle();
		}
	}
}
コード例 #2
0
ファイル: Device_808.c プロジェクト: nathanlnw/NXCDMA_default
void  debug_relay(u8 *str)
{
    if (strlen((const char*)str)==0)
    {
        rt_kprintf("\r\n继电器(1:断开0:闭合)JT808Conf_struct.relay_flag=%d",JT808Conf_struct.relay_flag);
    }
    else
    {
        if(str[0]=='1')
        {
            Car_Status[2]|=0x08;     // 需要控制继电器
            JT808Conf_struct.relay_flag=1;
            Enable_Relay();
            rt_kprintf("\r\n  断开继电器,JT808Conf_struct.relay_flag=%d\r\n",JT808Conf_struct.relay_flag);
        }
        else if(str[0]=='0')
        {
            Car_Status[2]&=~0x08;    // 需要控制继电器
            JT808Conf_struct.relay_flag=0;
            Disable_Relay();
            rt_kprintf("\r\n  接通继电器,JT808Conf_struct.relay_flag=%d\r\n",JT808Conf_struct.relay_flag);
        }
    }
    Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
    rt_kprintf("\r\n(debug_relay)状态信息,[0]=%X  [1]=%X  [2]=%X  [3]=%X",Car_Status[0],Car_Status[1],Car_Status[2],Car_Status[3]);
}
コード例 #3
0
static void keypress(unsigned int key)
{

	switch(KeyValue)
		{
		case KeyValueMenu:
			pMenuItem=&Menu_5_other;
			pMenuItem->show();
			CounterBack=0;

			concuss_screen=0;
			break;
			
		case KeyValueOk:
			if(concuss_screen==0)
				{
				concuss_screen=1;
				JT808Conf_struct.concuss_step=concuss_step;
				Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
			

                concuss_dis[9]=concuss_step/10+'0';
				concuss_dis[10]=concuss_step%10+'0';
				lcd_fill(0);
				lcd_text12(20,3,"震动级别设置成功",16,LCD_MODE_SET);
				lcd_text12(30,19,(char *)concuss_dis,sizeof(concuss_dis),LCD_MODE_SET);
				lcd_update_all();
				}
			break;
			
		case KeyValueUP:
			 if(concuss_step==0)
				concuss_step=79;
			else if(concuss_step>=1)
				concuss_step--;
			
			concuss_dis[9]=concuss_step/10+'0';
			concuss_dis[10]=concuss_step%10+'0';
			lcd_fill(0);
			lcd_text12(30,10,(char *)concuss_dis,sizeof(concuss_dis),LCD_MODE_SET);
			lcd_update_all();
						
			break;
			
		case KeyValueDown:
			concuss_step++;
			if(concuss_step>79)
				concuss_step=0;
			
			concuss_dis[9]=concuss_step/10+'0';
			concuss_dis[10]=concuss_step%10+'0';
			lcd_fill(0);
			lcd_text12(30,10,(char *)concuss_dis,sizeof(concuss_dis),LCD_MODE_SET);
			lcd_update_all();
			break;	
		}
 KeyValue=0;
}
コード例 #4
0
static void timetick(unsigned int systick)  
{
	//u8 Reg_buf[22];  
if(deviceID_set_num==10)
	{
	deviceID_set_num=0;
	pMenuItem=&Menu_0_11_deviceID;
	pMenuItem->show();
	}	
else if(reset_firstset==6)
	{
	reset_firstset++;
	//----------------------------------------------------------------------------------	
	JT808Conf_struct.password_flag=0;     // clear  first flag		
	Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));    
      //----------------------------------------------------------------------------------
	}
else if(reset_firstset>=7)//50ms一次,,60s
	{
	reset_firstset++;
	lcd_fill(0);
	lcd_text12(0,3,"需重新设置车牌号和ID",20,LCD_MODE_SET);
	lcd_text12(24,18,"重新加电查看",12,LCD_MODE_SET); 
	lcd_update_all();
	}
else
	{
	//主电源掉电
	if(Warn_Status[1]&0x01)  
		{
		BuzzerFlag=11;
		lcd_fill(0);
		lcd_text12(30,10,"主电源掉电",10,LCD_MODE_SET); 
		lcd_update_all();
		}
	//循环显示待机界面
	tickcount++;
	if(tickcount>=16) 
		{
		tickcount=0;
	       Disp_Idle();
		}
	}
    
Cent_To_Disp();

}
コード例 #5
0
static void keypress(unsigned int key)
{
	switch(KeyValue)
		{
		case KeyValueMenu:
			if(comfirmation_flag==4)
				{
				pMenuItem=&Menu_1_Idle;
				pMenuItem->show();
				}
			else
				{
				pMenuItem=&Menu_0_loggingin;
				pMenuItem->show();
				}
			col_screen=0;
			CarBrandCol_Cou=1;
			comfirmation_flag=0;
			break;
		case KeyValueOk:
            if(col_screen==1)
				{
				col_screen=2;
				CarSet_0_counter=1;//
				menu_color_flag=1;//车牌颜色设置完成
                lcd_fill(0);
				lcd_text12(20,3,(char *)car_col,13,LCD_MODE_SET);
				lcd_text12(12,18,"按确认键查看信息",16,LCD_MODE_SET);
				lcd_update_all();
				}
			else if(col_screen==2)
				{
				menu_color_flag=0;
				
				col_screen=3;
				comfirmation_flag=1;//保存设置信息标志
				lcd_fill(0);
			       lcd_text12(0,0,Menu_Car_license,8,LCD_MODE_SET);
				lcd_text12(54,0,Menu_VechileType,6,LCD_MODE_SET);
				lcd_text12(96,0,(char *)Menu_VecLogoColor,4,LCD_MODE_SET);
				lcd_text12(0,10,"SIM卡号:",8,LCD_MODE_SET);
				lcd_text12(48,10,Menu_Sim_Code,12,LCD_MODE_SET);
				lcd_text12(24,20,"确定",4,LCD_MODE_INVERT);
				lcd_text12(72,20,"取消",4,LCD_MODE_SET);
				lcd_update_all();
				}
			else if(comfirmation_flag==1)
				{
				col_screen=0;
				comfirmation_flag=4;
				//保存设置的信息
				lcd_fill(0);
				lcd_text12(18,3,"保存已设置信息",14,LCD_MODE_SET);
				lcd_text12(0,18,"按菜单键进入待机界面",20,LCD_MODE_SET);
				lcd_update_all();

                            //车牌号
				memset(JT808Conf_struct.Vechicle_Info.Vech_Num,0,sizeof(JT808Conf_struct.Vechicle_Info.Vech_Num));
				memcpy(JT808Conf_struct.Vechicle_Info.Vech_Num,Menu_Car_license+1,strlen(Menu_Car_license)-1);
				// 车辆类型
				memset(JT808Conf_struct.Vechicle_Info.Vech_Type,0,sizeof(JT808Conf_struct.Vechicle_Info.Vech_Type));
				memcpy(JT808Conf_struct.Vechicle_Info.Vech_Type,Menu_VechileType,strlen(Menu_VechileType));
                //车辆sim卡号
            	memset(JT808Conf_struct.Vechicle_Info.Vech_sim,0,sizeof(JT808Conf_struct.Vechicle_Info.Vech_sim));
				memcpy(JT808Conf_struct.Vechicle_Info.Vech_sim,Menu_Sim_Code,strlen(Menu_Sim_Code));
                
				// 车牌颜色
				JT808Conf_struct.Vechicle_Info.Dev_Color=Menu_color_num;
				//速度获取方式     设置信息设置后就取相应的方式
				if(menu_speedtype==1)
					{
					JT808Conf_struct.Speed_GetType=1; 
					JT808Conf_struct.DF_K_adjustState=1;		
					ModuleStatus|=Status_Pcheck;
					}
				else
					{
					JT808Conf_struct.Speed_GetType=0;  
					JT808Conf_struct.DF_K_adjustState=0;	
					ModuleStatus&=~Status_Pcheck;
					}
				//车辆设置完成
				JT808Conf_struct.password_flag=1; 
				//  存储
				Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));

				
				memcpy((char*)IMSI_CODE+3,(char*)JT808Conf_struct.Vechicle_Info.Vech_sim,12);
	            IMSI_Convert_SIMCODE(); //  translate 
				}
			else if(comfirmation_flag==2)
				{
				col_screen=0;
				comfirmation_flag=3;
				lcd_fill(0);
				lcd_text12(6, 3,"请确认是否重新设置",18,LCD_MODE_SET);
				lcd_text12(12,18,"按确认键重新设置",16,LCD_MODE_SET);
				lcd_update_all();
				}
			else if(comfirmation_flag==3)
				{
				col_screen=0;
				comfirmation_flag=0;
				//重新设置
				pMenuItem=&Menu_0_loggingin;
				pMenuItem->show();
				
				comfirmation_flag=0;
				col_screen=0;
				CarBrandCol_Cou=1;
				}

			break;
		case KeyValueUP:
			if(col_screen==1)
				{
				CarBrandCol_Cou--;
				if(CarBrandCol_Cou<1)
					CarBrandCol_Cou=5;
				car_col_fun(CarBrandCol_Cou);
				}
			else if(col_screen==3)
				{
				comfirmation_flag=1;
				lcd_fill(0);
			       lcd_text12(0,0,Menu_Car_license,8,LCD_MODE_SET);
				lcd_text12(54,0,Menu_VechileType,6,LCD_MODE_SET);
				lcd_text12(96,0,(char *)Menu_VecLogoColor,4,LCD_MODE_SET);
				lcd_text12(0,10,"SIM卡号:",8,LCD_MODE_SET);
				lcd_text12(48,10,Menu_Sim_Code,12,LCD_MODE_SET);
				lcd_text12(24,20,"确定",4,LCD_MODE_INVERT);
				lcd_text12(72,20,"取消",4,LCD_MODE_SET);
				lcd_update_all();
				}

			break;
		case KeyValueDown:
			if(col_screen==1)
				{
				CarBrandCol_Cou++;
				if(CarBrandCol_Cou>5)
					CarBrandCol_Cou=1;
				car_col_fun(CarBrandCol_Cou);
				}
			else if(col_screen==3)
				{
				comfirmation_flag=2;
				lcd_fill(0);
				   lcd_text12(0,0,Menu_Car_license,8,LCD_MODE_SET);
				lcd_text12(54,0,Menu_VechileType,6,LCD_MODE_SET);
				lcd_text12(96,0,(char *)Menu_VecLogoColor,4,LCD_MODE_SET);
				lcd_text12(0,10,"SIM卡号:",8,LCD_MODE_SET);
				lcd_text12(48,10,Menu_Sim_Code,12,LCD_MODE_SET);
				lcd_text12(24,20,"确定",4,LCD_MODE_SET);
				lcd_text12(72,20,"取消",4,LCD_MODE_INVERT);
				lcd_update_all();
				}

			break;
		}
	KeyValue=0;
}
コード例 #6
0
static void keypress(unsigned int key)
{
switch(KeyValue)
	{
	case KeyValueMenu:
		pMenuItem=&Menu_3_InforInteract;
		pMenuItem->show();
		CounterBack=0;
		
		CarStatus_change=1;//Ñ¡Ôñ
		CarStatus_screen=0;//½çÃæÇл»Ê¹ÓÃ
		break;
	case KeyValueOk:
		
		if(CarStatus_screen==0)
			{
			CarStatus_screen=1;
			lcd_fill(0);
			lcd_text12(12,10,"·¢ËͳµÁ¾×´Ì¬",12,LCD_MODE_SET);
			lcd_text12(88,10,(char *)car_status_str[CarStatus_change],4,LCD_MODE_SET);
			lcd_update_all();
			}
		else if(CarStatus_screen==1)
			{
			CarStatus_screen=2;
                     JT808Conf_struct.LOAD_STATE=CarStatus_change;
			Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));

		      Car_Status[2]&=~0x03;      //  ¿ÕÔØ
	         if(CarStatus_change==1)
				Car_Status[2]|=0x01;   //°ëÔØ
			else if(CarStatus_change==2)
				Car_Status[2]|=0x03;   //ÂúÔØ  

            //Éϱ¨Î»ÖÃÐÅÏ¢
			PositionSD_Enable();
			Current_UDP_sd=1;

			lcd_fill(0);
			lcd_text12(20,10,(char *)car_status_str[CarStatus_change],4,LCD_MODE_SET);
			lcd_text12(48,10,"·¢Ëͳɹ¦",8,LCD_MODE_SET);
			lcd_update_all();
			
			CarStatus_change=1;//Ñ¡Ôñ
			CarStatus_screen=0;//½çÃæÇл»Ê¹ÓÃ
			}
		break;
	case KeyValueUP:
		if(CarStatus_screen==0)
			{			
			if(CarStatus_change<=0)
				CarStatus_change=2;
			else
				CarStatus_change--;
			CarStatus(CarStatus_change);
			}
		break;
	case KeyValueDown:
		if(CarStatus_screen==0)
			{		
			if(CarStatus_change>=2)
				CarStatus_change=0;
			else
				CarStatus_change++;
			
			CarStatus(CarStatus_change);
			}
		break;
	}
KeyValue=0;
}
コード例 #7
0
static void keypress(unsigned int key)
{
switch(KeyValue)
	{
	case KeyValueMenu:
		pMenuItem=&Menu_3_InforInteract;
		pMenuItem->show();
		CounterBack=0;
		
		CarStatus_change=1;//Ñ¡Ôñ
		CarStatus_screen=0;//½çÃæÇл»Ê¹ÓÃ
		break;
	case KeyValueOk:
		
		if(CarStatus_screen==0)
			{
			CarStatus_screen=1;
			lcd_fill(0);
			lcd_text12(12,10,"·¢ËͳµÁ¾×´Ì¬",12,LCD_MODE_SET);
			lcd_text12(88,10,(char *)car_status_str[CarStatus_change],4,LCD_MODE_SET);
			lcd_update_all();
			JT808Conf_struct.LOAD_STATE=CarStatus_change;
			Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
			}
		else if(CarStatus_screen==1)
			{
			CarStatus_screen=2;	
			/*memset(send_data,0,sizeof(send_data));
			send_data[0]=0x0F;
			send_data[1]=0xF0;
			send_data[2]=0x00;
			send_data[3]=0x00;
			send_data[4]=CarStatus_change+1;
			rt_mb_send(&mb_hmi, (rt_uint32_t)&send_data[0]);*/

			lcd_fill(0);
			lcd_text12(20,10,(char *)car_status_str[CarStatus_change],4,LCD_MODE_SET);
			lcd_text12(48,10,"·¢Ëͳɹ¦",8,LCD_MODE_SET);
			lcd_update_all();
			}
		break;
	case KeyValueUP:
		if(CarStatus_screen==0)
			{			
			CarStatus_change--;
			if(CarStatus_change<=0)
				CarStatus_change=0;
			CarStatus(CarStatus_change);
			}
		break;
	case KeyValueDown:
		if(CarStatus_screen==0)
			{		
			CarStatus_change++;
			if(CarStatus_change>=2)
				CarStatus_change=2;
			CarStatus(CarStatus_change);
			}
		break;
	}
KeyValue=0;
}
コード例 #8
0
ファイル: Menu_5_6_Concuss.c プロジェクト: mildrock/705_1
static void keypress(unsigned int key)
{

	switch(key)
		{
		case KEY_MENU:
			pMenuItem=&Menu_5_other;
			pMenuItem->show();

			concuss_screen=0;
			break;
			
		case KEY_OK:
			if(concuss_screen==0)
				{
				concuss_screen=1;
				
				if( jt808_param.id_0x005D != concuss_step )
					{
					jt808_param.id_0x005D = concuss_step;
					param_save(1);
					rt_device_init( &dev_mma8451 );
					}
					#if NEED_TODO
				JT808Conf_struct.concuss_step=concuss_step;
				Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
			#endif

                concuss_dis[9]=concuss_step/10+'0';
				concuss_dis[10]=concuss_step%10+'0';
				lcd_fill(0);
				lcd_text12(20,3,"震动级别设置成功",16,LCD_MODE_SET);
				lcd_text12(30,19,(char *)concuss_dis,sizeof(concuss_dis),LCD_MODE_SET);
				lcd_update_all();
				}
			break;
			
		case KEY_UP:
			if(concuss_screen==0)
			{
				 if(concuss_step==0)
					concuss_step=79;
				else if(concuss_step>=1)
					concuss_step--;
				
				concuss_dis[9]=concuss_step/10+'0';
				concuss_dis[10]=concuss_step%10+'0';
				lcd_fill(0);
				lcd_text12(30,10,(char *)concuss_dis,sizeof(concuss_dis),LCD_MODE_SET);
				lcd_update_all();
			}
						
			break;
			
		case KEY_DOWN:
			if(concuss_screen==0)
			{
				concuss_step++;
				if(concuss_step>79)
					concuss_step=0;
				
				concuss_dis[9]=concuss_step/10+'0';
				concuss_dis[10]=concuss_step%10+'0';
				lcd_fill(0);
				lcd_text12(30,10,(char *)concuss_dis,sizeof(concuss_dis),LCD_MODE_SET);
				lcd_update_all();
			}
			break;	
		}
}
コード例 #9
0
ファイル: SMS.c プロジェクト: nathanlnw/TJ_JTJ_TW703_3020C
/*********************************************************************************
*函数名称:void SMS_protocol(u8 *instr,u16 len)
*功能描述:接收到短信后参数处理函数
*输    入:instr原始短信数据,len长度
*输    出:none 
*返 回 值:none
*作    者:白养民
*创建日期:2013-05-29
*---------------------------------------------------------------------------------
*修 改 人:
*修改日期:
*修改描述:
*********************************************************************************/
void   SMS_protocol (u8 *instr,u16 len, u8  ACKstate)   //  ACKstate 
{
	char	sms_content[60];		///短信命令区"()"之间的内容
	char	sms_ack_data[60];		///短信每个命令包括'#'符的完整内容
	u8	u8TempBuf[6];
	u16	i=0,j=0;
	u16  cmdLen,u16Temp;
	char *p_Instr;
	char *pstrTemp,*pstrTempStart,*pstrTempEnd;

	//SYSID		///修改该值,保存flash
	///应答短信包头部分
	memset(SMS_Service.SMS_sd_Content,0,sizeof(SMS_Service.SMS_sd_Content));
	strcpy(SMS_Service.SMS_sd_Content,JT808Conf_struct.Vechicle_Info.Vech_Num);
	strcat(SMS_Service.SMS_sd_Content,"#");// Debug
	strcat(SMS_Service.SMS_sd_Content,DeviceNumberID);// Debug
	/*************************处理信息****************************/
	p_Instr=(char *)instr;
	for(i=0;i<len;i++)
		{
		pstrTemp=strchr(p_Instr,'#');					///查找命令是否存在
		//instr++;
		if(pstrTemp)
			{
			p_Instr=pstrTemp+1;
			pstrTempStart=strchr((char *)pstrTemp,'(');			///查找命令内容开始位置
			pstrTempEnd=strchr((char *)pstrTemp,')');			///查找命令内容结束位置
			if((NULL==pstrTempStart)||(NULL==pstrTempEnd))
				{
				break;
				}
			rt_kprintf("\r\n短信命令格式有效 !");
			///获取命令内容
			memset(sms_ack_data,0,sizeof(sms_ack_data));
			memcpy(sms_ack_data,pstrTemp,pstrTempEnd-pstrTemp+1);

			///获取命令参数区域的内容以及参数长度
			pstrTempStart++;
			pstrTemp++;
			cmdLen=pstrTempEnd-pstrTempStart;
			memset(sms_content,0,sizeof(sms_content));
			rt_memcpy(sms_content,pstrTempStart,cmdLen);

			///进行命令匹配
			if(strncmp(pstrTemp,"DNSR",4)==0)				///  1. 设置域名
				{
				if(cmdLen<=sizeof(DomainNameStr))
					{
					if(pstrTemp[4]=='1')		///主域名
						{
						rt_kprintf("\r\n设置主域名 !");
						memset(DomainNameStr,0,sizeof(DomainNameStr));					  
						memset(SysConf_struct.DNSR,0,sizeof(DomainNameStr));  
						memcpy(DomainNameStr,(char*)pstrTempStart,cmdLen);
						memcpy(SysConf_struct.DNSR,(char*)pstrTempStart,cmdLen);
						Api_Config_write(config,ID_CONF_SYS,(u8*)&SysConf_struct,sizeof(SysConf_struct));
						//----- 传给 GSM 模块------
						DataLink_DNSR_Set(SysConf_struct.DNSR,1); 
						
						///
						Add_SMS_Ack_Content(sms_ack_data,ACKstate);

						//------- add on 2013-6-6
						if(ACKstate==SMS_ACK_none)
						     SD_ACKflag.f_CentreCMDack_0001H=2 ;//DataLink_EndFlag=1; //AT_End(); 先返回结果再挂断  
						else
							   DataLink_EndFlag=1; //AT_End();  
							   
                         //--------    清除鉴权码 -------------------
					     idip("clear");		   

						}
					else if(pstrTemp[4]=='2')	///备用域名
						{
						rt_kprintf("\r\n设置备用域名 !");
						memset(DomainNameStr_aux,0,sizeof(DomainNameStr_aux));					  
						memset(SysConf_struct.DNSR_Aux,0,sizeof(DomainNameStr_aux));
						memcpy(DomainNameStr_aux,(char*)pstrTempStart,cmdLen);
						memcpy(SysConf_struct.DNSR_Aux,(char*)pstrTempStart,cmdLen);
						Api_Config_write(config,ID_CONF_SYS,(u8*)&SysConf_struct,sizeof(SysConf_struct));
						//----- 传给 GSM 模块------
						DataLink_DNSR2_Set(SysConf_struct.DNSR_Aux,1);
						
						///
						Add_SMS_Ack_Content(sms_ack_data,ACKstate);
						}
					else
						{
						continue;
						}
					}
				}
			else if(strncmp(pstrTemp,"PORT",4)==0)			///2. 设置端口
				{
				j=sscanf(sms_content,"%u",&u16Temp);
				if(j)
					{
					if(pstrTemp[4]=='1')		///主端口
						{
						rt_kprintf("\r\n设置主端口=%d!",u16Temp);
						RemotePort_main=u16Temp;
						SysConf_struct.Port_main=u16Temp;
						Api_Config_write(config,ID_CONF_SYS,(u8*)&SysConf_struct,sizeof(SysConf_struct));
						//----- 传给 GSM 模块------
						DataLink_MainSocket_set(RemoteIP_main,RemotePort_main,1);
						///
						Add_SMS_Ack_Content(sms_ack_data,ACKstate);

						//------- add on 2013-6-6
						if(ACKstate==SMS_ACK_none)
						     SD_ACKflag.f_CentreCMDack_0001H=2 ;//DataLink_EndFlag=1; //AT_End(); 先返回结果再挂断  
						else
							  DataLink_EndFlag=1; //AT_End();  

						 //--------    清除鉴权码 -------------------
					     idip("clear");		   	  

						}
					else if(pstrTemp[4]=='2')	///备用端口
						{
						rt_kprintf("\r\n设置备用端口=%d!",u16Temp);
						RemotePort_aux=u16Temp;
						SysConf_struct.Port_Aux=u16Temp;
						Api_Config_write(config,ID_CONF_SYS,(u8*)&SysConf_struct,sizeof(SysConf_struct));
						//----- 传给 GSM 模块------
						DataLink_AuxSocket_set(RemoteIP_aux,RemotePort_aux,1);
						///
						Add_SMS_Ack_Content(sms_ack_data,ACKstate);
						}
					else
						{
						continue;
						}
					}
				
				}
			else if(strncmp(pstrTemp,"DUR",3)==0)				///3. 修改发送间隔
				{
				j=sscanf(sms_content,"%u",&u16Temp);
				if(j)
					{
					
					rt_kprintf("\r\n修改发送间隔! %d",u16Temp);
					dur(sms_content);
					/*
					JT808Conf_struct.DURATION.Default_Dur=u16Temp;
					Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
					*/

					///
					Add_SMS_Ack_Content(sms_ack_data,ACKstate);
					}
				}
			else if(strncmp(pstrTemp,"DEVICEID",8)==0)			///4. 修改终端ID
				{
				if(cmdLen<=sizeof(DeviceNumberID))
					{
					rt_kprintf("\r\n修改终端ID  !");
					memset(DeviceNumberID,0,sizeof(DeviceNumberID));
					memcpy(DeviceNumberID,pstrTempStart,cmdLen);
					DF_WriteFlashSector(DF_DeviceID_offset,0,DeviceNumberID,13); 
					///
					Add_SMS_Ack_Content(sms_ack_data,ACKstate);

					 //--------    清除鉴权码 -------------------
					     idip("clear");		     
					
					}
				else
					{
					       continue;
					}
				}    //DeviceNumberID			
			else if(strncmp(pstrTemp,"IP",2)==0)				///5.设置IP地址
				{
				j = sscanf(sms_content, "%u.%u.%u.%u", (u32*)&u8TempBuf[0], (u32*)&u8TempBuf[1], (u32*)&u8TempBuf[2], (u32*)&u8TempBuf[3]);
				//j=str2ip(sms_content, u8TempBuf);
				if(j==4)
				 	{
				 	rt_kprintf("\r\n设置IP地址!");
					if(pstrTemp[2]=='1')
						{ 
						memcpy(SysConf_struct.IP_Main,u8TempBuf,4);
						memcpy(RemoteIP_main,u8TempBuf,4);
						SysConf_struct.Port_main=RemotePort_main;
						Api_Config_write(config,ID_CONF_SYS,(u8*)&SysConf_struct,sizeof(SysConf_struct));
						rt_kprintf("\r\n短信设置主服务器 IP: %d.%d.%d.%d : %d ",RemoteIP_main[0],RemoteIP_main[1],RemoteIP_main[2],RemoteIP_main[3],RemotePort_main);
						//-----------  Below add by Nathan  ----------------------------
						DataLink_MainSocket_set(RemoteIP_main,RemotePort_main,1);
						///
						Add_SMS_Ack_Content(sms_ack_data,ACKstate);

					     //------- add on 2013-6-6
						if(ACKstate==SMS_ACK_none)
						      SD_ACKflag.f_CentreCMDack_0001H=2 ;//DataLink_EndFlag=1; //AT_End(); 先返回结果再挂断  
						else
							   DataLink_EndFlag=1;

						 //--------    清除鉴权码 -------------------
					     idip("clear");		   

						}
					else if(pstrTemp[2]=='2')
						{
						memcpy(SysConf_struct.IP_Aux,u8TempBuf,4);
						memcpy(RemoteIP_aux,u8TempBuf,4);
						SysConf_struct.Port_Aux=RemotePort_aux;
						Api_Config_write(config,ID_CONF_SYS,(u8*)&SysConf_struct,sizeof(SysConf_struct));
						rt_kprintf("\r\n短信设置备用服务器 IP: %d.%d.%d.%d : %d ",RemoteIP_aux[0],RemoteIP_aux[1],RemoteIP_aux[2],RemoteIP_aux[3],RemotePort_aux);   
						//-----------  Below add by Nathan  ----------------------------
						DataLink_AuxSocket_set(RemoteIP_aux,RemotePort_aux,1);
						///
						Add_SMS_Ack_Content(sms_ack_data,ACKstate);
						}
					}
				}
			else if(strncmp(pstrTemp,"MODE",4)==0)			///6. 设置定位模式
				{
				        if(strncmp(sms_content,"BD",2)==0)
				        {
                                                 gps_mode("1");
				        }
					  if(strncmp(sms_content,"GP",2)==0)
				        {
                                                 gps_mode("2");
				        }	
					   if(strncmp(sms_content,"GN",2)==0)
				        {
                                                 gps_mode("3");  
				        }
					   Add_SMS_Ack_Content(sms_ack_data,ACKstate);
				}
			else if(strncmp(pstrTemp,"VIN",3)==0)				///7.设置车辆VIN
				{
				     vin_set(sms_content);
				    Add_SMS_Ack_Content(sms_ack_data,ACKstate);
				}
			else if(strncmp(pstrTemp,"TIREDCLEAR",10)==0)		///8.清除疲劳驾驶记录
				{
				      TiredDrv_write=0;
				      TiredDrv_read=0;	   
				      DF_Write_RecordAdd(TiredDrv_write,TiredDrv_read,TYPE_TiredDrvAdd);      
				      Add_SMS_Ack_Content(sms_ack_data,ACKstate);	  
				}
			else if(strncmp(pstrTemp,"DISCLEAR",8)==0)			///9清除里程
				{
				   	  JT808Conf_struct.DayStartDistance_32=0;
					  JT808Conf_struct.Distance_m_u32=0;
                                     Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct)); 
					   Add_SMS_Ack_Content(sms_ack_data,ACKstate);				 
				}
			else if(strncmp(pstrTemp,"RESET",5)==0)			///10.终端重启
				{
				      reset();
				}
			else if(strncmp(pstrTemp,"RELAY",5)==0)			///11.继电器控制
				{
				       if(sms_content[0]=='0')
				              debug_relay("0");
				       if(sms_content[0]=='1')
					   	debug_relay("1"); 

					Add_SMS_Ack_Content(sms_ack_data,ACKstate);	    
				}
			else if(strncmp(pstrTemp,"TAKE",4)==0)				//12./拍照
				{
				    switch(sms_content[0])
				   {
                                    case '1':
                                                 takephoto("1");
							break;		
					case '2':
                                                  takephoto("2"); 
							break;		
				       case '3':
                                                takephoto("3");
							break;	
				       case '4':
                                                  takephoto("4");
							break;
				   }
				    Add_SMS_Ack_Content(sms_ack_data,ACKstate);	
				}
			else if(strncmp(pstrTemp,"PLAY",4)==0)				///13.语音播报
				{
				      TTS_Get_Data(sms_content,strlen(sms_content));
				     Add_SMS_Ack_Content(sms_ack_data,ACKstate);		  
				}
			else if(strncmp(pstrTemp,"QUERY",5)==0)			///14.车辆状态查询
				{
				       switch(sms_content[0])
				     	{
				     	    case 0:  

								     break;
							case 1:

								     break;
                            case 2:

								     break;
				     	}				
				        Add_SMS_Ack_Content(sms_ack_data,ACKstate);	  
				}
			else if(strncmp(pstrTemp,"ISP",3)==0)				///15.远程下载IP 端口
				{
				     ;
				    Add_SMS_Ack_Content(sms_ack_data,ACKstate);		 
				}
			else if(strncmp(pstrTemp,"PLATENUM",8)==0)
				{
				    rt_kprintf("Vech_Num is %s", sms_content);
					memset((u8*)&JT808Conf_struct.Vechicle_Info.Vech_Num,0,sizeof(JT808Conf_struct.Vechicle_Info.Vech_Num));	//clear	
				    rt_memcpy(JT808Conf_struct.Vechicle_Info.Vech_Num,sms_content,strlen(sms_content));
					Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
					Add_SMS_Ack_Content(sms_ack_data,ACKstate);

					 //--------    清除鉴权码 -------------------
					     idip("clear");		   
				}
			else if(strncmp(pstrTemp,"COLOUR",6)==0)
				{
				     j=sscanf(sms_content,"%d",&u16Temp);
					if(j)
					{
						
					JT808Conf_struct.Vechicle_Info.Dev_Color=u16Temp; 
	        		rt_kprintf("\r\n 车辆颜色: %s ,%d \r\n",sms_content,JT808Conf_struct.Vechicle_Info.Dev_Color);          
	        		Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
				  	Add_SMS_Ack_Content(sms_ack_data,ACKstate);
					}
				}
			else if(strncmp(pstrTemp,"CONNECT",6)==0)
				{
				    j=sscanf(sms_content,"%d",&u16Temp);
					if(j)
					{
						
						JT808Conf_struct.Link_Frist_Mode=u16Temp;  
		        		rt_kprintf("\r\n 首次连接方式 %s ,%d \r\n",sms_content,JT808Conf_struct.Link_Frist_Mode);          
		        		Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
					  	Add_SMS_Ack_Content(sms_ack_data,ACKstate);  
						 //--------    清除鉴权码 -------------------
					     idip("clear");		   
					} 
				}
           else if(strncmp(pstrTemp,"CLEARREGIST",11)==0)
           	    {
                     //--------    清除鉴权码 -------------------
					     idip("clear");		
                     DEV_regist.Enable_sd=1; // set 发送注册标志位
			         DataLink_EndFlag=1; 
           	    }
			else												
				{
				;
				}
			}
		else
			{
			break;
			}
		}
}
コード例 #10
0
static void keypress(unsigned int key)
{
     u8  Reg_buf[40];
	 
   switch(KeyValue)
	   {
	   case KeyValueMenu:
		   pMenuItem=&Menu_3_InforInteract;
		   pMenuItem->show();
		   CounterBack=0;

		   Menu_Logout=0;
		   LogInorOut_screen=0;
		   LogInorOut=0;//	1:¼øȨ	 2:×¢Ïú
		   break;
	   case KeyValueOk:
	   	   if(LogInorOut==1)//Çå¿Õ¼øȨÂë
			   {
			   LogInorOut_screen=0;
			   LogInorOut=0;
			   lcd_fill(0);
			   lcd_text12(6,10,"°´È·ÈϼüÇå¿Õ¼øȨÂë",18,LCD_MODE_SET);
			   lcd_update_all();
			   Menu_Logout=1;
			   }
		   else if(Menu_Logout==1)
			   	{
			   	Menu_Logout=0;
				
		              //-----------------------------------------------------------	
				    JT808Conf_struct.Regsiter_Status=0; 
				    memset(Reg_buf,0,sizeof(Reg_buf));
				    memcpy(Reg_buf,JT808Conf_struct.ConfirmCode,20);
				    Reg_buf[20]=JT808Conf_struct.Regsiter_Status;			
		                  Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));   
				//---------------------------------------------------------------
				lcd_fill(0); 
				lcd_text12(24,10,"¼øȨÂëÒÑÇå¿Õ",12,LCD_MODE_SET);
				lcd_update_all();
			   	}
		  else if(LogInorOut==2)//¼øȨ
			   {
			   LogInorOut_screen=0;
			   LogInorOut=0;
			   lcd_fill(0);
			   lcd_text12(0,10,"°´È·Èϼü·¢ËͳµÌ¨¼øȨ",20,LCD_MODE_SET);
			   lcd_update_all();
			   Menu_Logout=2;
			   }
		   else if(Menu_Logout==2)//¼øȨÒÑ·¢ËÍ 
			   {
			   Menu_Logout=0;

			   lcd_fill(0);
			   lcd_text12(30,10,"¼øȨÒÑ·¢ËÍ",10,LCD_MODE_SET);
			   lcd_update_all();
			   
			   DEV_Login.Operate_enable=1;
			   DEV_Login.Enable_sd=1;
			   }
		   else if(LogInorOut==3)//×¢²á
			   {
			   LogInorOut_screen=0;
			   LogInorOut=0;
			   lcd_fill(0);
			   lcd_text12(0,10,"°´È·Èϼü·¢ËͳµÌ¨×¢²á",20,LCD_MODE_SET);
			   lcd_update_all();
			   Menu_Logout=3;
			   }
		   else if(Menu_Logout==3)
			   {
			   Menu_Logout=0;

				DEV_regist.Enable_sd=1; // set ·¢ËÍ×¢²á±ê־λ

			   lcd_fill(0);
			   lcd_text12(30,10,"×¢²áÒÑ·¢ËÍ",10,LCD_MODE_SET);
			   lcd_update_all();
			   }
		   break;
	   case KeyValueUP:
		   if(LogInorOut_screen==1)
			   {
			   LogInorOut--;
			   if(LogInorOut<=1)
				   LogInorOut=1;
			   confirm_login(LogInorOut);
			   }
		   break;
		   
	   case KeyValueDown:
		   if(LogInorOut_screen==1)
			   {
			   LogInorOut++;
			   if(LogInorOut>=3)
				   LogInorOut=3;
			   confirm_login(LogInorOut);
			   }
		   break;
		   
	   }
KeyValue=0;
}
コード例 #11
0
void CheckICInsert(void)
{
    unsigned char write_flag=0;
    u8 result0=0,result1=0,result2=0,result3=0,result4=0,result5=0;//i=0;
    u8 FLagx=0;//,len=0;
    unsigned char reg_record[32];
    u32 DriveCode32=0;

//===================测试IC卡读写==================================================
    if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7))
    {
        IC_Check_Count++;
        if(IC_Check_Count>=10)
        {
            IC_Check_Count=0;
            //带卡上电开8024的电
            if(flag_8024off==1)
            {
                R_Flag|=b_CardEdge;
                Init8024Flag=2;
                flag_8024off=0;
            }
            //8024的off从低变高
            if(Init8024Flag==1)
            {
                Init8024Flag=2;
                R_Flag|=b_CardEdge;
                //rt_kprintf("pc7  为 高,R_Flag=1\r\n");
            }
            //检测到卡后初始化ic卡
            if((R_Flag&b_CardEdge)&&(Init8024Flag==2))
            {
                Init8024Flag=3;
                _CardCMDVCC_LOW;
                for(DelayCheckIc=0; DelayCheckIc<500; DelayCheckIc++)
                    DELAY5us();
                _CardSetPower_HIGH;
                _CardSetRST_LOW;
                for(DelayCheckIc=0; DelayCheckIc<15; DelayCheckIc++)
                {
                    _CardSetCLK_LOW;
                    DELAY5us();
                    DELAY5us();
                    DELAY5us();
                    _CardSetCLK_HIGH;
                    DELAY5us();
                    DELAY5us();
                    DELAY5us();
                    _CardSetCLK_LOW;
                }
                R_Flag&=~b_CardEdge;
                write_flag=1;
                //rt_kprintf("只执行1次\r\n");
            }
        }
    }
    else
    {
        IC_Check_Count=0;
        _CardSetRST_HIGH;
        _CardSetPower_LOW;
        _CardCMDVCC_HIGH;
        if(Init8024Flag==0)
        {
            Init8024Flag=1;
            //rt_kprintf("pc7  为 低\r\n");
        }
    }
    if(write_flag==1)
    {
        write_flag=0;
        Rx_4442(241,13,reg_record);	//管理员卡
        if(strncmp((char *)reg_record,"administrator",13)==0)
        {
            rt_kprintf("\r\n管理员卡");
            administrator_card=1;
        }
        else
        {
            memset(DriverCardNUM,0,sizeof(DriverCardNUM));
            memset(DriverName,0,sizeof(DriverName));
            //memset(JT808Conf_struct.Driver_Info,0,sizeof(JT808Conf_struct.Driver_Info));

            result0=Rx_4442(70,10,(unsigned char *)DriverName);	//读驾驶员姓名
            rt_kprintf("\r\n驾驶员姓名:%s,result0=%d",DriverName,result0);


            result1=Rx_4442(52,18,(unsigned char *)DriverCardNUM);	//读驾驶证号码
            rt_kprintf("\r\n驾驶证代码:%s,result1=%d",DriverCardNUM,result1);

            memset(JT808Conf_struct.Driver_Info.DriveCode,0,sizeof(JT808Conf_struct.Driver_Info.DriveCode));
            result2=Rx_4442(49,3,(unsigned char *)JT808Conf_struct.Driver_Info.DriveCode);	//读驾驶员代码
            DriveCode32=(JT808Conf_struct.Driver_Info.DriveCode[0]<<16)+(JT808Conf_struct.Driver_Info.DriveCode[1]<<8)+JT808Conf_struct.Driver_Info.DriveCode[2];
            rt_kprintf("\r\n驾驶员代码:%d,result2=%d",DriveCode32,result2);

            memset(JT808Conf_struct.Driver_Info.Driver_ID,0,sizeof(JT808Conf_struct.Driver_Info.Driver_ID));
            result3=Rx_4442(80,20,(unsigned char *)JT808Conf_struct.Driver_Info.Driver_ID);	//身份证号码
            rt_kprintf("\r\n身份证号码:%s,result3=%d",JT808Conf_struct.Driver_Info.Driver_ID,result3);

            memset(JT808Conf_struct.Driver_Info.Drv_CareerID,0,sizeof(JT808Conf_struct.Driver_Info.Drv_CareerID));
            result4=Rx_4442(100,40,(unsigned char *)JT808Conf_struct.Driver_Info.Drv_CareerID);	//从业资格证
            rt_kprintf("\r\n从业资格证:%s,result4=%d",JT808Conf_struct.Driver_Info.Drv_CareerID,result4);

            memset(JT808Conf_struct.Driver_Info.Comfirm_agentID,0,sizeof(JT808Conf_struct.Driver_Info.Comfirm_agentID));
            result5=Rx_4442(140,41,(unsigned char *)institution);	//发证机构
            memcpy(JT808Conf_struct.Driver_Info.Comfirm_agentID,&institution[1],40);
            rt_kprintf("\r\n发证机构:%s,result5=%d",JT808Conf_struct.Driver_Info.Comfirm_agentID,result5);

            if((result0==0)&&(result1==0)&&(result2==0)&&(result3==0)&&(result4==0)&&(result5==0))//读结果正确
            {
                IC_CardInsert=1;//IC	卡插入正确
                FLagx=0;

                //前18位为驾驶证号码-------------疲劳驾驶相关------看是否更换了卡 --------------
                if(strncmp((char*)DriverCardNUM,(char*)JT808Conf_struct.Driver_Info.DriverCard_ID,18)!=0)
                {
                    memset(JT808Conf_struct.Driver_Info.DriverCard_ID,0,sizeof(JT808Conf_struct.Driver_Info.DriverCard_ID));
                    memcpy(JT808Conf_struct.Driver_Info.DriverCard_ID,DriverCardNUM,18);
                    FLagx=1;
                }
                //后20位为驾驶员姓名-------------疲劳驾驶相关------看是否更换了卡 --------------
                if(strncmp((char*)DriverName,(char*)JT808Conf_struct.Driver_Info.DriveName,20)!=0)
                {
                    memset(JT808Conf_struct.Driver_Info.DriveName,0,sizeof(JT808Conf_struct.Driver_Info.DriveName));
                    memcpy((u8*)JT808Conf_struct.Driver_Info.DriveName,DriverName,strlen((const char*)DriverName));
                    FLagx=2;
                }
                if(FLagx)//更换了IC 卡    清除疲劳驾驶相关
                {
                    TIRED_Drive_Init();  //清除疲劳驾驶的状态
                    GPIO_ResetBits(Buzzer_IO_Group,Buzzer_Group_Num); // 关闭蜂鸣器
                    Api_Config_Recwrite_Large(jt808,0,(u8*)&JT808Conf_struct,sizeof(JT808Conf_struct));
                    FLagx=0;//clear
                }
                BuzzerFlag=1;//响一声提示
                pMenuItem=&Menu_2_5_DriverInfor;
                pMenuItem->show();
            }
            else
            {
                BuzzerFlag=11;//响一声提示
                IC_CardInsert=2;//IC	卡插入错误
            }
        }
        Init8024Flag=0;
        GpsIo_Init();
    }

//===================测试IC卡读写完成==================================================

}