gsm モデムを制御する C# シリアル ポートを使用しています。送信後、Mikroelectronia USART ターミナルで:
AT+CUSD=1,"*778#",15
それは受け取ります:
AT+CUSD=1,"*778#",15
わかった
+CUSD: 0,"Balance: 0.00 TK. Validity: 29-Jul-13. Bonus: 0.00TK. Free Min: 0. Dial *121*2092# for Ashiqui-2 as ur Caller Tunetk.10" ,64
しかし、データを送信した後、C#で
AT+CUSD=1,"*778#",15
戻ります:
AT+CUSD=1,"*778#",15
わかった
+CUSD: 0,"Balance: 0.00 TK. Validity: 29-Jul-13. Bonus: 0.00TK. Free Min: 0. Dial *121*2092# ur Caller Tune として Ashiqui-2 のヒット曲 3 曲
つまり、C# では「Caller Tune」の後にデータを受信しません。なぜそれが起こっているのですか?私が使用したC#コードの一部は
private void Form1_Load(object sender, EventArgs e)
{
sp1.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
var valueOfPort = sp1.ReadExisting();
textBox1.AppendText(valueOfPort);
}
private void button1_Click(object sender, EventArgs e)
{
TextBox.CheckForIllegalCrossThreadCalls = false;
try
{
if (!sp1.IsOpen)
{
sp1.Open();
}
sp1.Write(textBox2.Text+"\r");
}
catch(Exception ex)
{
MessageBox.Show(string.Format("Exception : {0}", ex.Message), "Port Error");
}
}