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

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

?? fax.cpp

?? 支持XMODEM,YMODEM,FAX協議的串口通信軟件包
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// ******************************************************************** //
//                                                                      //
//      FAX.CPP                                                         //
//      Copyright (c) 1993, Michael Holmes and Bob Flanders             //
//      C++ Communication Utilities                                     //
//                                                                      //
//      Chapter 7: Facsimile Reception and Transmission                 //
//      Last changed in chapter 7                                       //
//                                                                      //
//      This file contains the functions to implement the Fax class.    //
//      This class contains all of the support for receiving and        //
//      transmitting facsimilies.                                       //
//                                                                      //
// ******************************************************************** //

#define FAX_CLASS1  "AT +FCLASS=1\r"        // enter FAX class 1 mode

#define FAX_TX_HDLC "AT +FTH=3\r"           // enter HDLC transmit mode
#define FAX_RX_HDLC "AT +FRH=3\r"           // enter HDLC recieve mode

#define FAX_TX_DATA "AT +FTM=%d\r"          // enter FAX transmit mode
#define FAX_RX_DATA "AT +FRM=%d\r"          // enter FAX receive mode

#define FAX_TX_SPD  "AT +FTM=?\r"           // get FAX transmit speeds
#define FAX_RX_SPD  "AT +FRM=?\r"           // get FAX receive speeds

#define FAX_SILENT  "AT +FRS=8\r"           // 80 ms of silence
#define FAX_SILENT1 "AT +FRS=20\r"          // 200 ms of silence

#define FAX_CLASS1  "AT +FCLASS=1\r"        // enter FAX class 1 mode
#define FAX_MODEM   "AT +FCLASS=0\r"        // return to non-FAX mode

#define FAX_ANSWER  "AT A\r"                // answer an incoming call
#define FAX_HANGUP  "AT H\r"                // disconnect from line
#define FAX_DIAL    "AT DT"                 // dial command

#define FAX_OK      "\r\nOK\r\n"            // OK response
#define FAX_ERR     "\r\nERROR\r\n"         // ERROR response
#define FAX_NO_CARR "\r\nNO CARRIER\r\n"    // NO CARRIER response
#define FAX_CONN    "\r\nCONNECT\r\n"       // CONNECT response
#define FAX_RING    "\r\nRING\r\n"          // RING message

#define FAX_SETMDM  "AT Q0 V1 E0\r"         // set modem parameters
#define FAX_RSTMDM  "AT Z\r"                // reset modem

#define FAX_ADDR    0xff                    // value for address byte
#define FAX_CTL     0xC0                    // value for control field
#define FAX_CTL_FF  0xC8                    // control field + final frame

#define FAX_FCF_DIS 0x01                    // digital ID signal
#define FAX_FCF_CSI 0x02                    // called subscriber ID
#define FAX_FCF_NSF 0x04                    // non-standard facilities
#define FAX_FCF_DCS 0xC1                    // digital command signal
#define FAX_FCF_TSI 0xC2                    // transmitting subscriber ID
#define FAX_FCF_CFR 0x21                    // confirmation to receive
#define FAX_FCF_FTT 0x22                    // failure to train
#define FAX_FCF_EOM 0xF1                    // end of message
#define FAX_FCF_MPS 0xF2                    // multipage signal
#define FAX_FCF_EOP 0xF4                    // end of procedure
#define FAX_FCF_MCF 0x31                    // message confirmation
#define FAX_FCF_DCN 0xDF                    // disconnect

#define FINAL       8                       // final frame
#define NON_FINAL   0                       // non-final frame

#define TRANSMIT    0                       // connect in send mode
#define RECEIVE     1                       // connect in receive mode

#define FAX_T9600   0x80                    // 9600 transmit
#define FAX_T7200   0x40                    // 7200 transmit
#define FAX_T4800   0x20                    // 4800 transmit
#define FAX_T2400   0x10                    // 2400 transmit

#define FAX_R9600   0x08                    // 9600 receive
#define FAX_R7200   0x04                    // 7200 receive
#define FAX_R4800   0x02                    // 4800 receive
#define FAX_R2400   0x01                    // 2400 receive

/* ******************************************************************** *
 *
 *  Fax specific variables, structs, etc.
 *
 * ******************************************************************** */

char    dis_msg[] =                         // DIS frame data
          { 0,                              // first byte:
                                            //   not G1, G2
          0x70,                             // second byte:
                                            //   T.4 operation
                                            //   9600/7200/4800/2400 bps
                                            //   3.85 lines/mm
                                            //   one-dimensional coding
          0x02                              // third byte:
          };                                //   1728 pels/215mm
                                            //   A4 paper only
                                            //   40ms receive time

char    dcs_msg[] =                         // DCS frame data
          { 0,                              // first byte:
                                            //   not G1, G2
          0x40,                             // second byte:
                                            //   T.4 operation
                                            //   speed to be set
                                            //   3.85 lines/mm
                                            //   one-dimensional coding
          0x02                              // third byte:
          };                                //   1728 pels/215mm
                                            //   A4 paper only
                                            //   40ms per line

struct HDLC_msg                             // format of HDLC message
    {
    UCHAR   addr;                           // address byte (always 0xff)
    UCHAR   ctl_fld;                        // control field
    UCHAR   fax_ctl_fld;                    // FAX control field (FCF)
    UCHAR   data[253];                      // optional data
    int     len;                            // received frame length
    };

struct FxStat                               // Fax status structure
    {
    void   *f_parm;                         // Fax init parameter
    char   f_msg[50];                       // message string
    char   *f_ptr;                          // pointer to message
    };

struct FxHdr                                // Fax file header structure
    {
    char   ff_type[3];                      // file type (G3)
    char   ff_dcs[16];                      // DCS for transfer
    char   ff_id[21];                       // original station ID
    char   ff_reserved[88];                 // reserved space
    };



/* ******************************************************************** *
 *
 *  Fax class definition
 *
 * ******************************************************************** */

class Fax : Protocol
    {
    public:
        Fax     (Comm *,                    // Fax instance contstructor
                 char *,                    //   Comm instance, station ID
                 int (*)(int,               //   status routine
                         struct FxStat *),
                 void *);                   //   FxStat parameter

                 ~Fax(void);                // destructor

        void     Send(char *, char *),      // send a fax
                 Receive(char *);           // receive a fax

    private:
        Comm    *cp;                        // Comm instance
        int     Send_CSI(void),             // send optional CSI
                HDLC_Mode(int),             // set HDLC tx|rx mode
                Data_Mode(int, int),        // set data tx|rx mode
                Get_Speeds(void),           // get tx and rx speeds
                Get_Line(char *, int),      // get a CR-terminate line
                Get_Char(char *, int),      // get a character
                Rcv_Hmsg(void),             // receive an HDLC frame
                Send_Our_ID(UCHAR),         // send our ID to remote
                Send_Hmsg(UCHAR,UCHAR,int), // send an HDLC frame
                Send_TSI(void),             // send TSI frame to remote
                Send_DIS(void),             // send DIS frame to remote
                Send_DCS(void),             // send DCS frame to remote
                Init_Modem(void),           // initialize modem
                (*stat)(int,                // status routine pointer
                        struct FxStat *),
                connected;                  // HDLC link active
        UINT    oldparms,                   // old communications parameters
                pbi;                        // page buffer index
        long    oldspeed;                   // old commuincations speed
        void    Reverse_Bytes(UCHAR *, int),// reverse bits in char array
                Display_ID(char *, UCHAR *),// display remote station ID
                Display_Msg(int),           // display a fax_msgs message
                Reset_Modem(void);          // reset modem and comm parms
        UCHAR   speeds,                     // speeds supported
                                            // 1... .... 9600 transmit
                                            // .1.. .... 7200
                                            // ..1. .... 4800
                                            // ...1 .... 2400
                                            // .... 1... 9600 receive
                                            // .... .1.. 7200
                                            // .... ..1. 4800
                                            // .... ...1 2400
               *pagebuf,                    // page buffer area
                Reverse_Byte(UCHAR value);  // reverse bits in a byte
        char   *station;                    // our station id
        struct  FxStat fs;                  // fax status structure
        struct  FxHdr  fh;                  // fax file header structure
        union   {                           // accesss HDLC msg as chars
                struct  HDLC_msg hmsg;      // HDLC message area
                UCHAR   cmsg[256];          // .. same as char array
                };
    };


/* ********************************************************************
 *
 *  Fax -- Fax instance constuctor
 *
 * ********************************************************************/

Fax::Fax(Comm *ci,                          // comm instance
         char *sid,                         // .. our station ID (telno)
         int (*sr)(int, struct FxStat *),   // .. status routine
         void *w)                           // .. fax status parameter

{

cp = ci;                                    // save comm instance pointer
stat = sr;                                  // .. and status routine
station = sid;                              // .. and station ID

connected = 0;                              // no HDLC connection active

fs.f_parm = w;                              // save fax status parameter

strcpy(fh.ff_type, "G3");                   // preset the file type
memset(fh.ff_reserved, ' ',                 // .. and clear reserved area
            sizeof(fh.ff_reserved));

pagebuf = new UCHAR[1024];                  // allocate page buffer

}



/* ********************************************************************
 *
 *  ~Fax -- destructor
 *
 * ********************************************************************/

Fax::~Fax(void)                             // Fax destructor

{
delete pagebuf;                             // free pagebuf memory
}



/* ******************************************************************** *
 *
 *  Init_Modem -- initialize the fax modem
 *
 *  returns: -2 = User pressed ESC
 *           -1 - Timeout
 *            0 = successful; OK response from modem
 *            1 = ERROR response from modem
 *
 * ******************************************************************** */

int Fax::Init_Modem(void)

{
int     rc,                                 // return code
        i;                                  // work counter for loops
char    buf[80],                            // work buffer for speeds
       *c,                                  // work pointer
       *t;                                  // token work pointer


cp->Write("\r");                            // send a <CR> to modem
Purge(cp, 2);                               // .. kill any receive messages

oldspeed = cp->GetSpeed();                  // get the old link speed
oldparms = cp->Set8n();                     // .. and old comm parameters
                                            // .. while setting 8,n,1

cp->SetBPS(19200L);                         // set new comm speed
cp->SetBPS(9600L);     // set new comm speed

for (rc = i = 0; (rc == 0) && i++ < 3;)     // try three times
    {
    cp->Write(FAX_SETMDM);                  // set the modem parameters

    rc = wait_for(FAX_OK, FAX_ERR, 2);      // wait for OK response
    }

if (rc < 0)                                 // q. user cancellation?
    return(rc - 1);                         // a. yes .. return error

speeds = 0;                                 // reset speeds supported

cp->Write(FAX_CLASS1);                      // place modem in CLASS 1 mode

rc = wait_for(FAX_OK, FAX_ERR, 5) - 1;      // wait for modem response

if (rc)                                     // q. modem respond ok?
   return(rc);                              // a. no .. tell the caller

cp->Write(FAX_TX_SPD);                      // retrieve transmit speeds

rc = Get_Line(buf, 5);                      // kill the first CR
rc = Get_Line(buf, 5);                      // get the line from the mode

if (rc)                                     // q. any error?
   return(rc);                              // a. yes.. return w/error

Purge(cp, 1);                               // kill additional characters

c = (*buf == '\n') ? buf+1 : buf;           // select start point

while ((t = strtok(c, ",")) != 0)           // while there are tokens
    {
    c = NULL;                               // continue searching buf

    i = atoi(t);                            // get the token's value

    switch(i)                               // for various values..
        {
        case 24:                            // 2400 found
             speeds |= FAX_T2400;           // .. set set the speed flag
             break;

        case 48:                            // 4800 found
             speeds |= FAX_T4800;           // .. set set the speed flag
             break;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨国产入口| 欧美日韩一区二区在线观看| 色哟哟一区二区三区| 欧美精选午夜久久久乱码6080| 久久视频一区二区| 亚洲福利一区二区三区| 国产一区二区不卡老阿姨| 欧美日韩国产另类不卡| 亚洲欧美一区二区在线观看| 激情图片小说一区| 欧美电影影音先锋| 亚洲一区二区三区自拍| 99精品热视频| 国产精品热久久久久夜色精品三区| 免费在线观看不卡| 欧美高清视频一二三区| 亚洲成人激情自拍| 欧美综合在线视频| 一区二区三区欧美日| av电影一区二区| 久久久久久久久免费| 韩日欧美一区二区三区| 精品国产伦理网| 美女视频黄频大全不卡视频在线播放 | 日韩午夜在线观看视频| 色综合 综合色| 欧美美女一区二区三区| 一区二区三区精品在线观看| 99vv1com这只有精品| 国产嫩草影院久久久久| 成人视屏免费看| 国产精品久久久久国产精品日日 | 欧美一区永久视频免费观看| 亚洲午夜av在线| 欧美中文字幕一区二区三区 | 精品国一区二区三区| 日日夜夜免费精品| 51精品视频一区二区三区| 日韩高清电影一区| 欧美一区二区成人| 极品美女销魂一区二区三区| 91精品国产综合久久小美女| 久久机这里只有精品| 精品国产一区二区亚洲人成毛片| 精品写真视频在线观看| 久久丝袜美腿综合| 99精品久久久久久| 亚洲综合激情另类小说区| 欧美无砖专区一中文字| 图片区小说区区亚洲影院| 日韩亚洲欧美中文三级| 国产一区二区在线免费观看| 国产精品热久久久久夜色精品三区 | 国模一区二区三区白浆| 久久精品在这里| 成人免费毛片嘿嘿连载视频| 日韩一区在线看| 欧美日韩一卡二卡三卡| 久久国内精品自在自线400部| 久久一留热品黄| 色综合久久久久久久久| 日韩av一二三| 日本一区二区三区免费乱视频| 日本福利一区二区| 老司机午夜精品| 亚洲丝袜另类动漫二区| 欧美日韩成人一区二区| 国产白丝网站精品污在线入口| 亚洲中国最大av网站| 久久综合一区二区| 91搞黄在线观看| 国产九九视频一区二区三区| 亚洲综合激情小说| 国产日本欧洲亚洲| 宅男噜噜噜66一区二区66| 成人一区二区三区在线观看| 亚洲18女电影在线观看| 中文字幕欧美国产| 91精品国产91久久综合桃花| 9l国产精品久久久久麻豆| 捆绑调教一区二区三区| 亚洲制服丝袜一区| 国产精品国产三级国产aⅴ中文| 欧美一区二区日韩一区二区| av激情综合网| 国产成人精品免费在线| 蜜桃精品视频在线观看| 一区二区三区在线免费播放| 亚洲国产成人午夜在线一区| 日韩免费高清视频| 精品视频在线视频| 色菇凉天天综合网| proumb性欧美在线观看| 国产精品性做久久久久久| 日韩福利视频网| 午夜精品一区二区三区电影天堂| 自拍偷拍亚洲综合| 国产精品视频麻豆| 欧美激情一区在线观看| 日韩亚洲欧美成人一区| 欧美精品1区2区3区| 欧美日韩国产首页| 欧美日韩日日骚| 欧美人狂配大交3d怪物一区| 欧美日韩一区二区在线观看 | youjizz国产精品| 国产精品88av| 国产suv精品一区二区6| 国产精品小仙女| 国产成人精品免费| 高清不卡在线观看av| 国产精品18久久久久久vr| 久久99九九99精品| 国产一区二区女| 国产精品一区二区在线观看不卡 | 日本不卡的三区四区五区| 一区二区国产盗摄色噜噜| 亚洲精品自拍动漫在线| 一区二区三区精品久久久| 亚洲激情图片qvod| 亚洲一区二区免费视频| 午夜欧美2019年伦理| 日本不卡一区二区三区高清视频| 欧美aⅴ一区二区三区视频| 精品制服美女久久| 国产呦萝稀缺另类资源| 成人黄色在线看| 一本一道综合狠狠老| 欧美日韩免费观看一区二区三区| 欧美人与性动xxxx| 久久综合九色综合97婷婷| 国产日产亚洲精品系列| 亚洲精品免费在线| 天堂成人国产精品一区| 久久精品国产99国产| 成人一级片在线观看| 欧洲精品在线观看| 51精品久久久久久久蜜臀| 久久久精品一品道一区| 亚洲精品第一国产综合野| 免费在线视频一区| 99精品桃花视频在线观看| 欧美酷刑日本凌虐凌虐| 久久午夜色播影院免费高清| 亚洲精品成a人| 久久精品99久久久| 色妹子一区二区| 日韩欧美在线观看一区二区三区| 国产日韩欧美在线一区| 夜夜操天天操亚洲| 国产美女精品人人做人人爽| 91农村精品一区二区在线| 日韩欧美在线综合网| 亚洲精品成人少妇| 国产精品亚洲人在线观看| 欧美性猛交xxxx黑人交| 国产欧美日韩三区| 日韩影院在线观看| 99精品视频一区| 26uuu成人网一区二区三区| 亚洲综合免费观看高清在线观看| 国产一区二区三区在线观看免费 | 精品久久久影院| 亚洲精品国产第一综合99久久| 精油按摩中文字幕久久| 日本精品一区二区三区高清| 久久夜色精品一区| 视频精品一区二区| 91碰在线视频| 国产欧美日韩视频在线观看| 免费高清视频精品| 精品污污网站免费看| 亚洲美女视频一区| 国产一级精品在线| 日韩亚洲欧美在线观看| 香蕉加勒比综合久久| 91啪九色porn原创视频在线观看| 久久久国产午夜精品| 毛片一区二区三区| 88在线观看91蜜桃国自产| 伊人色综合久久天天人手人婷| 成人天堂资源www在线| 久久嫩草精品久久久久| 日本最新不卡在线| 欧美日韩一级黄| 亚洲成人午夜影院| 在线一区二区三区| 国产精品乱码人人做人人爱| 国产一区二区三区av电影| 日韩女优av电影| 九一久久久久久| 欧美一级精品在线| 秋霞电影网一区二区| 9191久久久久久久久久久| 日韩福利视频导航| 精品伦理精品一区| 国产麻豆精品一区二区| 久久久噜噜噜久久人人看| 国产美女在线观看一区| 国产欧美一区二区在线观看|