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