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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main(bl2100).c

?? rabbit現(xiàn)場采集
?? C
?? 第 1 頁 / 共 3 頁
字號:
		  	default:
   				break;
		}
	}

	//for(i=0;i<len;i++)
	//{
	//	printf("%d ",buf[i]);
	//	state->cmdlen = 0;
	//}

	return 0;
}

int mbtcp_init(int port)
{
	mbtcpstate->s = &mbtcpstate->sock;
	mbtcpstate->lport = port;
	mbtcpstate->cmdlen = 0;
	mbtcpstate->cmdoffset = 0;
	mbtcpstate->byteswritten = 0;

	//maybe append some code
	mbtcpstate->state = MBTCP_INIT;
	return 0;
}

root void mbtcp_handler(void)
{
	auto int retval;
	static unsigned long timeout;
	retval = 0;
	//tcp_tick(mbtcpstate->s);
	if(tcp_tick(mbtcpstate->s)==0 && mbtcpstate->state!=MBTCP_INIT&& mbtcpstate->state!=MBTCP_WAITCLOSE)
	{
		mbtcpstate->state = MBTCP_WAITCLOSE;
		printf("\r\n tick reset \r\n");
	}

	switch(mbtcpstate->state)
	{
		case MBTCP_INIT:
			tcp_listen(mbtcpstate->s,mbtcpstate->lport, 0, 0, NULL, 0);
			mbtcpstate->state = MBTCP_LISTEN;
			printf("\nInitializing socket.\n");
			timeout = SEC_TIMER;
			//break; //add by zhangqiang on 20070103

		case MBTCP_LISTEN:
			if(sock_established(mbtcpstate->s)||(sock_bytesready(mbtcpstate->s) != -1))
			{
				printf("Connection Established.\n");
				mbtcpstate->state = MBTCP_GETREQ;
 				timeout = SEC_TIMER;
 			}
			break;

		case MBTCP_GETREQ:
			if(!sock_established(mbtcpstate->s)&&(sock_bytesready(mbtcpstate->s) == -1))
			{
				/* connection died; reset */
				printf("Connection lost.\n\n");
				mbtcpstate->state = MBTCP_INIT;
				break;
			}

			if(SEC_TIMER-timeout>20)
			{
				/* connection died; reset */
				printf("Connection time out\n\n");
				mbtcpstate->state = MBTCP_WAITCLOSE;
				break;
			}
			mbtcpstate->cmdlen = 0;
			mbtcpstate->cmdoffset = 0;
			mbtcpstate->byteswritten = 0;

			retval = sock_aread(mbtcpstate->s, mbtcpstate->buf, 12);
			//retval = sock_fastread(mbtcpstate->s, mbtcpstate->buf, MB_TCP_MAX_BUFLEN);
			if(retval == 12)
			{
				/* we got data */
				receive_mbtcp_data(mbtcpstate->buf, retval); /* give it to the user */
				mbtcpstate->state = MBTCP_SENDRSP;
				timeout  = SEC_TIMER;
				//printf("\r\nin MBTCP_GETREQ\r\n");
			}
			break;

		case MBTCP_SENDRSP:
			//printf("\r\nin MBTCP_SENDRSP\r\n");
			if(mbtcpstate->byteswritten<0)
			{
				sock_close(mbtcpstate->s);
       			mbtcpstate->state=MBTCP_INIT;
				printf("Closing Socket\n");
				break;
			}

	  		if (mbtcpstate->cmdlen>0 && mbtcpstate->cmdoffset<mbtcpstate->cmdlen && mbtcpstate->byteswritten>=0)
			{
				mbtcpstate->byteswritten=sock_fastwrite(mbtcpstate->s,mbtcpstate->cmdbuf + mbtcpstate->cmdoffset,mbtcpstate->cmdlen - mbtcpstate->cmdoffset);
				//printf("\r\ncmmd len %d\r\n",mbtcpstate->cmdlen);
				mbtcpstate->cmdoffset +=mbtcpstate->byteswritten;
   				break;
			}

 /*
  *		if there is an error or we have written out the
  *		entire my_response.
  *
  */
			mbtcpstate->state = MBTCP_GETREQ;
			break;
		case MBTCP_WAITCLOSE:
   			sock_abort(mbtcpstate->s);
     		mbtcpstate->state = MBTCP_INIT;

   			break;
		default:
			/* shouldn't ever get here */
			/* reset the conroller */
			mbtcpstate->state = MBTCP_INIT;
			printf("in default !");
			break;
		//exit(-1);
	}
}

root unsigned int sample_ad(int channel, int num_samples)
{
	auto unsigned long rawdata;
	auto unsigned int samples;
	auto unsigned char adc_cmd;
	auto unsigned char numbits;

	samples  = num_samples;
	rawdata  = 0;
	numbits  = OUTPUTBITS;	// ADC resolution
	adc_cmd 	= (channel<<4) + (numbits<<2);

	//Do conversion of channel X which will be valid on the next A/D cycle
	anaInDriver(adc_cmd, OUTPUTBITS);

	//Sample AD channel per the number of samples requested
	while(samples-- > 0)
	{	//data is for the A/D channel that was in sent in the previous adc_cmd
		rawdata += (long) anaInDriver(adc_cmd,  OUTPUTBITS); 	// execute low level A/D driver
	}
	return((unsigned int) (rawdata/num_samples));
}

root int read_io(void)
{
    auto unsigned int channel,i;
    auto unsigned char inbit;
    auto unsigned int avg_sample;
    auto int rawvalue;
	// display the input status for all channels
	for(channel = 0; channel < 16; channel++)	//read channels 0 - 15
	{
   	i = channel/16;
      inbit = digIn(channel);
      if (inbit)
      {	//read channel
	     	RES(Port_InputStat+96+i,channel%16);
			//printf("bit:%d value:%d\r\n",channel%16,inbit);
      }
      else
      {
      	SET(Port_InputStat+96+i,channel%16);
			//printf("bit:%d value:%d\r\n",channel%16,inbit);
      }
	}
	for(channel = 0; channel < 8; channel++)	//read channels 16 - 23
	{
   	i = channel/16;
      inbit = digIn(channel+16);
      if (inbit)
      {	//read channel
	   	RES(Port_InputStat+97+i,channel%16);
			//printf("bit:%d value:%d\r\n",channel%16+16,inbit);
      }
      else
      {
      	SET(Port_InputStat+97+i,channel%16);
			//printf("bit:%d value:%d\r\n",channel%16+16,inbit);
      }
	}
	for(channel = 0; channel < NUM_CHANNELS; channel++)	//read channels 0 - 10
	{
		// sample each channel 10 times...
	   avg_sample = sample_ad(channel, 100);
		rawvalue = (int)(((_adcCalib[channel][0] * (_adcCalib[channel][1] - avg_sample)))*1000);

      switch(cur_route)
      {
      	case 1:
         	Port_InputReg[1536+channel] = rawvalue;
            break;
         case 2:
        		Port_InputReg[1536+channel+15] = rawvalue;
        		break;
         case 3:
        		Port_InputReg[1536+channel+30] = rawvalue;
        		break;
         default:
        		Port_InputReg[1536+channel] = rawvalue;
        		break;
      }
	}
	return 0;
}

root int Write_IO(void)
{
	auto int channel,output_level;

	for(channel = 0; channel < 16; channel++)
	{
		// Set the high-current outputs to be OFF, for both sinking
		// and sourcing type outputs.
		if((int)(Port_HoldingReg[99+channel]) && 0x01)
		{
			digOut(channel, 1);
		}
		else
		{
      		digOut(channel, 0);
		}
	}
	return 0;
}

unsigned int currentComRunStatus[3];
unsigned int oldComRunStatus[3];
void main()
{
    auto int i,user,page1;  // handle for a virtual watchdog
    auto unsigned long tm[4];
    auto unsigned char devicetype[4];
    auto int LEDvalue[4];
    auto char hostid[20];

//------------------------------------------------------------------------
//	Initialize the controller
//------------------------------------------------------------------------
	brdInit();			// Initialize the controller
	//Initialize board , user block (setup parameters) ,ethernet ,serial port ect.

    userblock_init();
	hardware_subsys_init();
	printf("T1:%s\nT2:%s\nT3:%s\n",T1,T2,T3);

	//Initialize auth users
	http_setauthentication(HTTP_DIGEST_AUTH);

 	user = sauth_adduser("foo", "bar", SERVER_HTTP);
    page1 = sspec_addxmemfile("/", index_html, SERVER_HTTP);
	sspec_adduser(page1, user);
	sspec_setrealm(page1, "Admin");

	//Initilize sock modbus/tcp port ,web server
    sock_init();
    digOutConfig(0xFFFF);  //config digout port
    printf("My IP address is %s\n", inet_ntoa(hostid,gethostid()));
	mbtcp_init(MB_TCP_PORT);

	http_init();
	tcp_reserveport(80);

	//Clean  modbus protocol buffers,ready for receive acquired data
    for(i=0;i<1600;i++){Port_HoldingReg[i]=0;}
    for(i=0;i<1600;i++){Port_InputReg[i]=0;}
    for(i=0;i<100;i++){Port_CoilStat[i]=0;}
    for(i=0;i<100;i++){Port_InputStat[i]=0;}
	for(i = 0;i< 3;i++)
	{
		currentComRunStatus[i] = 0;
		oldComRunStatus[i] = 1;
	}
    LEDvalue[0] = LEDvalue[1] = LEDvalue[2] = LEDvalue[3] = 0x00;

	//Initialize device send data block
	protdata_init(ComB,atoi(D3));		// portB
	protdata_init(ComC,atoi(D6));		// portC
	protdata_init(ComD,atoi(D9));		// portD

	devicetype[1] =(unsigned char) atoi(D3);
	devicetype[2] =(unsigned char) atoi(D6);
	devicetype[3] =(unsigned char) atoi(D9);
	//Initialize serial port timeout var
	tm[0] = SEC_TIMER;
	tm[1] = SEC_TIMER;
	tm[2] = SEC_TIMER;
	tm[3] = SEC_TIMER;

	rebootflag =0;
	cur_route = 0;

	while (1)
	{
		costate
	    {  //detected serial comm. if timeout then reinitialized cd_port
			if (rebootflag==1)
            {
				waitfor(DelaySec(3));
				forceSoftReset();
            }
			//-------------------------------------------
      if (SEC_TIMER-tm[1]>0x20uL)
			{
				if((oldComRunStatus[0] == currentComRunStatus[0])&&(0 != devicetype[1]))
				{
					CoReset(&cd_portB);
					tm[1] = SEC_TIMER;
					oldComRunStatus[0] = currentComRunStatus[0];
					SET(Port_InputStat+98,1);            //set portB timeout flag
					printf("serial port B timeout\r\n");
    				CoBegin(&cd_portB);
				}
				else
				{
					  tm[1] = SEC_TIMER;
			      oldComRunStatus[0] = currentComRunStatus[0];
			      RES(Port_InputStat+98,1);
				}
			}

      if (SEC_TIMER-tm[2]>0x20uL)
			{
				if((oldComRunStatus[1] == currentComRunStatus[1])&&(0 != devicetype[2]))
				{
					CoReset(&cd_portC);
					tm[2] = SEC_TIMER;
					oldComRunStatus[1] = currentComRunStatus[1];
					SET(Port_InputStat+98,2);            //set portC timeout flag
					printf("serial port C timeout\r\n");
					CoBegin(&cd_portC);
				}
				else
				{
					  tm[2] = SEC_TIMER;
			      oldComRunStatus[1] = currentComRunStatus[1];
			      RES(Port_InputStat+98,2);
				}
			}
      if (SEC_TIMER-tm[3]>0x20uL)
			{
				if((oldComRunStatus[2] == currentComRunStatus[2])&&(0 != devicetype[3]))
				{
					CoReset(&cd_portD);
					tm[3] = SEC_TIMER;
					oldComRunStatus[2] = currentComRunStatus[2];
					SET(Port_InputStat+98,3);            //set portD timeout flag
					printf("serial port D timeout\r\n");
					CoBegin(&cd_portD);
				}
				else
				{
					  tm[3] = SEC_TIMER;
			      oldComRunStatus[2] = currentComRunStatus[2];
			      RES(Port_InputStat+98,3);
				}
			}
        }
		costate
		{  //deal modbus/tcp msgs , established comm.
			mbtcp_handler();
		}
		costate
		{    //insert code for i/o port data
			waitfor(DelayMs(20uL));
          	read_io();
        }
	    costate
	    {  //deal  Web Server
			http_handler();
		}
	    costate  cd_portB always_on
	    {  // process serial comm. port B
			waitfor(DelayMs(30uL));
			wfd serial_handler[1](0x01,devicetype[1]);   //port B ,modbus protocol
      //tm[1] = SEC_TIMER;
			//oldComRunStatus[0] = currentComRunStatus[0];
			//RES(Port_InputStat+98,1);
			if(devicetype[1]==0x00)
        		LEDvalue[1] =0x00;
			else
        		LEDvalue[1] ^=0x01;
			ledOut(0x01, LEDvalue[1]);
	    }
	    costate  cd_portC always_on
	    {  // process serial comm. port C
			waitfor(DelayMs(30uL));
			wfd serial_handler[2](0x02,devicetype[2]);   //port C ,modbus protocol
      //tm[2] = SEC_TIMER;
			//oldComRunStatus[1] = currentComRunStatus[1];
			//RES(Port_InputStat+98,2);
			if(devicetype[2]==0x00)
				LEDvalue[2] =0x00;
			else
        		LEDvalue[2] ^=0x01;
			ledOut(0x02, LEDvalue[2]);
	    }
	    costate  cd_portD always_on
	    {  // process serial comm. port D
     		ser485Tx();
			waitfor(DelayMs(30uL));
			wfd serial_handler[3](0x03,devicetype[3]);   //port D ,modbus protocol
      //tm[3] = SEC_TIMER;
			//oldComRunStatus[2] = currentComRunStatus[2];
			//RES(Port_InputStat+98,3);
      if(devicetype[3]==0x00)
				LEDvalue[3] =0x00;
			else LEDvalue[3] ^=0x01;
				ledOut(0x03, LEDvalue[3]);
	    }
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色综合天天| 久久久91精品国产一区二区精品 | 久久人人超碰精品| 久久国产精品无码网站| 精品久久久久一区| 国产精品一线二线三线| 国产视频一区二区在线| 不卡一区中文字幕| 亚洲美女屁股眼交| 欧美精品一二三| 美女在线观看视频一区二区| 久久久亚洲综合| 色狠狠桃花综合| 蜜臀久久99精品久久久画质超高清 | 91美女片黄在线| 亚洲成a天堂v人片| 精品sm捆绑视频| 成人激情午夜影院| 日韩精品免费专区| 久久先锋资源网| 69堂国产成人免费视频| 国产黄色91视频| 亚洲另类一区二区| 日韩免费高清电影| 99精品在线免费| 日韩不卡一二三区| 国产亚洲精品福利| 欧美老年两性高潮| 成人污视频在线观看| 亚洲国产一区二区三区青草影视| 日韩欧美中文字幕一区| 成人国产精品视频| 免费视频最近日韩| 一区二区不卡在线视频 午夜欧美不卡在| 91精品一区二区三区在线观看| 国产不卡免费视频| 无码av免费一区二区三区试看| 2021国产精品久久精品| 欧美午夜电影在线播放| 成人a免费在线看| 亚洲成av人片一区二区三区| 国产欧美一区二区精品性色| 欧美电影一区二区三区| 99久久精品免费| 韩国欧美国产1区| 亚洲国产精品久久久久秋霞影院 | 一区二区三区资源| www国产亚洲精品久久麻豆| 91搞黄在线观看| 国产91精品精华液一区二区三区| 日本不卡的三区四区五区| 亚洲人成小说网站色在线| 久久免费视频一区| 日韩欧美国产三级| 欧美美女黄视频| 色八戒一区二区三区| 国产不卡视频一区二区三区| 精品一区二区三区不卡 | 56国语精品自产拍在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 精品在线观看免费| 久久国产尿小便嘘嘘尿| 视频一区二区三区在线| 亚洲一二三四在线观看| 亚洲精品一二三| 国产精品久久久久久久久搜平片 | 亚洲精品欧美激情| 国产精品福利一区二区三区| 国产欧美视频一区二区三区| 精品国产免费视频| 日韩欧美国产麻豆| 精品国产髙清在线看国产毛片| 5566中文字幕一区二区电影| 欧美久久免费观看| 欧美日本一区二区| 欧美欧美午夜aⅴ在线观看| 欧美影视一区二区三区| 欧美亚洲国产一区二区三区| 日本韩国欧美在线| 色综合色综合色综合| 91免费版pro下载短视频| 93久久精品日日躁夜夜躁欧美| 不卡的看片网站| av不卡在线播放| 91亚洲精品一区二区乱码| 99re这里只有精品6| 91免费国产视频网站| 色综合久久久久| 欧洲一区二区av| 欧美精品一卡二卡| 日韩一区二区高清| 精品成人一区二区三区四区| 国产日韩精品一区二区三区 | 亚洲一区二区影院| 午夜久久福利影院| 另类调教123区| 国产精品一级在线| 99精品热视频| 欧美视频精品在线| 日韩午夜av一区| 久久亚洲精品国产精品紫薇| 国产精品乱人伦| 亚洲一区在线播放| 久久精品国产999大香线蕉| 国产精品综合二区| 成人av免费在线播放| 91官网在线免费观看| 日韩欧美一区二区三区在线| 久久久久久久久97黄色工厂| 国产日韩欧美麻豆| 亚洲午夜电影网| 国产麻豆精品在线观看| 色婷婷激情综合| 337p日本欧洲亚洲大胆色噜噜| 国产精品污污网站在线观看| 亚洲一区二区三区四区在线| 精品一区二区免费在线观看| 99re这里都是精品| 欧美电影免费观看高清完整版在线 | 51精品久久久久久久蜜臀| 久久影院电视剧免费观看| 国产精品国产三级国产aⅴ无密码| 亚洲制服丝袜一区| 国产另类ts人妖一区二区| 日本丶国产丶欧美色综合| 欧美电视剧在线观看完整版| 亚洲欧美日韩系列| 精品在线你懂的| 欧美色欧美亚洲另类二区| 国产亚洲综合av| 国产成人亚洲综合a∨猫咪| 日本福利一区二区| 国产精品私人影院| 青椒成人免费视频| 色94色欧美sute亚洲线路一ni| 日韩欧美中文一区| 亚洲另类春色校园小说| 韩国成人在线视频| 欧美乱妇一区二区三区不卡视频| 国产精品丝袜一区| 激情综合一区二区三区| 欧美日韩一级片网站| 国产精品沙发午睡系列990531| 免费在线视频一区| 欧美日韩亚洲综合在线 | 美女网站色91| 欧美网站一区二区| 亚洲欧美日本在线| 国产精品一线二线三线精华| 日韩欧美一级二级三级| 丝袜诱惑亚洲看片| 欧美视频三区在线播放| 亚洲另类在线制服丝袜| 99精品视频在线播放观看| 亚洲国产精品传媒在线观看| 国内一区二区在线| 日韩精品自拍偷拍| 亚洲高清在线精品| 欧美综合天天夜夜久久| 亚洲欧美日韩系列| 91免费小视频| 亚洲黄色免费网站| www.欧美日韩国产在线| 国产精品嫩草99a| 国产盗摄一区二区| 国产日韩欧美制服另类| 国产高清久久久久| 欧美国产成人精品| 成人黄色av电影| 一区二区中文字幕在线| jvid福利写真一区二区三区| 中文字幕一区二区三区视频| 国产一区二区免费在线| 337p粉嫩大胆色噜噜噜噜亚洲| 久久66热偷产精品| 精品捆绑美女sm三区| 国产乱码一区二区三区| 欧美国产综合一区二区| aa级大片欧美| 亚洲高清一区二区三区| 日韩一级大片在线| 久久99国产精品麻豆| 久久精品亚洲国产奇米99| 丁香亚洲综合激情啪啪综合| 国产精品视频看| 色国产综合视频| 亚洲不卡av一区二区三区| 日韩一区二区在线看| 经典三级在线一区| 国产日韩欧美在线一区| 91丨porny丨国产| 亚洲大片一区二区三区| 日韩一区二区三区高清免费看看| 久久99精品国产麻豆婷婷洗澡| 久久综合色播五月| aaa亚洲精品| 日韩电影在线一区| 久久精品水蜜桃av综合天堂| 9色porny自拍视频一区二区| 视频精品一区二区|