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;

}