Я пытаюсь отправить смс через телефон Nokia по серийному номеру, что достаточно просто с помощью замазки. Команды из документации nokia работают нормально.
Тем не менее, попытка отправить те же команды из приложения C # с треском проваливается. Я запустил Sysinternals PortMon и вижу, что команды проходят нормально, единственное различие, которое я вижу, в том, как он соединяется, но у меня возникают проблемы с поиском команд, которые бы сгладили эти различия.
Код, который я запускаю, выглядит примерно так
using (SerialPort port = new SerialPort(comPort, 9600, Parity.None, 8, StopBits.One))
{
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.ErrorReceived += new SerialErrorReceivedEventHandler(port_ErrorReceived);
//port.ReceivedBytesThreshold = 1;
port.DtrEnable = true;
port.RtsEnable = true;
port.ReadTimeout = 1;
port.Handshake = Handshake.XOnXOff;
try
{
port.Open();
port.WriteLine("AT");
port.WriteLine("AT+CMGF=1");
port.WriteLine("AT+CMGS=\"" + number + "\"");
port.WriteLine(message);
port.Write(new byte[] { (byte)26 }, 0, 1);
}
finally
{
if (port.IsOpen)
{
port.Close();
}
}
Различия, которые я вижу в трассировке от последовательного порта,
В начале
0.00001844 aspnet_wp.exe IOCTL_SERIAL_SET_HANDFLOW USBSER001 SUCCESS Shake:1 Replace:43 XonLimit:4096 XoffLimit:4096
И в самом конце
0.00061153 aspnet_wp.exe IOCTL_SERIAL_PURGE USBSER001 SUCCESS Purge: RXABORT RXCLEAR
0.00004442 aspnet_wp.exe IOCTL_SERIAL_PURGE USBSER001 SUCCESS Purge: TXABORT TXCLEAR
Кто-нибудь получил какие-нибудь советы о том, как сгладить эти проблемы? Я также замечаю, что телефон не отвечает на приложение с каким-либо подтверждением, когда я выполняю команду, поэтому я подозреваю, что проблема связана с соединением, а не с этими сообщениями в конце.