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

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

?? com.c

?? AUTOMGEN runtime is an open source royalty free runtime for open PLCs. By using this runtime, any ta
?? C
?? 第 1 頁 / 共 2 頁
字號:
// AUTOMGEN interpretor runtime	 - communication serial and TCP_IP
// (C) 2003-2008 IRAI

#include "stdlib.h"
#include "stdio.h"
#include "memory.h"

#define BOOL int
#define TRUE 1
#define FALSE 0
#define BYTE unsigned char
#define WORD unsigned short
#define DWORD unsigned long

#include "core.h"
#include "com.h"
#include "target.h"


unsigned char slavenumber=SLAVENUMBER; 

unsigned lasttimetimout;


// Timeout process
void inittimout(void)
{
lasttimetimout=target_gettimeinms();
}

int istimout(void)
{
return (target_gettimeinms()-lasttimetimout>=TIMEOUT)?1:0;
}

unsigned curtcpclient;
unsigned _tcpipport=TCPIPPORT;
unsigned _com=TCPIP;
unsigned _baudrate=_BAUDRATE;
unsigned _parity=_PARITY;
unsigned _stopbit=_STOPBIT;

// Send 
void sendtrame(unsigned char *data,unsigned len)
{
unsigned char crc;
unsigned count;
unsigned char buff[MAXTRAMEOUT];
unsigned pos=0;
crc='Z'+slavenumber+(unsigned char)(len&0xff)+(unsigned char)(len>>8);
buff[pos++]='Z';
buff[pos++]=slavenumber;
buff[pos++]=(unsigned char)(len&0xff);
buff[pos++]=(unsigned char)(len>>8);
for(count=0;count<len;count++)
    {
    buff[pos++]=data[count];
    crc+=data[count];
	}
buff[pos++]=(unsigned char )(~crc);
if(_com==TCPIP)
	{
	target_netcom_srvsenddata(curtcpclient,buff,pos);
	}
else
	{
	target_com_send(buff,pos);
	}
}


// RX buffer
unsigned ltramein;
unsigned char tramein[MAXTRAMEIN+256];

void com_no(void)
{
sendtrame((unsigned char *)"\xFF",1);
}

void com_no2(void)
{
sendtrame((unsigned char *)"\xFE",1);
}

void com_ok(void)
{
sendtrame((unsigned char *)"\x00",1);
}


// Process in buffer
void processtrame(struct _a7int *a7int)
{
// For program download
static unsigned char progname[13];
static char fname[_MAX_PATH];
static unsigned long proglen;
static unsigned long flen;
static BOOL downloadprog=FALSE;
if(ltramein>0)
    {
    switch(tramein[0]) // Function code
        {
		case 0 : // Connection test
            {
            if(ltramein==1)
                {
				unsigned char data[32];
				unsigned maxbloclen=MAXTRAMEIN-128;
				data[0]=0;
				if(_com!=TCPIP)
					{
					maxbloclen=256;
					}
				*((WORD *)(&data[1]))=maxbloclen;
	            data[3]=target_confbyte();
				memcpy(&data[4],target_id(),16);
				sendtrame(data,19); // Ok
                }
            else
                {
                com_no();
                }
            } break;
        case 1 : // Select mode RUN/STOP/INIT/STEP
            {
            if(ltramein!=2)
                {
                com_no(); // NO
                }
            else
                {
                switch(tramein[1]) // Mode
                    {
                    case 0 : // stop
                        {
                        if(a7int->run)
							{
							a7int->run=0;
							com_ok(); // Ok
							}
						else
							{
							com_no2(); // NO
							}
						} break;
					case 1 : // run
						{
						if(!a7int->run)
							{
							a7int->run=1;
							com_ok(); // Ok
							}
						else
							{
							com_no2(); // NO
							}
						} break;
					case 2 : // step
						{
						if(!a7int->run)
							{
							a7int->step=1;
							com_ok(); // Ok
							}
						else
							{
							com_no2(); // NO
							}
						} break;
					case 3 : // init
                        {
						a7int->init=1;
                        com_ok(); // Ok
                        } break;
                    case 0x80 : // read RUN/STOP
                        {
                        sendtrame(a7int->run?(unsigned char *)"\x00\x01":(unsigned char *)"\x00\x00",2); 
                        } break;
					default :
						{
						com_no(); // NO
						}
					}
				}
			} break;
		case 2 : // Read one or more variable states
			{
			unsigned char data[1025];
			unsigned first,len;
			unsigned count;
			int checkforce=0;
			if(ltramein!=6)
				{
				com_no(); // NO
				break;
				}
            first=tramein[2]+(tramein[3]<<8);
            len=tramein[4]+(tramein[5]<<8);
            if(tramein[1]&0x80)
				{
				checkforce=1;
				tramein[1]&=0x7f;
				}
			switch(tramein[1]) // Type
                {
                case 0 : // I
                    {
                    unsigned pos=0,bpos=0;
					if(len+first>a7int->ni||(len+7)/8>1024)
                        {
						com_no(); // NO
                        break;
                        }
                    memset(data,0,1025);
                    for(count=0;count<len;count++)
                        {
                        if(a7int->pI[count+first]&0x20) data[1+pos]|=1<<bpos;
						bpos++;
						if(bpos==8)
							{
							pos++;
							bpos=0;
							}
						if(checkforce)
							{
				            if(isforced(a7int,tramein[1],(WORD)(first+count))) data[1+pos]|=1<<bpos;
							bpos++;
							if(bpos==8)
								{
								pos++;
								bpos=0;
								}
					        }
                        }
					sendtrame(data,2+pos);
                    } break;
                case 1 : // O
					{
                    unsigned pos=0,bpos=0;
					if(len+first>a7int->no||(len+7)/8>1024)
                        {
						com_no(); // NO
                        break;
                        }
                    memset(data,0,1025);
                    for(count=0;count<len;count++)
                        {
                        if(a7int->pO[count+first]&0x20) data[1+pos]|=1<<bpos;
						bpos++;
						if(bpos==8)
							{
							pos++;
							bpos=0;
							}
						if(checkforce)
							{
				            if(isforced(a7int,tramein[1],(WORD)(first+count))) data[1+pos]|=1<<bpos;
							bpos++;
							if(bpos==8)
								{
								pos++;
								bpos=0;
								}
					        }
                        }
					sendtrame(data,2+pos);
                    } break;
                case 2 : // B
                    {
                    unsigned pos=0,bpos=0;
                    if(len+first>a7int->nb||(len+7)/8>1024)
                        {
						com_no(); // NO
                        break;
                        }
                    memset(data,0,1025);
                    for(count=0;count<len;count++)
                        {
                        if(a7int->pB[count+first]&0x20) data[1+pos]|=1<<bpos;
						bpos++;
						if(bpos==8)
							{
							pos++;
							bpos=0;
							}
						if(checkforce)
							{
				            if(isforced(a7int,tramein[1],(WORD)(first+count))) data[1+pos]|=1<<bpos;
							bpos++;
							if(bpos==8)
								{
								pos++;
								bpos=0;
								}
					        }
                        }
					sendtrame(data,2+pos);
                    } break;
                case 3 : // T counter
                    {
					DWORD *ps,*pt;
					if(len+first>a7int->nt||len*sizeof(unsigned long)>1024)
                        {
                        com_no(); // NO
						break;
                        }
                    data[0]=0;
					ps=(DWORD *)&a7int->pT[sizeof(unsigned long)+first*sizeof(unsigned long)*2];
					pt=(DWORD *)&data[1];
					for(count=0;count<len;count++)
						{
						memcpy(pt,ps,sizeof(DWORD));
						pt++;
						ps+=2;
						}
					sendtrame(data,1+len*sizeof(unsigned long));
                    } break;
                case 4 : // C
                    {
                    if(len+first>a7int->nc||len*sizeof(unsigned long)>1024)
                        {
                        com_no(); // NO
						break;
                        }
                    data[0]=0;
					memcpy(&data[1],&a7int->pC[first],len*sizeof(unsigned short));
					sendtrame(data,1+len*sizeof(unsigned short));
                    } break;
                case 5 : // M
                    {
                    if(len+first>a7int->nm||len*sizeof(unsigned long)>1024)
                        {
                        com_no(); // NO
						break;
                        }
                    data[0]=0;
					memcpy(&data[1],&a7int->pM[first],len*sizeof(unsigned short));
					sendtrame(data,1+len*sizeof(unsigned short));
                    } break;
                case 6 : // F
                    {
                    if(len+first>a7int->nf||len*sizeof(float)>1024)
                        {
                        com_no(); // NO
                        break;
                        }
                    data[0]=0;
					memcpy(&data[1],&a7int->pF[first],len*sizeof(float));
                    sendtrame(data,1+len*sizeof(float));
                    } break;
				case 7 : // L
                    {
                    if(len+first>a7int->nl||len*sizeof(unsigned long)>1024)
                        {
						com_no(); // NO
                        break;
                        }
                    data[0]=0;
                    memcpy(&data[1],&a7int->pL[first],len*sizeof(unsigned long));
                    sendtrame(data,1+len*sizeof(unsigned long));
                    } break;
                case 8 : // T preset
                    {
					DWORD *pt,*ps;
                    if(len+first>a7int->nt||len*sizeof(unsigned long)>1024)
                        {
                        com_no(); // NO
						break;
                        }
                    data[0]=0;
					ps=(DWORD *)&a7int->pT[first*sizeof(unsigned long)*2];
					pt=(DWORD *)&data[1];
					for(count=0;count<len;count++)
						{
						memcpy(pt,ps,sizeof(DWORD));
						pt++;
						ps+=2;
						}
					sendtrame(data,1+len*sizeof(unsigned long));
                    } break;
                default :
                    {
                    com_no(); // NO
                    }
                }
			} break;
		case 3 : // Write one variable state
			{
			unsigned num;
			num=tramein[2]+(tramein[3]<<8);
			switch(tramein[1]) // Type
				{
				case 0 : // I
					{
					if(ltramein!=5||num>=a7int->ni)
						{
						com_no(); // NO
						break;
						}
					setvar(a7int,0,num,tramein[4],(unsigned)-1);
					com_ok(); // Ok
					} break;
				case 1 : // O
					{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院免费观看| 亚洲欧美日韩在线播放| 婷婷久久综合九色国产成人| 欧美mv日韩mv| 国产成人精品免费网站| 一区二区免费看| 欧美r级电影在线观看| 777午夜精品视频在线播放| 国产麻豆一精品一av一免费| 亚洲欧美aⅴ...| 亚洲欧美aⅴ...| 午夜视频久久久久久| 日本亚洲三级在线| 一区二区高清在线| 婷婷成人综合网| 黑人巨大精品欧美一区| 日韩精品免费视频人成| 国产精品二三区| 欧美激情一区二区| 日韩精品一区二区三区蜜臀| 欧美在线小视频| 色综合天天做天天爱| 粉嫩aⅴ一区二区三区四区| 免费高清成人在线| 亚洲一二三区在线观看| 亚洲美女少妇撒尿| 男男视频亚洲欧美| 成人综合激情网| 成人午夜免费视频| 欧美在线视频你懂得| 欧美成人精品1314www| 国产精品卡一卡二| 日本午夜一本久久久综合| 国产精一区二区三区| 精品一区二区三区在线播放| 日韩精品久久久久久| 国产99久久久国产精品潘金网站| 97se亚洲国产综合自在线| a级精品国产片在线观看| 国产在线精品一区二区三区不卡| 欧美在线一二三| 久久久亚洲精品一区二区三区| 日韩精品一区国产麻豆| 国产精品久久久久久久久免费桃花 | 亚洲精品视频自拍| 中文无字幕一区二区三区| 欧美挠脚心视频网站| 欧美日韩国产高清一区| 国产精品乱人伦中文| 免费黄网站欧美| 欧美综合久久久| 成人免费在线播放视频| 中文字幕一区二区三中文字幕| 婷婷开心激情综合| 色婷婷精品大视频在线蜜桃视频| 99久久精品国产网站| 日韩欧美成人激情| 亚洲伦理在线免费看| 国产麻豆一精品一av一免费| 欧美丰满一区二区免费视频| 日韩三级免费观看| 久久精品日韩一区二区三区| 中文字幕亚洲欧美在线不卡| 黄页视频在线91| 日韩三级高清在线| 日韩国产欧美视频| 欧美日本视频在线| 亚洲福利电影网| 欧美日韩黄视频| 亚洲精品国产一区二区三区四区在线 | www成人在线观看| 中文字幕精品一区 | 欧美成人video| 日韩中文字幕亚洲一区二区va在线| 99国产欧美久久久精品| 欧美激情综合在线| 国产suv精品一区二区6| 国产亚洲欧美日韩日本| 高清国产一区二区三区| 久久久久成人黄色影片| 国产一区二区三区四区五区入口| 日韩一级成人av| 久久99这里只有精品| 色欧美乱欧美15图片| 亚洲三级电影网站| 国产美女精品在线| 久久久九九九九| 粉嫩高潮美女一区二区三区| 国产精品福利在线播放| 91香蕉视频污在线| 国产校园另类小说区| 国产91精品一区二区麻豆网站 | 国产精品白丝在线| 成人av电影在线播放| 日韩女优av电影| 国产精品一品视频| 亚洲人成伊人成综合网小说| 欧美亚一区二区| 中文字幕在线观看不卡| 一本大道久久a久久综合| 亚洲超碰97人人做人人爱| 99久久er热在这里只有精品15 | 日韩三级伦理片妻子的秘密按摩| 开心九九激情九九欧美日韩精美视频电影| 制服视频三区第一页精品| 国产一区二区中文字幕| 亚洲日本乱码在线观看| 欧美精品在线观看一区二区| 久久精品国产亚洲a| 最新久久zyz资源站| 欧美色视频一区| 亚洲自拍偷拍网站| 日韩欧美一级在线播放| 91伊人久久大香线蕉| 日韩黄色小视频| 国产精品久久毛片av大全日韩| 欧美女孩性生活视频| 国产成人精品免费网站| 午夜日韩在线观看| 国产精品伦理在线| 欧美一级日韩免费不卡| 日韩精品一级二级| 中文字幕在线不卡一区二区三区| 欧美男女性生活在线直播观看| 东方欧美亚洲色图在线| 亚洲国产欧美日韩另类综合 | 欧美日本乱大交xxxxx| 国产成人免费视| 三级一区在线视频先锋 | 色综合久久久久| 精品亚洲欧美一区| 日本欧美一区二区| 亚洲国产视频一区| 亚洲三级在线观看| 国产精品久久久久国产精品日日| 7777精品伊人久久久大香线蕉的| 91在线观看污| 国产91露脸合集magnet | 成人h动漫精品一区二区| 久久爱www久久做| 蜜桃在线一区二区三区| 国产欧美一区二区精品久导航| 不卡视频一二三| 国产一区 二区 三区一级| 蓝色福利精品导航| 久久er精品视频| 久久97超碰国产精品超碰| 全国精品久久少妇| 免费观看在线色综合| 日韩成人av影视| 日韩黄色一级片| 日韩不卡一区二区三区| 性久久久久久久| 三级成人在线视频| 日av在线不卡| 蜜桃视频在线一区| 久久不见久久见免费视频1| 精品中文av资源站在线观看| 免费亚洲电影在线| 极品少妇xxxx精品少妇| 国产一区二区三区最好精华液| 蜜桃一区二区三区在线观看| 蜜臀av国产精品久久久久| 六月丁香婷婷久久| 国产精品一区免费在线观看| 国产不卡视频在线播放| 99久久免费视频.com| 91福利国产成人精品照片| 国产制服丝袜一区| 国产电影一区二区三区| 波多野洁衣一区| 色悠悠久久综合| 欧美疯狂性受xxxxx喷水图片| 日韩亚洲欧美成人一区| 国产日韩精品一区| 国产精品久久久久久久午夜片 | 在线观看免费亚洲| 欧美高清性hdvideosex| 欧美精品一区二区三区视频| 欧美日韩高清不卡| 精品国产污污免费网站入口| 国产午夜精品久久久久久免费视 | 欧美精品日韩精品| 久久综合视频网| 亚洲区小说区图片区qvod| 性久久久久久久| 国产69精品久久99不卡| 欧美视频三区在线播放| 欧美精品一区二区三区在线 | 日韩情涩欧美日韩视频| 国产午夜精品久久| 午夜欧美2019年伦理| 成人性生交大片免费看中文 | 国产91精品露脸国语对白| 一本久久综合亚洲鲁鲁五月天| 日韩三区在线观看| 亚洲男同性恋视频| 国产一区二区三区久久久| 欧美午夜精品久久久久久超碰| 精品国精品国产|