最近的工程要参考 OpenROV 的内容,在 Github 上找到了 OpenROV 的相关包与源码,翻译总结官方提供的 README.md 如下:
Cockpit 是为任意远程操作航行器或设备而开发的用户操作界面与控制系统,它是 OpenROV 系列水下机器人的核心。Cockpit 构建在最新最全的网络标准之上,与嵌入式 Linux 与微控制器共同工作,提供了这些系统的遥控。
openrov-cockpit 是若干包中的一个,它将这些包结合在了一起,使其能够控制一个 ROV。具体可以参考 openrov-software 中的其他包的说明列表。
对于嵌入式机器人系统,openrov-cockpit 是通常与几个不同的包一起安装,这些包也包括了对于不同硬件解决方案的驱动与配置。我们为 OpenROV 产品提供图像。如果你有任何关于安装在其他设备上的问题,请到我们的 Gitter 或者 OpenROV Forums 上联系。
该章节覆盖了在你笔记本电脑或台式机上的开发。
预先条件:
当运行该命令时,你需要连接实时网络。
Linuxs/OSX:
npm run deploy:prod
Windows:
set NODE_ENV=production
set npm_config_shrinkwrap=true
npm install
如果你想安装为系统安装依赖项,则必须忽略 shrinkwrap 的设置,具体命令如下:
Linuxs /OSX:
npm run deploy:dev
Windows:
set NODE_ENV=development
set npm_config_shrinkwrap=false
npm install
上述命令将遍历所有路径,寻找 bower.json 和 package.json 文件并安装它们,这将花费几分钟运行。当安装在 Intel 硬件上时,goemux 工程将展示一些错误信息,这些错误可以作为工程被忽略,然后作为附加依赖项进行安装。安装退出时,控制台应该显示如下内容:
│ ├── lodash@3.10.1
│ └── punycode@1.4.1
├─┬ tap-parser@1.2.2
│ ├── events-to-array@1.0.2
│ └─┬ js-yaml@3.5.5
│ └── argparse@1.0.7
└── tmatch@2.0.1
npm WARN OpenROV-Cockpit@30.1.0 No license field.
[brian@Babs openrov-cockpit]$
node 进程希望具体环境标志位被设置改变其行为。你可以覆盖所有的设置,通过命令行将它们存储进一个配置文件。
Windows 用户:在执行 node 命令之前,你必须手动安装环境变量。
运行模拟模式时,最少的选项如下所示:
运行命令:
USE_MOCK=true HARDWARE_MOCK=true configfile='/tmp/rovconfig.json' pluginsDownloadDirectory='/tmp/plugins' node src/cockpit.js
最小命令行将运行 node 进程,它将允许你连接到网址 http://localhost:8080,该网址将你带入 Cockpit。模拟依赖项将传递虚假数据。最小命令行将不启动任何视频流。
一些更加通用的附加项如下:
运行命令:
USE_MOCK=true DEV_MODE=true HARDWARE_MOCK=true MOCK_VIDEO_TYPE=GEOMUX MOCK_VIDEO_HARDWARE=true configfile='/tmp/rovconfig.json' pluginsDownloadDirectory='/tmp/plugins' env plugins__ui-manager__selectedUI='classic-ui' node src/cockpit.js
有很多工具开发和调试,在我们提供的 ROV 镜像中包含了 Cloud9 IDE。在本机开发时选择工具的方式如下:
NPM 包允许你通过命令行开启一个网络服务器,命令行允许使用基于浏览器(Chrome, 火狐等)的网络套件调试 node 进程。
安装命令如下:
npm install -g node-inspector
To start node inspector: 启动 node inspector:
node-inspector --web-port 3080
我们需要确定一个网络端口选项,因为对于浏览器,node-inspector 默认监听端口 8080。 然后附带上 debug 选项,启动 cockpit 的 node 进程(或者如果你想令你的进程暂停知道你连接到你的调试会话,就附带上选项–debug-brk)。命令如下:
USE_MOCK=true DEV_MODE=true configfile='/tmp/rovconfig.json' pluginsDownloadDirectory='/tmp/plugins' node src/cockpit.js --debug
现在你应该可以打开浏览器窗口,进入http://localhost:3080,并获取一个调试会话。然后打开另一个浏览器窗口进入http://localhost:8080,启动与 cockpit 的互动。
你可以安装你的调试会话,这样当你的代码改变时,系统将在背景中神奇且近于立即的重启并重新加载 cockpit。 你需要安装 forever,指令如下:
npm install -g forever
然后改变启动 cockpit 的命令行,令 forever 程序加载 node inspector,指令如下:
USE_MOCK=true DEV_MODE=true HARDWARE_MOCK=true configfile='/tmp/rovconfig.json' pluginsDownloadDirectory='/tmp/plugins' forever -w -c 'node --debug' src/cockpit.js
Visual Studio Code 是十分正式的跨平台 IDE,它可以用来写或调试不同种类的语言,主要是Node.JS。针对调试,cockpit 项目在模拟模式下包含了一系列默认配置文件。 带 VSC 的调试步骤如下:
此外,有一些插件允许同一时间在 VSC 与浏览器中同时调试,我们将在以后提供具体说明。
https://docs.npmjs.com/cli/update
ncu --updateAll
当为下一 release 准备进行 repo 操作,防止依赖项移动时,执行如下命令:
npm run shrinkwrap
在升级了新依赖项后,shrinkwrap 文件将自动重新生成。在用这些文件检查源代码之前要运行:
npm run prepshinkwrap
这将从 shrinkwrap 中移除 “OptionalDepenencies” 而不重新生成依赖项。