Warning: Undefined variable $output in /www/wwwroot/grbl.cc/wp-content/themes/Git-alpha/include/shortcode.php on line 321
注释
你好@cheton 我正在查看它,但只是为了确保我想验证我是否理解它的编写,并且 CNC 服务器将监听端口 8000 上的所有通信,对吗?我找到了一些 Arduino + Node.js 的例子,我会做一些测试,但我想确保我使用正确的端口进行通信。 谢谢 |
cnc 服务器使用路径“ /socket.io/ ”在相同的 HTTP 服务器端口(例如 8080)下进行 Socket.IO 通信。期待看到你的作品! |
你好@cheton 这只是简单的连接,但我希望这只是开始。 |
你好@cheton 我可以以某种方式启动服务器以查看与客户端的完整通信吗?我现在使用 cnc -vv,但关于什么是 hapennig 的信息有限。 非常感谢您的回答。 |
|
如果我能看到服务器和客户端之间的整个通信,我只是在想。就像我在浏览器中点击 X 移动,在服务器端我会看到: 从 .. 在 IP 上连接… 我知道,我可能想要很多,但我只需要知道当我试图向它发送数据时接收到的服务器。到目前为止,我可以连接到服务器,但我正在学习应该向服务器发送什么。我查看了 tinyweb 示例,我有点知道我应该发送什么,但我需要知道什么可以通过,什么不能。 |
我收回它.. :-p 我正在测试工作中的服务器,其中 a 与 GRBL 没有连接,当我现在在家里使用 GRBL 测试它时,我看到详细模式就像我在上一条消息中描述的那样。对不起我的愚蠢 |
稍后我将发布一个补丁版本 (v1.3.2),它可以输出所有 Grbl 响应以 |
你好@cheton 感谢补丁,我希望除了我之外还有其他人会使用它 ;-)。 我想问一下向服务器发送命令的正确语法是什么? 我发现,我需要发送 非常感谢您的耐心和帮助。 |
我不确定您在 Arduino 上的客户端界面是否与 JavaScript 中的客户端库相同。您可以尝试以下命令: 从 Arduno 发送事件到 cnc 服务器: // List ports
client.send('list');
// Open port
client.send('open', '/dev/cu.xxxxxxxx', 115200);
// Close port
client.send('close', '/dev/cu.xxxxxxxx');
// Write
client.send('write', '/dev/cu.xxxxxxxx', 'G0 X0 Y0 Z0\n'); // should contain a newline character
client.send('write', '/dev/cu.xxxxxxxx', '?'); // No newline for Grbl realtime commands
// Command
client.send('command', '/dev/cu.xxxxxxxx', 'feedhold');
client.send('command', '/dev/cu.xxxxxxxx', 'cyclestart');
client.send('command', '/dev/cu.xxxxxxxx', 'reset');
可用的侦听器事件: serialport:list
serialport:open
serialport:close
serialport:error
serialport:read
serialport:write
grbl:status
grbl:parserstate
gcode:statuschange
|
@cheton你能为我指出正确的方向吗。 我正在尝试让 PS3 控制器与 CNC 一起工作。 目前尝试此操作没有成功,无法运行(不知道我在做什么)。
我今天最接近。
|
您必须导入 socketIO-client 而不是直接导入 websocket。明天我会看一看。 |
我也在尝试远程与 API 交互(虽然来自 C#)。 代码是否需要 Socket.io 的任何特定功能,或者是否可以将其更改为仅使用标准 WebSocket? 因为我无法为 C# 的 Socket.IO 找到好的库。 不过,我可以找到很多用于 WebSocket 的库,而且现在大多数语言的标准库中都包含一个库,因此它可以更轻松地使用 API。 |
我有一个小时的 !fun 尝试让任何东西在 python、bash 和其他工具上与 socket.io 一起工作。 |
同样在这里,我尝试连接https://github.com/Quobject/SocketIoClientDotNet。 经过一些日志记录后,我发现了问题,需要某种授权标头。
|
你好@tritao, 您是否在 Windows 上使用预构建的可执行文件(即 Electron 应用程序)运行 cnc?如果是,端口将是 1024 以上的随机端口号,而不是 8000。 |
我从 Git 编译它并用 在上面的跟踪中,令牌不正确,但即使在修复之后我似乎也无法通过授权检查。我一直在检查 是否有可能将通信通道切换到直接 WebSockets 以简化与非 JS 环境的通信? |
可以参考JavaScript客户端示例代码: 授权令牌存储在 localStorage 中,这演示了如何检索存储在本地存储中的令牌。“错误”事件表示令牌不再有效,因此它将用户重定向到登录页面。用户成功通过身份验证后,您可以再次从 localStorage 检索令牌。 var root = window;
var token = '';
// Retrieve session token
try {
var cnc = JSON.parse(localStorage.getItem('cnc') || {});
cnc.state = cnc.state || {};
cnc.state.session = cnc.state.session || {};
token = cnc.state.session.token || '';
} catch (err) {
// Ignore error
}
var socket = root.io.connect('', {
query: 'token=' + token
});
socket.on('connect', function() {
// Add your code here
});
// Redirect user to the Sign In page
socket.on('error', function() {
socket.destroy();
window.location = '/';
});
|
你好@tritao,
|
如果连接到 socket.io 时出现问题,请查看#103 |
关闭这个问题。您可以开始使用cncjs-pendant-ps3来学习如何创建吊坠控制器。 |
你好@cheton
我有(也许)愚蠢的想法,但我想知道你的意见。
我想制作基于 Atmega 32u4 或 ESP8266 的远程吊坠,它可以用作 HID 设备。我想,如果这个设备通过 USB 连接将像任何其他键盘一样工作,但可以更改您的 cnc 服务器以侦听某些端口(如 8888)并且如果有一些数据,它将接受它作为键盘动作。此通信将通过 LAN/WIFI 进行。我不是程序员,但我想我可以和我的朋友一起制作一些 Arduino 草图来发送此类数据。
这对你来说可能吗?
谢谢你的回答。