项目简介
本项目名为“Sirius”,是基于NodeJS和Fastify框架构建的高性能后端系统,专注于管理与硬件设备的通信。借助Socket.IO和SerialPort库,Sirius可实现与硬件设备(如Arduino)的低级通信,还提供基于WebSocket的API,方便前端应用与硬件设备交互。
项目的主要特性和功能
- 硬件通信管理:利用PortManager模块管理与硬件设备的串行通信,支持初始化(INIT)、暂停(PAUSE)和切换实验(ESC)等操作。
- WebSocket API:提供基于Socket.IO的WebSocket API,简化前端与硬件设备的交互,支持检查连接(checkConn)、查找Arduino设备(findArduino)、检查实验代码(checkExperiment)、启动实验(startExperiment)和切换实验(changeExperiment)等事件驱动通信。
- 高性能与开发者友好:采用Fastify框架提供高性能的HTTP服务,代码结构清晰,便于扩展和维护。
安装使用步骤
安装依赖
确保已安装Node.js和npm,在项目根目录下运行以下命令安装依赖:
bash
npm install
启动服务器
运行以下命令启动服务器,服务器默认运行在http://localhost:3000
:
bash
npm start
前端应用连接
在前端应用中安装socket.io-client
库:
bash
npm install socket.io-client
使用以下代码连接到后端服务器:
```javascript
import { io } from "socket.io-client";
const socket = io('http://localhost:3000', { path: '/api/', transports: ['websocket', 'polling'] }); ```
使用WebSocket API
通过发送和监听事件与硬件设备进行交互。示例如下: ```javascript socket.emit('checkConn', 'FreeFall');
socket.on('checkConn', res => { if (res.status === true) { socket.emit('startExperiment', true, 'expData'); } else { console.log(res.message); } });
socket.on('expData', data => { console.log(data); }); ```
通过以上步骤,可轻松启动并使用Sirius项目,实现与硬件设备的高效通信。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】