蜈蚣

百足之虫,死而不僵
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

用C#调试AT指令

Posted on 2008-01-08 19:08  蜈蚣  阅读(7722)  评论(21编辑  收藏  举报
   调试AT指令首先要支持串口操作, .net1.x没有支持串口.不过网站上有奉献精神的同志很多,借来用用就ok了,其实就是api调用.
        [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接通了,提示我一下,拿起电话机,就可以和对方通话了.
   当然,一条电话和一个人没什么竞争力,但多条线就不同了.开几条线程去拨,看谁还能比我快.

   好了,现在告诉你这咚咚干什么用了:
   1 ,可以用来进非常6加1或者"XX不寂寞",我就不信还有人的手比这个还快还有耐心。逮着机会可以狠狠BT李XX
   2 ,年关了,抢条线定火车票.如果你那个地方订票系统比较好,或者票多人傻,可以飘过........
   3 ,可以用来抢通小MM,前提是小MM太~~多人追了(别做违法的事情,否则我可不管的)
   不扯了,详细的AT指令集合及多线程拨号见附件.