亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pollute.c

?? 一個關于MODBUS方面的程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*********************************************************************
* FileName : pollute.c  
* Author   : Jack Zhang
* Date     : 06/6/2008   
*********************************************************************/
#include <psos.h>
#include <custom_defs.h>
#include <tmInterrupts.h>
#include <AppModel.h>
#include <stdio.h>
#include <string.h>
#include <tmNxTypes.h>
#include <tmDbg.h>
#include <tmosal.h>
#include <dprintf.h>
#include <tmbslCore.h>
#include <tmosal.h>
#include "modbus.h"
#include "pollute.h"
#include "uart_local.h"
#include "uart.h"

#define  VALID_DEBUG


unsigned char **valid_pack;//二級指針用來指向分包

int packs_num;
int valid_len;
valid_head *valid =NULL;
valid_cp *cpvalid =NULL;
valid_head **pvalid =NULL;
valid_cp **pcpvalid =NULL;
//---------------公有函數----------------------------------------
extern  unsigned short crc16(unsigned char *, unsigned short); //CRC校驗
int packnum_check(unsigned char * ,uint16 len);  //包的數量
void bale_split(unsigned char*,uint16,int); //拆分包
char * hex2dec(const char *);
//---------------------------------------------------------------

//----------------------計算包數量------------------------------------

int packnum_check(unsigned char * packs,uint16 len)  
{ 
   int i;
   
   int count;

   for(i =0; i<len; i++)
     {
     	if((0x23 ==atoi(packs[i]))&&(0x23 ==atoi(packs[i+1])))
     	
     	  count++;
     	 
    
     }

#ifdef VALID_DEBUG

      printf("count =%d\n",count);
      
#endif

   return count;
}
//----------------------拆分包-----------------------------------------
void bale_split(unsigned char* bale,uint16 num,int length)  //ASCII和RTU的包拆分法也不一樣,區別在從幾開始拆
{     
   int i=0,j=0,k=0;

#ifdef VALID_DEBUG  

   printf("bale start !\n");
   
#endif  
         
    while((0x23 !=bale[i])&&(0x23 !=bale[i+1]))
       
       i++;
    
       while(i<length)
         {
           
           while(j<num)
              { 
                if((0x23 !=bale[i])&&(0x23 !=bale[i+1]))
                   {
                     k=0;
                 
                     while((bale[i]!=0x0d)&&(bale[i+1]!=0x0a)) 
                      {
      	               valid_pack[j][k] = bale[i];
      	               k++;
      	               i++; 
                      }
                      
                      valid_pack[j][k] =0x0d;
                      valid_pack[j][k+1] =0x0a;
                      j++;
                      i++;
                      
                    }
                 else
                   i++; 
              }
          }
 
#ifdef VALID_DEBUG
      
  printf("bale ok!\n");
  
#endif   

  
}
 

 
 //----------------------包長度檢驗--------------------------------------------
int len_check(unsigned char* package)
{
   int count=0,i=3; //長度待驗證
     while((package[i]!=0x0d)&&(package[i+1]!=0x0a))
    
            {
            	count++;
            	i++;
            }
    valid_len =i;
   return (count-2);  //減2待證
}

unsigned char* del_blank(unsigned char * string )
{
  unsigned char *pblank =string;
   while(0x10 ==*pblank)
    pblank++;
   return pblank;
}

unsigned char* is_num(unsigned char *srcstr_num,unsigned char *desstr_num)
{
   int i=0;
   unsigned char *pnum =srcstr_num;
   
#ifdef VALID_DEBUG
  
   printf("entering int \n");

#endif    
   
   while((*pnum<=0x39)&&(*pnum>=0x30)) 
         {
          desstr_num[i++] =*pnum++;
         
         }
         desstr_num[i] ='\0';
    return pnum;
}

unsigned char* is_float(unsigned char *srcstr_float,unsigned char *desstr_float)
{
    int i=0;
    unsigned char *pfloat =srcstr_float;
    
#ifdef VALID_DEBUG
  
   printf("entering float \n");

#endif   
  
     while((*pfloat<=0x39)&&(*pfloat>=0x30)||*pfloat==0x2e) //0x2e為浮點數的點號
         desstr_float[i++] =*pfloat++;
         desstr_float[i] ='\0';
      return pfloat;	
}

unsigned char*  right(unsigned char *srcstr_r,unsigned char *desstr_r,char flag)
{   
    unsigned char *pright =srcstr_r;
    
#ifdef VALID_DEBUG
  
   printf("entering right \n");
   printf("flag is %c",flag);
   
#endif 

    if('f' ==flag)
      pright=is_float(pright,desstr_r);
    else if('i' ==flag)
      pright=is_num(pright,desstr_r);
    else
      {
      	printf("data wrong!\n");
      	exit(0);
      }
      
    return pright;
}

unsigned char* left(unsigned char *srcstr_l,unsigned char *desstr_l)
{
   int i=0; 
   unsigned char *pleft =srcstr_l;
   
#ifdef VALID_DEBUG
  
   printf("entering left \n");

#endif  
  
   while(((*pleft<=0x39)&&(*pleft>=0x30))||((*pleft>=0x41)&&(*pleft<=0x5a))||((*pleft>=0x61)&&(*pleft<=0x7a)))
      desstr_l[i++] =*pleft++;
      desstr_l[i] ='\0';
   return pleft;
}

unsigned char* left_cp(unsigned char *srcstr_l,unsigned char *desstr_l)
{
   int i=0;
   unsigned char *pleft =srcstr_l;
   
#ifdef VALID_DEBUG
  
   printf("entering left_cp \n");

#endif 

   while(((*pleft<=0x39)&&(*pleft>=0x30))||((*pleft<=0x41)&&(*pleft>=0x5a))||((*pleft<=0x61)&&(*pleft>=0x7a))||(*pleft==0x2d))
      desstr_l[i++] =pleft++;
      desstr_l[i] ='\0';
   return pleft;
}


int is_equal(unsigned char src_equal)
{
	if(0x3d ==src_equal) //‘=’的ASCII碼為0x3d
	   return  1;
	else
	   return  0;
}

int is_semicolon(unsigned char src_semicolon)
 {
	if(0x3b ==src_semicolon) //‘;’的ASCII碼為0x3d
	   return  1;
	else
	   return  0;
 }
 
unsigned char* left_right_head(unsigned char* valid_head,int i,int no)
{
#ifdef VALID_DEBUG
  
   printf("entering int \n");
   printf("no =%d\n",no);
   
#endif     
		  
		           //start take st
	          if(*valid_head ==0x10) 
	             
	             valid_head =del_blank(valid_head); 
	              
	          else if(((*valid_head>=0x41)&&(*valid_head<=0x5a))||((*valid_head>=0x61)&&(*valid_head<=0x7a)))
	           
	              {
	              	valid_head =left(valid_head,*(valid+no)->left[i]);
#ifdef VALID_DEBUG
	                printf("left_head =%s\n",*(valid+no)->left[i]);
#endif
	              }
	          else   
	              goto LABLE0; 
	              
	          if(0!=strcmp(head_left_map[i],*(valid+no)->left[i]))
	              	             
	              goto LABLE0;
	              
	          else
	           {
#ifdef VALID_DEBUG
	             printf("valid data head ok!\n");
#endif	             
	             if(*valid_head ==0x10)
	                  
	                valid_head =del_blank(valid_head);
	                   
	             else if(is_equal(*valid_head))
	                
	                   valid_head++;
	                   
	             else if(*valid_head ==0x10)
	          
	                   valid_head =del_blank(valid_head);
	              
	             else
	                
	               goto LABLE0;
	               
	              
	             if(((*valid_head<=0x39)&&(*valid_head>=0x30))) 
	                
	                  {
	                     valid_head =right(valid_head,*(valid+no)->right[i],'i');
#ifdef VALID_DEBUG	                   
	                     printf("valid data head right data ok!\n");
	                     
	                     printf("valid right data =%s\n",*(valid+no)->right[i]);
#endif	                     
	                  }
	                   
	             else 
	                 
	               goto LABLE1;
	                
	             if(*valid_head ==0x10) 
	             
	                  valid_head =del_blank(valid_head); 
	             
	             else if(is_semicolon(*valid_head))
	          
	                 valid_head++;
	                 
	             else
	             
	                goto LABLE1;
	             }  
	          
  return valid_head; 
  
LABLE0:
	{
	  printf("valid  left data lose !\n");
	  
	  exit(0); 
	}

LABLE1:
        {
          printf("valid right data error! \n");
         
          exit(0); 
        }
        
}


unsigned char* left_right_cp(unsigned char* valid_cp ,int no)
{
  int i,k,l_lable;
  
  unsigned char valid_temp[20];
  
#ifdef VALID_DEBUG
  
   printf("entering int \n");
   printf("no =%d\n",no);
   

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
石原莉奈在线亚洲三区| 免费看日韩a级影片| 日韩一区二区在线观看视频| 91麻豆国产自产在线观看| 国产精品99久久久久| 黄色日韩网站视频| 久久精品国产久精国产爱| 国产在线视视频有精品| 91色porny| 中文字幕二三区不卡| 日本一区二区高清| 亚洲人成影院在线观看| 国产成人精品免费| 国产福利一区在线观看| 国产精品一色哟哟哟| 国产伦精品一区二区三区视频青涩| 国内精品写真在线观看| 国产91精品一区二区麻豆亚洲| 国产乱色国产精品免费视频| 成人av影视在线观看| 欧洲av在线精品| 日韩午夜激情视频| 国产调教视频一区| 日韩福利视频网| 色哟哟精品一区| 久久久99精品久久| 欧美欧美欧美欧美首页| 色狠狠综合天天综合综合| 欧日韩精品视频| 日韩欧美中文字幕制服| 久久男人中文字幕资源站| 亚洲视频免费看| 青青国产91久久久久久| 国产精品自产自拍| 日本电影欧美片| 欧美tickling挠脚心丨vk| 国产精品国产三级国产a | 国产欧美久久久精品影院| 亚洲视频在线观看三级| 日韩影视精彩在线| 成人性生交大片免费看在线播放| 亚洲国产精品久久久久秋霞影院| 欧美福利视频导航| 久久只精品国产| 一个色综合av| 风间由美一区二区av101| 欧洲中文字幕精品| 中文字幕免费一区| 免费在线看成人av| 色哟哟亚洲精品| 国产日产欧美一区二区视频| 日韩电影免费在线观看网站| 成人av网址在线| 日韩女优毛片在线| 亚洲国产一区二区三区| 成人app在线观看| 精品国产乱子伦一区| 香蕉av福利精品导航| 91免费在线视频观看| 国产欧美一区二区在线观看| 日韩激情av在线| 欧美视频一二三区| 日韩伦理av电影| 成人av小说网| 国产精品素人一区二区| 激情成人综合网| 精品美女一区二区| 日本不卡在线视频| 91精品国产综合久久香蕉麻豆| 亚洲精品国产一区二区精华液| 成人午夜激情视频| 国产三级欧美三级日产三级99 | 亚洲小说春色综合另类电影| 成人av在线播放网址| 国产午夜精品一区二区 | 亚洲色图在线播放| 国产成人午夜99999| 久久综合久久99| 久久精品国产一区二区三| 欧美一区二区三区在线观看 | 久久―日本道色综合久久| 久久精品噜噜噜成人88aⅴ| 91精品一区二区三区在线观看| 一区二区三区日韩在线观看| 在线精品亚洲一区二区不卡| 亚洲一区在线观看免费 | 精品无人码麻豆乱码1区2区| 欧美变态口味重另类| 精品一区二区免费视频| 久久蜜臀精品av| 成人黄色av网站在线| 亚洲精品视频在线看| 欧美日韩在线亚洲一区蜜芽| 日韩经典中文字幕一区| 精品国产人成亚洲区| 成人av电影在线观看| 亚洲精品日韩综合观看成人91| 欧美日韩国产精品自在自线| 天天影视色香欲综合网老头| 欧美大片顶级少妇| 成人美女视频在线看| 一区二区三区欧美亚洲| 91麻豆精品国产自产在线观看一区| 精品一区二区在线播放| 国产精品美女久久久久久| 在线免费观看不卡av| 久久精品噜噜噜成人av农村| 欧美激情综合网| 欧美视频一区二区三区四区| 国产一区二区三区在线观看免费视频| 亚洲欧洲精品一区二区精品久久久| 欧美性色综合网| 国精产品一区一区三区mba视频| 国产精品免费看片| 欧美一卡二卡在线观看| 成人激情免费网站| 青青草国产成人av片免费| 国产欧美日韩精品一区| 在线电影国产精品| 成人午夜在线免费| 麻豆精品视频在线观看免费| 成人欧美一区二区三区| 欧美mv日韩mv亚洲| 一本色道a无线码一区v| 国产麻豆一精品一av一免费| 亚洲主播在线播放| 国产精品美女久久久久av爽李琼| 欧美伦理影视网| 一本到三区不卡视频| 国产一区亚洲一区| 日本不卡一区二区| 亚洲一区二区三区四区的| 国产精品欧美精品| 久久精品在线观看| 欧美一卡二卡三卡四卡| 日本韩国精品一区二区在线观看| 日本sm残虐另类| 欧美成人三级电影在线| 欧美影片第一页| 91社区在线播放| 国产精品一色哟哟哟| 捆绑变态av一区二区三区| 婷婷综合五月天| 亚洲一区二区三区精品在线| 亚洲视频在线一区二区| 国产精品久久久久一区二区三区共| 欧美zozozo| 日韩一区二区在线观看视频| 欧美高清视频一二三区 | 成人的网站免费观看| 国产一区二区三区高清播放| 伦理电影国产精品| 日本伊人色综合网| 免费成人在线影院| 免费亚洲电影在线| 久久国产精品第一页| 青椒成人免费视频| 免播放器亚洲一区| 老司机免费视频一区二区 | 精品国产乱码久久久久久图片| 在线播放中文一区| 欧美一区二区三区播放老司机| 欧美性猛交xxxxxxxx| 欧美人妇做爰xxxⅹ性高电影 | 久久 天天综合| 国产在线一区观看| 国产盗摄视频一区二区三区| 成人爽a毛片一区二区免费| 国产酒店精品激情| www.av亚洲| 色成人在线视频| 欧美欧美欧美欧美首页| 欧美成人aa大片| 国产精品丝袜久久久久久app| 欧美国产精品劲爆| 一区二区激情视频| 肉肉av福利一精品导航| 国产剧情一区二区| 97超碰欧美中文字幕| 在线综合视频播放| 国产欧美精品区一区二区三区| 中文字幕在线不卡一区二区三区| 夜夜精品视频一区二区 | 国产成人激情av| 97精品久久久久中文字幕| 欧美日韩精品二区第二页| 日韩一区二区麻豆国产| 亚洲国产精品ⅴa在线观看| 亚洲黄色性网站| 精品系列免费在线观看| 91蝌蚪porny九色| 欧美成人性战久久| 亚洲综合色区另类av| 极品少妇一区二区三区精品视频| 成人av网在线| 日韩一二三四区| 亚洲黄色免费电影| 国产一区二区三区在线观看免费| 欧美综合色免费| 久久你懂得1024|