MCP4922 WebIOPi 不工作,而是给出类型错误
MCP4922 WebIOPi doesn't work, giving a type error instead
我的 Raspberry Pi 2.
中的 DAC MCP4922 有一些问题
我使用 WebIOPi 因为这个 DAC 是受支持的设备,但是当写入配置文件时(命令:sudo nano /etc/webiopi/config
)行:
dac = MCP4922
在 [DEVICES]
部分,当我尝试启动服务器时,我看到类似这样的内容:
2015-08-01 14:21:55 - WebIOPi - ERROR - __init__() takes exactly 4 arguments (3 given)
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/__main__.py", line 75, in <module>
main(sys.argv)
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/__main__.py", line 69, in main
server = Server(port=port, configfile=configfile, scriptfile=scriptfile)
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/server/__init__.py", line 66, in __init__
manager.addDevice(name, driver, args)
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/devices/manager.py", line 28, in addDevice
dev = devClass()
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/devices/analog/mcp492X.py", line 52, in __init__
MCP492X.__init__(self, chip, 2)
TypeError: __init__() takes exactly 4 arguments (3 given)
我不知道该怎么做。
这是 WebIOPi 项目中的错误。
在 mcp492X.py
module 中,MCP492X
有 3 个参数(超过默认的 self
参数):
class MCP492X(SPI, DAC):
def __init__(self, chip, channelCount, vref):
但是该文件中的 2 个子类没有传递 vref
参数:
class MCP4921(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 1)
class MCP4922(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 2)
您可以通过自己传递 vref
参数来解决此问题:
class MCP4921(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 1, vref)
class MCP4922(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 2, vref)
您可以通过直接编辑 /usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/devices/analog/mcp492X.py
来完成此操作。
添加了vref
参数来修复issue #48,但开发者只是将其添加到方法签名中而忘记在子类中传递参数。
我已提交 issue #159 让项目解决此问题。
我的 Raspberry Pi 2.
中的 DAC MCP4922 有一些问题我使用 WebIOPi 因为这个 DAC 是受支持的设备,但是当写入配置文件时(命令:sudo nano /etc/webiopi/config
)行:
dac = MCP4922
在 [DEVICES]
部分,当我尝试启动服务器时,我看到类似这样的内容:
2015-08-01 14:21:55 - WebIOPi - ERROR - __init__() takes exactly 4 arguments (3 given)
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/__main__.py", line 75, in <module>
main(sys.argv)
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/__main__.py", line 69, in main
server = Server(port=port, configfile=configfile, scriptfile=scriptfile)
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/server/__init__.py", line 66, in __init__
manager.addDevice(name, driver, args)
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/devices/manager.py", line 28, in addDevice
dev = devClass()
File "/usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/devices/analog/mcp492X.py", line 52, in __init__
MCP492X.__init__(self, chip, 2)
TypeError: __init__() takes exactly 4 arguments (3 given)
我不知道该怎么做。
这是 WebIOPi 项目中的错误。
在 mcp492X.py
module 中,MCP492X
有 3 个参数(超过默认的 self
参数):
class MCP492X(SPI, DAC):
def __init__(self, chip, channelCount, vref):
但是该文件中的 2 个子类没有传递 vref
参数:
class MCP4921(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 1)
class MCP4922(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 2)
您可以通过自己传递 vref
参数来解决此问题:
class MCP4921(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 1, vref)
class MCP4922(MCP492X):
def __init__(self, chip=0, vref=3.3):
MCP492X.__init__(self, chip, 2, vref)
您可以通过直接编辑 /usr/local/lib/python3.2/dist-packages/WebIOPi-0.7.1-py3.2-linux-armv7l.egg/webiopi/devices/analog/mcp492X.py
来完成此操作。
添加了vref
参数来修复issue #48,但开发者只是将其添加到方法签名中而忘记在子类中传递参数。
我已提交 issue #159 让项目解决此问题。