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

📄 bb.c

📁 自己写的一个在ADAM5510上运行的GSM程序
💻 C
📖 第 1 页 / 共 3 页
字号:
		   if(strlen(strad)==57)
		      { WDT_clear();
                ADAMdelay(1000);
              com_tx_string("OK");
			  zh1=&strad[0];
			  strncpy(add,zh1,6);
			  add[6]='\0';
			  WDT_clear();
			 if(stricmp(AD,add)==0)
			  {
                 WDT_clear();
                zh2=&strad[0];
			    strncpy(bd,zh2,17);
			    bd[17]='\0';
			    zh3=&strad[19];
			    strncpy(ti,zh3,4);
			    ti[4]='\0';
			    zh4=&strad[25];
			    strncpy(pc,zh4,4);
			    pc[4]='\0';
			    zh5=&strad[31];
			    strncpy(zc,zh5,1);
			    zc[1]='\0';
			    zh6=&strad[33];
			    strncpy(dh1,zh6,7);
			    dh1[7]='\0';
			    WDT_clear();
			    zh7=&strad[41];
			    strncpy(dh2,zh7,7);
			    dh2[7]='\0';
			    WDT_clear();
			    zh8=&strad[49];
			    strncpy(dh3,zh8,7);
			    dh3[7]='\0';
			    strcpy(cpc,pc);
			    strcpy(cpianca,pc);
			    strcpy(ctime,ti);
			    strcpy(tel1,dh1);
			    strcpy(tel2,dh2);
			    strcpy(tel3,dh3);
			    WDT_clear();
			    ADAMdelay(1000);
			    WDT_clear();
		      for(b=5;b<10;b++)
              pp[b-5]=Get_SysMem(b);
              if(stricmp(pp,cpc)!=0)
			  {for(b=5;b<10;b++)
			   Set_SysMem(b,cpc[b-5]);
			   ADAMdelay(1000);
			   WDT_clear();
              }
              for(b=10;b<15;b++)
              tt[b-10]=Get_SysMem(b);
              if(stricmp(tt,ti)!=0)
			  {for(b=10;b<15;b++)
			   Set_SysMem(b,ti[b-10]);
			   ADAMdelay(1000);
			   WDT_clear();
              }
              for(b=75;b<82;b++)
              ddh1[b-75]=Get_SysMem(b);
              if(stricmp(ddh1,dh1)!=0)
			  {for(b=75;b<82;b++)
			   Set_SysMem(b,dh1[b-75]);
			   ADAMdelay(1000);
			   WDT_clear();
              }
              for(b=82;b<89;b++)
              ddh2[b-82]=Get_SysMem(b);
              if(stricmp(ddh2,dh2)!=0)
			  {for(b=82;b<89;b++)
			   Set_SysMem(b,dh2[b-82]);
			   ADAMdelay(1000);
			   WDT_clear();
              }
              for(b=90;b<97;b++)
              ddh3[b-90]=Get_SysMem(b);
              if(stricmp(ddh3,dh3)!=0)
			  {for(b=90;b<97;b++)
			   Set_SysMem(b,dh3[b-90]);
              }
			  WDT_clear();
			  if(stricmp(zc,z1)==0)
				 {shuju(buf,cpc);
				  Bdata=1;
				  Set5050(&Bdata,1,3,ABit);
				  ADAMdelay(10);
                  WDT_clear();
                   com_flush_rx();
	               com_flush_tx();
                   WDT_clear();
                   for(q=0;q<68;q++)
                   com_tx(buf[q]);
                   ADAMdelay(1000);
                   WDT_clear();
				 }
            else
             {if(stricmp(zc,z2)==0)
               {WDT_clear();
                for(m=0;m<400;m++)
                 {for(l=0;l<68;l++)
                  {strr[l]=read_backup_ram(l+68*m);
                   if(strr[l]==NULL)
                   m=400;
                  }
                  WDT_clear();
                   com_flush_rx();
	               com_flush_tx();
                   WDT_clear();
                   for(p=0;p<68;p++)
                   com_tx(strr[p]);
                   ADAMdelay(1000);
                   WDT_clear();
                 }
               }
             }
             WDT_clear();
			  com_lower_dtr();
			  ADAMdelay(1000);
			  WDT_clear();
			  for(i=0;i<3;i++)
			  { modem_handup();
			    WDT_clear();
			    ADAMdelay(1000);
			  }
			return 1;
			 }
		   else
			 {WDT_clear();
              for(n=0;n<10;n++)
			  {ADAMdelay(1000);
                WDT_clear();
              }
			  dial(tel1,"FALSE");
			 }
			WDT_clear();

		   }
           else
           {
              WDT_clear();
              com_tx_string("FALSE");
              ADAMdelay(1000);
			  WDT_clear();
			  com_lower_dtr();
			  ADAMdelay(1000);
			  WDT_clear();
			  for(i=0;i<3;i++)
			  { modem_handup();
			    WDT_clear();
			    ADAMdelay(1000);
			  }
           }
	WDT_clear();
	return 0;
}
void main()
{
	char wei[100]="wangrunwei";
	
	uint	yuanshidata[3],dabaodata[4][14];
	uint	oldpjz[3],oldzdz[3],oldzxz[3];int wang,run;
   int result_code;
   char	buff[131];
   int index,sh,n,l;
   long	ii;
   int Slot5017=0,x=1;
   long	retry;
    uchar dh1[12],dh2[12],dh3[12],ddh1[12],ddh2[12],ddh3[12];
    uchar TEL1[12]="8635000",TEL2[12]="8635000",TEL3[12]="8635000";
    unsigned char buf0[500],tel1[12]={'\0'},tel2[12]={'\0'},tel3[12]={'\0'};
    uchar Bdata;
    uchar buf[100];
    uchar time[5]="0005",pianca[5]="0001";
    uchar cpianca[5],ctime[5],zhaoce[2],cshj1[20],cshj2[20],cshj3[20];
    uchar SCode1[21],SCode2[21],SCode3[21];
    uchar cbd[5],cpc[5],curt[5],shouji1[20],shouji2[20],shouji3[20];
    uchar Bdata0,Bdata1,Bdata2,string[200],z[2];
    uint i,j,dtime;
    int ztime;
    int lstrad,b;
    uchar *strad;
    uchar *Str,*s,*StrToRec;
    uchar ppc[4],ttm[4],ssj1[20],ssj2[20],ssj3[20];
    Set_NVRAM_Size(90);
    Get5050(1,0,ABit,&Bdata0);        /*du 5050 de 0 kou pan duan shi fou bo hao*/
    Bdata0=1;
   if(Bdata0==0)	                   /*Bdata=0 biao shi GSM Bdata=1 biao shi modem*/
	 {      InitComport(1, 0, 9600, 8, 1, 0);
		InitGsm();			/*chu shi hua GSM*/
		 Init501718(Slot5017);      /*chu shi hua 5017*/
		while(1)
		  { dtime=0;
			i=1;j=1;
			Bdata=1;
			Set5050(&Bdata,1,3,ABit);
			printf("ct=%s",curt);
			ztime=(curt[0]-48)*1000+(curt[1]-48)*100+(curt[2]-48)*10+(curt[3]-48);
			printf("\nztime=%d\n",ztime);
			if(ztime==0)
			ztime=2;
			for(dtime=0;dtime<ztime;dtime++)
			  {
			   printf("\ndtime=%d\n",dtime);
			   Bdata=1;
			   Set5050(&Bdata,1,3,ABit);
			   ADAMdelay(1000);
			   Get5050(1,1,ABit,&Bdata1);       /*pan duan jiao liu dian shi fou zheng chang*/
			   Get5050(1,2,ABit,&Bdata2);       /*pan duan xu dian chi shi fou you dian*/
			   if(Bdata1==1)
			      {if(Bdata2==1)
				   {    if(i==1)
					  {
					   shuju(buf,cpc);
					   Bdata=1;
					   Set5050(&Bdata,1,3,ABit);
					   printf("asd");
					   //	SendMsg(SCode1,buf);
					   //	SendMsg(SCode2,buf);
						//	SendMsg(SCode3,buf);
					   i=0;
					   }  //gu zhang i
				   }
			       else printf("zheng chang");
			      }
			   else
			      {if(Bdata2==1)
				   { if(j==1)
					  {
					   shuju(buf,cpc);
					   Bdata=1;
					   Set5050(&Bdata,1,3,ABit);
					   printf("bsd");
					   SendMsg(SCode1,buf);
					   SendMsg(SCode2,buf);
					   SendMsg(SCode3,buf);
					   j=0;
					 }//gu zhang j
				   }

			 else
				 {if(i==1||j==1)
					 {
					   shuju(buf,cpc);
					   Bdata=1;
					   Set5050(&Bdata,1,3,ABit);
					   printf("csd");
					   printf("\nbuf%d\n",strlen(buf));
					 //  SendMsg(SCode1,buf);
					  //SendMsg(SCode2,buf);
					 //	SendMsg(SCode3,buf);

					   i=0;j=0;
					  }
				  }
			 }   //gu zhang jie shu

				if(GetNewMsg(Str)==true)   	//pan duan shi fou you duan xiao xi */
				  {  ADAMdelay(1000);
				     strcpy(string,Str);
				     ADAMdelay(1000);
				    if(chuli(string, cpianca,ctime,cshj1,cshj2,cshj3,SCode1,SCode2)==1)
				    {
				     strcpy(cpc,cpianca);
				     strcpy(curt,ctime);
				     strcpy(shouji1,cshj1);
				     strcpy(shouji2,cshj2);
				     strcpy(shouji3,cshj3);
				     strcpy(SCode1,shouji1);
				     strcpy(SCode2,shouji2);
				     strcpy(SCode3,shouji3);
				     }
				     else
				     {if(chuli(string, cpianca,ctime,cshj1,cshj2,cshj3,SCode1,SCode2)==2)
					 strcpy(curt,ctime);
				     }
				     s="AT+CMGD=1,1";
				     SendStrToModem(s,1, StrToRec);
				     ADAMdelay(1000);
				  }

			  } //ding shi dao
			  printf("\nct11=%s",curt);
			  shuju(buf,cpc);
			  Bdata=1;
			  Set5050(&Bdata,1,3,ABit);
			//  printf("esd");	 /*diao shu ju chu li cheng xu*/
			//  printf("\n%s\n",buf);
			//  printf("\nbuf%d\n",strlen(buf));
			//  printf("\nct12=%s",curt);
			// SendMsg(SCode1,buf);
			 //	 SendMsg(SCode2,buf);
			  //	 SendMsg(SCode3,buf);
		 } //ding shi chu shi hua
	 }  // gsm  modem
   else
   {
	wei[4]='\0';
	wei[5]='\0';
	wei[6]='\0';
	adv_printf("%s\n",wei);
       ADAMdelay(15000);

	   com_install(1);
	   com_set_format(8, 0, 1);
	   com_set_speed(1200L);
	   modem_initial();
	   Init501718(Slot5017);      /*chu shi hua 5017*/
		com_485_install();
		com_enable_fifo(0x2f8,4);
	   	com_485_set_format(8, 2, 1);
	   	com_485_set_speed(9600L);//串口初始化
		getdata(yuanshidata,cpc);
		for(wang=0;wang<3;wang++)
		   {
			oldzdz[wang]=yuanshidata[wang];
			oldzxz[wang]=yuanshidata[wang];
			oldpjz[wang]=0;
			GetSysTime(oldzdzdate[wang]);
			GetSysTime(oldzxzdate[wang]);
			
		   }
   while(1)
	{  WDT_enable();
	   Bdata=1;
	   Set5050(&Bdata,1,3,ABit);
	   modem_command("AT");
       ADAMdelay(10);
       WDT_clear();
	   retry=100000;
	   for(ii=0;ii<retry;ii++)
	     {
	     ii++;ii--;
	     }
         WDT_clear();
	     com_flush_rx();
	     com_flush_tx();
	     com_raise_dtr();
	     dtime=0;
	     i=1;j=1;
         x=1;
	     Bdata=1;
	     Set5050(&Bdata,1,3,ABit);
         WDT_clear();
         for(b=5;b<10;b++)
	     ppc[b-5]=Get_SysMem(b);
	     if(strlen(ppc)!=0)
	     strcpy(cpc,ppc);
	     else
	     strcpy(cpc,pianca);
	     for(b=10;b<15;b++)
	     ttm[b-10]=Get_SysMem(b);
	     if(strlen(ttm)!=0)
	     strcpy(curt,ttm);
	     else
	     strcpy(curt,time);
	     for(b=75;b<82;b++)
	     ddh1[b-75]=Get_SysMem(b);
	     if(strlen(ddh1)!=0)
	     strcpy(tel1,ddh1);
	     else
	     strcpy(tel1,TEL1);
	     for(b=82;b<89;b++)
	     ddh2[b-82]=Get_SysMem(b);
	     if(strlen(ddh2)!=0)
	     strcpy(tel2,ddh2);
	     else
	     strcpy(tel2,TEL2);
	     for(b=90;b<97;b++)
	     ddh3[b-90]=Get_SysMem(b);
	     if(strlen(ddh3)!=0)
	     strcpy(tel3,ddh3);
	     else
	     strcpy(tel3,TEL3);
         WDT_clear();
	     ztime=((curt[0]-48)*1000+(curt[1]-48)*100+(curt[2]-48)*10+(curt[3]-48)-1)*60/75;
	     ADAMdelay(10);
		ztime=3;
	     if(ztime<3)
	     ztime=3;
	     for(dtime=0;dtime<ztime;dtime++)
		{
			   adv_printf("\ndtime=%d\n",dtime);
			getdata(yuanshidata,cpc);
		  	dabao(yuanshidata,oldpjz,oldzdz,oldzxz,dabaodata);
			send(dabaodata);
              if(dtime==30*x)
            {   shuju(buf,cpc);
                x++;
              }
                WDT_clear();
			   com_flush_rx();
			   com_flush_tx();
                WDT_clear();
			   Get5050(1,1,ABit,&Bdata1);       /*pan duan jiao liu dian shi fou zheng chang*/
			   Get5050(1,2,ABit,&Bdata2);       /*pan duan xu dian chi shi fou you dian*/
			   Bdata=1;
			   Set5050(&Bdata,1,3,ABit);
			   if(Bdata1==0)
			      {if(Bdata2==1)
				   {    if(i==1)
					  { WDT_clear();
					   shuju(buf,cpc);
					   Bdata=1;
					   Set5050(&Bdata,1,3,ABit);
					    for(b=75;b<82;b++)
	                    ddh1[b-75]=Get_SysMem(b);
	                    if(strlen(ddh1)!=0)
	                    strcpy(tel1,ddh1);
	                    else
	                    strcpy(tel1,TEL1);
                        dial(tel1,buf);
	                    for(b=82;b<89;b++)
	                    ddh2[b-82]=Get_SysMem(b);
	                    if(strlen(ddh2)!=0)
	                    strcpy(tel2,ddh2);
	                    else
	                    strcpy(tel2,TEL2);
					    dial(tel2,buf);
	                    for(b=90;b<97;b++)
	                    ddh3[b-90]=Get_SysMem(b);
	                    if(strlen(ddh3)!=0)
	                    strcpy(tel3,ddh3);
	                    else
	                    strcpy(tel3,TEL3);
					   dial(tel3,buf);
					   i=0;
					   }  //gu zhang i
				   }
			       else
                   adv_printf("zheng chang");
			      }
			   else
			      {if(Bdata2==1)
				   { if(j==1)
					  { WDT_clear();
					   shuju(buf,cpc);
					   Bdata=1;
					   Set5050(&Bdata,1,3,ABit);
					    for(b=75;b<82;b++)
	                    ddh1[b-75]=Get_SysMem(b);
	                    if(strlen(ddh1)!=0)
	                    strcpy(tel1,ddh1);
	                    else
	                    strcpy(tel1,TEL1);
                          dial(tel1,buf);
	                    for(b=82;b<89;b++)
	                    ddh2[b-82]=Get_SysMem(b);
	                    if(strlen(ddh2)!=0)
	                     strcpy(tel2,ddh2);
	                    else
	                    strcpy(tel2,TEL2);
                        dial(tel2,buf);
	                    for(b=90;b<97;b++)
	                    ddh3[b-90]=Get_SysMem(b);
	                    if(strlen(ddh3)!=0)
	                    strcpy(tel3,ddh3);
	                    else
	                    strcpy(tel3,TEL3);
                       dial(tel3,buf);
					   j=0;
					 }//gu zhang j
				   }

			 else
				 {if(i==1||j==1)
					 {  WDT_clear();
					   shuju(buf,cpc);
					   Bdata=1;
					   Set5050(&Bdata,1,3,ABit);
					   ADAMdelay(10);
                        for(b=75;b<82;b++)
	                    ddh1[b-75]=Get_SysMem(b);
	                    if(strlen(ddh1)!=0)
	                    strcpy(tel1,ddh1);
	                    else
	                    strcpy(tel1,TEL1);
                          dial(tel1,buf);
	                    for(b=82;b<89;b++)
	                    ddh2[b-82]=Get_SysMem(b);
	                    if(strlen(ddh2)!=0)
	                     strcpy(tel2,ddh2);
	                    else
	                    strcpy(tel2,TEL2);
                        dial(tel2,buf);
	                    for(b=90;b<97;b++)
	                    ddh3[b-90]=Get_SysMem(b);
	                    if(strlen(ddh3)!=0)
	                    strcpy(tel3,ddh3);
	                    else
	                    strcpy(tel3,TEL3);
					    dial(tel3,buf);
					   i=0;j=0;
					  }
				  }
			 }   //gu zhang jie shu

	       if(gettel(buf0)==1)
	       {  WDT_clear();
		     if(dchuli(buf0,cpianca,ctime,dh1,dh2,dh3,tel1,tel2,tel3)==1)
		       { WDT_clear();
                 strcpy(cpc,cpianca);
		         strcpy(curt,ctime);
		         strcpy(tel1,dh1);
		         strcpy(tel2,dh2);
		         strcpy(tel3,dh3);
		        }
	       }
       }
   getdata(yuanshidata,cpc);
   dabao(yuanshidata,oldpjz,oldzdz,oldzxz,dabaodata);
   send(dabaodata);
   shuju(buf,cpc);
   Bdata=1;
   Set5050(&Bdata,1,3,ABit);
   WDT_clear();
   for(b=75;b<82;b++)
   ddh1[b-75]=Get_SysMem(b);
   WDT_clear();
   ADAMdelay(1000);
   if(strlen(ddh1)!=0)
   strcpy(tel1,ddh1);
   else
   strcpy(tel1,TEL1);
   WDT_clear();
   dial(tel1,buf);
   for(b=82;b<89;b++)
   ddh2[b-82]=Get_SysMem(b);
    WDT_clear();
   ADAMdelay(1000);
   if(strlen(ddh2)!=0)
   strcpy(tel2,ddh2);
   else
   strcpy(tel2,TEL2);
   WDT_clear();
   dial(tel2,buf);
   for(b=90;b<97;b++)
   ddh3[b-90]=Get_SysMem(b);
   WDT_clear();
   ADAMdelay(1000);
   if(strlen(ddh3)!=0)
   strcpy(tel3,ddh3);
   else
   strcpy(tel3,TEL3);
   WDT_clear();
   dial(tel3,buf);
  }
 }
}  //main jie shu

⌨️ 快捷键说明

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