📄 smsrecv.c
字号:
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 + -