scilab

Тема в разделе "Arduino & Shields", создана пользователем Artclonic, 22 ноя 2018.

  1. Daniil

    Daniil Гуру

    Если я правильно понял, то
    при n=2, buf будет равен [а1 а2], т.е. массив из 2ух чисел
    y1(k+1)=buf(1)
    y2(k+1)=buf(2)
    В scilab есть дебаг режим. Мне он не удобен, но что есть.
    Команда pause останавливает программу. Команда abort выходит из дебага. После получения данных в буфер можете написать pause и посмотреть в консольном режиме, как отработала эта процедура.
     
    Последнее редактирование: 23 ноя 2018
  2. Artclonic

    Artclonic Гик

    Как это будет выглядеть в моем случае?
    (немного не догоняю)
    Код (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)
     
     
  3. Daniil

    Daniil Гуру

    К сожалению, я не могу написать код, т.к. мне самому нужно разбираться в функциях и их возвращаемых значениях.
    Не забывайте про help, который частично переведён.
    Для начала прочтите про отладку (стр. 67).
    Если вы читаете из сериала 1 число, то answer равен "123.45" (допустим) и это строка(!).
    Потом вы переводите strtod строку в вещественное число и строите 1 точку на графике.
    Что происходит если n=2? Чему равно answer после получения данных? Я не могу вам сказать - не знаю, массив символов или вектор из строк...
    Поэтому, советую после
    написать pause.
    Когда включится отладка вы сможете руками пощупать в консольном режиме то, что пришло по сериалу. Вам нужно будет разработать алгоритм как преобразовать answer в 2 числа. Ну потом их и построить.