?? ppos.c
字號:
}
}
}
if(cPressKey==KEY_ENTER)
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 查詢卡片余額 ");
set_normal_disp();
move_cursor(0,2);
puts("請放卡...");
move_cursor(0,6);
puts("或按取消鍵返回");
if((KEY_get_status()&0x01)!=0)
{
cPressKey = KEY_CLR;
}
// SPT_set(2);
// msg_buffer.s_word = sys_msg(SM_STAY_AWAKE);
// if (msg_buffer.bits.key_available)
// {
// cPressKey = KEY_CLR;
// }
delay_n_ms(100);
}
}while(cPressKey==KEY_ENTER);
MC530Off;
CloseSAMCard();
CheckPOSStatus(0);
break;
case 3:
if(gcAuthenMode!=2)
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("錯誤:");
set_normal_disp();
move_cursor(0,2);
puts("未登錄系統!");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
stQueryMenu.cCursorPosition = 0;
while(SelectMenu(stQueryMenu.pTitle, stQueryMenu.ppItem, stQueryMenu.cItemNum, &stQueryMenu.cCursorPosition)==KEY_ENTER)
{
switch(stQueryMenu.cCursorPosition)
{
case 0:
if(!getSysRunTime(&srt))
{
// clr_scr();
// set_console_english();
// Dispbcd(0,0,(unsigned char*)&srt, 30);
// set_console_chinese();
if(!haveTradeRecord(&srt))
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("提示:");
set_normal_disp();
move_cursor(0,2);
puts("沒有交易記錄");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
doDb = srt.cLastTradeHandleDb;
doPos = srt.lLastTradeHandle-1;
iIndex = 0;
totalNum = DB_count_records(doDb);
// DispLong(0,0,totalNum);
stQueryReport1.cCursorPosition = 0;
do
{
p = DB_jump_to_record(doDb, doPos, &flag);
memcpy(&gstQueryChargeRecord, p, sizeof(gstQueryChargeRecord));
sprintf(reporttitle001+11, "%04d=", iIndex+1);
sprintf(reportbar002, "%02x%02x%02x%02x", gstQueryChargeRecord.cCityCode[0], gstQueryChargeRecord.cCityCode[1], gstQueryChargeRecord.cTradeCode[0], gstQueryChargeRecord.cTradeCode[1]);
sprintf(reportbar002+8, "%02x%02x%02x%02x", gstQueryChargeRecord.cCardNo[0], gstQueryChargeRecord.cCardNo[1], gstQueryChargeRecord.cCardNo[2], gstQueryChargeRecord.cCardNo[3]);
sprintf(reportbar004, "%02x", gstQueryChargeRecord.cCardType);
l1 = 0;
OverTurnString(&l1, gstQueryChargeRecord.cMoneyOrTimes, 4);
sprintf(reportbar006, "%7.2f元", (float)l1/100);
l2 = 0;
OverTurnString((unsigned char*)&l2+1, gstQueryChargeRecord.cChargeMoneyOrTimes, 3);
sprintf(reportbar008, "%7.2f元", (float)l2/100);
sprintf(reportbar00A, "%7.2f元", (float)(l1-l2)/100);
memcpy(cBuffer, gstQueryChargeRecord.cChargeDateTime, 7);
sprintf(reportbar00C, "%02x%02x年%02x月%02x日", cBuffer[0], cBuffer[1], cBuffer[2], cBuffer[3]);
sprintf(reportbar00D, "%02x:%02x:%02x", cBuffer[4], cBuffer[5], cBuffer[6]);
cPressKey = DisplayReport(stQueryReport1.pTitle, stQueryReport1.ppItem, stQueryReport1.cItemNum, &stQueryReport1.cCursorPosition);
if(cPressKey==KEY_F2)
{
if(doPos+1 == totalNum)
{
if(doDb == srt.cLastTradeHandleDb)
{
// doDb = srt.cLastGatherToDb;
// doPos = srt.lLastGatherTo;
}
else
{
if(doDb == TD_DB_INDEX3)
doDb = TD_DB_INDEX1;
else
doDb ++;
doPos = 0;
}
totalNum = DB_count_records(doDb);
}
else
{
doPos ++;
iIndex -- ;
}
}
else if(cPressKey==KEY_F1)
{
if((doDb == srt.cLastGatherToDb)&&(doPos == srt.lLastGatherTo))
{
// doDb = srt.cLastTradeHandleDb;
// doPos = srt.lLastTradeHandle-1;
// totalNum = DB_count_records(doDb);
}
else if(doPos == 0)
{
if(doDb == TD_DB_INDEX1)
doDb = TD_DB_INDEX3;
else
doDb --;
totalNum = DB_count_records(doDb);
doPos = totalNum;
iIndex ++ ;
}
else
{
doPos --;
iIndex ++ ;
}
}
}while(cPressKey != KEY_CLR);
}
break;
case 1:
if(!getSysRunTime(&srt))
{
if(!haveTradeRecord(&srt))
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("提示:");
set_normal_disp();
move_cursor(0,2);
puts("沒有交易記錄");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("提示:");
set_normal_disp();
move_cursor(0,2);
puts("正在計算,請等待");
doDb = srt.cLastTradeHandleDb;
doPos = srt.lLastTradeHandle-1;
iIndex = 0;
l2 = 0;
totalNum = DB_count_records(doDb);
do
{
p = DB_jump_to_record(doDb, doPos, &flag);
memcpy(&gstQueryChargeRecord, p, sizeof(gstQueryChargeRecord));
l1 = 0;
OverTurnString((unsigned char*)&l1+1, gstQueryChargeRecord.cChargeMoneyOrTimes, 3);
l2 += l1;
if((doDb == srt.cLastGatherToDb)&&(doPos == srt.lLastGatherTo))
{
break;
}
else if(doPos == 0)
{
if(doDb == TD_DB_INDEX1)
doDb = TD_DB_INDEX3;
else
doDb --;
totalNum = DB_count_records(doDb);
doPos = totalNum;
iIndex ++ ;
}
else
{
doPos --;
iIndex ++ ;
}
}while(1);
stQueryReport2.cCursorPosition = 0;
sprintf(reportbar012, "%4d次", iIndex+1);
sprintf(reportbar014, "%8.2f元", (float)l2/100);
do
{
stQueryReport2.cCursorPosition = 0;
cPressKey = DisplayReport(stQueryReport2.pTitle, stQueryReport2.ppItem, stQueryReport2.cItemNum, &stQueryReport2.cCursorPosition);
}while(cPressKey != KEY_CLR);
}
break;
case 2:
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 設備編號查詢 ");
set_normal_disp();
move_cursor(0,2);
puts("設備編號為:");
OverTurnString(&l1, gcPSAMNo, 4);
move_cursor(0,4);
printf("%08ld", l1);
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
}
break;
case 4:
if(gcAuthenMode!=2)
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("錯誤:");
set_normal_disp();
move_cursor(0,2);
puts("未登錄系統!");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 數據通訊 ");
set_normal_disp();
move_cursor(0,2);
puts("請連接好上位機,");
move_cursor(0,4);
puts("按確認鍵后開始數");
move_cursor(0,6);
puts("據通訊。");
cPressKey = getch();
if(cPressKey==KEY_ENTER)
{
// if(CheckPOSStatus(0)==0)
// {
// clr_scr();
// move_cursor(0,0);
// set_inversed_disp();
// puts("錯誤:");
// set_normal_disp();
// move_cursor(0,2);
// puts("未連接數據線!");
// move_cursor(0,6);
// puts("按任意鍵返回");
// getch();
// break;
// }
gcCommMsgRow = 4;
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 數據通訊 ");
set_normal_disp();
move_cursor(0,2);
puts("開始通訊...");
UART_open();
cCommand = 0x00;
j = 0;
do
{
i = UART_receive(cCmdBuff, &iCmdBuffLength);
// clr_scr();
// set_console_english();
// Dispbcd(0,0,cCmdBuff,10);
// Dispbcd(0,3,&i,1);
// set_console_chinese();
if(i==0)
{
cCommand = cCmdBuff[3];
// clr_scr();
// set_console_english();
// Dispbcd(0,0,&cCommand,1);
// if((cCommand!=CMD_GETDATA)&&(cCommand!=CMD_SETBLACKLIST))UART_disconnect();
iLength = 0;
memcpy(&iLength, cCmdBuff+1, 2);
// clr_scr();
// DispInt(0,0,iLength);
memcpy(cBuffer, cCmdBuff+4, iLength);
// DispInt(0,2,iLength);
// Dispbcd(0,4,cBuffer,iLength);
i = POSExecuteCommand(cCommand, iLength, cBuffer, &iRLength, cRBuffer);
cCmdBuff[0] = i;
memcpy(cCmdBuff+1, cRBuffer, iRLength);
// if((cCommand!=CMD_GETDATA)&&(cCommand!=CMD_SETBLACKLIST))UART_open();
i = UART_send(cCmdBuff, iRLength+1);
if((cCommand==CMD_GETDATA)&&(iRLength>0)&&(i==0))
{
memcpy(&srt, cBuffer, sizeof(srt));
updateSysRunTime(&srt);//回寫系統運行時參數
}
// set_console_chinese();
j = 0;
}
else
{
j ++;
if(j>50)
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("錯誤:");
set_normal_disp();
move_cursor(0,2);
puts("通訊超時!");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
}
}while(cCommand!=CMD_DISCONNECT);
if(j<=50)
{
UART_disconnect();
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 數據通訊 ");
set_normal_disp();
move_cursor(0,2);
puts("通訊完成!");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
}
}
break;
case 5:
stSetMenu.cCursorPosition = 0;
while(SelectMenu(stSetMenu.pTitle, stSetMenu.ppItem, stSetMenu.cItemNum, &stSetMenu.cCursorPosition)==KEY_ENTER)
{
switch(stSetMenu.cCursorPosition)
{
case 0:
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 對比度設置 ");
set_normal_disp();
move_cursor(0,2);
puts("<-減小, ->增加");
move_cursor(0,6);
puts("按其它鍵返回");
do
{
shContrast = get_LCD_contrast();
move_cursor(0,4);
printf("對比度:%2d", shContrast);
cPressKey = getch();
if(cPressKey==KEY_AUX3)
{
dec_LCD_contrast();
}
else if(cPressKey==KEY_AUX4)
{
inc_LCD_contrast();
}
else
break;
}while(1);
break;
case 1:
if(gcAuthenMode!=2)
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("錯誤:");
set_normal_disp();
move_cursor(0,2);
puts("未登錄系統!");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
clr_scr();
move_cursor(0,0);
puts("請輸入超級管理員");
move_cursor(0,2);
puts("密碼");
memset(cBuffer, 0, 40);
if(get_str(0,4,cBuffer, 8, 2)==KEY_ENTER)
{
if(memcmp(cBuffer, "20031231", 8)==0)
{
if(!getSysRunTime(&srt))
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts(" 數據中心號碼 ");
set_normal_disp();
move_cursor(0,2);
puts(srt.CenterNo);
move_cursor(0,4);
puts("請輸入新號碼:");
memset(cBuffer, 0, 20);
if(get_str(0,6,cBuffer,12,0)==KEY_ENTER)
{
memcpy(srt.CenterNo, cBuffer, 12);
memcpy(CenterNo, cBuffer, 12);
updateSysRunTime(&srt);
move_cursor(0,2);
puts(" ");
move_cursor(0,2);
puts(cBuffer);
move_cursor(0,4);
puts("新號碼設置成功!");
move_cursor(0,6);
puts("按任意鍵返回! ");
getch();
}
break;
}
}
}
clr_scr();
move_cursor(0,2);
puts("輸入錯誤");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
case 2:
if(gcAuthenMode!=2)
{
clr_scr();
move_cursor(0,0);
set_inversed_disp();
puts("錯誤:");
set_normal_disp();
move_cursor(0,2);
puts("未登錄系統!");
move_cursor(0,6);
puts("按任意鍵返回");
getch();
break;
}
GSM_off();
clr_scr();
move_cursor(0,2);
puts("關閉GSM模塊成功");
move_cursor(0,6);
puts("按任意鍵返回!");
getch();
break;
case 3:
if(gcAuthenMode!=2)
{
clr_scr();
move_cursor(0,0);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -