У меня есть аппаратная часть, которая отправляет байт данных, представляющих сигнал напряжения с частотой 100 Гц через последовательный порт.
Я хочу написать программу, которая будет считывать данные, чтобы я мог построить их. Я знаю, что мне нужно открыть последовательный порт и открыть поток ввода. Но следующая часть сбивает меня с толку, и у меня возникают проблемы с концептуальным пониманием процесса:
Я создаю цикл while, который считывает данные из входного потока по 1 байту за раз. Как получить синхронизацию цикла while, чтобы всегда был доступен байт для чтения, когда он достигает строки readbyte? Я предполагаю, что я не могу просто поместить функцию сна в цикл while, чтобы попытаться сопоставить ее с частотой дискретизации оборудования. Это просто вопрос продолжения чтения входного потока в цикле while, и если он слишком быстрый, он ничего не будет делать (поскольку новых данных нет), а если он будет слишком медленным, он будет накапливаться в буфере входного потока?
Как я уже сказал, я только пытаюсь понять это концептуально, поэтому любое руководство будет высоко ценится! Я предполагаю, что идея не зависит от того, какой язык программирования я использую, но если нет, предположим, что он используется в Java.