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(); } } }
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]); }
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; }
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(); }
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; }
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; }
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; }
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; } }
/********************************************************************************* *函数名称: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; } } }
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; }
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卡读写完成================================================== }