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

📄 loopback.c

📁 基于网络服务控制芯片TF-320的嵌入式web server源代码
💻 C
字号:
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "tfTypes.h"
#include "fs.h"
#include "httpd.h"
#include "html.h"
#include "loopBackTest.h"
#include "ip113f.h"

extern struct httpd_state *hs;
static char backbuf[15];
static char dddbuf[20]="  ";
extern variable_t var_list[];
int lbData;
extern int stNo;
extern int sign;
u8_t ssiLoopBack(u8_t varid, value_t *vp)
{
	u8_t *sel;		
    
	switch (varid)
	{
		case TGI_LOOP_NO:
			memset(backbuf,15,NULL);
			sprintf(backbuf,"%d module",stNo);	
			vp->value.string = backbuf;							
			vp->type = string;			
			break;
		case TGI_LOOP_RESULT:
			if(DATA_GETBIT(lbData, 6)==1)
			{
				if(DATA_GETBIT(lbData, 8)==1)
				{
					if(DATA_GETBIT(lbData, 9)==1)
					{
						sprintf(dddbuf,"pass");	
						//vp->value.string = "pass";
					}
					else
					{
						sprintf(dddbuf,"fail");	
						//vp->value.string = "fail";										
					}	
				}
			}
			else
			{
				sprintf(dddbuf,"Disabled");	
				//vp->value.string = "Disabled";										
			}
			vp->value.string = dddbuf;							
			vp->type = string;			
			break;
		
	}
	return OK;
}
u8_t tgiLoopBack(u8_t cnt, value_t *vp1)
{
	int j;
	unsigned char receivebuf[4];
	unsigned char sendbuf[9];
	unsigned int d0;


	if(stNo<10)
	{
		sendbuf[1]='0';
		sendbuf[2]=stNo+'0';
	}
	else
	{
		sendbuf[1]='1';
		sendbuf[2]=stNo-10+'0';
	}
	if (( strncmp( var_list[1].value, "Poll", 4)==0 )||( strncmp( var_list[0].value, "Poll", 4)==0 ))
	{
		sendbuf[0]='r';//select func number
		sendbuf[3]='3';
		sendbuf[4]='1';
		sendbuf[5]='0';
		sendbuf[6]='0';
		sendbuf[7]='0';
		sendbuf[8]='0';

		putstr(sendbuf);
		while(get_char_com()!='s');
		getstr(receivebuf);

		lbData=0;
		for(j=0;j<4;j++)
		{
					
			if((receivebuf[j]>='0')&&(receivebuf[j]<='9'))
			{
				d0=(receivebuf[j]-'0')&0x0f;

			}
			else	if((receivebuf[j]>='a')&&(receivebuf[j]<='f'))
			{
				d0=(receivebuf[j]-'a'+10)&0x0f;

			}
			else	if((receivebuf[j]>='A')&&(receivebuf[j]<='F'))
			{
				d0=(receivebuf[j]-'A'+10)&0x0f;

			}
			lbData=(lbData |( d0<<((3-j)*4)))&0xffff;
					
		}

	}

	else if (( strncmp( var_list[1].value, "Enable", 6)==0 )||( strncmp( var_list[0].value, "Enable", 6)==0 )	)
		{
			sendbuf[0]='l';//select func number
			sendbuf[3]='3';
			sendbuf[4]='1';
			sendbuf[5]='0';
			sendbuf[6]='0';
			sendbuf[7]='0';
			sendbuf[8]='0';
			putstr(sendbuf);
		       Delay(50000);
		}
	else if (( strncmp( var_list[1].value, "Disable", 7)==0 )||( strncmp( var_list[0].value, "Disable", 7)==0 )	)
		{
			Delay(500);
			sendbuf[0]='v';//select func number
			sendbuf[3]='3';
			sendbuf[4]='1';
			sendbuf[5]='0';
			sendbuf[6]='0';
			sendbuf[7]='0';
			sendbuf[8]='0';

			putstr(sendbuf);
			Delay(50000);
//			lbData=DATA_CLRBIT(lbData, 6);

		}
	httpd_send_file(fs_open3("loopBackTest.htm"));
	return OK;

}

⌨️ 快捷键说明

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