toit:无法导入`hc_sr04`
我无法在我的TOIT代码中导入HC_SR04
。我收到错误:for前缀'rmt'找不到的软件包
。如何修复rmt
导入问题?
我已经安装了HC_SR04
软件包。
$ toit pkg install github.com/lask/[email protected]
我尝试在我的代码中导入它:main.toit
import hc_sr04
main:
print "Start"
在运行它时,我会收到错误:for prefix'rmt'找不到
$ toit run --device <UUID> main.toit
<pkg:toit-hc-sr04>/driver.toit:1:8: error: Package for prefix 'rmt' not found
import rmt
^~~
<pkg:toit-hc-sr04>/driver.toit:41:14: error: Unresolved type: 'Channel'
echo_ /rmt.Channel
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:42:17: error: Unresolved type: 'Channel'
trigger_ /rmt.Channel
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:45:21: error: Unresolved type: 'Signals'
rmt_signals_ /rmt.Signals
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:56:20: error: Unresolved identifier: 'Channel'
trigger_ = rmt.Channel trigger --output --idle_level=0
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:57:17: error: Unresolved identifier: 'Channel'
echo_ = rmt.Channel echo --input
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:62:24: error: Unresolved identifier: 'Signals'
rmt_signals_ = rmt.Signals 1
^~~~~~~
Compilation failed.
$ toit version
+---------+------------+
| VERSION | DATE |
+---------+------------+
| v1.20.1 | 2022-05-03 |
+---------+------------+
package.yaml < /代码>
dependencies:
hc_sr04:
url: github.com/lask/toit-hc-sr04
version: ^2.0.0
I cannot import hc_sr04
in my Toit code. I get the error: Package for prefix 'rmt' not found
. How can I fix the rmt
import issue?
I have installed the hc_sr04
package.
$ toit pkg install github.com/lask/[email protected]
I try importing it in my code: main.toit
import hc_sr04
main:
print "Start"
When I run it, I get the error: Package for prefix 'rmt' not found
$ toit run --device <UUID> main.toit
<pkg:toit-hc-sr04>/driver.toit:1:8: error: Package for prefix 'rmt' not found
import rmt
^~~
<pkg:toit-hc-sr04>/driver.toit:41:14: error: Unresolved type: 'Channel'
echo_ /rmt.Channel
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:42:17: error: Unresolved type: 'Channel'
trigger_ /rmt.Channel
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:45:21: error: Unresolved type: 'Signals'
rmt_signals_ /rmt.Signals
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:56:20: error: Unresolved identifier: 'Channel'
trigger_ = rmt.Channel trigger --output --idle_level=0
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:57:17: error: Unresolved identifier: 'Channel'
echo_ = rmt.Channel echo --input
^~~~~~~
<pkg:toit-hc-sr04>/driver.toit:62:24: error: Unresolved identifier: 'Signals'
rmt_signals_ = rmt.Signals 1
^~~~~~~
Compilation failed.
$ toit version
+---------+------------+
| VERSION | DATE |
+---------+------------+
| v1.20.1 | 2022-05-03 |
+---------+------------+
package.yaml
dependencies:
hc_sr04:
url: github.com/lask/toit-hc-sr04
version: ^2.0.0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这似乎是软件包管理器中的错误。
HC-SR04
软件包取决于SDK环境^2.0.0-Alpha.1
。但是,您正在使用v1.20.1
运行。从理论上讲,软件包管理器不应给您该包,而是一个没有这种环境要求的较旧版本。也就是说,看起来较旧的
HC-SR04
软件包也需要RMT(ESP32的遥控外围)。如何修复:
HC-SR04
驱动程序。我最近这样做是一种练习:
此代码不如基于RMT的代码那么精确,但这也不错。
This seems to be a bug in the package manager.
The
hc-sr04
package depends on an sdk environment^2.0.0-alpha.1
. However, you are running withv1.20.1
.In theory, the package manager should not have given you that package, but an older version that doesn't have this environment requirement. That said, it looks like older
hc-sr04
packages also need the RMT (ESP32's remote-control peripheral).How to fix:
hc-sr04
driver yourself without using the RMT.I recently did this as an exercise:
This code is not as precise as the RMT based code, but it's not bad either.