Настраиваю порт, отправляю запрос. Для обработки ответа использую событие data received. Проблема в том, что ответ приходит не корректный, либо не полный, либо его совсем нет. В чем причина? Без события приходит корректный ответ с таймером в 30-50 мск. А Если использовать событие то ответ не полный.
public void SendRequestPort_K()
{
if (portKDD.IsOpen)
{
threadK = new Thread(new ParameterizedThreadStart(_WritePortK));
portKDD.DiscardInBuffer();
portKDD.DiscardInBuffer();
portKDD.DataReceived +=
new SerialDataReceivedEventHandler(portKDD_DataReceived);
threadK.Start(_numberK);
while (!threadK.IsAlive) ;
}
}
public void SetSettingPort()
{
portKDD = new SerialPort();
portKDD.PortName = "COM3";
portKDD.BaudRate = 19200;
portKDD.DataBits = 8;
portKDD.Handshake = Handshake.None;
portKDD.Parity = Parity.None;
portKDD.StopBits = StopBits.One;
}
private void _WritePortK(object _numberK)
{
portKDD.DiscardInBuffer();
portKDD.DiscardOutBuffer();
int numberK = Int32.Parse(_numberK.ToString());
int lengthByte = 0;
Request Request = new Request();
Request.CreatePack_0x03_0х04("000", K[numberK], 0 , 0x04, new byte[] { 0x00, 0x00 }, new byte[] { 0x00, 0x02 }); //формирую запрос
portKDD.Write(Request.pack.ToArray(), 0,
Request.pack.ToArray().Length);// идет запрос 1 4 0 0 0 2 crc1 crc2
Thread.Sleep(30);
//int flag = portKDD.BytesToRead;
//if (flag != 0)
//{
byte[] _bytes = new byte[100];
lengthByte = portKDD.Read(_bytes, 0, 100);
//}
numberK++;
if(number<31)
_WritePortK(numberK)
else
threadK.Abort();
}
void portKDD_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//int flag = portKDD.BytesToRead;
//if (flag != 0)
//{
//byte[] _bytes = new byte[100];
//lengthByte = portKDD.Read(_bytes, 0, 100);
//}
//portKDD.DiscardInBuffer();
//portKDD.DiscardInBuffer();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я знаю, что у андройд приложений есть папка, к которой имеет доступ только само приложение и системаОна удаляется вместе с приложением
Как сделать кнопку в заголовке datagridcheckboxcolumn которая убирает все галочки в колонке?
Подскажите пожалуйста, как проверить есть ли конкретное значение в базе данных MySQL? Нужно реализовать метод на C# с проверкойНапример, есть...