短信猫软件的实现(C#)<二> AT指令调试器的简单实现

软件发送短信部分打算用C#类库实现 首先实现了一个简单的发送AT指令的程序 简单的把类库部分代码贴出来
Bug太多,贴出来仅供参考。

运行界面:

image

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:   

欢迎拍砖!

附件:

工程项目文件

你可能感兴趣的:(C#)