当前Nodejs+Express在web应用开发领域很是红火,但是否能用其开发关于硬件的服务?回答当然是肯定的,本文就将简要介绍相关一些开发要点。
所谓硬件监控其实分成2个部分,一个是监,即获取硬件信息(各种 传感器 数据),一个是控,即向受控设备发送指令使其动作。其核心其实是数据信息的流转,监主要表现为从硬件处获取信息,控则是向硬件发送指令信息(包含动作内容和动作量等等)。无论多复杂的监控,都可以分解出这样的数据流转过程,只是可能监和控是关联交织在一起的。
其次,我们要明白的是硬件监控服务是什么?其核心任务是什么?
所谓硬件监控服务其实质是关于硬件信息流转的服务,它提供硬件监控信息交流通道,实现人机交互支持。其核心任务还是信息的流转。这些信息流转包括硬件处获取到的信息传递到客户端、以及用户指令接收并传递给硬件。
由上我们知道了要利用Nodejs+Express开发关于硬件监控的服务的必要条件:
1.能获取到硬件信息
2.能向硬件发送信息
3.能和用户交流信息
其中第3点是Nodejs+Express的强项,这里就不讨论了。主要讨论1和2。
对于1其实也分为多种情况
1.1. 直接获取:利用Nodejs及其相关库支持实现直接对各类硬件数据访问,从而获取到硬件信息。当前这个对一些硬件可行,对大多数硬件来说可能不可行。特别是因为 树莓派 更新后,相关库没有及时更新,造成直接扩展能力的不足。
1.2. 间接获取:利用各种外部程序(包括驱动程序)、服务、接口、协议等实现对各类硬件的数据访问。这个其实是大多数时候可以利用的方式,只要硬件在树莓派上能够识别、使用,就可以提供各类方式提供数据(一般至少有C方面的库支持),在此基础上可以实现各类程序、服务(本地化)、接口或者协议,从而满足本地化调用支持,由此就可以利用Nodejs对本地进程调用、协议支持等等实现数据获取了。
(具体见我的树莓派3B试用 6弹——利用文件设备获取信息:http://www.ickey.cc/community/thread-100941-1-1.html)
对于2其实基本同于1,也分为直接控制和间接控制,总的说来直接控制限制多,间接控制限制少,但肯定能满足可控制这点要求。
下次干货文章将利用本地调用提供 获取和控制的完整例子与解释。
由上,我们知道了利用Nodejs+Express开发关于硬件监控的服务是可行的。
下面介绍一下如何开发:
1. 开发数据获取相应模块
2. 开发指令发布相应模块(注意要实现(体现)具体的控制策略,甚至是和数据获取联动的控制策略)
3. 对各个数据获取模块提供服务接口(路由)
4. 对各个指令发布模块提供服务接口
5. 人机界面支持开发(包括权限系统、认证系统等等)
本次内容就介绍到这里,下一文将以一个具体的实例介绍本文提到的间接获取信息和间接控制。