亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美性极品少妇| 成人av网站在线| 亚洲免费成人av| 亚洲欧洲精品一区二区三区不卡| 久久综合国产精品| 国产女主播在线一区二区| 欧美va在线播放| 日韩免费在线观看| 久久久亚洲精华液精华液精华液| 国产蜜臀97一区二区三区 | 欧美性三三影院| 在线免费观看日本欧美| 欧美日韩美少妇| 91精品国产综合久久精品图片| 欧美日本韩国一区| 欧美不卡123| 亚洲欧洲国产日韩| 亚洲成人在线网站| 极品瑜伽女神91| 国产成人一区二区精品非洲| av网站免费线看精品| 色噜噜狠狠成人中文综合| 日韩亚洲欧美成人一区| 日本一区二区免费在线| 一区二区免费在线| 美女一区二区久久| 久久99国产精品麻豆| 欧美一区二区在线看| 欧美一区二区在线播放| 极品少妇xxxx偷拍精品少妇| 国产精品99久久久久久似苏梦涵| 国产99精品国产| 亚洲成av人片一区二区梦乃| 国产高清在线观看免费不卡| 久久亚洲一区二区三区明星换脸 | 免费一区二区视频| 欧美一级黄色录像| 精品一区二区三区久久| 26uuu亚洲综合色| 国产精品香蕉一区二区三区| 国产欧美精品一区二区三区四区| 国产jizzjizz一区二区| 亚洲欧美日韩国产综合| 在线免费不卡电影| 亚洲国产欧美在线人成| 欧美一区二区精品| 国产一区高清在线| 国产精品乱码妇女bbbb| 91玉足脚交白嫩脚丫在线播放| 一区二区三区.www| 91精品国产综合久久精品app| 蜜臀av性久久久久蜜臀aⅴ流畅 | 夜夜爽夜夜爽精品视频| 欧美日韩国产三级| 久久超级碰视频| 国产精品欧美极品| 欧美性三三影院| 韩国在线一区二区| 亚洲人成人一区二区在线观看| 在线免费亚洲电影| 激情文学综合插| 亚洲欧美乱综合| 日韩午夜在线播放| 99视频一区二区| 免费在线观看视频一区| 一区在线播放视频| 日韩午夜小视频| 色噜噜狠狠色综合欧洲selulu| 蜜臀久久99精品久久久久久9 | 国产亚洲精久久久久久| 在线观看欧美黄色| 国产成人三级在线观看| 亚洲午夜一区二区| 国产精品麻豆网站| 91精品福利在线一区二区三区| 成人成人成人在线视频| 久久er99精品| 亚洲一二三专区| 中文字幕一区二区三区蜜月 | 911精品国产一区二区在线| 国产99久久久国产精品潘金网站| 日韩福利电影在线| 亚洲免费毛片网站| 欧美极品xxx| 日韩精品一区二区三区老鸭窝| 在线亚洲一区观看| 成熟亚洲日本毛茸茸凸凹| 日本91福利区| 亚洲不卡在线观看| 亚洲人123区| 国产精品污网站| 久久无码av三级| 欧美大度的电影原声| 欧美性淫爽ww久久久久无| 成av人片一区二区| 床上的激情91.| 久久91精品国产91久久小草| 亚洲成av人片一区二区梦乃| 一区二区国产盗摄色噜噜| 日韩伦理免费电影| 国产精品美女久久久久aⅴ| 久久日韩粉嫩一区二区三区| 日韩欧美成人激情| 欧美v国产在线一区二区三区| 51久久夜色精品国产麻豆| 欧美日韩免费高清一区色橹橹| 91色综合久久久久婷婷| 成人av免费在线观看| 成人一级视频在线观看| 国产成人精品午夜视频免费 | 精品在线视频一区| 免费看日韩精品| 狠狠色丁香久久婷婷综| 国产一区二区成人久久免费影院 | 国产校园另类小说区| 精品国产一区二区三区久久久蜜月| 日韩一区二区高清| 精品国产免费人成电影在线观看四季| 欧美一级xxx| 欧美刺激午夜性久久久久久久 | 欧美一级精品在线| 日韩一级免费一区| 久久先锋影音av鲁色资源| 久久久蜜桃精品| 国产精品免费视频网站| 亚洲欧美激情视频在线观看一区二区三区 | 国产一区在线精品| 懂色av中文一区二区三区| 成人av资源网站| 色8久久精品久久久久久蜜| 欧美丝袜丝nylons| 欧美大尺度电影在线| 日本一区二区三区四区在线视频| 国产精品美女久久久久久2018| 亚洲精品欧美激情| 欧美图片一区二区三区| 在线观看国产精品网站| 51精品国自产在线| 中文字幕欧美激情| 亚洲自拍偷拍图区| 国产一区福利在线| 色综合天天在线| 欧美一级夜夜爽| 日本一区二区免费在线观看视频| 亚洲精品高清视频在线观看| 日本欧美在线观看| eeuss影院一区二区三区 | 99re66热这里只有精品3直播| 91麻豆6部合集magnet| 欧美一区二区在线免费观看| 国产精品女人毛片| 日本视频在线一区| 粗大黑人巨茎大战欧美成人| 欧美日韩国产影片| 国产亚洲成aⅴ人片在线观看| 亚洲免费毛片网站| 国产精品一品二品| 欧美日韩精品欧美日韩精品一| 国产欧美在线观看一区| 亚洲.国产.中文慕字在线| 国产不卡视频在线观看| 日韩一区和二区| 一区二区三区在线观看国产| 激情综合网天天干| 欧美视频在线观看一区二区| 国产精品私人影院| 狠狠色综合播放一区二区| 欧美性大战久久久| 国产精品国产三级国产aⅴ入口 | 午夜精品国产更新| 成人教育av在线| 精品国产一区二区三区久久久蜜月 | 欧美婷婷六月丁香综合色| 亚洲国产高清在线观看视频| 精品一区免费av| 1024成人网色www| 久久国产麻豆精品| 欧美久久婷婷综合色| 亚洲色欲色欲www| 成人小视频在线| 久久精品欧美一区二区三区麻豆| 午夜视频在线观看一区| 欧日韩精品视频| 亚洲免费观看视频| 不卡视频在线看| 国产精品久久久久久一区二区三区 | 激情av综合网| 日韩视频在线你懂得| 日本不卡中文字幕| 6080午夜不卡| 午夜视频在线观看一区| 欧美欧美欧美欧美| 午夜精品久久久久久| 欧美电影在线免费观看| 亚洲bt欧美bt精品777| 欧美精品色一区二区三区| 亚洲成人免费视频| 欧美精品免费视频| 蜜桃一区二区三区在线观看| 一区二区三区国产精品|