亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 利用POS機具硬件改為條紋碼掃描器的編程代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "590.h"
#include "var.h"

void main()
{
    char ret ;
    int i ;
    
    /* 程序首次下裝 進行相關初始化 */
    if(getproflag()==NO) 
    {
        pfinit(sizeof(struct KQ_REC)+2);
        setup_first();
        first_flag=NO ;
        systemsound(500);
    }
    
    /* 按鍵以正常鍵碼 */
    keyon();
    
    /* 亮背光15秒 
    cdlight_manage ( 15 ) ;
    */
    enable_lcd_light();
    
    init_rs232(4,'N',8,1);
    
    /* 清除流水文件中已上傳的記錄,以騰出空間 */
    kq_dataClear();
    
    /* 進行系統維護,保證有足夠的空間 */
    do 
    {
        kq_displogo();
        //檢查內存空間是否足夠,當記錄數少于20條時,強行進入維護
        if(pfreerec()<=MIN_REC_NUM)
        {
            cls();
            display_inv(1,"====警告====");
            display(2,"可用內存不足");
            display(3,"請先上傳數據");
            display(4,"按任意鍵繼續");
            inkey(0);
        }
        else break ;
    }
    while(1);
    
    /* 檢查打印機狀態 */
    if(print_flag==YES)
    while(get_printer_status())
    {
        cls();
        display_inv(1,"====警告====");
        display(3,"請安裝好打印紙");
        systemsound(500);
        if(get_printer_status()==1)
        semiautoloadpaper();
        if(inkey(3)==CANCEL)
        break ;
    }
    /* POS與主機握手   */
    cls();
    display_inv(1,"實達外設考勤");
    display_cen(3,"正在與主機握手");
    if(handshake_to_host()==FAIL)
    {
        offline_flag=YES ;
        display_clear(4);
        display_cen(4,"與主機握手失敗");
        systemsound(500);
        delay(1);
    }
    else 
    {
        display_clear(4);
        display_cen(4,"與主機握手成功");
        delay(1);
    }
    
    /* 開始采集數據 */
    memset(track2,0,sizeof(track2));
    memset(track3,0,sizeof(track3));
    do 
    {
        cls();
        display_inv(1,"實達外設考勤");
        display_cen(2,"按任意鍵刷卡->");
        do 
        {
            kq_dispNow();
        }
        while(!kbhit());
        if(inkey(1)==CANCEL)
        {
            kq_displogo();
            continue ;
        }
        display_clear(3);
        display_clear(4);
        ret=recard(track2,track3,0);
        
        /* 有讀到卡號,只用2道數據。*/
        if(ret!=0||track2[0]==0xff)
        {
            display_cen(3,"讀卡出錯");
            display_cen(4,"按任意鍵繼續");
            delay(1);
            continue ;
        }
        
        /*判卡號長是否為8*/
        i=0 ;
        while(track2[i+1]!='\0')i++;
        if(i<8)
        {
            display_cen(3,"讀卡出錯");
            display_cen(4,"按任意鍵繼續");
            inkey(2);
            continue ;
        }
        
        /* 只取前8位 */
        i=0 ;
        if(track2[i]<'0'||track2[i]>'9')
        while(i<8)
        {
            track2[i]=track2[i+1];
            i++;
        }
        track2[i]='\0' ;
        
        /* 在本機存放的卡號文件card中查找,以確認是不是合法記錄 */
        if(kq_searchCardno(track2)!=SUCC)continue ;
        
        /* 獲取當前的日期和時間 */
        kq_getDateTime();
        /* 在第三行顯示卡號 */
        display_clear(3);
        display_cen(3,track2);
        
        /* 往后臺送本次刷卡記錄,offline_flag=NO,即是聯機交易 */
        upload_flag='-' ;
        if(offline_flag==NO)
        {
            display_clear(4);
            if(kq_dataUpload_now()==SUCC)
            {
                display_cen(4,"上送成功");
                upload_flag='+' ;
            }
            else 
            {
                display_cen(4,"上送失敗");
            }
            delay(1);
        }
        
        /*print_flag=YES, 立即打印出本次刷卡記錄*/
        if(print_flag==YES)
        {
            display_clear(4);
            if(kq_dataPrint_now()==SUCC)
            display_cen(4,"打印成功");
            else 
            {
                display_cen(4,"打印失敗");
            }
            delay(1);
        }
        display_clear(4);
        if(kq_dataSave()==SUCC)
        {
            display_cen(4,"保存成功");
        }
        else 
        {
            display_cen(4,"保存失敗");
        }
        delay(1);
    }
    while(1);
}
/**************************************
函數名稱:kq_searchCardno
函數功能:下載卡號文件	
函數參數:	char * card_no
函數返回:	SUCC/FAIL
**************************************/
int kq_searchCardno(char*card_no)
{
    char fd ;
    int i,ret ;
    struct KQ_REC cardRec ;
    
    /*打開卡號文件*/
    fd=pfopen("card",'R');
    if(fd==0||fd=='E')
    {
        return(FAIL);
    }
    for(i=1;;i++)
    {
        ret=pfread(fd,i,1,(char*)&cardRec);
        if(ret==0)
        {
            break ;
        }
        if(memcmp(cardRec.card_no,card_no,8)==0)return(SUCC);
    }
    return(FAIL);
}
/**************************************
函數名稱:kq_downCardno	
函數功能:下載卡號文件	
函數參數:	無
函數返回:	SUCC/FAIL
**************************************/
int kq_downCardno(void)
{
    char fd ;
    struct CARD_REC cardRec ;
    int i,ret ;
    char buffer[21];
    char h_char ;
    
    cls();
    display_inv(1,"實達外設考勤");
    display_cen(2,"card");
    display_cen(3,"正在接收數據");
    
    /* 與主機握手 */
    if(handshake_to_host()==FAIL)
    {
        display_clear(4);
        display_cen(4,"握手失敗");
        delay(1);
        return(FAIL);
    }
    
    fd=pfopen("card",'W');
    if(fd==0)
    {
        display_clear(4);
        display_cen(4,"打開card失敗");
        delay(1);
        return(FAIL);
    }
    
    /* 清除原來的所有記錄 */
    for(i=1;;i++)
    {
        ret=pfdelrec(fd,i);
        if(ret==0)
        {
            i--;
        }
        else 
        {
            display_clear(4);
            display_cen(4,"原記錄刪除完");
            delay(1);
            break ;
        }
    }
    
    memset(buffer,0,sizeof(buffer));
    
    do 
    {
        display_clear(4);
        display_cen(4,"............");
        /*	     
        	    if ( read_from_host( ) == FAIL ) {
        	    	display_clear( 4 );
        	    	display_cen  ( 4 , "接收記錄錯" );
        	    	delay ( 1 );
        	    	return ( FAIL );
        	    }
        */
        /* =============調試時打印 =============*/
        strcpy(buffer,"");
        ret=readrs232(buffer,5,20);
        buffer[21]=0x0 ;
        feed_printer(1);
        printer("@ %d-%s-",ret,buffer);
        delay(1);
        
        h_char=0x06 ;
        sendrs232(1,&h_char);
        /* =============調試時打印 =============*/
        
        if(memcmp(readstr,"999999999999999999",readlen)==0||ret==0)
        {
            display_clear(4);
            display_cen(4,"接收完畢");
            delay(2);
            return(SUCC);
        }
        
        for(i=0;i<8;i++)
        cardRec.card_no[i]=readstr[i];
        
        for(i=10;i<6;i++)
        cardRec.name[i-10]=readstr[i];
        
        cardRec.valid=readstr[17];
        
        ret=pfwrite(fd,0,(char*)&cardRec,sizeof(struct CARD_REC));
        
        if(ret!=0)
        {
            display_clear(4);
            display_cen(4,"寫入文件失敗");
            delay(1);
            return(FAIL);
        }
        else 
        {
            display_clear(4);
            display_cen(4,"寫入文件成功");
            delay(1);
        }
        /* 發ACK給主機,提示發送下條一記錄 */
        h_char=0x06 ;
        sendrs232(1,&h_char);
        
    }
    while(1);
}

/**************************************
函數名稱:kq_dataUpload_all	
函數功能:成批上送全部考勤記錄	
函數參數:	無
函數返回:	SUCC/FAIL
**************************************/
int kq_dataUpload_all(void)
{
    int i,ret ;
    char fd ;
    struct KQ_REC kqRec ;
    char upStr[25];
    
    cls();
    display_inv(1,"實達外設考勤");
    display_cen(3,"正在上傳");
    
    fd=pfopen("water",'R');
    if(fd==0||fd=='E')
    {
        display_clear(3);
        display_cen(3,"無數據可上傳");
        delay(1);
        return(FAIL);
    }
    /*  POS與主機握手 */
    if(handshake_to_host()==FAIL)
    {
        offline_flag=YES ;
        display_clear(3);
        display_cen(3,"與主機握手失敗");
        systemsound(500);
        delay(1);
        return(FAIL);
    }
    else 
    {
        display_clear(3);
        display_cen(3,"與主機握手成功");
    }
    for(i=1;;i++)
    {
        ret=pfread(fd,i,1,(char*)&kqRec);
        if(ret==0)
        {
            display_clear(4);
            display_cen(4,"全部數據傳完");
            break ;
        }
        if(kqRec.upload_flag=='+')
        {
            if(pfdelrec(fd,i)==0)
            {
                display_clear(3);
                display(3,"刪除已上傳記錄");
                i--;
            }
            continue ;
        }
        sprintf(upStr,"C%8.8sD20%6.6sT%6.6s*",kqRec.card_no,kqRec.date,kqRec.time);
        
        send_to_host(sizeof(upStr),upStr);
        
        /* 加入主機返回的校驗結果判斷 */
        if(kq_result()==SUCC)
        {
            display_clear(3);
            display_cen(3,"數據上傳成功");
            if(pfdelrec(fd,i)==0)
            {
                display_clear(3);
                display_cen(3,"刪除已上傳記錄");
                i--;
            }
        }
        else 
        {
            display_clear(3);
            display_cen(3,"數據上送失敗");
            delay(1);
            return(FAIL);
        }
    }
    return(SUCC);
}
/**************************************
函數名稱:kq_dataUpload_now	
函數功能:實時上送考勤記錄	
函數參數:	無
函數返回:	SUCC/FAIL
**************************************/
int kq_dataUpload_now(void)
{
    char upStr[25];
    
    memset(upStr,'\0',sizeof(upStr));
    sprintf(upStr,"C%8.8sD20%6.6sT%6.6s",track2,kq_date,kq_time);
    /* POS與主機握手   */
    display_clear(4);
    display_inv(4,"正在與主機握手");
    if(handshake_to_host()==FAIL)
    {
        offline_flag=YES ;
        display_clear(4);
        display_cen(4,"與主機握手失敗");
        systemsound(500);
        delay(1);
        return(FAIL);
    }
    else 
    {
        display_clear(4);
        display_cen(4,"與主機握手成功");
    }
    send_to_host(sizeof(upStr),upStr);
    /*加入主機返回的檢驗結果判斷*/
    return(kq_result());
}
/************************************** 
函數名稱:kq_dataSave	
函數功能:保存一條考勤記錄	
函數參數:	無 
函數返回:SUCC/FAIL 
**************************************/
int kq_dataSave(void)
{
    char fd,ret ;
    struct KQ_REC kqRec ;
    
    fd=pfopen("water",'W');
    if(fd==0||fd=='E')
    {
        return(FAIL);
    }
    
    kqRec.upload_flag=upload_flag ;
    strcpy(kqRec.card_no,track2);
    strcpy(kqRec.date,kq_date);
    strcpy(kqRec.time,kq_time);
    
    ret=pfwrite(fd,0,(char*)&kqRec,sizeof(struct KQ_REC));
    if(ret!=0)
    return(FAIL);
    else 
    return(SUCC);
}
/**************************************
函數名稱:kq_dataPrint_all	
函數功能:打印流水文件中全部的考勤記錄	
函數參數:	無
函數返回:	SUCC/FAIL
**************************************/
int kq_dataPrint_all(void)
{
    int i,ret ;
    char fd ;
    struct KQ_REC kqRec ;
    char title ;
    
    cls();
    display_inv(1,"實達外設考勤");
    display_cen(3," 正在打印");
    
    fd=pfopen("water",'R');
    if(fd==0||fd=='E')
    {
        display_cen(3,"無數據可打印");
        delay(1);
        return(FAIL);
    }
    while(get_printer_status())
    {
        display_inv(3,"請裝好打印紙");
        systemsound(50);
        semiautoloadpaper();
        if(inkey(3)==CANCEL)return(FAIL);
    }
    
    title=NO ;
    for(i=1;;i++)
    {
        ret=pfread(fd,i,1,(char*)&kqRec);
        if(ret==0)
        {
            display_clear(3);
            display_cen(3,"數據已經打完");
            delay(1);
            break ;
        }
        if(title==NO)
        {
            feed_printer(1);
            printer("******Print All******");
            feed_printer(1);
            printer("U+:data had sent!");
            feed_printer(1);
            printer("U-:data hadn't sent!");
            title=YES ;
        }
        feed_printer(1);
        printer("U%c %8.8s %6.6s %6.6s",kqRec.upload_flag,kqRec.card_no,kqRec.date,kqRec.time);
    }
    return(SUCC);
}
/**************************************
函數名稱:	kq_dataPrint_now
函數功能:	打印一條記錄
函數參數:	(struct KQ_REC * kqRec)
函數返回:	SUCC/FAIL
**************************************/
int kq_dataPrint_now(void)
{
    while(get_printer_status())
    {
        display_clear(4);
        display_inv(4,"請裝好打印紙");
        systemsound(50);
        semiautoloadpaper();
        if(inkey(3)==CANCEL)
        {
            return(FAIL);
        }
    }
    feed_printer(1);
    printer("U%c %8.8s %6.6s %6.6s",upload_flag,track2,kq_date,kq_time);
    return(SUCC);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合在线观看| 日韩亚洲欧美一区二区三区| 欧美日韩电影一区| 国产精品美女久久久久aⅴ国产馆| 日韩成人一区二区三区在线观看| 成人黄色a**站在线观看| 欧美成人官网二区| 日本少妇一区二区| 色婷婷激情一区二区三区| 久久精品一区二区三区不卡| 午夜精品aaa| 欧美最新大片在线看| 亚洲欧美日韩精品久久久久| 国产成人自拍高清视频在线免费播放| 日韩一区二区在线看片| 亚洲国产wwwccc36天堂| 91理论电影在线观看| 亚洲国产精品激情在线观看| 精品在线一区二区三区| 91精品欧美久久久久久动漫| 亚洲成人动漫在线免费观看| 91蜜桃在线免费视频| 国产精品天天摸av网| 丁香婷婷综合激情五月色| 精品99一区二区| 精品一区二区精品| 久久综合五月天婷婷伊人| 蜜桃在线一区二区三区| 欧美一区二区精品久久911| 午夜精品影院在线观看| 欧美精品乱码久久久久久按摩| 亚洲午夜激情网页| 欧美精品色综合| 日韩精品乱码免费| 欧美一区二区三区免费| 久久精品国产成人一区二区三区 | 午夜私人影院久久久久| 欧美性大战久久久久久久蜜臀| 亚洲免费三区一区二区| 在线观看一区不卡| 亚洲h精品动漫在线观看| 在线不卡免费欧美| 蜜臀久久99精品久久久久久9| 精品国一区二区三区| 国产高清不卡一区二区| 国产精品久久久久婷婷二区次| 99热精品一区二区| 一区二区三区不卡视频在线观看| 欧美群妇大交群中文字幕| 久久精品99国产国产精| 国产拍揄自揄精品视频麻豆| 一本到不卡精品视频在线观看| 亚洲一区二区三区视频在线播放| 欧美日韩不卡一区| 精品一区二区三区久久久| 国产喷白浆一区二区三区| 91网站最新网址| 天堂一区二区在线免费观看| 精品三级在线观看| 91在线高清观看| 日韩黄色免费电影| 欧美经典一区二区三区| 欧美午夜不卡在线观看免费| 激情偷乱视频一区二区三区| 日韩一区中文字幕| 91精品国产一区二区三区蜜臀 | 欧美午夜片在线看| 美女网站在线免费欧美精品| 国产精品萝li| 欧美精品久久久久久久多人混战| 国产黄色精品视频| 视频一区二区三区中文字幕| 国产夜色精品一区二区av| 欧美日韩成人激情| thepron国产精品| 免费成人在线视频观看| 亚洲精品欧美二区三区中文字幕| 亚洲精品在线三区| 色88888久久久久久影院野外 | 性做久久久久久久久| 国产三级三级三级精品8ⅰ区| 欧美视频日韩视频在线观看| 国产精品一区二区久久不卡| 午夜精品一区二区三区电影天堂| 欧美国产激情一区二区三区蜜月| 88在线观看91蜜桃国自产| 99精品久久99久久久久| 国产精品亚洲专一区二区三区 | 成人一级片网址| 午夜a成v人精品| 亚洲欧洲日韩在线| 精品动漫一区二区三区在线观看| 欧美日韩成人一区| 日本黄色一区二区| 99久久综合国产精品| 国产福利一区在线| 精品一区二区三区在线播放视频| 三级亚洲高清视频| 一个色在线综合| 综合久久久久久| ●精品国产综合乱码久久久久| 国产亚洲精品bt天堂精选| 久久综合久久综合九色| 欧美不卡一二三| 欧美mv和日韩mv国产网站| 欧美一区二区在线观看| 欧美色网一区二区| 欧美日韩一区久久| 欧美在线播放高清精品| 日本精品一级二级| 欧美午夜免费电影| 欧美日韩久久一区| 欧美日韩一级视频| 欧美美女bb生活片| 欧美日韩精品一区二区三区| 欧美在线高清视频| 欧美日韩高清一区二区三区| 欧美日韩国产免费| 91精品综合久久久久久| 日韩美女一区二区三区四区| 日韩精品综合一本久道在线视频| 欧美不卡在线视频| 国产欧美日韩另类视频免费观看| 欧美国产精品v| 亚洲三级电影网站| 亚洲最大色网站| 日韩和欧美一区二区| 久久成人18免费观看| 国产成人精品一区二区三区四区 | 日韩精品福利网| 捆绑变态av一区二区三区| 韩国女主播一区| 不卡视频在线看| 欧美三级中文字幕| 精品国内片67194| 国产精品国产三级国产三级人妇| 一区二区三区资源| 日本aⅴ免费视频一区二区三区| 久久精品72免费观看| 成人精品视频.| 欧美综合亚洲图片综合区| 日韩手机在线导航| 中文字幕欧美日本乱码一线二线| 一区二区三区不卡在线观看| 奇米精品一区二区三区在线观看| 国产成人综合自拍| 欧美色爱综合网| 国产亚洲美州欧州综合国| 一区二区在线观看视频| 韩国女主播一区| 91久久精品网| 精品成人a区在线观看| 一区二区视频免费在线观看| 韩国精品一区二区| 欧美综合一区二区| 国产日韩v精品一区二区| 午夜精品成人在线视频| 成人激情校园春色| 日韩一区二区三区在线| 亚洲视频资源在线| 国产呦精品一区二区三区网站| 色欧美乱欧美15图片| 久久久久国产精品厨房| 亚洲chinese男男1069| 成人av在线一区二区| 日韩欧美一级二级| 综合激情成人伊人| 国产在线视视频有精品| 7777精品久久久大香线蕉| 亚洲三级视频在线观看| 国产一区二区网址| 91精品综合久久久久久| 亚洲精品午夜久久久| 国产成人aaaa| 欧美不卡一区二区三区| 日韩精品国产精品| 欧美三级日韩在线| 亚洲色图在线播放| 成人毛片老司机大片| 久久婷婷国产综合精品青草| 日韩高清一级片| 欧美日韩在线播| 亚洲日本在线视频观看| 成人av电影在线| 国产欧美精品一区| 国产一区中文字幕| 欧美mv日韩mv| 久久草av在线| 欧美mv和日韩mv的网站| 美女视频黄a大片欧美| 91精品国产日韩91久久久久久| 亚洲国产另类av| 在线观看欧美精品| 一区2区3区在线看| 欧美三级电影一区| 亚洲尤物在线视频观看| 欧美日韩不卡一区| 青青草91视频| 日韩欧美视频在线| 久久国产欧美日韩精品|