FAQ for Developer¶
编辑文档¶
欢迎大家来协同编辑文档: codelab-adapter-docs
讨论组¶
陆续有开发者建议我构建论坛(discourse)和微信群方便大家讨论技术问题。
微信群无法沉淀有价值的内容,搜索功能太烂了,对富文本/markdown的支持几近于无,微信不是好的办公工具。
与CodeLab Adapter相关技术问题,大家可以在issue里讨论。
也可以在CodeLab Adapter讨论组里讨论。
插件启停¶
目前,插件启动为线程。Python线程需要手动管理,这部分的代码目前还比较粗糙。为了允许用户在UI中通过勾选来启停插件。建议插件作者使用while self._running:
,参考extension_eim
在1.0版本发布之前,插件部分我们将迁往协程,如此一来我们就能轻易管理插件的启停。目前Python社区很多库还不支持协程,所以我们不打算立刻迁移。
引入第三方Python库¶
内置的第三方库参考:wiki
如果你需要引入新的第三方库(如OpenCV),需要在本地安装有Python3,可以参考: servers_v2
关于这个话题,我们日后会给出教程。
Python与Scratch的双向通信¶
参考
大多数情况下,你只需要发送和接受字符串就够了,这种风格与Scratch内置的广播极为相近。是典型的事件驱动风格。
这篇教程主要针对那些希望去拓展Scratch的人。当你需要将一些复杂的程序接入Scratch(例如接入AI或者接入微信,如我们制作的例子),它会对你有帮助。
如何接入arduino¶
陆续有开发者问到,如何使用CodeLab Adapter将arduino接入到Scratch3.0中。
有许多种方法,但我比较偏好在arduino中烧入Firmata固件。之后以固件交互,我在两种硬件编程风格的比较论述了这样做的好处。
之后使用Firmata python client与arduino交互。
细节可以参考Arduino与Scratch3.0
支持哪些平台¶
首先区分CodeLab Adapter和CodeLab Adapter Node。
CodeLab Adapter既是消息中心,又是UI程序,CodeLab Adapter可以运行在:
- Windows(win7/win8/win10)
- Mac
- linux
- Ubuntu
- Raspbian
- Android
CodeLab Adapter Node可以运行在任何平台上,包括单片机。
覆盖配置文件¶
为了方便开发者将CodeLab Adapter整合到其他软件中,作为服务使用,诸如整合到Scratch Desktop, 或者整合到docker容器内,作为局域网消息服务...
CodeLab Adapter允许以命令行方式启动(没有GUI)。
为了方便软件的二次分发和自定义,CodeLab Adapter允许开发者覆盖用户配置文件(user_settings.py),进而对CodeLab Adapter做初始化配置。
只需要将自定义的user_settings.py放在CodeLab Adapter同级目录中即可。