私はAT
、携帯電話のモデムにコマンドを送信し、その結果コードを受信するプロジェクト魔女に取り組んでいます。atコマンドの送信にはすでに成功しましたが、「at」を送信すると「OK」が返され、「at + cbc」を送信するとバッテリーが返されるなど、コマンドから結果コードを読み取ることがわかりませんでした状態。コマンド送信後に Read と ReadLine と ReadExisting を使ってみたのですがうまくいきませんでした。これは私のソースコードです。助けていただければ幸いです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace WindowsFormsApplication1
{
public partial class check : Form
{
SerialPort sp;
public check()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
sp = new SerialPort();
sp.PortName = "COM3";
sp.BaudRate = 9600;
sp.Parity = Parity.None;
sp.DataBits = 8;
sp.StopBits = StopBits.One;
sp.ReadTimeout = 3000;
sp.WriteTimeout = 3000;
//sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
}
private void btn1_Click(object sender, EventArgs e)
{
try
{
if(!sp.IsOpen)
{
sp.Open();
}
sp.WriteLine(tbCmd+"\r\n");
System.Threading.Thread.Sleep(2000);
tbStatus.Text = sp.ReadLine();
}
catch(Exception ex)
{
tbStatus.Text = "Error!\r\n" + ex.ToString();
}
}
//void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
//{
// tbStatus.Text = sp.ReadExisting();
//}
}
}