📄 messege.c
字号:
/*************************************************/
/**********储存一条记录***************************/
/*************************************************/
void WRITEMESGE()
{
if(FLAG1 & gb_wrmsg)
{
FLAG1 &= ~gb_wrmsg;
uchar record_buf[14];
uint i;
uchar buf;
ulong addr39;
ulong j;
record_buf[0] = recordbuf; //卡号最高位
record_buf[1] = (cardnum>>24)&0xff; //卡号
record_buf[2] = (cardnum>>16)&0xff; //卡号
record_buf[3] = (cardnum>>8)&0xff; //卡号
record_buf[4] = cardnum & 0xff; //卡号
record_buf[5] = 0x20; //年高位
record_buf[6] = clock[6]; //年低位
record_buf[7] = clock[4]; //月
record_buf[8] = clock[3]; //日
record_buf[9] = clock[2]; //时
record_buf[10] = clock[1]; //分
record_buf[11] = clock[0]; //秒
record_buf[12] = STATUS; //状态字
record_buf[13] = REMARK; //备注字
addr39 = 0x60000 + save_cnt * 14;
for(i=0; i<14; i++)
{
write040pre();
write040(addr39,record_buf[i]);
addr39++;
}
save_cnt++;
SAVEP++;
if(save_cnt >= 4000)
{
save_cnt = 0;
switch(msg_flag)
{
case 0: addr39 = 0x10000; msg_flag = 2; break;
case 2: addr39 = 0x20000; msg_flag = 4; break;
case 4: addr39 = 0x30000; msg_flag = 8; break;
case 8: addr39 = 0x40000; msg_flag = 16; break;
case 16: addr39 = 0x50000; msg_flag = 32; break;
case 32: addr39 = 0x10000; msg_flag = 0; break;
default:
break;
}
erasesector040(addr39);
j = 0x60000;
for(i=0; i<56000; i++)
{
buf = read040(j++);
write040pre();
write040(addr39++,buf);
}
erasesector040(0x60000);
}
if(SAVEP >= 20000)
{
SAVEP =0;
MF = 128;
}
FLAG1 |= gb_flashw;
}
}
/********************************************************/
/***顺序读取一条历史记录*********************************/
/********************************************************/
void readmsg()
{
if(FLAG1 & gb_remsg)
{
FLAG1 &= ~gb_remsg;
uchar i;
uint j;
uchar buf;
ulong addr39;
uint addrbuf;
set_tx();
if(LOADP == SAVEP)
{
TX_DATA[7] = 'E';
TX_DATA[8] = '4';
TX_DATA[9] = '0';
TX_DATA[10] = '0';
TX_DATA[11] = '0';
TX_DATA[12] = '0';
TX_DATA[13] = 'F';
TX_DATA[14] = 'D';
TX_DATA[15] = '9';
TX_DATA[16] = 'D';
TX_DATA[17] = 0X0D;
tx_len = 18;
FLAG |= gb_tx;
}
else
{
TX_DATA[7] = '0';
TX_DATA[8] = '0';
TX_DATA[9] = '3';
TX_DATA[10] = '0';
TX_DATA[11] = '1';
TX_DATA[12] = 'C';
j = 13;
switch(msg_flag)
{
case 0: addrbuf = 0; break;
case 2: addrbuf = 4000; break;
case 4: addrbuf = 8000; break;
case 8: addrbuf = 12000; break;
case 16: addrbuf = 16000; break;
case 32: addrbuf = 20000; break;
default:
break;
}
if(LOADP >= addrbuf)
{
addr39 = 0x60000 + (LOADP - addrbuf) * 14;
}
else
{
switch(LOADP / 5)
{
case 0: addr39 = 0x10000 + (LOADP % 4000) * 14; break;
case 1: addr39 = 0x20000 + (LOADP % 4000) * 14; break;
case 2: addr39 = 0x30000 + (LOADP % 4000) * 14; break;
case 3: addr39 = 0x40000 + (LOADP % 4000) * 14; break;
case 4: addr39 = 0x50000 + (LOADP % 4000) * 14; break;
}
}
for(i=0; i<14; i++)
{
buf = read040(addr39);
TX_DATA[j++] = c_hex((buf>>4)&0x0f);
TX_DATA[j++] = c_hex(buf&0x0f);
addr39++;
}
jisuanhe(41);
LOADP++;
if(LOADP >= 20000)
{
LOADP = 0;
}
FLAG1 |= gb_flashw;
}
}
}
/****************************************************/
/***读取历史记录参数*********************************/
/****************************************************/
void readmsgpar()
{
if(FLAG1 & gb_repar)
{
FLAG1 &=~gb_repar;
set_tx();
TX_DATA[7] = 0x30;
TX_DATA[8] = '0';
TX_DATA[9] = 'D';
TX_DATA[10] = '0';
TX_DATA[11] = '1';
TX_DATA[12] = '2';
TX_DATA[13] = '0';
TX_DATA[14] = '0';
TX_DATA[15] = '0';
TX_DATA[16] = '0';
TX_DATA[17] = c_hex((SAVEP>>4) & 0X0F);
TX_DATA[18] = c_hex(SAVEP & 0X0F);
TX_DATA[19] = c_hex((SAVEP>>12) & 0X0F);
TX_DATA[20] = c_hex((SAVEP>>8) & 0X0F);
TX_DATA[21] = c_hex((LOADP>>4) & 0X0F);
TX_DATA[22] = c_hex(LOADP & 0X0F);
TX_DATA[23] = c_hex((LOADP>>12) & 0X0F);
TX_DATA[24] = c_hex((LOADP>>8) & 0X0F);
TX_DATA[25] = c_hex((MF>>4) & 0X0F);;
TX_DATA[26] = c_hex(MF & 0X0F);
TX_DATA[27] = '2';
TX_DATA[28] = '0';
TX_DATA[29] = '4';
TX_DATA[30] = 'E';
jisuanhe(31);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -