Реализация двунаправленного кольца на COM портах - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо реализовать двунаправленное кольцо на COM портах Кадр состоит из следующих полей: Стартовый байт Адрес отправителя Адрес получателя Тип кадра Длинна поля данных Данные Стоповый байт Проблема в том, что иногда не все данные приходят или приходят сразу оба кадра Как проверят готовность COM порта к принятию данных? Как внутри буфера определить где начало, а где конец кадра?

Решение задачи: «Реализация двунаправленного кольца на COM портах»

textual
Листинг программы
List<byte> InputBuffer;
...
try
{
InputBuffer.Add(serialPort1.BaseStream.ReadByte());
if(WantLength(InputBuffer)>=InputBuffer.Length)
{
//принят полный пакет
}
}
catch(TimeOutException e)
{
//время на принятие пакета истекло
}
...
int WantLength(List<byte> buffer)
{
if (buffer.Length<=5)
return int.MaxValue;
return (buffer[5]+6);
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы