返回OK 才执行下一条AT命令,否则继续等待或执行本条AT命令. 以下是理想情况下的,要考虑非理想情况,代码应如何写呢,给一点思路吧. WriteStrToSerial(L"AT+XXX1");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
WriteStrToSerial(L"AT^XXX2");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
WriteStrToSerial(L"AT^XXX3=1");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
WriteStrToSerial(L"AT^XXX4=1,1,0");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
......
}
}
}
}
if ( m_strDataReceived.Find(L"OK") > 0 )
{
WriteStrToSerial(L"AT^XXX2");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
WriteStrToSerial(L"AT^XXX3=1");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
WriteStrToSerial(L"AT^XXX4=1,1,0");
if ( m_strDataReceived.Find(L"OK") > 0 )
{
......
}
}
}
}
你这样不是永远只执行WriteStrToSerial(L"AT^XXX2"); 么?
发送完at1后阻塞发送线程,
你接收到ok后,要在接收线程里发消息到发送线程中,发送线程工作。
busy状态下不接收at。