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

📄 linkfault.c

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

#include "smi.h"
#include "ip113f.h"

#include "eeprom.h"

extern variable_t var_list[];
extern struct httpd_state *hs;
extern int stNo;
extern int sign;
extern int remotesign;
static char lfhttpbuf[40];
int lfData;
int lfrData;
int lfsign;
extern int statusData;
extern int RtstData;

u8_t ssiLinkFault(u8_t varid, value_t *vp)
{
	u8_t *sel;		

	switch (varid)
	{
		case TGI_LINK_NO:
			sprintf(lfhttpbuf,"%d module",stNo);	
			vp->value.string = lfhttpbuf;							
			vp->type = string;			
			break;
		case TGI_LLFP_ENABLE:
			if(sign==1)
			{
				if(DATA_GETBIT(lfData, 15)==1)	
					vp->value.string = "CHECKED";
				else
					vp->value.string = "";										
				vp->type = string;
			}	
			else
			{
				vp->value.string = "";										
				vp->type = string;
			}	
			break;
		case TGI_LLFP_DISABLE:
			if(sign==1)
			{
				if(DATA_GETBIT(lfData, 15)==1)	
					vp->value.string = "";
				else
					vp->value.string = "CHECKED";										
				vp->type = string;
			}	
			else
			{
				vp->value.string = "";										
				vp->type = string;
			}	
			break;
		case TGI_RLFP_ENABLE:
			if((sign==1)&&(remotesign==1))
			{
				if(DATA_GETBIT(lfrData, 15)==1)	
					vp->value.string = "CHECKED";
				else
					vp->value.string = "";										
				vp->type = string;
			}	
			else
			{
				vp->value.string = "";										
				vp->type = string;
			}	
			break;
		case TGI_RLFP_DISABLE:
			if((sign==1)&&(remotesign==1))
			{
				if(DATA_GETBIT(lfrData, 15)==1)	
					vp->value.string = "";
				else
					vp->value.string = "CHECKED";										
				vp->type = string;
			}	
			else
			{
				vp->value.string = "";										
				vp->type = string;
			}	
			break;
		default:
			vp->value.string = NULL;
			vp->type = string;
		break;

	}
	return OK;
}
u8_t tgiLinkFault(u8_t cnt, value_t *vp)
{
	int j;
	unsigned char receivebuf[4];
	unsigned char sendbuf[9];
	unsigned int d0;

	if( (strncmp(var_list[2].value, "Apply", 5)==0)||(strncmp(var_list[3].value, "Apply", 5)==0)|| (strncmp(var_list[4].value, "Apply", 5)==0))
	
	{	
		if((sign==1)&&(remotesign==1))
		{
			if(stNo<10)
			{
				sendbuf[1]='0';
				sendbuf[2]=stNo+'0';
			}
			else
			{
				sendbuf[1]='1';
				sendbuf[2]=stNo-10+'0';
			}

			lfData=statusData;
			lfData=RtstData;
			

			if (strncmp(var_list[0].value, "enable", 6)==0)//local lfp enable
			{	
				sendbuf[0]='a';//select func number
				sendbuf[3]='0';
				sendbuf[4]='0';
				sendbuf[5]='0';
				sendbuf[6]='0';
				sendbuf[7]='0';
				sendbuf[8]='0';
				putstr(sendbuf);
			}
			else	if (strncmp(var_list[0].value, "disable", 7)==0)//local lfp disable
			{	
				sendbuf[0]='b';//select func number
				sendbuf[3]='0';
				sendbuf[4]='0';
				sendbuf[5]='0';
				sendbuf[6]='0';
				sendbuf[7]='0';
				sendbuf[8]='0';
				putstr(sendbuf);
			}
			Delay(500);
			if (strncmp(var_list[1].value, "enable", 6)==0)//remote lfp enable
			{	
				sendbuf[0]='c';//select func number
				sendbuf[3]='0';
				sendbuf[4]='0';
				sendbuf[5]='0';
				sendbuf[6]='0';
				sendbuf[7]='0';
				sendbuf[8]='0';
				putstr(sendbuf);
			}
			else	if (strncmp(var_list[1].value, "disable", 7)==0)//remote lfp disable
			{	
				sendbuf[0]='d';//select func number
				sendbuf[3]='0';
				sendbuf[4]='0';
				sendbuf[5]='0';
				sendbuf[6]='0';
				sendbuf[7]='0';
				sendbuf[8]='0';
				putstr(sendbuf);
			}
			Delay(500);

				sendbuf[0]='r';//select func number
				sendbuf[3]='2';
				sendbuf[4]='2';
				sendbuf[5]='0';
				sendbuf[6]='0';
				sendbuf[7]='0';
				sendbuf[8]='0';
				putstr(sendbuf);
				while(get_char_com()!='s');
				getstr(receivebuf);
				
				lfData=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;

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

				sendbuf[0]='p';//select func number
				sendbuf[3]='2';
				sendbuf[4]='2';
				sendbuf[5]='0';
				sendbuf[6]='0';
				sendbuf[7]='0';
				sendbuf[8]='0';
				putstr(sendbuf);
				while(get_char_com()!='s');
				getstr(receivebuf);
				
				lfrData=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;

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

		}
		httpd_send_file(fs_open3("linkFaultPassThough.htm"));

	}

	return OK;
}

⌨️ 快捷键说明

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