Contact me: hankecnc@gmail.com

在 Comms 模块上工作 #92

推推 grbl 3年前 (2023-02-03) 269次浏览
关闭
 打开了这个问题 2016 年 12 月 20 日 · 5 条评论
关闭

在 Comms 模块上工作#92

 打开了这个问题 2016 年 12 月 20 日 · 5 条评论

评论

在 Comms 模块上工作 #92
 评论了 2016 年 12 月 20 日  

@openhardwarecoza说:“如果我能提供一些建议,首先完成一个完美的后端,然后我们将前端插入其中
。我的意思是,让 server.js 将通信包装到 websocket 中并处理连接事件,发送 gcode,跳过排队 gcode,覆盖并返回状态信息。即清理并扩展我们正在谈论的内容?

@cprezzi说“好的。我先做服务器部分。:)
我会尝试为客户端定义一个统一的接口,并处理服务器中所有固件/机器接口特定的东西。”

@openhardwarecoza说:

(:那是一个伟大的梦想!

看看你是否提供了一个服务器,记录了它发出的 ws 事件(和示例字符串/对象)以及它期望的事件(和示例数据)这将使剩下的事情变得如此简单

在 LW3 中我们已经很简单了

事件监听 发出的事件
socket.on(‘firstLoad’) (告诉服务器一个网络界面已经加载) socket.emit(‘配置’, 配置); (从后端发送一些配置数据)
socket.on(‘stop’) (中止作业) socket.emit(“固件”, 固件); (告诉前端正在使用哪个固件和版本)
socket.on(‘pause’)(暂停作业) socket.emit(“activePorts”, port.path + ‘,’ + port.options.baudRate); (甚至不确定我们真的用过这个)
socket.on(‘unpause’)(取消暂停作业)
socket.on(‘serialSend’)(发送命令/gcode/mcode 到串口) socket.emit(“connectStatus”, ‘此处为字符串’); (在串行端口连接事件发生时告诉 UI 一些信息)
socket.on(‘feedOverride’) (FRO)
socket.on(‘spindleOverride’)(电源/主轴覆盖)
socket.on(‘laserTest’)(过于特定于激光?也许是预定义的宏?)
socket.on(‘clearAlarm’)(清除机器报警状态)
socket.on(‘getFirmware’)(前端请求后端上报固件)
socket.on(‘refreshPorts’)(检查新的串口)
socket.on(‘closePort’)(关闭串口)
socket.on(‘areWeLive’) (我认为这是如果你打开浏览器并且后端已经连接)
socket.on(‘connectTo’)(打开串口)
在 Comms 模块上工作 #92
合作者

@cprezzi尽管 React 可以用于在服务器端进行开发(理论上),但没有必要使用它,所以启动一个舒适的服务器,使用定义良好的 api,我们将毫无问题地连接到它。

我认为对如何使用 React 有扎实想法的人是@tbfleming. 我是一只吃得很好的猴子。

在 Comms 模块上工作 #92
作者

同意像现在这样保留服务器。那么我们也可以重复使用现有的电子封装

在 Comms 模块上工作 #92
成员

好的,我去争取。
我认为为大多数客户端命令发出结果是有意义的,这样客户端就可以对其做出反应,比如将按钮“暂停”更改为“播放”(而不是自己猜测状态)。

在 Comms 模块上工作 #92
作者

确实更有意义!

在 Comms 模块上工作 #92
作者

注意 保持这个问题开放直到https://github.com/LaserWeb/lw.comm-server接近准备就绪