⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postran.c

📁 这是一个基于UCLinux下的一个GPRS 移动POS设备的代码
💻 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 + -