gpt4 book ai didi

python - 如果写入字符串变量,AG34970a device.write 的 PyVisa 控制会导致错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:20 25 4
gpt4 key购买 nike

我正在尝试使用 pyvisa 控制 AG34970a 插槽 3 中的 gp-switch 卡。

当我在控制台中输入此内容时。

dac.write("ROUTe:CLOSe (@301,302,303,304,305,306,307,308)")

交换机正常安静工作,控制台有输出

(48L, <StatusCode.success: 0))

我的设备名为 dac。

但是当我尝试使用字符串变量时,控制台中的响应是相同的,但仪器会发出蜂鸣声并且不会关闭开关。设备上的错误代码是错误 103,我认为这意味着一个无效的分隔符,但由于其中一个可以工作,我不明白为什么另一个不能。

switch_str = '"ROUTe:CLOSe (@301,302,303,304,305,306,307,308)"'
dac.write(switch_str)

是否无法将变量与 .write 命令结合使用?

我明白了。嗯,有点像。当我在将字符串传递到设备之前连接字符串时,发生了任何问题。我最终对写入命令的部分内容更加明确,这些部分将保持不变,并且仅传递要关闭的 channel 列表。我仍然不确定为什么它以前不起作用,但现在可以了。感谢您的帮助。

fields = ['301', '302', '303', '304', '305', '306', '307']

voltage = dac.query_ascii_values('MEAS:VOLT:DC? AUTO,DEF,(@101:107)')
#convert the resulting voltage values into floats
flvolts=[float(i) for i in voltage]
#create a dictionary with the fields and corresponding voltage values
dictionary=dict(zip(fields, flvolts))
#evaluate the voltage list to determine the lowest value
minval = min(flvolts)
#produce a list of gp-switch channels that need to be closed to get cells balanced
#targetval was created further up. initially it is the same as minval but minval can
#change. Targetval shouldn’t
switch_list=({k for (k,v) in dictionary.items() if v >= targetval})
#begin generating the string to be sent to the device by converting the floats to strings
str_list=[str(i) for i in switch_list]
#Set up an empty list
formatted_str_list=""
#Format str_list into a string of comma separated numbers.
for i in str_list:
formatted_str_list += str(i) + ","
#instruct the device to close the channels that need drained
#because they are higher than the minval
dac.write("ROUTe:CLOSe (@" + formatted_str_list + "308)")

最佳答案

尝试仅使用单引号或双引号括起字符串,而不是同时使用两者。它可能会告诉您 "不是有效的分隔参数 (: , ;)。

关于python - 如果写入字符串变量,AG34970a device.write 的 PyVisa 控制会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52682171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com