- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 National Instruments 的 GPIB-USB-HS 适配器与 Tektronix 示波器 TDS 210 进行通信。我的系统是 Ubuntu 14.04.3,我按照此链接中的说明安装了 linux-gpib:Linux GPIB Driver package (source)还有 python-gpib。我像这样重新配置了/etc/gpib.conf:
interface {
minor = 0 /* board index, minor = 0 uses /dev/gpib0, minor = 1 uses /dev/gpib1, etc. */
board_type = "ni_usb_b" /* type of interface board being used */
name = "tds" /* optional name, allows you to get a board descriptor using ibfind() */
pad = 0 /* primary address of interface */
sad = 0 /* secondary address of interface */
master = yes /* interface board is system controller */
timeout = TNONE /* timeout for commands */
}
device {
minor = 0
name = "ATTN"
pad = 0
sad = 0
}
lsmod 给我这个:
$ lsmod | grep gpib
ni_usb_gpib 36515 1
gpib_common 38274 3 ni_usb_gpib
dmesg:
$ dmesg | grep gpib
[ 2173.992039] ni_usb_gpib driver loadingni_usb_gpib: probe succeeded for path: usb-0000:00:1a.0-1.2
[ 2173.992098] usbcore: registered new interface driver ni_usb_gpib
[ 2173.992102] gpib: registered ni_usb_b interface
[ 2173.995077] ni_usb_gpib: attach
但是当尝试使用 ibtest 与示波器通信时,我收到此错误:
gpib status is:
ibsta = 0x8100 < ERR CMPL >
iberr= 0
EDVR 0: OS error
ibcnt = 25
还有 Python:
import Gpib
tds = Gpib.Gpib(0,0)
tds.write("*IDN?")
---------------------------------------------------------------------------
GpibError Traceback (most recent call last)
<ipython-input-4-e61e6a76ac49> in <module>()
1 import Gpib
2 inst = Gpib.Gpib(0,0)
----> 3 inst.write("*IDN?")
/usr/local/lib/python2.7/dist-packages/Gpib.pyc in write(self, str)
47
48 def write(self,str):
---> 49 gpib.write(self.id, str)
50
51 def write_async(self,str):
GpibError: write() error: Inappropriate ioctl for device (errno: 25)
有人遇到过类似的问题或知道如何解决这个问题吗?
最佳答案
我在 ibtest 和 python 中遇到了与您完全相同的错误。我试图让 gpib 在 pi 上工作。我按照教程 https://xdevs.com/guide/ni_gpib_rpi/
我通过更改/etc/gpib.conf 修复了它(注意 eos):
interface {
minor = 0
board_type = "ni_usb_b"
name = "violet"
pad = 0
sad = 0
timeout = T30s
eos = 0xd /* EOS Byte, was 0xa and I got same errors as you */
set-reos = yes
set-bin = no
set-xeos = no
set-eot = yes
master = yes
}
现在一切正常!
$ sudo gpib_config
$ sudo ibtest
Do you wish to open a (d)evice or an interface (b)oard?
(you probably want to open a device): d
enter primary gpib address for device you wish to open [0-30]: 3
trying to open pad = 3 on /dev/gpib0 ...
You can:
w(a)it for an event
...
(w)rite data string
: w
enter a string to send to your device: *idn?
sending string: *idn?
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcnt = 6
You can:
w(a)it for an event
...
(r)ead string
: r
enter maximum number of bytes to read [1024]:
trying to read 1024 bytes from device...
received string: 'AEROFLEX,3920,1000662592,3.7.0,2'
Number of bytes read: 32
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcnt = 32
在 Python 中,除非我在实例化后调用 clear,否则我会出错,之后就可以继续了:
? sudo python
Python 2.7.9 (default, Mar 8 2015, 00:52:26)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Gpib
>>> inst = Gpib.Gpib(0,3)
>>> inst.clear()
>>> inst.write("*idn?")
>>> inst.read(100)
'AEROFLEX,3920,1000662592,3.7.0,2'
如果您仍然无法与乐器对话,请尝试字符串 ID?而不是 *IDN?。有些hp设备有alternate command syntax,使用不同的command strings,查看手册(可能在后面顺便提到),你通常可以用一个command来回切换语法。祝你好运。
关于python - ioctl 错误号 : 25 in GPIB communication using python-gpib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33946130/
我有兴趣了解有关 Microsoft Office Communicator 的更多信息IM 客户端,以及它如何确定您的存在(即您是在计算机旁还是不在)。任何人都可以向我指出解释这一点的教程或 API
我正在使用 python。我正在尝试运行一个进程并使用 subprocess.popen 获取输出。阅读周围后,我看到人们使用 communicate()[0] 但那不在文档中,它用于示例。我想知道是
我正在使用 python。我正在尝试运行一个进程并使用 subprocess.popen 获取输出。阅读周围后,我看到人们使用 communicate()[0] 但那不在文档中,它用于示例。我想知道是
我有一些设置和拆卸脚本,它们使用 csrun.exe 为一些自动化测试准备本地计算模拟器。 C:\Program Files\Microsoft SDKs\Azure\Emulator\csrun.e
我想知道对这句名言最接地气的解释是什么: Don't communicate by sharing memory; share memory by communicating. (R. Pike) 在
(所以 this question has been asked before ,但在一般意义上,大多数响应都是在与多个服务器/客户端/等的一般网络通信的上下文中) 在简单的点对点通信协议(proto
我正在尽力将 C++ 模块链接到 python 绑定(bind)。我正在努力实现 boost mpi 通信。我正在将 boost.mpi.world 对象发送到 C++,它需要一个 boost::mp
情况是这样的: 我有一个正在运行的命令: import subprocess foo = subprocess.Popen('ls /', shell=True, stdout=subprocess.
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 10年前关闭。 Improve this qu
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 2年前关闭。 Improve t
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 5 年前。 Improve
我曾与那些与同龄人在线聊天的人一起工作,他们不断地围绕想法进行讨论。我也曾与那些坚决拒绝并认为这是浪费时间的人一起工作。 在线实时聊天论坛对您特别有用吗?为什么或者为什么不? 在您的公司内部,还是在外
我在一个分为两组的 IT 部门工作。一组开发和管理应用程序,另一组管理公司的基础设施和服务器。我们面临的问题之一是沟通中断。我为应用程序组工作,我遇到的问题之一是当基础设施关闭服务器或刷新数据库时没有
我的团队与 IM 进行了很多交流。我们有时甚至会使用 IM 向在下一个立方体中的人提问。这样做的原因是我们都发现接听 IM 的干扰比说话要少得多。 尽管如此,我发现当我低头编码时,闪烁的消息窗口可能会
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 10年前关闭。 Improve this qu
传输数据时,汉明码显然允许您重新创建已通过线路损坏的数据(纠错码)。 这是如何工作的,它的局限性是什么(如果有的话)? 有没有更好的纠错解决方案(相对于重传)?是否存在重传更好的情况? 最佳答案 让我
我是一名优秀的程序员,十分优秀!