Я создаю веб-приложение для обмена сообщениями.Уже сделал метод отправки сообщения.Мой метод получения сообщений работает с SerialDataReceivedEventHandler
Мой код:
public class InnerComPortSettings
{
public static SerialPort SerialPort;
public static void OpenPort()
{
SerialPort = new SerialPort("COM3", 115200)
{
Parity = Parity.None,
DataBits = 8,
StopBits = StopBits.One,
Handshake = Handshake.None,
DtrEnable = true,
RtsEnable = true
};
//Thread.Sleep(1000);
SerialPort.Open();
}
}
private string _messageString;
public Task ReceiveSms()
{
return Task.Run(() =>
{
InnerComPortSettings.SerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
InnerComPortSettings.SerialPort.WriteLine("AT+CMGF?\r");
Thread.Sleep(5000);
InnerComPortSettings.SerialPort.WriteLine("AT+CNMI=1,2,0,0,0\r");
Thread.Sleep(1000);
InnerComPortSettings.SerialPort.WriteLine("AT+CMGF=0\r");
Thread.Sleep(1000);
});
}
public void DataReceivedHandler(
object sender,
SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
_messageString = sp.ReadLine();
GetPdu();
}
}
Так что я хочу, чтобы проанализировать только SMS информацию и сообщение, а затем сохранить его в базе данных,
//Response after start
AT+CMGF=1
OK
AT+CNMI=1,2,0,0,0
OK
//Response after getting message
+CMT: "+xxxxxxxxxx",,"18/05/30,10:08:08+18"
Testing
Как лучше всего исключить первую часть и разделить вторую часть на миры?