📄 function.c
字号:
#define _Function_
#include "..\Inc\includes.h"
extern unsigned char TX_Byte(unsigned char);
extern void Init_Sys(void);
extern void TA0_ISR(void);
void sendsound(unsigned char k,unsigned char const *p)
{
unsigned char i;
for(i=0;i<k;i++) TX_Byte(p[i]);
}
void sound_txt(unsigned char *p)
{
uchar l;
l=strlen((char *)p);
TX_Byte(0xfe);
TX_Byte(0x01);
TX_Byte(0x00);
TX_Byte(l);
sendsound(l,p);
}
/***************************************************************************
* 函数名称: ON_face
*
* 功能描述: 显示 图标 东电通信连接未来 维持约2S
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: Dode,Dodem
*
* 调用模块: write_word();
*
* 作 者: Cache
* 创建时间: 2006年1月16日
**************************************************************************/
void ON_face(void)
{
Uint8 x1=0,k,y1=43;
Uint32 z=0;
write_word(50,8,Dode,32,16); // 东电标志、上半部分
write_word(50,24,&Dode[64],32,16); // 东电标志、下半部分
for(k=0; k<8; k++)
{
write_word(x1+k*15,y1,Dodem[k],16,16);
for(z=0;z<15000;z++) ;
}
//for(z=0;z<100000;z++); // 时间等待
}
/*********************************************************************************************************
* 函数名称:ON_1_face
*
* 功能描述: 显示系统主菜单(系统设置实时显示及报警)
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: XitongShezhi, Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_1_face(void)
{
Uint8 k,x1=32,y1=6;
clear();
for(k=0;k<4;k++)
{
write_word(x1+k*16,y1,XitongShezhi[k],16,16);
write_word(x1+k*16,y1+18,XitongShezhi[k+4],16,16);
write_word(x1+k*16,y1+18+18,XitongShezhi[k+8],16,16);
}
write_number(x1-12,y1,1);
write_number(x1-12,y1+18,2);
write_number(x1-12,y1+36,3);
Menu_ID=0;
}
/*********************************************************************************************************
* 函数名称:ON_SET_FACE
*
* 功能描述: 系统设置界面("通信设置","通道设置","时间设置","密码修改")
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: TongxinShezhi Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_SET_FACE(void)
{
Uint8 k,x1=32,y1=0;
clear();
for(k=0;k<4;k++)
{
write_word(x1+k*16,y1,TongxinShezhi[k],16,16);
write_word(x1+k*16,y1+16,TongxinShezhi[k+4],16,16);
write_word(x1+k*16,y1+16+16,TongxinShezhi[k+8],16,16);
write_word(x1+k*16,y1+16+16+16,TongxinShezhi[k+12],16,16);
write_number(x1-12,y1+16*k,k+1);
}
write_word(x1+79,48,Arrow[0],16,16);
Menu_ID=2;
}
/*********************************************************************************************************
* 函数名称:ON_SET_BDTX
*
* 功能描述: "通信设置"界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: YuanduanIP, Menu_ID,IP
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_SET_BDTX(void)
{
Uint8 k,x1=32,y1=0;
clear();
for(k=0;k<2;k++)
{
write_word(x1+k*16,y1,YuanduanIP[k],16,16);
write_word(x1+k*16,y1+16,YuanduanIP[k],16,16);
write_word(x1+32+k*16,y1+16,YuanduanIP[k+4],16,16);
write_word(x1+k*16,y1+32,YuanduanIP[k+2],16,16);
write_word(x1+k*16,y1+48,YuanduanIP[k+2],16,16);
write_word(x1+32+k*16,y1+48,YuanduanIP[k+4],16,16);
}
for(k=0;k<2;k++)
{
write_word(x1+k*8+32,y1,IP[k],8,16);
write_word(x1+k*8+32,y1+32,IP[k],8,16);
}
for(k=0;k<4;k++)
write_number(x1-12,y1+16*k,k+1);
Menu_ID=3;
}
/*********************************************************************************************************
* 函数名称:ON_SET_TongDao
*
* 功能描述: 本地通道设置界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: MoniShuru Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_SET_TongDao(void)
{
Uint8 k,x1=32,y1=0;
clear();
for(k=0;k<4;k++)
{
write_word(x1+k*16,y1,MoniShuru[k],16,16);
write_word(x1+k*16,y1+16,MoniShuru[k+4],16,16);
write_word(x1+k*16,y1+16+16,MoniShuru[k+8],16,16);
if(k<3)write_number(x1-12,y1+16*k,k+1);
}
Menu_ID=4;
}
/*********************************************************************************************************
* 函数名称:ON_EnterPsw
*
* 功能描述: 密码输入界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: QingshuruMima Set_array_count Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_EnterPsw(void)
{
Uint8 k,x1=20,y1=10;
clear();
for(k=0;k<5;k++)
write_word(x1+k*16,y1,QingshuruMima[k],16,16);
write_number(x1+5*16,y1,11);
for(k=0;k<6;k++)
write_number(x1+k*8+16,y1+25,15);
Set_array_count=0;
Menu_ID=1;
}
/*********************************************************************************************************
* 函数名称:ON_EnterYuanIP
*
* 功能描述: 远端IP设置界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: QingshuruMima YuanduanIP Set_array_count Set_temp Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_EnterYuanIP(void)
{
Uint8 k,x1=2,y1=10,Mid;
clear();
for(k=0;k<3;k++)
write_word(x1+k*16,y1,QingshuruMima[k],16,16);//请输入
for(k=0;k<2;k++)
{
write_word(x1+48+k*16,y1,YuanduanIP[k],16,16);//远端
write_word(x1+k*8+5*16,y1,IP[k],8,16);
}//ip
write_number(x1+5*16+2*8,y1,11);
x1=2;
for(k=0;k<15;k++)
write_number(x1+k*8,y1+25,15);//_
write_number(x1+3*8,y1+25,12);//.
write_number(x1+7*8,y1+25,12);//.
write_number(x1+11*8,y1+25,12);//.
Mid = Yuan_IP/0x1000000;
write_number_black(x1,y1+22,Mid/100);
write_number(x1+1*8,y1+22,Mid/10%10);
write_number(x1+2*8,y1+22,Mid%10);
Set_array[0]=Mid/100;Set_array[1]=Mid/10%10;Set_array[2]=Mid%10;
x1+=7;
Mid = Yuan_IP/0x10000%256;
write_number(x1+3*8,y1+22,Mid/100);
write_number(x1+4*8,y1+22,Mid/10%10);
write_number(x1+5*8,y1+22,Mid%10);
Set_array[3]=Mid/100;Set_array[4]=Mid/10%10;Set_array[5]=Mid%10;
x1+=7;
Mid = Yuan_IP/0x100%256;
write_number(x1+6*8,y1+22,Mid/100);
write_number(x1+7*8,y1+22,Mid/10%10);
write_number(x1+8*8,y1+22,Mid%10);
Set_array[6]=Mid/100;Set_array[7]=Mid/10%10;Set_array[8]=Mid%10;
x1+=6;
Mid = Yuan_IP%256;
write_number(x1+9*8,y1+22,Mid/100);
write_number(x1+10*8,y1+22,Mid/10%10);
write_number(x1+11*8,y1+22,Mid%10);
Set_array[9]=Mid/100;Set_array[10]=Mid/10%10;Set_array[11]=Mid%10;
x1+=7;
Set_array_count=0;
Set_temp=0;
Menu_ID=5;
}
/*********************************************************************************************************
* 函数名称:ON_EnterYuanDK
*
* 功能描述: 远端端口设置界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: QingshuruMima YuanduanIP Set_temp Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_EnterYuanDK(void)
{
Uint8 k,x1=2,y1=10;
clear();
for(k=0;k<3;k++)
write_word(x1+k*16,y1,QingshuruMima[k],16,16);
for(k=0;k<2;k++)
write_word(x1+48+k*16,y1,YuanduanIP[k],16,16);//远端
for(k=0;k<2;k++)
write_word(x1+5*16+k*16,y1,YuanduanIP[k+4],16,16);//端口
write_number(x1+7*16,y1,11);
x1=40;
for(k=0;k<5;k++)
write_number(x1+k*8,y1+25,15);
if(Yuan_dk>=10000) write_number(x1+0*8,y1+22,Yuan_dk/10000); else write_number(x1+0*8,y1+22,30);
if(Yuan_dk>=1000) write_number(x1+1*8,y1+22,Yuan_dk/1000%10); else write_number(x1+1*8,y1+22,30);
if(Yuan_dk>=100) write_number(x1+2*8,y1+22,Yuan_dk/100%10); else write_number(x1+2*8,y1+22,30);
if(Yuan_dk>=10) write_number(x1+3*8,y1+22,Yuan_dk/10%10); else write_number(x1+3*8,y1+22,30);
write_number(x1+4*8,y1+22,Yuan_dk%10);
Set_temp=0;
Menu_ID=6;
}
/*********************************************************************************************************
* 函数名称:ON_EnterIP
*
* 功能描述: 本地IP设置界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: QingshuruMima YuanduanIP Set_temp Menu_ID IP
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_EnterIP(void)
{
Uint8 k,x1=2,y1=10,Mid;
clear();
for(k=0;k<3;k++)
write_word(x1+k*16,y1,QingshuruMima[k],16,16);//请输入
for(k=0;k<2;k++)
{
write_word(x1+48+k*16,y1,YuanduanIP[k+2],16,16);//本地
write_word(x1+k*8+5*16,y1,IP[k],8,16);
}//ip
write_number(x1+5*16+2*8,y1,11);
x1=2;
for(k=0;k<15;k++)
write_number(x1+k*8,y1+25,15);//_
write_number(x1+3*8,y1+25,12);//.
write_number(x1+7*8,y1+25,12);//.
write_number(x1+11*8,y1+25,12);//.
Mid = Bendi_IP/0x1000000;
write_number_black(x1,y1+22,Mid/100);
write_number(x1+1*8,y1+22,Mid/10%10);
write_number(x1+2*8,y1+22,Mid%10);
Set_array[0]=Mid/100;Set_array[1]=Mid/10%10;Set_array[2]=Mid%10;
x1+=7;
Mid = Bendi_IP/0x10000%256;
write_number(x1+3*8,y1+22,Mid/100);
write_number(x1+4*8,y1+22,Mid/10%10);
write_number(x1+5*8,y1+22,Mid%10);
Set_array[3]=Mid/100;Set_array[4]=Mid/10%10;Set_array[5]=Mid%10;
x1+=7;
Mid = Bendi_IP/0x100%256;
write_number(x1+6*8,y1+22,Mid/100);
write_number(x1+7*8,y1+22,Mid/10%10);
write_number(x1+8*8,y1+22,Mid%10);
Set_array[6]=Mid/100;Set_array[7]=Mid/10%10;Set_array[8]=Mid%10;
x1+=7;
Mid = Bendi_IP%256;
write_number(x1+9*8,y1+22,Mid/100);
write_number(x1+10*8,y1+22,Mid/10%10);
write_number(x1+11*8,y1+22,Mid%10);
Set_array[9]=Mid/100;Set_array[10]=Mid/10%10;Set_array[11]=Mid%10;
x1+=7;
Set_array_count=0;
Set_temp=0;
Menu_ID=7;
}
/*********************************************************************************************************
* 函数名称:ON_EnterDK
*
* 功能描述: 本地端口设置界面
*
* 入口参数: 无
*
* 出口参数: 无
*
* 全局变量: QingshuruMima YuanduanIP Set_temp Menu_ID
*
* 调用模块:write_word; write_number;
*
* 作 者: Cache
* 创建时间: 2006年1月16日
********************************************************************************************************/
void ON_EnterDK(void)
{
Uint8 k,x1=2,y1=10;
clear();
for(k=0;k<3;k++)
write_word(x1+k*16,y1,QingshuruMima[k],16,16);
for(k=0;k<4;k++)
write_word(x1+3*16+k*16,y1,YuanduanIP[k+2],16,16);//端口
write_number(x1+7*16,y1,11);
x1=40;
for(k=0;k<5;k++)
write_number(x1+k*8,y1+25,15);
if(Bendi_dk>=10000) write_number(x1+0*8,y1+22,Bendi_dk/10000); else write_number(x1+0*8,y1+22,30);
if(Bendi_dk>=1000) write_number(x1+1*8,y1+22,Bendi_dk/1000%10); else write_number(x1+1*8,y1+22,30);
if(Bendi_dk>=100) write_number(x1+2*8,y1+22,Bendi_dk/100%10); else write_number(x1+2*8,y1+22,30);
if(Bendi_dk>=10) write_number(x1+3*8,y1+22,Bendi_dk/10%10); else write_number(x1+3*8,y1+22,30);
write_number(x1+4*8,y1+22,Bendi_dk%10);
Set_temp=0;
Menu_ID=8;
}
/*********************************************************************************************************
* 函数名称: ON_EnterTD_AI
*
* 功能描述: 模拟输入通道设置界面
*
* 入口参数: 无
*
* 出口参数: 无
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -