📄 form1.cs
字号:
public static string ByteToString(byte[] InBytes)
{
string StringOut = "";
foreach (byte InByte in InBytes)
{
//StringOut = StringOut + String.Format("{0:X2}", InByte) + " ";
StringOut = StringOut + String.Format("{0:X2}", InByte);
}
return StringOut.Trim();
}
public static byte[] StringToByte(string InString)
{
string[] ByteStrings;
int TmpIndex;
ByteStrings = InString.Split(" ".ToCharArray());
byte[] ByteOut;
ByteOut = new byte[ByteStrings.Length];
for (int i = 0; i <= ByteStrings.Length - 1; i++)
{
TmpIndex = ByteStrings[i].ToLower().IndexOf("0x");
if (TmpIndex >= 0)
{
ByteOut[i] = byte.Parse(ByteStrings[i].Remove(TmpIndex, 2), System.Globalization.NumberStyles.HexNumber);
}
else
{
ByteOut[i] = byte.Parse(ByteStrings[i], System.Globalization.NumberStyles.HexNumber);
}
}
return ByteOut;
}
private byte[] Un2bytes(string msg)
{
byte tmp;
System.Text.UnicodeEncoding uen = new System.Text.UnicodeEncoding();
byte[] bytes = uen.GetBytes(msg);
for (int i = 0; i < bytes.Length-1;)
{
tmp = bytes[i];
bytes[i] = bytes[i + 1];
bytes[i + 1] = tmp;
i+=2;
}
return bytes;
}
private bool SendCmd(string cmd)
{
serialPort.WriteLine(cmd);
Thread.Sleep(50);
if (CheckResponse("OK"))
{
return true;
}
return false;
}
private bool CDMAInit()
{
try
{
// 测试 GSM-MODEM 的存在性
if (!QueryExistByRWCmd())
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "串口初始化失败!";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
return false;
}
// 关闭回显功能
//serialPort.WriteLine("ATE0");
//if (!CheckResponse("OK"))
//{
// MessageBox.Show("关闭回显功能失败!");
//}
if (!SendCmd("ATEO"))
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "关闭回显功能失败!";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
}
// 测试SIM卡
if (!SendCmd("AT$HPINS=P1"))
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "测试SIM卡失败!";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
return false;
}
// 测试网络信号
if (!SendCmd("AT+CSQ?"))
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "测试网络信号失败!";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
}
}
catch (Exception )
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "串口初始化失败!";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
return false;
}
return true;
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
serialPort.Close();
}
private void InitButton_Click(object sender, EventArgs e)
{
if (this.InitButton.Text == "关闭设备")
{
try
{
serialPort.Close();
cdmaInitFlg = false;
this.Height = 250;
this.InitButton.Text = "打开设备";
cdmaInitFlg = true;
this.Height = 500;
this.InitButton.Text = "关闭设备";
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "串口关闭";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
}
catch (Exception )
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "串口关闭失败";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
}
}
else
{
try
{
strComPort = comListcombox.Text;
bitRate = bitratecomboBox.Text;
serialPort.PortName = strComPort;
serialPort.BaudRate = Convert.ToInt32(bitRate);
serialPort.RtsEnable = true;
serialPort.DtrEnable = true;
serialPort.ReadTimeout = 5000; //读取阻塞时间
serialPort.WriteTimeout = 1000;
serialPort.Open();
if (!CDMAInit())
{
serialPort.Close();
return;
}
cdmaInitFlg = true;
this.Height = 500;
this.InitButton.Text = "关闭设备";
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "设备打开成功";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
}
catch (Exception )
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;
this.listView1.BeginUpdate();
lvi = new ListViewItem();
lvi.Text = "设备打开失败";
//解析文件大小
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = DateTime.UtcNow.ToString();
lvi.SubItems.Add(lvsi);
//列表中增加一行
this.listView1.Items.Add(lvi);
this.listView1.EndUpdate();
}
}
}
private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -