通过Python API使用C库时遇到问题:我做错了什么?

时间:2016-02-15 22:40:28

标签: python c api

我正在将Python脚本与热电偶和热电偶读取器结合使用。要与用C语言编写的热电偶读取器进行通信,我必须使用API​​。该API为PyDAQFlex。热电偶读取器还带有一个用C语言编写的测试器脚本。我试图从热电偶读取器获取温度读数,但它只输出CJC值。

我的代码:

import daqflex

d = daqflex.USB_2001_TC()

def get_temperature():
    return float(d.send_message("?AI{0}:CJC/DEGC").encode("utf-8"))

我的代码输出:

u'AI{0}:CJC/DEGC=23.8'

注意:23.8 温度。该值是CJC,如下面的测试器脚本命令行输出中所示。这是相关的,但不是我正在寻找的价值。

测试人员脚本的代码:

http://pastebin.com/Atsdy7X0(为了得到温度,我按“t”然后按“k”因为我有一个K型热电偶)。

测试器脚本的命令行输出:

http://pastebin.com/jq4Rr4QX(这里的温度是准确的。这就是我想插入我的脚本的内容。)

PyDAQFlex脚本:

https://github.com/torfbolt/PyDAQFlex/blob/master/daqflex/devices.py(见第105行)

热电偶读卡器的C代码:

http://pastebin.com/rEDR9efR(不包括在内,只包括相关部分。)

我正在努力在这里看到我的错误。这个exact piece of code似乎在PyDAQFlex Github页面中为其他人工作,所以我非常困惑。我已经通过电子邮件发送了该软件的创建者,Github中的一个人与我有类似的问题,我只花了6个小时进行各种IRC聊天。请帮我。如果它有帮助,我使用this教程的部分内容来安装热电偶读卡器的驱动程序和东西。非常感谢你。

1 个答案:

答案 0 :(得分:0)

如果23.8是相关的,但不是正确的温度,那么这是一个校准问题。在校准时,您可以打印原始测试仪程序和pydaqflex从设备发送和接收的内容吗?