📄 postran.c
字号:
/* postran.c Sunyard S520-G POS .*/#include <stdio.h>#include <stdlib.h>#include "pos.h"// *******************************************************************// Function Name : DoHostParam// Function : // Parameter : // Return : // *******************************************************************void DoHostParam(void){ short sHostNum; Syd_ClearScreen(); Syd_DisplayLine( 1, " Host Parameter ", 1, ALIGN_CENTER ); sHostNum = HOST_CENTER; if ( ModifyHdtPara( sHostNum, HDT_TCP, "Host IP:", " ", TCP_MIN_LEN, TCP_MAX_LEN, INPUT_TYPE_IP ) < 0 ) return ; if ( ModifyHdtPara( sHostNum, HDT_PORT, "Host Port", " ", PORT_MIN_LEN, PORT_MAX_LEN, INPUT_TYPE_NUMBER ) < 0 ) return ; if ( ModifyHdtPara( sHostNum, HDT_TIMEOUT, "TimeOut", " ", TIMEOUT_MIN_LEN, TIMEOUT_MAX_LEN, INPUT_TYPE_NUMBER ) < 0 ) return ; return;}// *******************************************************************// Function Name : DoSysParam// Function : // Parameter : // Return : // *******************************************************************void DoSysParam(void){ char temp[40], t[20]; short sRet; int nCommWay, nModuleType; Syd_GetModuleType(temp, sizeof(temp)); temp[1] = 0; nModuleType = atoi(temp); Syd_ClearScreen(); Syd_DisplayLine( 1, " Sys Param ", 1, ALIGN_CENTER ); if (Syd_GetEnv("#COMM", t, 1) < 0) { Syd_ErrorMessageWait(3, "get param error", 0, ALIGN_CENTER); return ; } Syd_DisplayLine(2, "Comm Mode:", 0, ALIGN_LEFT); if (nModuleType == GSM) Syd_DisplayLine(3, "1. SMS 2.GPRS", 0, ALIGN_LEFT); else Syd_DisplayLine(3, "1. SMS 2.CDMA", 0, ALIGN_LEFT); Syd_DisplayLine(4, "3. DATA 4.TCPIP", 0, ALIGN_LEFT); Syd_ClearLine(5); do { sprintf(temp, "SELECT(old: %s):", t); Syd_DisplayLine(5, temp, 0, ALIGN_LEFT); sRet = Syd_GetInput(MAX_ASCII-1, 5, temp, 1, 1); if ( sRet < 0 ) { Syd_ClearLine( 2 ); Syd_ClearLine( 3 ); Syd_ClearLine( 4 ); Syd_ClearLine( 5 ); return ; } if (sRet == 0) break; }while (temp[0] < '1' || temp[0] > '4'); if ( sRet != 0 ) { nCommWay = atoi(temp); if (Syd_PutEnv("#COMM", temp) < 0) { Syd_ErrorMessageWait(3, "Modify Fail", 0, ALIGN_CENTER); Syd_ClearLine(3); return ; } } if (nModuleType == CDMA) return; Syd_ClearLine( 2 ); Syd_ClearLine( 3 ); Syd_ClearLine( 4 ); Syd_ClearLine( 5 ); if (Syd_GetAPN(t, sizeof(t)) < 0) { Syd_ErrorMessageWait(3, "get param error", 0, ALIGN_CENTER); return ; } Syd_DisplayLine(3, "APN:", 0, ALIGN_LEFT); Syd_DisplayLine( 4, "old:", 0, ALIGN_LEFT ); Syd_DisplayLineAt( 4, MAX_ASCII-14, t, 0 ); Syd_DisplayLine( 5, "New:", 0, ALIGN_LEFT ); sRet = Syd_GetInput( MAX_ASCII - 14, 5, temp, 14, INPUT_TYPE_STRING ); if ( sRet < 0 ) { Syd_ClearLine( 2 ); Syd_ClearLine( 3 ); Syd_ClearLine( 4 ); Syd_ClearLine( 5 ); return ; } if (sRet != 0) { if (Syd_SetAPN(temp) < 0) { Syd_ErrorMessageWait(3, "modify fail", 0, ALIGN_CENTER); Syd_ClearLine(3); return ; } } return; }// *******************************************************************// Function Name : DoLoadMasterKey// Function : // Parameter : // Return : // *******************************************************************void DoLoadMasterKey(void){ short sIndex, sRet, sFlag, i; char temp[20], key[20]; Syd_ClearScreen(); Syd_DisplayLine( 1, " Load Key ", 1, ALIGN_CENTER ); do { Syd_ClearLine( 2 ); Syd_ClearLine( 3 ); Syd_ClearLine( 4 ); Syd_ClearLine( 5 ); Syd_DisplayLine( 3, "Key Index(0-9):", 0, ALIGN_LEFT ); do { sRet = Syd_GetInput( 15, 3, temp, 1, INPUT_TYPE_NUMBER ); if ( sRet < 0 ) return ; } while ( sRet != 1 ); sIndex = atoi( temp ); Syd_DisplayLine( 4, "Enter Key:", 0, ALIGN_LEFT ); sFlag = 1; do { sRet = Syd_GetInput( 0, 5, temp, 16, INPUT_TYPE_STRING ); if ( sRet < 0 ) return ; if (sRet != 16) continue; sFlag = 0; for ( i = 0; i < sRet; i++ ) { if ( !( ( temp[ i ] >= '0' && temp[ i ] <= '9' ) || ( temp[ i ] >= 'A' && temp[ i ] <= 'F' ) ) ) { sFlag = 1; break; } } } while ( sFlag ); Syd_DspToHex( temp, key, 8 ); if ( Sys_PINpad_LoadMkey( sIndex, key ) < 0 ) { Syd_ErrorMessageWait( 5, "insert error", 0, ALIGN_CENTER ); return ; } Syd_ClearLine(2); Syd_ClearLine(3); Syd_ClearLine(4); Syd_ClearLine(5); Syd_DisplayLine(3, "Insert Key Success", 0, ALIGN_LEFT); Syd_DisplayLine(4, "Next Key ?", 0, ALIGN_LEFT); if (!Syd_GetConfirm()) break; } while(1); }// *******************************************************************// Function Name : DoSale// Function : // Parameter : // Return : // *******************************************************************void DoSale( void ){ char temp[20]; Syd_ClearScreen(); Syd_DisplayLine( 1, " Sale ", 1, ALIGN_CENTER ); gTrans.sHostNo = HOST_CENTER; sprintf(temp, "HDT%d", gTrans.sHostNo); if ( Syd_GetEnv( temp, gTrans.strHdtBuf, HDT_BUF_LEN - 1 ) < 0 ) { Syd_ErrorMessageWait( 3, "get hdt fail", 0, ALIGN_CENTER ); return ; } if (DoPosPaperChk() != RET_SUCCESS) return; if (DoPosCard() != RET_SUCCESS) return; if (DoGetPosser(INC) != RET_SUCCESS) return; if (DoPosAmount() != RET_SUCCESS) return; DoPosPin(); if (DoPosHost() != RET_SUCCESS) return; if (DoPosStoreTrans() != RET_SUCCESS) { Syd_ErrorMessageWait( 3, "DoPosStoreTrans fail", 0, ALIGN_CENTER ); return; } if (DoPosPrint() != RET_SUCCESS) return; Syd_SuccessMessage( 3, "Transaction OK", 0, ALIGN_CENTER );}// *******************************************************************// Function Name : DoDeleteDetail// Function : // Parameter : // Return : // *******************************************************************void DoDeleteDetail(){ char temp[20]; Syd_ClearScreen(); Syd_DisplayLine( 1, " Detail ", 1, ALIGN_CENTER ); gTrans.sHostNo = HOST_CENTER; Syd_DisplayLine( 3, "To Delete Details", 0, ALIGN_CENTER ); Syd_DisplayLine( 4, " Press Enter Key", 0, ALIGN_CENTER ); if (Sys_Key_WaitKey() != KEY_ENTER) return; Syd_ClearLine(2); Syd_ClearLine(3); Syd_ClearLine(4); Syd_ClearLine(5); Syd_DisplayLine( 3, "Deleting ...", 0, ALIGN_CENTER ); if (Syd_FlashDelTransData( gTrans.sHostNo ) < 0) { Syd_ErrorMessageWait( 3, "fail", 0, ALIGN_CENTER ); return ; } Syd_ClearLine(2); Syd_ClearLine(3); Syd_ClearLine(4); Syd_ClearLine(5); Syd_SuccessMessage( 3, "Success", 0, ALIGN_CENTER ); }// *******************************************************************// Function Name : DoQueryDetail// Function : // Parameter : // Return : // *******************************************************************void DoQueryDetail(){ short sDataSize, sRet; int nKey; char temp[ 30 ]; Syd_ClearScreen(); Syd_DisplayLine( 1, " Detail ", 1, ALIGN_CENTER ); if ( Syd_OpenFLASH() < 0 ) { Syd_ErrorMessageWait( 3, "Syd_OpenFLASH", 0, ALIGN_CENTER ); return ; } do { memset(&gTrans, 0, sizeof(gTrans)); gTrans.sHostNo = HOST_CENTER; sRet = Syd_FlashGetTransDataSeq( gTrans.sHostNo, (unsigned char *)&gTrans, &sDataSize ); if ( sRet < 0 ) { Syd_CloseFLASH(); Syd_ClearLine(2); Syd_ClearLine(3); Syd_ClearLine(4); Syd_ClearLine(5); Syd_DisplayLine( 3, " End! ", 0, ALIGN_CENTER ); Sys_Key_WaitKey(); break; } sprintf( temp, "Posser: %s", gTrans.strPosser ); Syd_DisplayLine( 3, temp, 0, ALIGN_LEFT ); sprintf( temp, " TrAmt: %.2lf", atof( gTrans.strAmt ) / 100.00 ); Syd_DisplayLine( 4, temp, 0, ALIGN_LEFT); nKey = Sys_Key_WaitKey(); if (nKey == KEY_CANCEL) { Syd_CloseFLASH(); break; } } while( 1 );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -