美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業電氣產品 > 工業開關 > 溫控開關

類型分類:
科普知識
數據分類:
溫控開關

基于FAX MODEM遠程通信程序設計

發布日期:2022-04-27 點擊率:154

    摘 要 本文首先介紹了開發Windows事件驅動的串行通信編程原理及方法,然后簡述了FAX MODEM的控制方式,接著詳細論述了一個遠程監視系統的編程例子。最后探討了技術的應用途徑。
1. 引 言

  FAX MODEM首先用于傳真業務,近幾年發展極為迅速,取得了極大成功。隨著技術的發展和人們認識的提高,人們拓寬了FAX MODEM的功能,把它用于廣域網絡通信中,FAX MODEM能從微機接受串行數據,直接傳給另一端的FAX機或另一臺FAX MODEM,所以使用微機通過程控電話網和FAX MODEM互聯起來可以組成一個廣域網絡系統,當兩臺微機撥號聯上后,它們就獨占了一條電話線路,它們之間就像本地通信一樣(光電傳輸速度108米/秒)方便[1]。

2. Windows事件驅動編程原理

  采用OWL開發應用程序。
2.1 WM_COMMNOTIFY消息
   WM_COMMNOTIFY是窗口管理類型消息,當COM端口有事件發生時Windows就向窗口發送這條消息。該消息指出了WINDOWS發送接收隊列的狀態,如果通告狀態是CN_EVENT,表明COM端口有通信事件發生,其消息TMessage結構的成員wParam標志發生事件的COM端口[2]。
2.2 對消息的響應
   定義一個窗口及一個消息響應成員函數如下:
   class TMonitorWindow:public Twindow
   {//私有成員
   public;
   //公有成員
   virtual void WMCommnotify(RTMessage Msg)
   =[WM_FIRST:WM_COMMNOTIFY];};
   在此例中,當TMonitorWindow對象接到一個WM_COMMNOTIFY消息,就立即自動喚起WMCOmmnotify成員函數,處理端口事件。其中Msg是消息RTMessage類型的變量,RTMessage是TMessage的引用。從WINDOWS發送的消息信息存放于Msg中。
   如果表達式(((Msg.LP.Lo& CN_EVENT)==CN_EVENT)&&(Msg.WParam==comm2))為真,則表明端口comm2有通信事件發生,可以從comm2中讀取接收報文。

3. FAX MODEM的控制

3.1 命令模式和在線模式
   FAX MODEM工作時處在本地命令狀態或在線狀態。處在本地命令時,用戶能夠通過計算機的串行接口向它發送命令,完成一定功能,FAX MODEM不傳送這些命令;一旦與遠程FAX MODEM建立連接后,FAX MODEM就進入在線狀態,這時它將直接傳送計算機發送的命令[1]。
3.2 命令和結果碼
   所有HayesFAX MODEM控制命令毫無例外一律使用AT開頭。當FAX MODEM接受一個命令,它就返回一個結果,這個結果可以是一個字符串或結果碼。因此可以編程與FAX MODEM交互,實現用軟件來控制FAX MODEM。

4.遠程監視編程

  假設2臺微機(稱A和B)通過電話網、FAX MODEM連接,用A機監視B機,實時接收B機發送的狀態報文(B機的發送是隨機的),那么A機的監視軟件模塊主要包括:定義監視窗口;初始化并建立與B機的連接;監視B機;掛斷關閉通信口結束程序運行。這里介紹功能模塊編程方法如下:
4.1 定義監視窗口
   class TMonitorWindow: public TWindow
   { COMSTAT comstat;
     char buffer[1024]; ∥緩沖區
     int bufnum;   ∥緩沖區實際字節數
     int comdev;   ∥串行口設備號
     int status;    ∥當前通信狀態
     void InitComm(); ∥初始化串行口
     void InitFAX MODEM();∥初始化FAX MODEM
     void Dial(char*);   ∥撥號
     void Connect();    ∥接聽電話
     void HangUp();   ∥掛斷電話
     void EndFAX MODEM(); ∥掛斷FAX MODEM
     void EndComm();    ∥結束通信
     int ReadFAX MODEMCode();∥讀取FAX MODEM返回碼public:
     TMonitorWindow(PTWindowsObject AParent,
     LPSTR ATitle);
     virtual void CloseWindow();
     virtual void WMClose(RTMessage Msg)
     =[CM_FIRST+WM_CLOSE];∥終止程序運行
     virtual void CommMessage(RTMessage Msg)
     =[WM_FIRST+WM_COMMNOTIFY;∥通信消息函數
   };
4.2 初始化并建立與B機的連接
4.2.1 計算機串口初始化
   串行口的初始化必須完成三項任務:一調用OpenComm函數打開串行口。一個重要的工作是檢查返回值,如果小于或等于0,則打開操作失敗,這時必須采取容錯措施;二調用SetCommState設置通信參數;三是調用函數setCommEventMask設定窗口只收CN_EVENT通告;調用函數
   EnableCommNotification屏蔽
   CN_RECEIVE和CN_TRANSMIT通告。參考代碼如下:
   void TMonitorWindow::InitComm()
   { DCB dcb;
   comdev=OpenComm(″COM3″,1024.1024);
   if(comdev<=0)
   { MessageBox(HWindow,″串行口打開失敗!″
        ,″出錯″,MB_OK);
   GetCommError(comdev,&comstat);
   }
   else
   { GetCommState(comdev,&dcb);
   dcb.BaudRate=4800;
   dcb.Parity=NOPARITY;
   dcb.ByteSize=8;
   dcb.StopBits=ONESTOPBIT;
   if (SetCommState(&dcb)<0)
   {McssagcBox(HWindow,″串行口打開失敗!″
        ,″出錯″,MB_OK);
   GetCommError(comdev,&comstat);
   return;
   }
   SetCommEventMask(comdev,EV_RXCHAR
         |EV_RING |EV_BREAK);
   EnableCommNotification(comdev,HWindow,-1,-1);
   }
  }
4.2.2 FAX MODEM初始化
   作如下工作:關掉屏幕回顯,設置數字顯示結果碼,打開載波信號,設置揚聲器值,打開結果碼,設置FAX MODEM值。組合命令為:
   ″ATEOVO&C1&D2X4M1L1QOSO=OS7=10 ″;
   參考代碼如下:
   void TMonitorWindow::InitFAX MODEM()
   { char *Str=″ATEOVO&C1&D2X4M1L1QOSO=OS7=10 ″;
   if (WriteComm(comdev,Str,strlen(Str))<0)
   { GetCommError(comdev,&comstat);
    MessageBox(HWindow,″初使化FAX MODEM失敗!″,″出錯″,MB_OK);
   }
  }
4.2.3 撥號
   如果用音頻撥號方式撥電話號碼88888888,撥號命令為:
   “ATDT 88888888 ”;
   如果用脈沖撥號方式撥電話號碼88888888,撥號命令為:
   “ATDP 88888888 ”;
   如果電話號碼暫存到字符串DialStr中,用Dial函數撥號,參考代碼如下:
   void TMonitorWindow::Dial(char *telphone)
   {char DialStr[50];
   sprintf(DialStr,″ATDP%s ″,telphone);
   if(WriteComm(comdev,DialStr,strlen(DialStr))<0)
   {MessageBox(HWindow,″撥號FAX MODEM失敗!″,″出錯″,MB_OK);
   GetCommError(comdev,&comstat);
    }
   }
4.2.4 連接
   發送″ATA ″命令可以實現連接。
   參考代碼如下:
   void TMonitorWindow::Conncct()
   { char* connstr=″ATA ″;
   if(WriteComm(comdev,connstr,strlen(connstr))<0)
   {MessageBox(HWindow,″撥號FAX MODEM失敗!″,″出錯″,MB_OK);
   GetCommError(comdev,&comstat);
    }
   }
4.3 監視B機
4.3.1 讀FAX MODEM返回碼
   計算機向FAX MODEM發送命令后,立即讀通信口的接送隊列,將讀出的字符串轉換成整數即得到FAX MODEM返回碼。參考代碼如下:
   int TMonitorWindow::ReadFAX MODEMCode()
    { char tempbuf[20]
    int readno;
    readno=ReadComm(comdev,tempbuf,3);
    if (readno<0)
    { MessageBox(HWindow,″Read FAX MODEM CodeError!″,″ERROR″,MB_OK);
     GetCommError(comdev,&comstat);
     return -1;
    }
    else
    { tempbuf[readno]=′美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        亚洲欧美日韩在线| 欧美成人午夜电影| 97免费高清电视剧观看| 成人国产在线观看| 精品一区二区三区香蕉蜜桃 | 久久久综合香蕉尹人综合网| 国产日韩欧美综合精品| 久久99蜜桃综合影院免费观看| 国产精品国产三级国产专区53| 国产99在线免费| 蜜桃精品久久久久久久免费影院| 蜜桃视频在线观看成人| 美国av一区二区三区| 中文字幕一区二区三区四区五区| 欧美伊人久久久久久久久影院| 555www色欧美视频| 久久日韩精品一区二区五区| 国产精品丝袜91| 亚洲高清一区二区三区| 久久99精品久久久久久动态图| 国产剧情av麻豆香蕉精品| 99久久久久久| 日本三级中国三级99人妇网站| 在线观看欧美激情| 91精品国产乱码久久蜜臀| 26uuu亚洲综合色| 伊人性伊人情综合网| 久久超碰97中文字幕| aaa亚洲精品| 欧美美乳视频网站在线观看| 欧美亚洲一区三区| 国产亚洲一本大道中文在线| 亚洲一区国产视频| 国产精品66部| 麻豆精品传媒视频| 欧美日韩精品是欧美日韩精品| 久久精品一区二区三区不卡| 亚洲图片欧美综合| 国产成人在线视频免费播放| 国产精品免费观看高清| 中文字幕在线亚洲三区| 99久久综合狠狠综合久久| 日韩午夜三级在线| 欧美电影一区二区三区| 最近中文字幕一区二区三区| 欧美高清你懂得| 国产精品福利av | 香蕉久久夜色精品国产使用方法 | 一区免费观看视频| 伦理电影国产精品| 国产精品一区二区免费看| 欧美性猛交一区二区三区精品| 国产日韩高清在线| 日韩高清在线电影| 国产精品福利视频| 欧美精品在线视频| 亚洲综合在线视频| 99国产精品久久久| 欧美性猛片aaaaaaa做受| 亚洲欧洲日产国产综合网| 国产一区二区影院| 青青成人在线| 久久久久国产精品人| 激情小说欧美图片| 亚洲午夜精品一区二区三区| 国产午夜精品一区二区三区视频| 激情六月婷婷久久| 亚洲高清视频一区| 1区2区3区精品视频| 波多野结衣中文字幕一区二区三区| 亚洲综合欧美日韩| 亚洲欧美日韩人成在线播放| 91麻豆.com| 精品久久久久久久久久久久久久久久久 | 91看片淫黄大片一级在线观看| 欧美色综合网站| 亚洲国产婷婷综合在线精品| 国产精品区一区二区三含羞草| 日韩欧美国产成人一区二区| 久草精品在线观看| 色综合激情久久| 亚洲第一在线综合网站| 久久久综合香蕉尹人综合网| 亚洲国产高清在线观看视频| 91香蕉视频污| 精品国产一区久久| 暴力调教一区二区三区| 日韩视频在线你懂得| 国产高清精品网站| 欧美精选一区二区| 国产在线精品免费| 欧美裸体bbwbbwbbw| 久久er精品视频| 欧洲人成人精品| 欧美a级理论片| 日本久久一区二区三区| 视频在线观看国产精品| 亚洲午夜久久久影院伊人| 亚洲国产aⅴ天堂久久| 日韩在线国产| 偷拍自拍另类欧美| 亚洲国产日韩综合一区| 亚洲电影你懂得| 亚洲国产日韩欧美| 日本va欧美va精品发布| 欧美色网站导航| 精品一区二区三区免费播放| 欧美精品乱码久久久久久| 国产成人在线影院 | 国产精品理论片在线观看| 成人在线看片| 亚洲欧洲精品天堂一级 | 老司机午夜精品99久久| 欧美三级日韩三级国产三级| 久久超碰97中文字幕| 欧美精品在欧美一区二区少妇| 国产乱码精品1区2区3区| 日韩视频在线你懂得| 97超碰资源| 亚洲欧美另类小说| 亚洲欧洲精品在线观看| 欧美a级一区二区| 91精品国产综合久久福利| 成人黄色综合网站| 国产精品水嫩水嫩| 亚洲国产一区二区精品视频| 久草这里只有精品视频| 久久综合中文字幕| 久久婷婷开心| 日本在线不卡一区| 日韩美女天天操| 久久99欧美| 美女视频黄久久| 2020国产精品久久精品美国| 久久青青草原| 麻豆精品国产91久久久久久| 精品少妇一区二区三区免费观看 | 国产精品免费一区二区三区| 亚洲一区二区三区免费视频| 欧美日韩免费观看一区三区| 91gao视频| 午夜久久久久久| 日韩区在线观看| 免费久久久一本精品久久区| 美国十次综合导航| 日本一区二区免费在线| 综合色婷婷一区二区亚洲欧美国产| 成人免费毛片嘿嘿连载视频| 亚洲精品视频在线观看免费| 欧美高清视频www夜色资源网| 国产精品日韩一区二区三区| 日本亚洲欧美天堂免费| 久久久五月婷婷| 宅男噜噜99国产精品观看免费| thepron国产精品| 天天av天天翘天天综合网| 精品国偷自产国产一区| 特级西西444www大精品视频| 国产成人一级电影| 亚洲精品国产精华液| 欧美一区二区视频在线观看2020 | 中文字幕av不卡| 欧美亚洲日本一区| 国产免费一区| 国产一区二区毛片| 亚洲欧美日韩在线不卡| 欧美一卡二卡在线| 色综合久久久久久久久五月| 99精品欧美一区| 奇米色一区二区三区四区| 亚洲国产精品99久久久久久久久| 欧美日韩小视频| 日韩性感在线| 99九九视频| 国产精品亚洲第一区在线暖暖韩国| 国产精品传媒入口麻豆| 欧美一区二区三区系列电影| 一区二区三区四区视频在线 | 性欧美精品一区二区三区在线播放 | 美女视频黄a大片欧美| 成人免费在线视频| 精品国免费一区二区三区| 在线亚洲精品福利网址导航| 久久艳妇乳肉豪妇荡乳av| av中文一区二区三区| 久久国内精品视频| 亚洲第一狼人社区| 中文字幕视频一区| 久久精品欧美一区二区三区麻豆| 欧美精品久久99| 91久久国产最好的精华液| 欧美日韩喷水| 好吊色欧美一区二区三区| 91一区二区在线观看| 国产精品夜夜爽| 国产九九视频一区二区三区| 蜜桃av噜噜一区二区三区小说| 亚洲福利国产精品| 一区二区三区小说| 自拍偷拍亚洲综合|