仪器控制库中的索引问题

时间:2014-04-21 20:10:56

标签: matlab octave

我正在尝试通过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对象格式的文档。

这是在运行程序时我不小心用扩展名输入完整文件名的问题。如果是这样的话我现在就能找到它,这要归功于谷歌处理该问题的数千次点击;)

非常感谢任何帮助。谢谢你们!

1 个答案:

答案 0 :(得分:1)

您使用的功能/类是Octave Forge仪器控制包的一部分,它们不是Octave核心的一部分。虽然大多数软件包都与Matlab语法兼容,但这个软件包并不是。您尝试仅用于Matlab的语法。

但是,仪器控制包在Octave的wiki上有many examples的相当好的文档。我建议你看看那里。另外,你提到它是一个USB加密狗。您不应该使用usbtmc代替serial吗?