📄 linkfault.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 + -