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

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

?? transfer.cpp

?? 支持XMODEM,YMODEM,FAX協(xié)議的串口通信軟件包
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// ******************************************************************** //
//                                                                      //
//      TRANSFER.CPP                                                    //
//      Copyright (c) 1993, Michael Holmes and Bob Flanders             //
//      C++ Communication Utilities                                     //
//                                                                      //
//      Chapter 7: Receiving a FAX                                      //
//      Last changed in chapter 7                                       //
//                                                                      //
//      This file contains the functions which are used to process      //
//      the Alt-TransferFile menu tree.  This menu group is available   //
//      from the main menu.  These functions initiate, process and      //
//      terminate the protocol transfer functions.                      //
//                                                                      //
// ******************************************************************** //



/* ******************************************************************** *
 *
 *  overwrite() -- prompt user to overwrite file, rtn TRUE if deny
 *
 * ******************************************************************** */

int     overwrite(Window *w,                // window to prompt in
                  int r)                    // row to prompt on
{
int     rc = 0;                             // return code
char   *reply;                              // response buffer pointer

w->AtSay(1, r, dl_msg[1]);                  // display overwrite prompt
reply = (char *) malloc_chk(2);             // get a work buffer
strcpy(reply, "Y");                         // ..initialize it

while (rc == 0)                             // wait for a proper response
    {
    if (field_edit(w, strlen(dl_msg[1]) + 1,// q. user hit ESC?
                r, &reply, 1) == 0)
        {
        w->AtSay(strlen(dl_msg[1]) + 1,     // a. yes .. force screen
                r, "N");                    // ..to user's response
        rc = 2;                             // set up return code
        break;                              // ..and exit loop
        }

    switch (*reply)                         // based on user reply
        {
        case ' ':                           // positive responses
        case 'Y':                           //
        case 'y':                           //
            rc = 1;                         // set up return code
            break;                          // ..then exit loop

        case 'N':                           // negative responses
        case 'n':                           //
            rc = 2;                         // set up return code
            break;                          // ..and exit loop

        default:                            // error response
            printf(BELL);                   // ..give user a warning
        }
    }

free(reply);                                // release response buffer
return(rc - 1);                             // rtn with user's response

}



/* ******************************************************************** *
 *
 *  xm_stat() -- xmodem status routine
 *
 * ******************************************************************** */

int     xm_stat(struct xm_stat *x,          // xmodem status control block
                int msgtype)                // message type
{
char    buf[50];                            // formatting buffer

if (msgtype)                                // q. startup message?
    {                                       // a. yes ..
    sprintf(buf, dl_msg[9],                 // .. format the message
                 x->dir ? "Sending"         // .. direction
                        : "Receiving",
                 x->crc ? "XMODEM-CRC"      // .. and protocol
                        : "XMODEM");

    ((Window *) (x->work))->Display(buf);   // display in msg window
    return(0);                              // ..and return to caller
    }



if (x->done)
    {
    sprintf(buf, dl_msg[7], x->user,        // format completion message
        x->crc ? "with CRC" : "");          // ..with final byte count
    ((Window *) (x->work))->Display(buf);   // display in msg window
    return(0);                              // ..and return to caller
    }

if (get_key(NO_ALT) == ESC)                 // q. user pressed ESC key?
    return(1);                              // a. yes .. end transfer

sprintf(buf, dl_msg[6],                     // format a status message
            x->pktcnt, x->error);           // ..with current counts
((Window *) (x->work))->Display(buf);       // display in msg window
return(0);                                  // ..and return all ok

}



/* ******************************************************************** *
 *
 *  ym_stat() -- ymodem status routine
 *
 * ******************************************************************** */

int     ym_stat(struct ym_stat *y,          // ymodem status control block
                int msgtype)                // type of message
{
char    buf[80];                            // formatting buffer
static
long    prvleft;                            // previous amount left


switch (msgtype)                            // type of message
    {
    case 0:                                 // regular status
       if (get_key(NO_ALT) == ESC)          // q. user pressed ESC key?
           return(1);                       // a. yes .. end transfer

       if (y->left+y->error+prvleft == 0)   // q. anything to show?
           return(0);                       // a. no .. return now

       sprintf(buf, dl_msg[13],             // format a status message
                   y->left, y->error);      // .. with current counts
       prvleft = y->left;                   // .. save the old left amount
       break;

    case 1:                                 // new file
       sprintf(buf, dl_msg[11], y->filename,// .. format the message
                    y->filelen);
       prvleft = y->filelen;                // .. set previous left
       break;

    case 2:                                 // display final counts
       prvleft = 0;                         // .. reset previous left
       sprintf(buf, dl_msg[8], y->nfiles,   // .. format the message
                    y->totalbytes);
       break;

    case 3:                                 // opening message
       prvleft = 0;                         // .. reset previous left
       sprintf(buf, dl_msg[9]+2,            // .. format the message
                    y->dir ? "Sending"      // .. direction
                           : "Receiving",
                    "YMODEM-Batch");        // .. protocol
    }

((Window *) (y->work))->Display(buf);       // display in msg window
return(0);                                  // ..and return all ok
}



/* ******************************************************************** *
 *
 *  fax_stat() -- FAX status routine
 *
 * ******************************************************************** */
int     fax_stat(int fn,                    // function code
                 struct FxStat *fs)         // pointer to structure

{
Window  *w;                                 // window pointer

w = (Window *) fs->f_parm;                  // get window pointer parm

switch(fn)                                  // based on the function
    {
    case 0:                                 // ESC key pressed = TRUE
       rc = (get_key(NO_ALT) == ESC);
       break;

    case 1:                                 // display a message
       w->Display(fs->f_msg);               // .. display it
       rc = 0;                              // .. return OK
       break;

    case 2:                                 // display a message by pointer
       w->Display(fs->f_ptr);               // .. display it
       rc = 0;                              // .. return OK
       break;

    }

return(rc);                                 // return to caller
}



/* ******************************************************************** *
 *
 *  dl_xmodem() -- xmodem download menu routine
 *
 * ******************************************************************** */

int     dl_xmodem(int c, int r)             // column and row for window
{
int     loop = 1;                           // loop control
char   *filename = 0;                       // download filename pointer
Window  dl_win(c, r,                        // define temporary window
            c + 45, r + 6,                  // ..to hold message
            menu_cn, menu_cr);              // ..using system colors
XModem  xmodem(comm, xm_stat, &dl_win);     // define XMODEM instance

dl_win.Open(double_line);                   // open window with a border
dl_win.Display(dl_msg[0]);                  // give filename prompt

if (field_edit(&dl_win,                     // q. prompt for the filename
            strlen(dl_msg[0]) + 1, 1,       // ..on the 1st row, did we
            &filename, 32) == 0)            // ..get a good user response?
    return(0);                              // a. no .. return to caller

if (NOT first_nonblank(filename))           // q. empty string?
    {
    free(filename);                         // a. yes .. release memory
    return(0);                              // ..and return to caller
    }

dl_win.GotoXY(1, 2);                        // set up window for 2nd line

while (loop)                                // loop till request not to
    {
    switch (rc = xmodem.Receive(filename))  // try to get a file
        {
        case 0:                             // successful transfer
            loop = 0;                       // clear loop control
            break;                          // ..and exit switch

        case 1:                             // duplicate filename
            if (overwrite(&dl_win, 2))      // q. overwrite this file?
                {
                free(filename);             // a. no .. release memory
                wait_ms(1500L);             // ..wait a bit
                return(0);                  // ..and then return
                }

            delete_file(filename);          // delete/unlink file
            break;                          // ..and try again

        case 2:                             // user cancelled transfer
        case 3:                             // fatal protocol error
        case 4:                             // sender cancelled download
        case 5:                             // output file error
            dl_win.Display(dl_msg[rc]);     // give user a message
            loop = 0;                       // ..clear loop control
            break;                          // ..and exit loop
        }
    }

free(filename);                             // release memory
wait_ms(3000L);                             // ..wait a bit
return(ESC);                                // ..then return to caller

}



/* ******************************************************************** *
 *
 *  dl_ymodem() -- ymodem download menu routine
 *
 * ******************************************************************** */

int     dl_ymodem(int c, int r)             // column and row for window
{
Window  dl_win(c, r,                        // define temporary window
            c + 45, r + 10,                 // ..to hold message
            menu_cn, menu_cr);              // ..using system colors
YModem  ymodem(comm, ym_stat, &dl_win);     // define YMODEM instance

dl_win.Open(double_line);                   // open window with a border

if ((rc = ymodem.Receive()) != 0)           // q. anything but successful?
   dl_win.Display(dl_msg[rc]);              // a. yes .. show the user

wait_ms(3000L);                             // ..and wait a bit
return(ESC);                                // ..and return to caller

}



/* ******************************************************************** *
 *
 *  ul_xmodem() -- xmodem upload menu routine
 *
 * ******************************************************************** */

int     ul_xmodem(int c, int r)             // column and row for window
{
int     loop = 1;                           // loop control
char   *filename = 0;                       // download filename pointer
Window  ul_win(c, r,                        // define temporary window
            c + 45, r + 6,                  // ..to hold message
            menu_cn, menu_cr);              // ..using system colors
XModem  xmodem(comm, xm_stat, &ul_win);     // define XMODEM instance

ul_win.Open(double_line);                   // open window with a border
ul_win.Display(dl_msg[0]);                  // give filename prompt

if (field_edit(&ul_win,                     // q. prompt for the filename
            strlen(dl_msg[0]) + 1, 1,       // ..on the 1st row, did we
            &filename, 30) == 0)            // ..get a good user response?
    return(0);                              // a. no .. return to caller

if (NOT first_nonblank(filename))           // q. empty string?
    {
    free(filename);                         // a. yes .. release memory
    return(0);                              // ..and return to caller
    }

ul_win.GotoXY(1, 2);                        // set up window for 2nd line

while (loop)                                // loop till request not to
    {
    switch (rc = xmodem.Send(filename))     // try to send a file
        {
        case 0:                             // successful transfer
            loop = 0;                       // clear loop control
            break;                          // ..and exit switch

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到不卡精品视频在线观看| 久久在线观看免费| 欧美一区二区福利在线| 国产女主播视频一区二区| 亚洲一区二区av在线| av中文一区二区三区| 26uuu另类欧美| 日本三级韩国三级欧美三级| 91蜜桃视频在线| 亚洲国产精品精华液ab| 狠狠色狠狠色综合| 欧美一区二区精品久久911| 亚洲愉拍自拍另类高清精品| 99国产精品99久久久久久| 久久久综合网站| 久久99国产精品尤物| 69精品人人人人| 一区二区三区中文字幕| av影院午夜一区| 国产欧美日韩亚州综合| 激情图片小说一区| 日韩欧美视频一区| 免费精品视频在线| 91麻豆精品91久久久久久清纯| 亚洲精品国产a久久久久久| 处破女av一区二区| 国产精品嫩草影院com| 国产999精品久久| 国产午夜精品理论片a级大结局| 紧缚奴在线一区二区三区| 日韩精品一区二区在线| 精品亚洲免费视频| 久久亚洲春色中文字幕久久久| 精品一区二区av| 久久亚区不卡日本| 成人手机电影网| 欧美激情综合五月色丁香小说| 国产凹凸在线观看一区二区| 国产偷国产偷亚洲高清人白洁| 国产一区二区三区观看| 国产日韩精品视频一区| 99久久精品费精品国产一区二区| 亚洲手机成人高清视频| 欧美体内she精高潮| 亚洲一区二区五区| 欧美一区二区视频在线观看2020| 久久99精品久久久久久久久久久久| 欧美一二三四在线| 国产自产v一区二区三区c| 国产喂奶挤奶一区二区三区| eeuss鲁片一区二区三区| 亚洲福利一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品一区二区三区香蕉蜜桃| 日韩精品专区在线影院观看| 福利一区二区在线| 中文字幕一区二区三区不卡| av一区二区三区在线| 亚洲国产精品欧美一二99| 欧美成人r级一区二区三区| 国产一区二区三区黄视频 | 国产一区二区精品久久91| 国产精品国产a| 欧美一区2区视频在线观看| 成人深夜在线观看| 日韩精品福利网| 国产精品乱码久久久久久| 欧美酷刑日本凌虐凌虐| 国产成人综合亚洲网站| 亚洲18女电影在线观看| 国产欧美一区二区精品性色超碰 | 欧美性猛片aaaaaaa做受| 久久66热re国产| 一区二区免费看| 国产三级一区二区三区| 欧美日本高清视频在线观看| 成人国产精品免费| 另类小说综合欧美亚洲| 一区二区三区视频在线观看| 国产欧美日韩久久| 日韩欧美123| 欧美日韩国产色站一区二区三区| 成人精品视频.| 国产精品一区一区三区| 日韩精品成人一区二区三区| 亚洲免费高清视频在线| 欧美精彩视频一区二区三区| 欧美成人免费网站| 欧美人妖巨大在线| 欧日韩精品视频| 成人动漫精品一区二区| 国产精品一区二区在线播放| 男人操女人的视频在线观看欧美| 亚洲综合色噜噜狠狠| 国产精品第五页| 国产欧美日韩另类视频免费观看| 日韩欧美你懂的| 91精品国产免费久久综合| 欧美午夜一区二区| 91欧美激情一区二区三区成人| 成人一区二区三区在线观看| 国产一区二区美女| 国产永久精品大片wwwapp| 美腿丝袜一区二区三区| 老司机午夜精品99久久| 日本美女一区二区三区视频| 日韩在线a电影| 午夜成人免费电影| 午夜电影网亚洲视频| 天堂一区二区在线| 日日夜夜精品视频免费| 五月婷婷久久丁香| 亚洲成人福利片| 国产又粗又猛又爽又黄91精品| 久久99精品国产麻豆婷婷| 麻豆国产精品官网| 久久国产麻豆精品| 激情欧美一区二区三区在线观看| 激情图片小说一区| 国产suv精品一区二区883| 丰满放荡岳乱妇91ww| 99re热这里只有精品视频| 色婷婷久久久亚洲一区二区三区| 欧美最猛性xxxxx直播| 欧美精品丝袜中出| 欧美大片免费久久精品三p| 亚洲精品在线免费观看视频| 久久婷婷综合激情| 国产精品国产三级国产三级人妇| 综合久久国产九一剧情麻豆| 一区二区三区在线观看欧美 | 国产一区二区不卡老阿姨| 国产精品系列在线观看| 91在线视频观看| 欧美日本一道本在线视频| 2020国产成人综合网| 中文字幕一区二区三区视频| 亚洲成a人v欧美综合天堂| 理论片日本一区| 波多野结衣中文字幕一区| 在线观看国产一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 欧美激情一区二区三区不卡| 亚洲精品五月天| 老司机免费视频一区二区三区| 不卡一区二区在线| 欧美日高清视频| 国产精品免费久久久久| 亚洲成a人在线观看| 国产一区二区三区不卡在线观看| 色婷婷精品大视频在线蜜桃视频| 欧美一区二区三区在线电影| 国产精品国产三级国产有无不卡 | 欧美美女视频在线观看| 久久人人超碰精品| 亚洲bt欧美bt精品777| 国产精品白丝jk白祙喷水网站| 一本色道久久综合精品竹菊| 精品国产91久久久久久久妲己 | 黄色日韩三级电影| 欧美性一区二区| 国产精品天天看| 麻豆精品国产91久久久久久| 在线影院国内精品| 国产精品女人毛片| 国产专区欧美精品| 欧美丰满美乳xxx高潮www| 亚洲免费观看高清完整版在线观看 | 亚洲成a人在线观看| 国产精品一区专区| 91麻豆精品久久久久蜜臀| 一区二区三区在线视频观看58| 国产精品一二三区在线| 欧美一区二区三区在| 一区二区三区鲁丝不卡| 丁香婷婷综合激情五月色| 日韩欧美在线影院| 日韩激情一区二区| 欧美体内she精高潮| 亚洲免费观看高清完整版在线观看 | 精品国产电影一区二区| 亚洲三级在线播放| 国产91对白在线观看九色| 日韩免费观看高清完整版在线观看| 亚洲自拍偷拍欧美| 97久久精品人人澡人人爽| 中文字幕不卡在线观看| 国产一区二区三区久久悠悠色av| 日韩免费性生活视频播放| 午夜欧美大尺度福利影院在线看| 99久久综合国产精品| 国产精品午夜久久| 国产成人精品免费| 国产欧美日本一区二区三区| 国产中文字幕一区| 欧美精品一区二区不卡| 国产精品一区一区| 国产色一区二区| caoporm超碰国产精品| 亚洲激情图片一区|