Я ищу совета по проекту, который мне назначен, и я ищу, как это делается «профессионально», или какие-либо предложения, которые могут привести меня в правильном направлении.
У меня есть серверная часть, которая принимает команды от клиентов и выталкивает потоки байтов на последовательный порт. Хотя несколько клиентов могут отправлять команды этому серверу, наше оборудование может обрабатывать только одну команду за раз. Моя проблема с очередями в конце программного обеспечения.
Я реализовал вспомогательный класс Queue<T>
, который также вставляет данные в набор данных, содержащий: номер запрашивающего клиента, данные сообщения (байтовый массив для записи в последовательный порт) и тип сообщения (описание команды). В нем также будут перечислены команды очереди в DataGrid (в форме). Возможно, это не тот путь, но я могу думать только о том, чтобы сохранить запрашивающего клиента и данные и визуально показать очередь.
Где я могу обработать очередь? Я думал об обработке этого события в пользовательском событии, когда, если список DataGrid изменился (элемент добавлен / удален), захватите первую строку данных в наборе данных и отправьте ее на последовательный порт.
Любые комментарии или предложения приветствуются.
Спасибо.
Редактировать: я забыл добавить, что он также требует ответа от SerialPort для удаления текущей выполненной команды из очереди.