python - 从 python 控制 LabVIEW 前面板返回 typeerror nonetype object is not callable
问题描述
使用下面的代码,其中 vi_path 是 .vi 文件路径,control_name 和 ind_name 是控件名称和指标名称字符串
labview = win32com.client.Dispatch("Labview.Application")
VI = labview.getvireference(vi_path)
print(f'Name: {VI.Name}')
VI.setcontrolvalue(control_name,f) # this works to set float values
s=(VI.getcontrolvalue(ind_name))
工作正常。但
VI.Run() #async = False 默认即等待 exec 完成
正在创建 TypeError:NoneType object is not callable 错误
解决方案
在使用 VI.Run() 之前,在其他地方的代码示例中看到此行添加了 VI._FlagAsMethod('Run') 这解决了问题。显然 LabVIEW 中的一些活动 x 方法没有被正确识别 - 奇怪,因为 getcontrolvalue 和 setcontrolvalue 方法不需要标记为方法,但 Run 方法需要。无论如何,建议在使用任何生成此 TypeError Nonetype object not callable 错误的方法之前使用 _FlagAsMethod。
推荐阅读
- java - 带有扩展类型的 Java Lambda 函数
- mt4 - mt4 + ibarshift 给出不一致的结果
- linux - 如何在 CLI 中将每一行转换为变量?
- python - Python if 输入语句相似的语句
- java - 使用 JMX 从网页启动/停止网关/服务
- html - 填充更多或等于 const 值(填充 >= 值)
- javascript - 如何使用 ReactJS 创建联系表单并使用 API 发送值 - Express
- python - 如何引用启用宏的 Excel 工作簿并在 Python 中运行 VBA 代码?
- browser - 识别 Blazor 应用程序中的浏览器详细信息
- c# - for 循环内的代码不起作用。指数数组的边界之外