У меня есть класс, который взаимодействует с последовательным портом, и я хочу имитировать функцию Get. Проблема в том, что последовательный порт передает необработанные данные, которые могут прийти или не прийти. Его также необходимо обработать и разобрать. Например, если я хочу получить объект Person, класс последовательного порта сделает это.
Метод отправки запроса для Person.
Что-то происходит на последовательном устройстве... оно может ответить, а может и нет.
Байты поступают через обработчик событий, который обрабатывает и анализирует все данные и, в конечном итоге, объект Person.
Я хочу обернуть все это в функцию «GetPerson», но у меня возникают трудности с соединением шагов в 1 и 3. Шаг 3 — это функция, которая всегда выполняется и представляет собой скорее общий анализатор.
Может ли кто-нибудь помочь мне спроектировать/структурировать это?
Изменить: также я пытался использовать переменную класса и проверять с помощью оператора while, как показано ниже, но по какой-либо причине он не проверяет переменную во время оператора while:
private Person person;
public Person GetPerson()
{
...
while (person == null) {}
return person;
}