查看: 11782|回复: 0
打印 上一主题 下一主题

GSMMODEM.cs源代码,串口调试程序

[复制链接]
跳转到指定楼层
楼主
发表于 2014-3-6 18:56:29 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
上一篇《短信收发设备开发新手不求人了解的串口类,简单的串口调试器 》,今天给大家介绍了串口调试,今天给大家来个调试程序的源代码让大家进行参考学习然后慢慢实现给系统实现短信收发设备发送短信通知的功能。软件仅供参考用,请勿用于进行商业用途。
软件发送短信部分打算用C#类库实现 首先实现了一个简单的发送AT指令的程序 简单的把类库部分代码贴出来
Bug太多,贴出来仅供参考
软件效果图:


GSMMODEM.cs源代码:
  1.     using System;
  2.     using System.IO.Ports;
  3.     using System.Threading;
  4.      
  5.     namespace 时讯网
  6.     {
  7.         class GSMMODEM
  8.         {
  9.             //构造函数
  10.           public GSMMODEM()
  11.           {
  12.               //串口初始化
  13.               _sp.NewLine = "\r\n";
  14.               _sp.ReadTimeout = 2500;
  15.               _sp.RtsEnable = true;
  16.               //_sp.DtrEnable = true;
  17.    
  18.               //_sp.Handshake = Handshake.RequestToSendXOnXOff;
  19.           }
  20.    
  21.           public GSMMODEM(string ComPort, int BaudRate)
  22.           {
  23.               //串口初始化
  24.               _sp.PortName = ComPort;
  25.               _sp.BaudRate = BaudRate;
  26.               _sp.NewLine = "\r\n";
  27.               _sp.ReadTimeout = 2500;
  28.               _sp.RtsEnable = true;
  29.               //_sp.DtrEnable = true;
  30.   
  31.               //_sp.Handshake = Handshake.RequestToSendXOnXOff;
  32.           }
  33.           //属性
  34.           private SerialPort _sp = new SerialPort();
  35.    
  36.           //public bool AutoDelMsg = false;             //设置是否在阅读短信后自动删除SIM卡内短信存档(建议在经常接收短信时设置为 true)
  37.           //设计和运行时都可以读写,true 自动删除   false 不自动删除
  38.           //默认为 true
  39.   
  40.           //端口号
  41.           public string ComPort
  42.           {
  43.               get
  44.               {
  45.                   return _sp.PortName;
  46.               }
  47.               set
  48.               {
  49.                   _sp.PortName = value;
  50.               }
  51.           }
  52.    
  53.           //波特率
  54.           public int BaudRate
  55.           {
  56.               get
  57.               {
  58.                   return _sp.BaudRate;
  59.               }
  60.               set
  61.               {
  62.                   _sp.BaudRate = value;
  63.               }
  64.           }
  65.    
  66.           //是否开启
  67.           public bool IsOpen
  68.           {
  69.               get
  70.               {
  71.                   return _sp.IsOpen;
  72.               }
  73.           }
  74.    
  75.           //打开设备
  76.           public void OpenComm()
  77.           {
  78.               try
  79.               {
  80.                   _sp.Open();
  81.               }
  82.               catch (Exception ex)
  83.               {
  84.                   throw (ex);
  85.               }
  86.           }
  87.    
  88.           //关闭设备
  89.           public void CloseComm()
  90.           {
  91.               try
  92.               {
  93.                   _sp.Close();
  94.               }
  95.               catch (Exception ex)
  96.               {
  97.                   throw (ex);
  98.               }
  99.           }
  100.    
  101.           //发送AT指令,返回由设备返回的数据
  102.           public string SendATCommand(string ATCmd)
  103.           {
  104.               _sp.DiscardInBuffer();
  105.               try
  106.               {
  107.                   _sp.WriteLine(ATCmd);
  108.               }
  109.               catch (Exception ex)
  110.               {
  111.                   throw (ex);
  112.               }
  113.    
  114.               try
  115.               {
  116.                   Thread.Sleep(100);
  117.                   return _sp.ReadExisting();
  118.               }
  119.               catch (Exception ex)
  120.               {
  121.                   throw (ex);
  122.               }
  123.           }
  124.    
  125.           public string Write(byte[] byte1, int a, int b)
  126.           {
  127.               try
  128.               {
  129.                   _sp.Write(byte1, a, b);
  130.               }
  131.               catch (Exception ex)
  132.               {
  133.                   throw (ex);
  134.               }
  135.    
  136.               try
  137.               {
  138.                   Thread.Sleep(100);
  139.                   return _sp.ReadExisting();
  140.               }
  141.               catch (Exception ex)
  142.               {
  143.                   throw (ex);
  144.               }
  145.           }
  146.       }
  147.    
  148.   }
  149.    
复制代码



文章来自网络,源代码以测试过可以使用,明天将给大家了解下PDU格式短信解析及PDU格式的编码用C#实现
AT指令调试器.rar (118.1 KB, 下载次数: 3965)









分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|未来时代科技 ( 粤ICP备12044031号-1

GMT+8, 2024-11-23 02:16 , Processed in 0.069249 second(s), 34 queries .

Powered by WLSD X3.1

© 2013-2014 WLSD Inc.

快速回复 返回顶部 返回列表
 
【电话】(15118131494)
【QQ】 未来时代科技01 售前咨询
【QQ】 未来时代科技02 售后技术
【旺旺】 请问有什么可以帮到您?不在线可留言.
【邮箱】
inextera@sina.com
【地址】 (深圳市龙岗坂田扬马小区)