1、客户为了便于维护现场设备,但同时又避免终端客户随意修改设备参数,故采用动态密码赋予终端客户临时权限,动态密码每小时自动更新一次;
2、如上图所示,此用户等级为不同级别的保护,但是密码均为固定不可自动变更的;
3、如上图所示,对数值输入对话框进行保护,并赋予密码6等级;
4、如上图所示,通过系统寄存器的运算和赋值,将用户等级更改为动态密码,此动态密码与时间相关,并赋予计算公式,得到密码赋给SRW10118,每次需要赋予终端客户临时权限时,只需根据计算公式算出密码,并将此密码告知终端用户即可。
5、代码如下:
#include <macro.h>
int MacroMain()
{
// Here to add macro code.
unsigned short data[4] = {0};
unsigned short p1 = 0;//年
unsigned short p2 = 0;//月
unsigned short p3 = 0;//日
unsigned short p4 = 0;//时
unsigned int p5,p6;
char mima1[8] = {0};
char mima2[8] = {0};
GetMem(data,@时间@,0,4*sizeof(unsigned short));
p1 = data[0];
p2 = data[1];
p3 = data[2];
p4 = data[3];
p5=p1*p2+p3*p4;//计算公式
p6=p4*3600+p2*30;
mima1[0] = (p5/10000+0x30);
mima1[1] = ((p5%10000/1000)+0x30);
mima1[2] = ((p5%1000/100)+0x30);
mima1[3] = ((p5%100/10)+0x30);
mima1[4] = ((p5%10)+0x30);
mima2[0] = (p6/10000+0x30);
mima2[1] = ((p6%10000/1000)+0x30);
mima2[2] = ((p6%1000/100)+0x30);
mima2[3] = ((p6%100/10)+0x30);
mima2[4] = ((p6%10)+0x30);
SetMem(mima1,@密码@,0,8);
SetMem(mima2,@密码@,4,8);
return 0;
}
{{item.nickname}}
{{key+1}}楼{{item.content}}
{{item2.nickname}}
{{item2.content}}