图形化编程不好用?我选nodejs直接撸代码!

Webduino的图形化编程效率有点低,但实际上,图形拖出来的代码最终是转换成js的。先来个点灯的图形代码看看,如下所示:

点击,红框的按钮可以查看生成的js代码,代码是这样的:

var rgbled;


boardReady({board: 'Smart', url: '10.73.83.110'}, function (board) {
   board.systemReset();
   board.samplingInterval = 50;
   rgbled = getRGBLedCathode(board, 15, 12, 13);
   rgbled.setColor('#ff0000');
});

是不是有些小激动,然并卵,这个代码还是要放到网页里才能执行,而我是想直接用node来执行。

不得不说,Webduino的文档实在稀缺,不过也能理解,毕竟Webduino主打还是图形界面编程,服务的是不懂编程的人群。
当你想深入了解Webduino的时候,那只好read the code!

其中的探索过程就不说了,对于node其实根本不懂,先从官方开源的js开始,这里 https://github.com/webduinoio/webduino-js

上面的仓库里也有例子,也讲了怎么在node环境下使用这个核心库,但是还是没卵用,我们的板子时smart,只好继续研究代码。

因为除了readme就没别的什么有用文档了,只好不停的试,在尝试了一个下午的之后,终于通过node点亮了。

下面正式开始教你在node下点灯!

首先确保你已经安装好node环境了。

  1. 新建一个目录led
  2. 执行如下命令,安装好Webudino的核心js库
cd led
npm install webduino-js
  1. 创建一个led.js文件,内容如下:
var webduino = require('webduino-js');

var board, rgbled;

board = new webduino.board'Smart']({url: '10.73.83.110'});

function getRGBLedCathode(board, red, green, blue) {
   return new webduino.module.RGBLed(board, board.getDigitalPin(red), board.getDigitalPin(green), board.getDigitalPin(blue), webduino.module.RGBLed.COMMON_CATHODE);
}

board.on('ready', function() {
   console.log("board ready")
   board.systemReset();
   board.samplingInterval = 500;
   rgbled = getRGBLedCathode(board, 15, 12, 13);
   rgbled.setColor('#0000ff');
   console.log("board end")
});

其实关键就在于这一行:

board = new webduino.board'Smart']({url: '10.73.83.110'});

Smart的板子是要通过这行代码建立与板子的连接,url就是Smart的IP地址。

getRGBLedCathode 就相当于我们在图形化环境下拖出一个RGB模块来,这个代码是在核心库里。

rgbled.setColor就是设置灯的颜色,这里设置的是蓝色。

其他就没什么了。虽然代码简单,但是一片新大陆的起点。不要问我为什么不来点复杂的,复杂的我也不会啊。

一起来发掘代码吧,官方0文档基本没指望了。

nodejs有机会也要学一下