Shigeru Kobayashiさんの投稿
-
Python上でのパーツライブラリの使用方法について
今まではJavaScriptから使っておりましたが、せっかくなのでPythonでも使いたいと思い、obnizのPython用ライブラリ(v0.3.0)を初めて試しています。手始めに、このバージョンからサポートされたLEDなどを使いたいと思い、以下のコードを試してみました。
import asyncio from obniz import Obniz async def onconnect(obniz): led = obniz.wired("LED", {"anode": 0, "cathode": 1}) def read_state(state): if state == "push": led.on() else: led.off() obniz.switch.onchange = read_state obniz = Obniz('0000-0000') obniz.onconnect = onconnect asyncio.get_event_loop().run_forever()
このコードを実行すると、次のようなエラーが表示されました。
Python 3.7.4 (default, Jul 9 2019, 00:06:43)
[GCC 6.3.0 20170516] on linux
WebSocket connection is closed: code = 1000 (OK), no reason
_call_on_connect
Task exception was never retrieved
future: <Task finished coro=<onconnect() done, defined at main.py:5> exception=Exception('unknown parts [LED]')>
Traceback (most recent call last):
File "main.py", line 6, in onconnect
led = obniz.wired("LED", {"anode": 0, "cathode": 1})
File "/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/obniz/obniz/obniz_parts.py", line 31, in wired
parts = ObnizParts.parts(partsname)
File "/home/runner/.local/share/virtualenvs/python3/lib/python3.7/site-packages/obniz/obniz/obniz_parts.py", line 27, in parts
raise Exception("unknown parts [" + name + "]")
Exception: unknown parts [LED]恐らく、ライブラリの使い方が間違っているのではないかと思います。もし、何か抜けている手順などありましたら、ご指摘いただけると助かります。どうぞよろしくお願いいたします。
なお、repl.itではこちらに置いてあります。