?? bb.c
字號:
strcpy(xdcz,z0);
}
else
{strcpy(jldz,z1);
strcpy(xdcz,z1);
}
}
WDT_clear();
strcat(buf0,kg);
strcat(buf0,jldz);
strcpy(jldz,0);
strcat(buf0,xdcz);
strcpy(xdcz,0);
strcat(buf0,cgqz);
strcpy(cgqz,0);
heb(buf0,buff);
strcpy(buf,buff);
WDT_clear();
for(b=100;b<104;b++)
mm[b-100]=Get_SysMem(b);
if(strlen(mm)!=0)
strcpy(dmm,mm);
else
strcpy(dmm,s4);
vv=(dmm[0]-48)*1000+(dmm[1]-48)*100+(dmm[2]-48)*10+(dmm[3]-48);
adv_printf("\nv=%d\n",vv);
if(vv>400)
vv=0;
for(l=0;l<68;l++)
{write_backup_ram(l+68*vv,buff[l]);
}
uu=vv+1;
sprintf(buff22,"%d",uu); //ba m xie ru nei cun
if(strlen(buff22)==1)
{ WDT_clear();
strcpy(sss,s1);
strcat(sss,buff22);
strcpy(mmm,sss);
strcpy(sss,0);
}
else
{if(strlen(buff22)==2)
{ WDT_clear();
strcpy(sss,s2);
strcat(sss,buff22);
strcpy(mmm,sss);
strcpy(sss,0);
}
else
{if(strlen(buff22)==3)
{WDT_clear();
strcpy(sss,s3);
strcat(sss,buff22);
strcpy(mmm,sss);
strcpy(sss,0);
}
else
{WDT_clear();
strcpy(mmm,buff22);
}
}
}
WDT_clear();
for(b=100;b<104;b++)
Set_SysMem(b,mmm[b-100]);
ADAMdelay(10); //jie shu
WDT_clear();
}
//===================================================================
//-----------------------------------------------------------------------------------------
int chuli(uchar *Str,uchar *cpianca,uchar *ctime,uchar *cshj1,uchar *cshj2,uchar *cshj3,uchar *SCode1,uchar *SCode2)
{
uchar buf[120];
uint Send,lk,kl,lmsg;
uchar Bdata0,msg[200];
uint dtime,i;
uchar z1[2]="1";
uchar shoujihao1[20]={"AT+CMGS="},shoujihao2[20]={"AT+CMGS="},shoujihao3[20]={"AT+CMGS="};
int lstrad;
uchar Bdata;
uchar AD[120]={"AD0003"};
uchar *str86="+86",*string,*strad,*ad00="AD0";
uchar pca[5],bdu[5];
uchar shouji1[20],shouji2[20],shouji3[20];
uchar *zh1,*zh2,*zh3,*zh4,*zh5,*zh6,*zh7,*zh8;
uchar ad[120],b[6],t[5],p[6],z[3],c1[12],c2[12],c3[12];
uchar shj1[20],shj2[20],shj3[20],sj1[20],sj2[20],sj3[20];
uchar shoujihao[20]={"AT+CMGS="},shoujih[11],*shouji11;
{ strcpy(msg,Str); //du shou ji fa song lai de shu ju*/
string=strstr(msg,str86);
printf("\nstring=%s\n",string);
printf("lstring=%d\n",strlen(string));
strad=strstr(msg,ad00);
lstrad=strlen(strad);
printf("\nstrad=%s\n",strad);
printf("lstrad=%d\n",lstrad);
shouji11=&string[3];
strncpy(shoujih,shouji11,11);
shoujih[11]='\0';
strcat(shoujihao,shoujih);
strcpy(shoujih,0);
printf("\n%s\n",shoujihao);
if(stricmp(SCode1,shoujihao)==0) /*pan duan shou ji hao*/
{ printf("shoujihao\n");
if(lstrad==69)
{
zh1=&strad[0];
strncpy(ad,zh1,6);
ad[6]='\0';
printf("%s\n",ad);
if(stricmp(AD,ad)==0)
{ zh2=&strad[8];
strncpy(b,zh2,4);
b[4]='\0';
printf("%s\n",b);
zh3=&strad[14];
strncpy(t,zh3,4);
t[4]='\0';
printf("%s\n",t);
zh4=&strad[20];
strncpy(p,zh4,4);
p[4]='\0';
printf("%s\n",p);
zh5=&strad[26];
strncpy(z,zh5,1);
z[1]='\0';
printf("%s\n",z);
zh6=&strad[28];
strncpy(c1,zh6,11);
c1[11]='\0';
strcat(shoujihao1,c1);
strcpy(sj1,shoujihao1);
zh7=&strad[40];
printf("%s\n",c1);
strncpy(c2,zh7,11);
c2[11]='\0';
strcat(shoujihao2,c2);
strcpy(sj2,shoujihao2);
printf("%s\n",c2);
zh8=&strad[52];
strncpy(c3,zh8,11);
c3[11]='\0';
strcat(shoujihao3,c3);
strcpy(sj3,shoujihao3);
strcpy(cpianca,p);
strcpy(ctime,t);
strcpy(cshj1,sj1);
strcpy(cshj2,sj2);
strcpy(cshj3,sj3);
for(i=0;i<5;i++)
Set_SysMem(i,b[i]);
for(i=5;i<10;i++)
Set_SysMem(i,p[i-5]);
for(i=10;i<15;i++)
Set_SysMem(i,t[i-10]);
for(i=15;i<35;i++)
Set_SysMem(i,sj1[i-15]);
for(i=35;i<55;i++)
Set_SysMem(i,sj2[i-35]);
for(i=55;i<75;i++)
Set_SysMem(i,sj3[i-55]);
if(stricmp(z,z1)==0)
{shuju(buf,p);
Bdata=1;
Set5050(&Bdata,1,3,ABit);
printf("csd");
printf("\nbuf%d\n",strlen(buf));
// SendMsg(SCode1,buf);
// SendMsg(SCode2,buf);
// SendMsg(SCode3,buf);
}
return 1;
}
else
{ // SendMsg(SCode1,"FALSE11");
printf("false11");
}
}
else
{
// SendMsg(SCode1,"FALSE12");
printf("false12");
}
}
else
{if(stricmp(SCode2,shoujihao)==0)
{
if(lstrad==18)
{ zh1=&strad[0];
strncpy(ad,zh1,6);
ad[6]='\0';
printf("%s\n",ad);
zh2=&strad[8];
strncpy(t,zh2,4);
t[4]='\0';
{if(stricmp(AD,ad)==0)
{strcpy(ctime,t);
for(i=10;i<15;i++)
Set_SysMem(i,t[i-10]);
return 2;
}
else
{
// SendMsg(SCode2,"FALSE21");
printf("false21");
}
}
}
else
{// SendMsg(SCode2,"FALSE22");
printf("false22");
}
}
}
}
return 0;
}
uchar Combine(uchar Char1,uchar Char2,uchar ConvType)
{
if(Char1>=0x41) Char1=Char1-0x37;
else if((Char1>=0x30)&& (Char1<=0x39)) Char1=Char1-0x30;
else;
if(Char2>=0x41) Char2=Char2-0x37;
else if((Char2>=0x30)&& (Char2<=0x39)) Char2=Char2-0x30;
else;
if (ConvType==0) return(Char1*10+Char2); //Convert to DEC format
else
return((Char1<<4)+Char2); //Convert to HEX format
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
uchar HexToAscii(uchar Data)
{
if((Data>=0x0a)&&(Data<=0x0f))
Data=(Data-0x0a)+0x41;
else if(Data<=0x09)
Data=Data+0x30;
else;
return Data;
}
//---------------------------------------------------------------------------
void SendStrToModem(uchar* StrToSend,uchar StopSign,uchar *StrToRec)
{
uint i=0;
uint k=0;
uchar Str[SIZE]={'\0'},aa=0;
unsigned long l=0;
for(i=0;i<SIZE;i++)
{ StrToRec[i]='\0';
}
strcpy(Str,StrToSend);
for (i=0;i<strlen(StrToSend);i++)
{
outportb(wBaseAddr,Str[i]);
while((inportb(wBaseAddr+5) & 0x40) == 0);
}
if(StopSign==1)
{
outportb(wBaseAddr, 0x0d);
while((inportb(wBaseAddr+5) & 0x40) == 0);
}
else if(StopSign==2)
{
outportb(wBaseAddr, 0x1a);
while((inportb(wBaseAddr+5) & 0x40) == 0);
}
else;
k=0;
for(l=0;l<100*5000;l++)
{
if((inportb(wBaseAddr+5) & 0x01)==1)
{
aa=k;StrToRec[k++]=inportb(wBaseAddr);
}
if(StrToRec[aa]=='>') break;
if(aa>=1)
{
if(StrToRec[aa]=='K'&&StrToRec[aa-1]=='O') break;
}
if(aa>=4)
{
if(StrToRec[aa]=='R'&&StrToRec[aa-1]=='O'&&StrToRec[aa-2]=='R' //判斷是否收到模塊返回的ERROR
&&StrToRec[aa-3]=='R'&&StrToRec[aa-4]=='E') break;
}
if(k>300) break;
}
StrToRec[k]='\0';
printf("xiaoxi=%s",StrToRec);
}
//---------------------------------------------------------------------------------------
void InitComport(int ComIndex, int iFIFOSel, dword dwBaudRate,int iDataBit,int iStopBit,int iParityBit)
{
uchar ucDLLVal = 0, ucDLMVal = 0, ucFCRVal = 0, ucLCRVal = 0;
if(ComIndex==1) wBaseAddr=0x3f8;
else if (ComIndex==2) wBaseAddr=0x2f8;
if(iFIFOSel ==1)
ucFCRVal = 0x81;
else
ucFCRVal = 0x00;
switch(dwBaudRate)
{
case 1200L : ucDLLVal=0x60;break;
case 2400L : ucDLLVal=0x30;break;
case 4800L : ucDLLVal=0x18;break;
case 9600L : ucDLLVal=0x0c;break;
case 19200L : ucDLLVal=0x06;break;
case 38400L : ucDLLVal=0x03;break;
case 57600L : ucDLLVal=0x02;break;
case 115200L : ucDLLVal=0x01;break;
}
ucDLMVal = 0x00;
if(iDataBit == 7) ucLCRVal = ucLCRVal | 0x02;
else if(iDataBit == 8) ucLCRVal = ucLCRVal | 0x03;
else
{
exit(1);
}
if(iStopBit == 1) ucLCRVal = ucLCRVal | 0x00;
else if(iStopBit == 2) ucLCRVal = ucLCRVal | 0x04;
else
{
exit(1);
}
if(iParityBit == 0) ucLCRVal = ucLCRVal | 0x00;
else if(iParityBit == 1) ucLCRVal = ucLCRVal | 0x08;
else if(iParityBit == 2) ucLCRVal = ucLCRVal | 0x18;
else
{
exit(1);
}
outportb(wBaseAddr + 0x03, 0x80);
outportb(wBaseAddr + 0x00, ucDLLVal);
outportb(wBaseAddr + 0x01, ucDLMVal);
outportb(wBaseAddr + 0x03, 0x00);
outportb(wBaseAddr + 0x03, ucLCRVal);
outportb(wBaseAddr + 0x02, ucFCRVal | 0x06);
while( (inportb(wBaseAddr + 0x05)) & 0x01) inportb(wBaseAddr);
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
uchar InitGsm(void)
{
uchar *s,str[SIZE]={0};
uchar i;
uint Dely;
s=NULL;
outportb(wBaseAddr, 0x1a);
while((inportb(wBaseAddr+5) & 0x40) == 0);
for(i=0;i<2;i++)
{
for(Dely=0;Dely<1500; Dely++);
}
printf("send %s\n",SMCCode);
s=SMCCode;
SendStrToModem(s,1, str);
printf("send AT+CMGF=1\n");
ADAMdelay(1000);
s="AT+CMGF=1";
SendStrToModem(s,1, str);
printf("saving setting\n");
s="AT+CSAS";
SendStrToModem(s,1, str);
return true;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int SendMsg(char *sjh, char * Msg)
{
uchar str[SIZE]={0},*s;
int i;
s=NULL;
s=sjh;
SendStrToModem(s,1,str);
printf("send Scccode complete\n");
s=str;
strstr(s,">");
if(s==NULL){
printf("send code error");
return -1; //can't link the Short Message Platform successfully.
}
else{
printf("\n--->Send Data Package\n");
SendStrToModem(Msg,2,str);
s=str;
strstr(s,"OK");
if(s==NULL)
{
printf("send sms error");
return false;
} //can't send short message successfully.
}
return true; // send short message successfully.
}
//--------------------------------------------------
//--------------------------------------------------
uchar GetNewMsg(uchar *Str)
{
uchar s[21]={'A','T','+','C','M','G','L','=',0x22,'R','E','C',0x20,'U','N','R','E','A','D',0x22,'\0'};
SendStrToModem(s,1,Str);
printf("dunxiao=%s",Str);
strlen(Str);
printf("\nchangdu%d\n",strlen(Str));
if(strlen(Str)<30)
{return false;
}
else
return true;
}
int get_modem_response(char *buf)
{
long i;
int index;
unsigned char c;
//adv_printf("kai shi\n");
index=0;
for(i=0;i<10000; i++)
{ WDT_clear();
//*--- Get the receiving string from the COM1 port ---/
if((c=com_rx())!=0)
buf[index++]=c;
if( index >0 && c == '\r') //* end of command /
{
//adv_printf("jie shou wab bi\n");
buf[index] =0;
WDT_clear();
//adv_printf("Response : %s ",buf);
return(1);
}
}
return(0);
}
void dial(unsigned char *tel,char *s)
{ int i,ii,m,run;
char buf[131];
adv_printf("zhun bei fa song:%s\n",s);
com_raise_dtr();
modem_dial(tel);
WDT_clear();
for(ii=0;ii<30;ii++)
{
ADAMdelay(1000);
WDT_clear();
}
com_flush_rx();
com_flush_tx();
run=0;
while(s[run]!='\0')
{
WDT_clear();
com_tx(s[run]);
run++;
ADAMdelay(10);
}
//com_tx_string(s);
// printf("Command : %s \n",tel);
// if( get_modem_response(buf)==1)
// { adv_printf("Response : %s \n",buf);
// WDT_clear();
// ADAMdelay(50);
// WDT_clear();
// com_tx_string(s);
// }
// else
// adv_printf("Response :No response");
for(m=0;m<10;m++)
{ADAMdelay(1000);
WDT_clear();
}
com_flush_rx();
com_flush_tx();
com_lower_dtr();
ADAMdelay(1000);
WDT_clear();
for(i=0;i<3;i++)
{ modem_handup();
ADAMdelay(1000);
WDT_clear();
}
}
int gettel(unsigned char *buf0)
{ long i,j,ii;
int index;
unsigned char c;
char buff[500];
com_raise_dtr();
modem_autoanswer();
for(ii=0;ii<60;ii++)
{ADAMdelay(900);
WDT_clear();
}
adv_printf("Now is ready to get data...\n");
for(ii=0;ii<60000;ii++)
{ WDT_clear();
if(get_modem_response(buff)==1)
{ WDT_clear();
adv_printf("buff=%s",buff);
strcpy(buf0,buff);
ADAMdelay(10);
if(strlen(buf0)>22)
{ WDT_clear();
return 1;
}
else
{ continue;
}
}
else
{
ii=59999;
}
}
WDT_clear();
return 0;
}
int dchuli(uchar *buf0,uchar *cpianca,uchar *ctime,uchar *dh1,uchar *dh2,uchar *dh3,uchar *tel1,uchar *tel2,uchar *tel3)
{ char c;
int result_code,m,l,n;
char buff[500];
int index,sh,q,p,ptr;
long ii;
long retry;
uchar z1[2]="1",z2[2]="2";
uchar AD[8]={"AD0003"};
uchar add[8],bd[20],ti[5],pc[6],zc[3],c1[12],c2[12],c3[12];
uchar pp[6],tt[5],ddh1[12],ddh2[12],ddh3[12];
uchar *zh1,*zh2,*zh3,*zh4,*zh5,*zh6,*zh7,*zh8;
uchar Bdata;
uchar buf[120],strr[476];
uchar cbd[5],cpc[5],curt[5];
uchar Bdata0,Bdata1,Bdata2,z[2];
uint Send,lk,kl,lmsg;
uchar ad[8];
uint i;
int lstrad,b;
uchar *strad,*ad00="AD0";
WDT_clear();
ADAMdelay(10);
strad=strstr(buf0,ad00);
WDT_clear();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -