Я хотел бы хранить данные, полученные из последовательного канала, для их построения на графике. Я попытался собрать данные в цикле whileХранение данных с последовательной последовательной передачи с помощью Matlab Gui
while (get(serial, 'BytesAvailable')~=0)
storeAndPlot()
end
но программа не может выполнять другие задачи в то же время.
В этом question они используют таймер для указания задержки в секундах между выполнением функции. Это может быть решение с использованием короткого периода, например 0,1, для вызова функции getDataFromSerialFunction() и обновления графика.
Есть ли какая-то функция обратного вызова для вызова, как только данные доступны из сериала?
ну, я ничего не знаю о серийном; но, возможно, использование функции change-change-listener может помочь-> [undocumented_matlab: property-value-change-listener] (http://undocumentedmatlab.com/blog/property-value-change-listeners) –
вы можете попробовать «пауза (0.1)» или втянуть внутри цикла while. Настройка слушателя была бы правильным способом сделать это, хотя. Если у вас есть панель сбора данных, см. [Здесь] (http://www.mathworks.com/help/daq/ref/dataavailable.html) для функции прослушивателя, которая может помочь. – Trogdor
@LuciusDomitiusAhenobarbus, я почтительно не согласен: «pause (n) приостанавливает выполнение в течение n секунд, прежде чем продолжить, где n - любое неотрицательное действительное число». [источник] (http://www.mathworks.com/help/matlab/ref/pause.html) – Trogdor