我正在尝试通过USB加密狗从带有加速度计的ez430 Chronos手表中获取读数。我正在使用Octave中的仪器控制库来实现这一点,但是在访问serial()函数返回的octave_serial对象的成员时遇到了问题。我的代码现在如下:
clear
% SETUP of USB AccessPoint
port_number='/dev/ttyACM0';
%port_number='/dev/ttyS101';
s = serial(port_number, 115200)
s.InputBufferSize
s.InputBufferSize = 1024;
s.FlowControl='none';
s.Timeout=1;
s.ReadAsyncMode='continuous'; % !!!!!!! important
if s.Status(1:4)=='open'
disp('Closing formerly opened port');
fclose(s);
end;
s.ErrorFcn=@mycallback; % not important - you can specify your own error callback
运行时遇到的错误是
error: can't perform indexing operations for octave_serial type
跟踪只指定了这个文件,因此库中的任何内容都没有问题,但我感到很沮丧,因为我找不到任何关于octave_serial对象格式的文档。
这是不在运行程序时我不小心用扩展名输入完整文件名的问题。如果是这样的话我现在就能找到它,这要归功于谷歌处理该问题的数千次点击;)
非常感谢任何帮助。谢谢你们!
答案 0 :(得分:1)
您使用的功能/类是Octave Forge仪器控制包的一部分,它们不是Octave核心的一部分。虽然大多数软件包都与Matlab语法兼容,但这个软件包并不是。您尝试仅用于Matlab的语法。
但是,仪器控制包在Octave的wiki上有many examples的相当好的文档。我建议你看看那里。另外,你提到它是一个USB加密狗。您不应该使用usbtmc
代替serial
吗?