Если я правильно понял, то при n=2, buf будет равен [а1 а2], т.е. массив из 2ух чисел y1(k+1)=buf(1) y2(k+1)=buf(2) В scilab есть дебаг режим. Мне он не удобен, но что есть. Команда pause останавливает программу. Команда abort выходит из дебага. После получения данных в буфер можете написать pause и посмотреть в консольном режиме, как отработала эта процедура.
Как это будет выглядеть в моем случае? (немного не догоняю) Код (C++): sp = openserial(2,"9600,n,8,1") for l=1:1000 //answer = sp.readln(); answer = readserial(sp,2) //answer = readserial(sp[,n]) answery = strtod(answer); plot(l,answery); drawnow(); sleep(500); end closeserial(sp)
К сожалению, я не могу написать код, т.к. мне самому нужно разбираться в функциях и их возвращаемых значениях. Не забывайте про help, который частично переведён. Для начала прочтите про отладку (стр. 67). Если вы читаете из сериала 1 число, то answer равен "123.45" (допустим) и это строка(!). Потом вы переводите strtod строку в вещественное число и строите 1 точку на графике. Что происходит если n=2? Чему равно answer после получения данных? Я не могу вам сказать - не знаю, массив символов или вектор из строк... Поэтому, советую после написать pause. Когда включится отладка вы сможете руками пощупать в консольном режиме то, что пришло по сериалу. Вам нужно будет разработать алгоритм как преобразовать answer в 2 числа. Ну потом их и построить.