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同级目录中即可。