-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
[兼容性问题] 掌控板3.0 Python代码模式下缺少oled库,与图形化模式及官方教程不一致
问题描述
在掌控板3.0上,图形化编程模式已经默认适配了新的显示系统(使用lv_gui),用户拖拽显示控件可以正常工作。然而在Python代码模式中,原有的oled库仍然缺失,直接使用from mpython import oled会报错NameError: name 'oled' isn't defined。
更值得注意的是,官方提供的教程案例中仍广泛使用oled显示功能,例如教程中常出现以下代码:
from mpython import oled
oled.DispChar("示例文字", 0, 0)
oled.show()这些示例代码在掌控板3.0上无法运行,导致初学者按照官方教程学习时直接遇到障碍。
重现步骤
- 在掌控板3.0上运行以下Python代码(来自官方教程示例):
from mpython import oled oled.DispChar("示例", 0, 0) oled.show()
- 观察运行结果:报错
NameError: name 'oled' isn't defined。
(是的,没错,这就卒了¯_(ツ)_/¯)
而在图形化模式下,同样的显示功能正常(使用lv_gui控件)。
为啥必须要改
- 官方教程失效:初学者依赖官方教程入门,但教程中的代码在最新硬件上无法运行,严重影响学习体验和产品口碑。
- 图形化与代码模式行为不一致:用户从图形化过渡到代码模式时,会发现同样的显示功能无法使用,造成困惑。
- 社区资源浪费:大量已有的教学资料、开源项目仍基于
oledAPI,用户无法在3.0上直接复用这些资源。
预期的解决方案
建议官方从以下三个方面着手,帮助用户平稳过渡:
-
发布公告
在官网、社区及IDE内醒目位置说明掌控板3.0的显示系统变更,告知用户:- 图形化模式已自动适配新显示系统,无需修改。
- Python代码模式下,旧版
oled库不再提供,用户需要迁移到新API或等待兼容方案。 - 同时更新官方教程,将涉及
oled的示例统一替换为lv_gui的等效实现。
-
提供迁移教程
编写详细的代码迁移指南,对比展示旧版oled与新lv_gui的对应用法,给出常见显示操作的改写示例(如显示文本、清屏、画图等),帮助开发者快速适配现有项目。尤其应标注官方教程中每个示例对应的新写法。 -
实现兼容层
在固件中增加一个向后兼容的模块(例如oled_compat.py),将旧oledAPI调用映射到新显示系统,使得旧代码无需修改即可在3.0上运行。若无法做到100%兼容,也应提供简易适配方案,降低用户迁移成本。同时,可以考虑在IDE中增加自动转换工具,帮助用户一键迁移代码。也可以选择在IDE中添加一个遇到oled报错时的自动弹窗提示
补充说明
目前本仓库的Issue页面为空,希望官方能完善沟通渠道。
而不是像一个年久失修的仓库那样。
如已有修复计划或时间表,请及时告知,以便社区用户合理安排项目迁移。
感谢你们对掌控板产品的持续投入,期待上述问题能尽快得到妥善解决。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels