📄 remotestatuscbk.c
字号:
/****************************************************************************
*
* Name: moduleStatuc.c
*
* Description: Call Back Function
*
* Copyright: Conner Zhang.
* Author: Eli
* All rights reserved.
*
****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "tfTypes.h"
#include "fs.h"
#include "httpd.h"
#include "html.h"
#include "monitorStatus.h" // html file
#include "ip113f.h"
extern variable_t var_list[];
extern struct httpd_state *hs;
int RtstData;
static char restatbuf[50]=" ";
int remotesign;
extern int sign;
extern int stNo;
u8_t ssiRemoteStatus(u8_t varid, value_t *vp)
{
char *str;
u8_t *sel;
switch (varid)
{
case TGI_R_Status_No: //TGI_REMOTE_PHY_ADDR:
sprintf(restatbuf,"%d module",stNo);
vp->value.string = restatbuf;
vp->type = string;
break;
case TGI_R_Link_Status:
if((sign ==1)&&(remotesign==1))
{
if(DATA_GETBIT(RtstData, 6)==1)//bit 6
str = "Off";
else
str = "On";
vp->value.string = str;
vp->type = string;
}
else
{
vp->value.string = "";
vp->type = string;
}
break;
case TGI_R_Speed_Status: //TGI_Remote_Speed_Status:
if((sign ==1)&&(remotesign==1))
{
if(RtstData&0x0008) //bit 3
str = "100M";
else
str = "10M";
vp->value.string = str;
vp->type = string;
}
else
{
vp->value.string = "";
vp->type = string;
}
break;
case TGI_R_Duplex_Status://TGI_Remote_Duplex_Status:
if((sign ==1)&&(remotesign==1))
{
if(RtstData&0x0010) //bit 4
str = "Full";
else
str = "Half";
vp->value.string = str;
vp->type = string;
}
else
{
vp->value.string = "";
vp->type = string;
}
break;
case TGI_R_AN_Status://TGI_Remote_AN_Status:
if((sign ==1)&&(remotesign==1))
{
if(RtstData&0x0004)
str = "Enable";
else
str = "Disable";
vp->value.string = str;
vp->type = string;
}
else
{
vp->value.string = "";
vp->type = string;
}
break;
case TGI_R_FC_Status://TGI_Remote_FC_Status:
if((sign ==1)&&(remotesign==1))
{
if(RtstData&0x0020)
str = "Enable";
else
str = "Disable";
vp->value.string = str;
vp->type = string;
}
else
{
vp->value.string = "";
vp->type = string;
}
break;
case TGI_R_LFP_Status://TGI_Remote_FC_Status:
if((sign ==1)&&(remotesign==1))
{
if(RtstData&0x8000)
str = "Enable";
else
str = "Disable";
vp->value.string = str;
vp->type = string;
}
else
{
vp->value.string = "";
vp->type = string;
}
break;
default:
vp->value.string = "";
vp->type = string;
break;
}
return OK;
}
u8_t tgiRemoteStatus(u8_t cnt, value_t *vp)
{
int j;
unsigned char receivebuf[4];
unsigned char sendbuf[9];
unsigned int d0;
unsigned int d=0;
if (( strncmp( var_list[1].value, "Poll", 4)==0 )||( strncmp( var_list[0].value, "Poll", 4)==0 ))
{
if(sign==1)
{
if(stNo<10)
{
sendbuf[1]='0';
sendbuf[2]=stNo+'0';
}
else
{
sendbuf[1]='1';
sendbuf[2]=stNo-10+'0';
}
sendbuf[0]='x';//select func number
sendbuf[3]='0';
sendbuf[4]='2';
sendbuf[5]='0';
sendbuf[6]='0';
sendbuf[7]='0';
sendbuf[8]='0';
for(j=0;j<9;j++)
put_char_com(sendbuf[j]);
while(get_char_com()!='s');
getstr(receivebuf);
if((receivebuf[0]=='0')&&(receivebuf[1]=='2')&&(receivebuf[2]=='4')&&(receivebuf[3]=='3'))
remotesign=1;//module here
else
remotesign=0;
Delay(5000);
if(remotesign==1)
{
sendbuf[0]='p';//select func number
sendbuf[3]='2';
sendbuf[4]='2';
sendbuf[5]='0';
sendbuf[6]='0';
sendbuf[7]='0';
sendbuf[8]='0';
for(j=0;j<9;j++)
put_char_com(sendbuf[j]);
//putstr(sendbuf);
while(get_char_com()!='s');
getstr(receivebuf);
RtstData=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;
}
RtstData=(RtstData |( d0<<((3-j)*4)))&0xffff;
}
Delay(5000);
sendbuf[0]='u';// Remote Autosend enable
sendbuf[3]='2';
sendbuf[4]='2';
sendbuf[5]='0';
sendbuf[6]='0';
sendbuf[7]='0';
sendbuf[8]='0';
putstr(sendbuf);
Delay(5000);
}
}
httpd_send_file(fs_open3("monitorStatus.htm"));
}
return OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -