ericdai 发表于 2015-8-19 16:47:09

用nodejs开发串口

最近搞串口通信,用C# ,delphi都搞过,但是都太麻烦,要编译,不爽。
无奈改成nodejs ,比较合适,windows ,mac ,linux下都可以用

而且可以装在openwrt路由器上,理论上也可以在树莓派上运行

https://github.com/voodootikigod/node-serialport

先安装npm install serialport
然后用webstorm 编程序 ,然后运行就ok了

var SerialPort = require("serialport").SerialPort;
var fs= require("fs");
varloging="";
var ack=2;
varnak=3;
var serialPort = new SerialPort("COM3", {
baudrate: 115200
}, false); // this is the openImmediately flag

serialPort.open(function (error) {
if ( error ) {
    console.log('failed to open: '+error);
} else {
    console.log('open');
    serialPort.on('data', function(data) {
      loging=data.toString();
      if (data.toString().indexOf('M') > -1) {
      console.log( 'Unlocking!');
      }
      else if (data.toString().indexOf('D') > -1) {
      console.log( 'Locking!');
      }
      elseif (data.toString().indexOf(ack)>-1){
      console.log("errorlocking")
      }

      //
    // console.log(loging.indexof('M'));
      console.log('data received: ' + data);
      fs.appendFile("lng", loging);


    });

    serialPort.write("ls\n", function(err, results) {
      console.log('err ' + err);
      console.log('results ' + results);
    });
    fs.writeFile("loging", loging);
}
});
附上小程序 ,比c# ,delphi简单多了

kation122 发表于 2015-8-19 17:13:32

看起来挺简单的呢,能上个界面吗,这种开发方式能做界面吗。

霸气侧漏 发表于 2015-8-19 17:22:51

上个界面,这个东西有多简单的说

ericdai 发表于 2015-8-19 18:37:15

ericdai 发表于 2015-8-19 18:39:18

ericdai 发表于 2015-8-19 18:40:48

霸气侧漏 发表于 2015-8-19 17:22
上个界面,这个东西有多简单的说

写个很少的代码,不用编译,直接node 运行,node有上万个模块代码段可以用
可以把数据保存在文件,可以发送到数据库 ,甚至直接可以送入hadoop
我觉得还是比较爽的

霸气侧漏 发表于 2015-8-19 20:12:28

ericdai 发表于 2015-8-19 18:40
写个很少的代码,不用编译,直接node 运行,node有上万个模块代码段可以用
可以把数据保存在文件,可以 ...

看看你的界面怎么样

ericdai 发表于 2015-8-19 20:55:04

霸气侧漏 发表于 2015-8-19 20:12
看看你的界面怎么样

console程序啊,没有界面,也不需要界面啊,数据保存到文件,分析之后送到mongodb啊
nodejs本来就不是做界面的啊,这样才保证在linux ,mac ,openwrt之间都能跑。
界面可以起一个webserver,通过web界面管理啊,类似路由器那样的

霸气侧漏 发表于 2015-8-19 20:56:40

这样子啊,不清楚

ericdai 发表于 2015-8-19 20:58:56

霸气侧漏 发表于 2015-8-19 20:56
这样子啊,不清楚

对啊,最终这东西是组合在shell ,powershell或者通过python工具,或者zabbix 这些工具来自动化调度的 ,所以没有界面,如果需要可以用webbased来管理

tiger5 发表于 2015-8-19 21:02:01

路过学习 。。。

huangqi412 发表于 2015-8-19 21:23:58

这个也是脚本语言?

ericdai 发表于 2015-8-19 21:46:54

huangqi412 发表于 2015-8-19 21:23
这个也是脚本语言?

javascript 啊

usecool 发表于 2015-8-20 00:16:37

node.js主要是用javascript开发web服务器端。

cece_co 发表于 2015-8-20 09:33:49

ericdai 发表于 2015-8-19 20:55
console程序啊,没有界面,也不需要界面啊,数据保存到文件,分析之后送到mongodb啊
nodejs本来就不是做 ...

额这些都是做网站用的技术啊!你是怎么学习这种技术的呢?

huangqi412 发表于 2015-8-20 10:05:47

ericdai 发表于 2015-8-19 21:46
javascript 啊

这个新颖,请教下这种写完了在哪运行,用浏览器么。如果拷贝到另一台电脑运行,需要准备什么环境。

ericdai 发表于 2015-8-20 13:41:49

copy node 和你的程序源码

ericdai 发表于 2015-8-20 13:47:09

huangqi412 发表于 2015-8-20 10:05
这个新颖,请教下这种写完了在哪运行,用浏览器么。如果拷贝到另一台电脑运行,需要准备什么环境。 ...

node运行环境 ,和你的js源码,以及模块,可以运行在各种linux 包括armlinux

dzmcs 发表于 2015-8-20 13:52:03

正在为node.js异步嵌套头疼,异步方式如果嵌套依赖什么的麻烦的很

ericdai 发表于 2015-8-20 19:44:10

dzmcs 发表于 2015-8-20 13:52
正在为node.js异步嵌套头疼,异步方式如果嵌套依赖什么的麻烦的很

异步嵌套的确是个烦心事 ,不过一般的串口应用,不会太复杂了,刻意回避

bruce_helen 发表于 2015-10-18 16:17:59

ericdai 发表于 2015-8-20 19:44
异步嵌套的确是个烦心事 ,不过一般的串口应用,不会太复杂了,刻意回避
...

最近也在看nodejs,大爱!
异常嵌套也有不少解决方案,比如最知名的流程控制模块async

stdio 发表于 2016-1-7 10:27:37

这个厉害,研究一下~

rpi 发表于 2016-1-13 13:52:59

也在看node.js,谢谢分享

richards 发表于 2016-1-14 00:31:09

牛逼js怎么入门

ericdai 发表于 2016-1-14 12:07:27

richards 发表于 2016-1-14 00:31
牛逼js怎么入门

装个编辑器 比如webstorm 写程序调试,很快就能学会,网上例子太多了
页: [1]
查看完整版本: 用nodejs开发串口