У меня есть устройство (Bluetooth-пульсоксиметр), которое передает пакет раз в секунду, состоящий из трех байтов, а также смарфон Qtek 8300. Нужно написать программу, которая получает эти три байта, а потом их разбирает по битам... В спецификациях указано, что можно работать с SerialPort'ом. У меня есть некий код, но остались неясности:
1. Зачем при работе с SerialPort'ом нужно создавать отдельный Thread и когда и как его использовать?
2. Чем отличается метод serialPort.Read() от события DataRecieved()и метод serialPort.ReadExisting()? Что лучше сделать именно в моем случае?
3. В самом начале, мне нужно послать команду задания формата прнимаемых данных "D1 Если все хорошо,устройство присылает ответ <ACK>, а если нет - <NAK>. Как это лучше обработать? Как сделал я или как-то под другому?
Вот мой код:
byte[] b = new byte[3];
b[0] = 0x22;
b[1] = 0x44;
b[2] = 0x31;
if (!sp_State)
{
try
{
com.PortName = "COM7";
com.BaudRate = 9600;
com.Open();
com.Write(b, 0, b.Length);
int r;
r = com.ReadByte();
if (r == 0x15)
MessageBox.Show("Error!");
else
{
// дальше код получения и обработки данных
}
}
catch {}
Буду благодарен за ответы.