将png改成URL的写法后Cmder不报错了,但是点击插件转跳后网页端这边还是报错且不显示tello的block:
根据报错信息并没有找到这个regeneratorRuntime变量呀,奇怪。
百度说是浏览器不支持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编译好的创作版本通信的:
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