Добрый вечер, подскажите, кто ни будь ардуинку связывал с scilab ? Не могу настроить.... Выдает ошибку... Код (C++): h=openserial(13,"9600,n,8,1") !--error 999 TCL_EvalStr, at line 1 couldn't open "COM13:": no such file or directory while executing "open COM13: r+" invoked from within "set porthandle [open COM13: r+]" at line 17 of function openserial called by : h=openserial(13,"9600,n,8,1") Прошу помощи если кто сталкивался
Попробуйте в Диспетчере устройств в свойствах COM13 порта изменить его имя на любой свободный из диапазона COM1-COM9
Да и строка "h=openserial(13,"9600,n,8,1")" заставляет подозревать рукожопый код некоторые досадные ошибки
Я настроил ардуинку уно на порт номер 11. монитором порта проверил данные идут перевыбрал порт в программе с 13 на 11...ошибка... Код (C++): ->exec('C:\Users\Антон\Downloads\Scilab\ScilabArduino_Temp_v0.2.sce', -1) !--error 999 TCL_EvalStr, at line 1 couldn't open "COM11:": no such file or directory while executing "open COM11: r+" invoked from within "set porthandle [open COM11: r+]" at line 17 of function openserial called by : %serial_port=openserial(port_name,"9600,n,8,13"); at line 130 of exec file called by : \ScilabArduino_Temp_v0.2.sce', -1
Другая версия кода (номер1) Код (C++): -->exec('C:\Users\Киселев Антон\Downloads\Scilab\v.0.1\ScilabArduino_Temp_v0.1.sce', -1) !--error 999 TCL_EvalStr, at line 1 couldn't open "COM11:": no such file or directory while executing "open COM11: r+" invoked from within "set porthandle [open COM11: r+]" at line 17 of function openserial called by : %serial_port=openserial(port_name,"9600,n,8,1"); at line 120 of exec file called by : \ScilabArduino_Temp_v0.1.sce', -1
Судя по хелпу, запись правильная. У Windows есть рудимент наверное со времен, когда "640кб хватит всем" - к некоторым устройствам требуется указывать Long UNC \\.\\COM10 https://support.microsoft.com/en-us/help/115831/howto-specify-serial-ports-larger-than-com9 @Artclonic, меньше 10. Возможно винду придется перезагрузить.
Да,понял! постик не увидел.. Заменид на свободный порт 2. На порт уже не ругается.. но Код (C++): -->exec('C:\Users\ Антон\Downloads\Scilab\v.0.1\ScilabArduino_Temp_v0.1.sce', -1) !--error 999 Неизвестное свойство: dockable. at line 110 of function figure called by : f=figure("dockable","off"); at line 135 of exec file called by : \ScilabArduino_Temp_v0.1.sce', -1
Диспетчер устройств - порты (COM LPT) - свойства вашего COM порта - закладка Параметры порта - кнопка Дополнительно - внизу в выпадающем списке выбираете, например, COM5.
С портами разобрался... ошибка теперь вот Код (C++): Неизвестное свойство: dockable. at line 110 of function figure called by : f=figure("dockable","off"); at line 135 of exec file called by : \ScilabArduino_Temp_v0.1.sce', -1
5.4.1 сейчас Был 5.5 - яспециально переустоновил более раннюю, потоому что не работало... Переустоновить на шестую?
Добрый день. На базе готового примера хочу создать свой простейший график с двумя параметрами.. Своял код, который в порт посылает два значения через запятую.. Вот с монитора порта: Код (C++): 35,33 36,34 35,35 36,36 35,37 36,38 Далее в Scilab (из готового примера раздел отвечающий за COM порт) Код (C++): ind = x_choose(["RS-232" ;"USB"; "Ethernet" ;"Wireless"],["Please select the type of communication interface: ";"Just double-click on its name. "],"Cancel"); if ind==0 then msg=_("ERORR: No types of communication interfaces has been chosen. "); messagebox(msg, "ERROR", "error"); error(msg); return; elseif ind==2 if (getos() == "Windows") then if ~(atomsIsInstalled('serial')) then msg=_("ERROR: A serial communication toolbox must be installed."); messagebox(msg, "Error", "error"); error(msg); return; else flag=1; end elseif (getos() == "Linux") then if ~(atomsIsInstalled('serialport')) & ~(atomsIsInstalled('serial')) then msg=_("ERROR: A serial communication toolbox must be installed."); messagebox(msg, "Error", "error"); error(msg); return; elseif (atomsIsInstalled('serialport')) & (atomsIsInstalled('serial')) then stoolbx = x_choose(['serialport';'serial' ],"Which serial ... commiunication toolbox you prefer to use? "," Cancel ") if stoolbx==1 then flag=2; elseif stoolbx==2 then flag=3; else msg=_("ERROR: No serial toolbox has been chosen. "); messagebox(msg, "Error", "error"); error(msg); return; end elseif (atomsIsInstalled('serialport')) then flag=2; elseif (atomsIsInstalled('serial')) then flag=3; end else msg=_(["WARNING: This program has been tested and works under Gnu/Linux ... and Windows."; "On other platforms you may need modify this script. "]) messagebox(msg, "WARNING", "warning"); warning(msg); return; end else error("Not possible yet."); return; end // График записывается в таком виде? Код (C++): // Эти данные с порта первое значение X, через запятую Y x= y= plot(x,y,'X','Y',''); Как я понимаю надо назначить переменные X и Y Присвоить им значения с порта... Прошу помощи в решении моей задачки...
Пошел другим путем ...А именно с работой с портом. Код (C++): sp = openserial(2,"9600,n,8,1") for l=1:1000 answer = sp.readln(); answery = strtod(answer); plot2d3('gnn',l,answery); drawnow(); // sleep(1000); end sp.close(); Выдает ошибку Код (C++): -->exec('C:\Users\Антон\Downloads\SSS.sci', -1) answer = sp.readln(); !--error 21 Неправильный индекс. at line 3 of exec file called by : exec('C:\Users\ Антон\Downloads\SSS.sci', -1)
Исправил Код (C++): answer = sp.readln(); На Код (C++): answer = readserial(sp) И вроде заработало , что то на графике задвигалось!!!! Будем осваивать дале... Теперь хочу график из двух переменных
чтение с порта имеет вид Код (C++): buf = readserial(h [,n]) Ни как не соображу, как присвоить переменную из порта к первому значению и как присвоить другую переменную второму значению, который через запятую... Вот что пишется об "n": Количество символов для чтения. Если этот параметр опущен, извлекаются все символы, находящиеся в буфере ввода (используется серийный статус). NB: если входной буфер содержит менее n символов, а режим блокировки openserial имеет значение true, readserial зависает до тех пор, пока n не будет получено (это может длиться вечно). Помогите разбить данные с порта...