[DllImport("kernel32.dll")]
private static extern int CreateFile(); //打開串口
[DllImport("kernel32.dll")]
private static extern bool ReadFile(); //讀串口
[DllImport("kernel32.dll")]
private static extern bool WriteFile(); //寫串口
包裝包裝就成壹個.net串口操作類。當然,如果環境假設為.net 2.x以上可以用System.IO.Ports.SerialPort.功能差不多,除了read,就是write.
首先要弄明白的是端口,在設備管理器,打開modem看,裏面會告訴妳用哪個端口,格式:COMX(X= 1,2,3,4.....)。
接下來就是幾個概念了。壹個是波特率,也就是最大通信速率,就低不就高。壹般modem是56k,所以填57600不錯。(這個在設備管理器裏也有)
數據位 壹般是8 。奇偶校驗位 0 停止位 1。當然也有特殊情況,遇到的概率跟中彩票差不多。實在沒招,找個串口監視工具,在命令行裏輸入 "dialer",可以打開window 內置的撥號程序,撥壹遍就知道了.
串口搞定,動modem就有戲.先試壹下是否連通.(註意這裏,at指令是以0d結束,不是字符,是16進制字節,輸入時直接敲回車就可以,下同.)
輸入: AT
如果連接正確modem會
返回: OK
接下來是撥電話,wirte 壹組字符串,加入妳要撥的號碼,假如是10000號,那就發
輸入: ATDT10000
modem會去撥10000,電話就給妳接通了.撥不上去,modem會返回 "NO DIALTONE" 或 "BUSY",讀取返回值,檢測到這兩個東東,斃掉它重來.
拿壹條分機和它串在壹起,等modem接通了,提示我壹下,拿起電話機,就可以和對方通話了.
當然,壹條電話和壹個人沒什麽競爭力,但多條線就不同了.開幾條線程去撥,看誰還能比我快.