是的,这部分和EIM插件无关
那我该怎么弄这块的内容哦,我把这个base.js加到VM里面了,不过在gui里面没有对这个js进行改动,也不懂改哪里。我的意图是想把自己的一个机器人硬件设备(IP局域网控制)接进来平台里面,所以研究下怎么接入的。
谢谢哈。根据这个文章里面添加完tello插件后点击插件网页报错,是因为我scratch3.0最新源码的问题么?:
tello的index.js使用你们github上的额:
extension-manager.js配置:
gui里面配置:
百度说是浏览器不支持asnyc关键字,然后按照这里的方法:一:https://blog.csdn.net/youhebuke225/article/details/106524984?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
二: https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime
使用命令安装:npm install --save-dev @babel/plugin-transform-runtime
然后发现安装过程中会将node_modules里面的文件删除,导致gui跟vm都报错跑不起来了。
看起来是async的问题,这块可能得配置下nodejs环境
偶然看到这个办法:https://github.com/mortend/transpiler/commit/c46c45f7ab35e8437c89937ea1c65a91f51d2750
于是将这个导入:require("…/…/…/node_modules/regenerator-runtime/runtime"); 加到tello的index.js的开头就可以了,不会提示这个错误了:ReferenceError: regeneratorRuntime is not defined.
看了下 应该没啥问题
好的,以上的操作只是scratch端的编程,要对接一个硬件进来:
第一步:编写scratch端程序,block、插件的编写等
改动的地方:
1.gui的配置:scratch-gui/src/lib/libraries/extensions/index.js
2.VM的配置:scratch-vm/src/extensions/scratch_xxx/index.js
3.VM manager文件配置:scratch-vm/src/extension-support/extension-manager.js
第二步:编写硬件的python程序
py文件存放目录:CodeLab-Adapter-3_7_4-win\src\app\codelab_adapter\extensions
目前准备了解这部分的调试,有个问题是这个目前我知道的打开的jupyterLab调试py是跟CodeLab-Adapter编译好的创作版本通信的:
那我该如何使得jupyterLab调试的py跟本地我自己编译的创作平台通信呢?
目前对Adapter调试新的硬件不是很懂,还是说也需要有Adapter的源码工程,然后在本地编译运行Adapter即可跟本地创作平台联合调试?
Adapter可以跟本地开发环境的scratch通信,只需要为本地Scratch引入EIM插件即可
然后百度了下有类似的问题:https://stackoverflow.com/questions/64754301/uncaught-typeerror-cannot-read-property-sid-of-undefined。估计不兼容socket.io-client 最新的3.0.3版本,然后降到2.3.1版本就不报错了:
解决办法:scratch-vm目录下运行命令: yarn add socket.io-client@2.3.1
太棒了
OK