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

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

?? transfer.cpp

?? 支持XMODEM,YMODEM,FAX協議的串口通信軟件包
?? 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一区二区三区免费野_久草精品视频
欧美国产日韩在线观看| 亚洲天堂成人网| 国产精品久久久久国产精品日日| 亚洲精品免费一二三区| 老司机精品视频线观看86| 95精品视频在线| 久久综合久久鬼色中文字| 亚洲欧美二区三区| 国产精品自拍网站| 6080午夜不卡| 亚洲另类中文字| 成人自拍视频在线| 欧美xingq一区二区| 亚洲成人激情自拍| 一本久久综合亚洲鲁鲁五月天| 久久青草国产手机看片福利盒子 | 色婷婷一区二区三区四区| 精品久久久久久亚洲综合网| 亚洲一区二区在线播放相泽| 99天天综合性| 国产精品私房写真福利视频| 激情综合五月婷婷| 日韩片之四级片| 日韩国产精品久久久久久亚洲| 色综合天天视频在线观看| 国产精品欧美一区喷水| 国产精品亚洲成人| 欧美精品一区二区高清在线观看 | 成人欧美一区二区三区| 国产在线视频一区二区三区| 日韩女优电影在线观看| 秋霞电影一区二区| 在线播放一区二区三区| 五月天激情综合| 91麻豆精品国产91久久久久久 | 欧美日韩国产综合一区二区| 一区二区三区不卡在线观看| 91免费看视频| 亚洲二区在线视频| 日韩一区二区三区视频在线| 日本午夜精品一区二区三区电影| 91精品啪在线观看国产60岁| 视频一区在线视频| 欧美xxxxxxxx| 成人午夜视频网站| 亚洲九九爱视频| 欧美日韩免费高清一区色橹橹| 亚洲国产va精品久久久不卡综合| 欧美日韩一区二区三区免费看| 日韩黄色在线观看| 久久综合丝袜日本网| 国产精品亚洲成人| 亚洲免费在线看| 7777女厕盗摄久久久| 久久99国内精品| 欧美极品美女视频| 在线观看亚洲专区| 美女视频网站久久| 国产日韩精品一区二区三区 | 亚洲成在线观看| 日韩一二在线观看| 国产福利电影一区二区三区| 亚洲欧美日韩国产中文在线| 在线不卡一区二区| 成人福利视频网站| 亚洲第一搞黄网站| 国产亚洲一区二区三区四区| 91免费看视频| 国模一区二区三区白浆| 亚洲日本电影在线| 日韩女优av电影| 一本久久精品一区二区| 国内成人自拍视频| 亚洲午夜一二三区视频| 久久丝袜美腿综合| 7777精品伊人久久久大香线蕉的 | 国产精品盗摄一区二区三区| 欧美性色黄大片| 成人性生交大片免费看中文网站| 亚洲综合在线视频| 欧美韩日一区二区三区| 欧美久久久影院| 99视频有精品| 国产大陆精品国产| 日本va欧美va瓶| 一区二区三区蜜桃网| 久久夜色精品国产噜噜av| 欧美日韩不卡一区| 93久久精品日日躁夜夜躁欧美| 激情图区综合网| 亚洲国产日韩一区二区| 国产精品久久毛片a| 欧美大片免费久久精品三p| 一本一本久久a久久精品综合麻豆| 国产一区91精品张津瑜| 亚洲第一二三四区| 亚洲人成网站在线| 国产精品美女www爽爽爽| 欧美成人午夜电影| 欧美日韩mp4| 欧美三级电影在线看| 99精品国产91久久久久久| 国产激情一区二区三区四区| 日韩成人一区二区三区在线观看| 亚洲激情在线播放| 亚洲欧美韩国综合色| 中文字幕永久在线不卡| 久久久不卡网国产精品一区| 91麻豆精品国产91久久久资源速度 | 日韩激情视频网站| 亚洲午夜免费电影| 亚洲一区二区四区蜜桃| 亚洲精品中文在线影院| 久久久精品免费观看| 久久男人中文字幕资源站| 26uuu亚洲综合色| 久久精品在线观看| 精品av久久707| 精品久久一二三区| 精品少妇一区二区三区在线播放 | 中文字幕av一区二区三区| 久久综合久久综合亚洲| 久久九九久精品国产免费直播| 久久理论电影网| 久久久www成人免费无遮挡大片| 久久婷婷色综合| 国产网红主播福利一区二区| 久久久久国产一区二区三区四区 | 成人av先锋影音| 99视频在线精品| 日本丰满少妇一区二区三区| 色激情天天射综合网| 色综合一区二区三区| 欧美日韩五月天| 欧美一区二区在线免费播放| 日韩欧美亚洲一区二区| 亚洲精品一区二区三区影院 | 日本人妖一区二区| 麻豆精品久久精品色综合| 国产剧情一区在线| 99精品久久免费看蜜臀剧情介绍| 色94色欧美sute亚洲线路一ni | 99国产欧美久久久精品| 在线亚洲一区二区| 91麻豆精品国产91| 久久精品亚洲麻豆av一区二区 | 天堂va蜜桃一区二区三区漫画版| 舔着乳尖日韩一区| 国产高清精品在线| 91美女片黄在线| 日韩一区二区三区在线视频| 国产三级三级三级精品8ⅰ区| 一区视频在线播放| 全部av―极品视觉盛宴亚洲| 国产精品 欧美精品| 欧美日韩五月天| 国产欧美日韩精品a在线观看| 亚洲激情网站免费观看| 麻豆成人久久精品二区三区小说| 成人网在线播放| 欧美一区永久视频免费观看| 久久久www成人免费无遮挡大片| 一区二区三区四区精品在线视频| 精品一区二区三区欧美| 91麻豆6部合集magnet| 日韩一区二区电影网| 中文字幕亚洲不卡| 激情综合色播激情啊| 91久久精品国产91性色tv| 久久综合九色综合97婷婷女人| 亚洲综合免费观看高清完整版 | 自拍偷拍亚洲综合| 另类的小说在线视频另类成人小视频在线| 国产成人亚洲精品狼色在线| 欧美日韩情趣电影| 最新国产精品久久精品| 国产在线麻豆精品观看| 欧美日韩国产欧美日美国产精品| 一色屋精品亚洲香蕉网站| 国产美女一区二区| 欧美美女喷水视频| 日韩理论片在线| 国产成人精品免费网站| 日韩欧美中文字幕精品| 亚洲福利视频三区| 日本精品视频一区二区三区| 中文字幕亚洲一区二区va在线| 国产乱对白刺激视频不卡 | 欧美午夜宅男影院| 国产精品国产三级国产普通话三级 | 中文在线一区二区| 九九视频精品免费| 日韩一区二区在线看片| 天天综合日日夜夜精品| 色综合久久中文字幕| 国产精品国产三级国产| 粉嫩高潮美女一区二区三区| 2023国产精品| 国产永久精品大片wwwapp| 久久这里只有精品视频网|