⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsrecv.c

📁 名厂车载GPS通信终端
💻 C
📖 第 1 页 / 共 5 页
字号:
			Send_Sms_Ack(0x1743,0x0);
	}
	
	if(Cntermsg->data[0])
	{
		_MemFillCpy(save.phonenumber.User1Limit[Cntermsg->data[1]],Cntermsg->data+2,'\0',15,_StrlenForKey(Cntermsg->data+2,'F',14));
	}
	else
	{
		_MemFillCpy(save.phonenumber.User0Limit[Cntermsg->data[1]],Cntermsg->data+2,'\0',15,_StrlenForKey(Cntermsg->data+2,'F',14));
	}
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x1743,0x01);
	else
		Send_Sms_Ack(0x1743,0x01);
}

void Handle_2143msg(void)//speed//
{
	_Memcpy((LPBYTE)&save.basevalue.max_speed,Cntermsg->data,2);
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x2143,0x01);
	else
		Send_Sms_Ack(0x2143,0x01);
}

void Handle_2243msg(void)
{
	uint voltage;
	
	_Memcpy((LPBYTE)&voltage,Cntermsg->data,2);
	
	save.basevalue.low_voltage = (voltage-192)/2+9;
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x2243,0x01);
	else
		Send_Sms_Ack(0x2243,0x01);
}

void Handle_2343msg(void)
{
	save.basevalue.interval = Cntermsg->data[0];
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x2343,0x01);
	else
		Send_Sms_Ack(0x2343,0x01);
}

void Handle_3243msg(void)
{
	uchar flag;
	
	flag = 1;
	switch(Cntermsg->data[0])
	{
	case 0x04:
		save.alarmtime.voltage = Cntermsg->data[1];
		break;
	case 0x05:
		save.alarmtime.accerr   = Cntermsg->data[1];
		break;
	case 0x06:
		save.alarmtime.powererr = Cntermsg->data[1];
		break;
	case 0x07:
		save.alarmtime.overarea = Cntermsg->data[1];
		break;
	case 0x08:
		flag = 0;
		break;
	case 0x09:
		save.alarmtime.overspeed = Cntermsg->data[1];
		break;
	case 0x0a:
		save.alarmtime.sos       = Cntermsg->data[1];
		break;
	case 0x0b:
		save.alarmtime.burgle    = Cntermsg->data[1];
		break;
	case 0x0c:
		save.alarmtime.rop       = Cntermsg->data[1];
		break;
	case 0x0d:
		save.alarmtime.gpserr    = Cntermsg->data[1];
		break;
	case 0x0e:
		save.alarmtime.gpserr    = Cntermsg->data[1];
		break;
	case 0x0f:
		save.alarmtime.remoteerr = Cntermsg->data[1];
		break;
	case 0x10:
		save.alarmtime.remotealarm = Cntermsg->data[1];
		break;
	default:
		flag = 0;
		break;
	}
	if(flag==0)
	{
		if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
			Send_Gprs_Ack(0x3243,0x0);
		else
			Send_Sms_Ack(0x3243,0x0);
	}
	else
	{
		Store_All_Para();
		if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
			Send_Gprs_Ack(0x3243,0x01);
		else
			Send_Sms_Ack(0x3243,0x01);
	}
}

void Handle_4143msg(void)
{
	uchar *bakptr;
	uchar *ptr;
	uint   i;
	if(Cntermsg->data[0])
	{
		_MemFillCpy(save.simcard[1].IpAddr,Cntermsg->data+1,'\0',16,_StrlenForKey(Cntermsg->data+1,'F',15));
		_MemFillCpy(save.simcard[1].SocketPort,Cntermsg->data+16,'\0',6,_StrlenForKey(Cntermsg->data+16,'F',5));
		if(save.basevalue.mode.bit.simid == 1)
		{
			bakptr = (uchar *)(save.simcard[1].MyNumb);
			ptr    = (uchar *)(cur_sim.MyNumb);
			for(i=0; i<sizeof(_CURRENT_SIMCARD); i++)
			{
				ptr[i] = bakptr[i];
			}
			Start_Timer(Gprs_Service_Timer,3,SECOND);
		}
	}
	else
	{
		_MemFillCpy(save.simcard[0].IpAddr,Cntermsg->data+1,'\0',16,_StrlenForKey(Cntermsg->data+1,'F',15));
		_MemFillCpy(save.simcard[0].SocketPort,Cntermsg->data+16,'\0',6,_StrlenForKey(Cntermsg->data+16,'F',5));
		if(save.basevalue.mode.bit.simid ==0)
		{
			bakptr = (uchar *)(save.simcard[0].MyNumb);
			ptr    = (uchar *)(cur_sim.MyNumb);
			for(i=0; i<sizeof(_CURRENT_SIMCARD); i++)
			{
				ptr[i] = bakptr[i];
			}
			Start_Timer(Gprs_Service_Timer,3,SECOND);
		}
	}
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x4143,0x01);
	else
		Send_Sms_Ack(0x4143,0x01);
}

void Handle_4243msg(void)
{
	uchar *bakptr,*ptr;
	uint  i;
	if(Cntermsg->data[0])
	{
		_MemFillCpy(save.simcard[1].Apn,Cntermsg->data+1,'\0',21,_StrlenForKey(Cntermsg->data+1,'F',20));
		if(save.basevalue.mode.bit.simid == 1)
		{
			bakptr = (uchar *)(save.simcard[1].MyNumb);
			ptr    = (uchar *)(cur_sim.MyNumb);
			for(i=0; i<sizeof(_CURRENT_SIMCARD); i++)
			{
				ptr[i] = bakptr[i];
			}
			Start_Timer(Gprs_Service_Timer,3,SECOND);
		}
	}
	else
	{
		_MemFillCpy(save.simcard[0].Apn,Cntermsg->data+1,'\0',21,_StrlenForKey(Cntermsg->data+1,'F',20));
		if(save.basevalue.mode.bit.simid == 0)
		{
			bakptr = (uchar *)(save.simcard[0].MyNumb);
			ptr    = (uchar *)(cur_sim.MyNumb);
			for(i=0; i<sizeof(_CURRENT_SIMCARD); i++)
			{
				ptr[i] = bakptr[i];
			}
			Start_Timer(Gprs_Service_Timer,3,SECOND);
		}
	}
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)   //added by leon 050913
		Send_Gprs_Ack(0x4243,0x01);
	else
		Send_Sms_Ack(0x4243,0x01);
}

void Handle_4343msg(void)
{
//	save.basevalue.gprs_time = Cntermsg->data[0]*100;  //modified by leon from 1000 to 100 just ignore this command.//Removed by lxo 0227011
	save.basevalue.gprs_time = Cntermsg->data[0]*1000;  //Added by lxo 0227012
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x4343,0x01);
	else
		Send_Sms_Ack(0x4343,0x01);
}

void Handle_4443msg(void)   //modified by leon 051013
{
	uchar *ptr;
	uchar port_number;
	if(Cntermsg->data[0] >= MAX_PORT_AREA)  //如果超过了最大关口数
	{
		if(gsmstatus.gprsdata == TRUE)    
			Send_Gprs_Ack(0x4443,0x0);
		else
			Send_Sms_Ack(0x4443,0x0);
	}
	else
	{
		if(Cntermsg->data[0] >= save.simsel.set_port_number)
		{
			port_number = save.simsel.set_port_number;
			save.simsel.set_port_number++;
		}
		else
			port_number = Cntermsg->data[0];
		ptr  = (uchar *)&save.simsel.judge_port[port_number].mainland_port.top_left.lati;
		_Memcpy((LPBYTE)ptr,&Cntermsg->data[1],48);
		Store_All_Para();
		
		if(gsmstatus.gprsdata == TRUE)    
			Send_Gprs_Ack(0x4443,0x01);
		else
			Send_Sms_Ack(0x4443,0x01);
	}
}

void Handle_4543msg(void)
{
	_Memcpy((LPBYTE)&save.basevalue.fixtime,Cntermsg->data,2);
#ifdef DEBUG_AT
	Uart1Send("fix time interval is:");
	Uart1Word(save.basevalue.fixtime);
#endif
	Store_All_Para();
	if(save.basevalue.fixtime!=0)
	{
		if(save.basevalue.fixtime<10)save.basevalue.fixtime=10;
		Start_Timer(Fix_Send_Timer,save.basevalue.fixtime,SECOND);
	}
	else
	{
		Start_Timer(Fix_Send_Timer,300,SECOND);  //added by leon 
		//Stop_Timer(Fix_Send_Timer);            //masked by leon
	}
	if(gsmstatus.gprsdata == TRUE)   //added by leon 050913
		Send_Gprs_Ack(0x4543,0x01);
	else
		Send_Sms_Ack(0x4543,0x01);
}

void Handle_4643msg(void)
{
	if(Cntermsg->data[0])
	{
		save.basevalue.mode.bit.consume = 1;
	}
	else
	{
		save.basevalue.mode.bit.consume = 0;
	}
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)   //added by leon 050913
		Send_Gprs_Ack(0x4643,0x01);
	else
		Send_Sms_Ack(0x4643,0x01);
}

void Handle_4743msg(void)
{
	if(Cntermsg->data[0])
	{
		save.basevalue.mode.bit.private = 0;
	}
	else
	{
		save.basevalue.mode.bit.private = 1;
	}
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x4743,0x01);
	else
		Send_Sms_Ack(0x4743,0x01);
}

void Handle_0145msg(void)
{
	if(Cntermsg->data[0])
	{
		//Write_To_Send(CON_CARLED);
		Shut_Power_Down();
	}
	else
	{
		Shut_Power_On();
	}
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x0145,0x01);
	else
		Send_Sms_Ack(0x0145,0x01);
}
void Handle_0245msg(void)
{
	if(Cntermsg->data[0])
	{
		Write_To_Send(CENTER_RELEASE);
	}
	else
	{
		Write_To_Send(CENTER_DEFEND);
	}
	//Send_Sms_Ack(0x0245,0x01);
}

void Handle_0345msg(void)
{
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x0345,0x0);
	else
		Send_Sms_Ack(0x0345,0x0);
}

void Handle_0445msg(void) //遥毙//
{
	if(Cntermsg->data[0])
	{
		future.status =_IDLE;
		Stop_Timer(Future_Timer);
		Stop_Timer(Con_Timer);
		//Stop_Timer(Fix_Send_Timer);  //masked by leon
		monitor_times = 0;	               //added by leon 051110
		save.basevalue.need_service = 1;
	}
	else
	{
		save.basevalue.need_service = 0;
	}
	Store_All_Para();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x0445,0x01);
	else
		Send_Sms_Ack(0x0445,0x01);
}

void Handle_0545msg(void)
{
	save.basevalue.phone_mode = Cntermsg->data[0];
	Store_All_Para();         
	if(gsmstatus.gprsdata == TRUE)   //added by leon 050913
		Send_Gprs_Ack(0x0545,0x01);
	else
		Send_Sms_Ack(0x0545,0x01);
}

void Handle_1145msg(void)
{
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x1145,0x0);
	else
		Send_Sms_Ack(0x1145,0x0);
}

void Handle_1245msg(void)
{
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x1145,0x0);
	else
		Send_Sms_Ack(0x1145,0x0);
}

void Handle_2145msg(void)
{
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x1145,0x0);
	else
		Send_Sms_Ack(0x1145,0x0);
}

void Handle_6145msg(void)
{
	uchar simid;  //added by leon 050915
	simid = save.basevalue.mode.bit.simid;  //added by leon 050915
	if(alarm_flag&0x3c03)	//只有报警的时候才能够监听//
	{
		if(Auto_Dial(save.phonenumber.ListenNumb[simid],_Strlen(save.phonenumber.ListenNumb[simid],15),0,4))
		{
			if(gsmstatus.gprsdata == TRUE)
			{
				Send_Gprs_Ack(0x6145,0x1);
				SwitchToAtCmd();
				Start_Timer(Gprs_Service_Timer,1,MINUTE);
			}
			else
				Send_Sms_Ack(0x6145,0x1);
		}
		else
		{
			if(gsmstatus.gprsdata == TRUE)
				Send_Gprs_Ack(0x6145,0x0);
			else
				Send_Sms_Ack(0x6145,0x0);
		}
	}
	else
	{
		if(gsmstatus.gprsdata == TRUE)   // added by leon 050913
			Send_Gprs_Ack(0x6145,0x0);
		else
			Send_Sms_Ack(0x6145,0x0);
	}
}

void Handle_8145msg(void)
{
	Start_Timer(Reset_Program_Timer,15,SECOND);
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x8145,0x01);
	else
		Send_Sms_Ack(0x8145,0x01);
	Sleep_Gps_Proc();
	//gpspower = POWER_OFF;
	//GPS_ON   = VOL_HIGH;
}

void Handle_8245msg(void)
{
	Reset_Gps();
	if(gsmstatus.gprsdata == TRUE)    //added by leon 050913
		Send_Gprs_Ack(0x8245,0x01);
	else
		Send_Sms_Ack(0x8245,0x01);
}

void Handle_0149msg(void)
{
	Send_H03Msg(Cntermsg->data,Cntermsg->len-17);
}

void Center_Read(uint type, uchar cardtype,uchar alarmtype,uchar index)
{
	uchar temp;
	uint  temp1;
	//uchar simid; //added by leon 050915
	//simid = save.basevalue.mode.bit.simid;  //added by leon 050915
	Assemble_Sms_Head(type+1);
	switch(type)
	{
	case 0x1051:
		if(save.basevalue.gprs_mode==0){
			Write_Byte_Stream(0);
		}
		else if(save.basevalue.gprs_mode==1){
			Write_Byte_Stream (8);
		}
		else {
			Write_Byte_Stream (88);
		}
		break;
	case 0x1151:  //for read card 0
		Write_Code_Stream(save.phonenumber.ManageCentreNumb[0],'F',_Strlen(save.phonenumber.ManageCentreNumb[0],14),14);
		break; 
	case 0x1251:  //for read card 0
		Write_Code_Stream(save.phonenumber.MessageServiceNumb[0],'F',_Strlen(save.phonenumber.MessageServiceNumb[0],14),14);
		break;
	case 0x1351:  //for read card 0
		Write_Code_Stream(save.phonenumber.ListenNumb[0],'F',_Strlen(save.phonenumber.ListenNumb[0],14),14);
		break;
	case 0x5151:  //for read card 1 or card 0
		Write_Byte_Stream(cardtype);
		Write_Code_Stream(save.phonenumber.ManageCentreNumb[cardtype],'F',_Strlen(save.phonenumber.ManageCentreNumb[cardtype],14),14);
		break;
	case 0x5251:  //for read card 1 or card 0
		Write_Byte_Stream(cardtype);
		Write_Code_Stream(save.phonenumber.MessageServiceNumb[cardtype],'F',_Strlen(save.phonenumber.MessageServiceNumb[cardtype],14),14);
		break;
	case 0x5351:  //for read card 1 or card 0
		Write_Byte_Stream(cardtype);
		Write_Code_Stream(save.phonenumber.ListenNumb[cardtype],'F',_Strlen(save.phonenumber.ListenNumb[cardtype],14),14);
		break;
 	case 0x1551:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -