0

我叫帕斯卡,今年 19 岁。对于我的实习,我必须证明是否可以从鼠标接收 IR 坐标并将其以 Gcode 位置发送到 CNC 机床。

编程语言是Java。这不能再改变了。

基本思想是制作一个与鼠标和数控机床建立通信的程序。我已经有两个分开工作的程序。它被称为 SimpleWrite 和 MouseCoordinates(都是用 Java 编写的)。SimpleWrite 程序通过 com 端口写入特定消息。mousecoordinates 与鼠标建立连接并将 IR 坐标记录到控制台。

鼠标 ==> 电脑 ==> 数控机床。. IRcoordinates ==> 格式化为 Gcode ==> 通过 comport 发送

所以主要问题是:如何将这两个程序(其中包含一个主要方法)结合到一个工作程序中?因此程序开始与鼠标通信,并通过 comport 发送这些以 Gcode 格式格式化的坐标(使用 SimpleWrite 程序)。

我不是要向我展示解决方案,而是简单地提供一些搜索提示。我唯一的问题是我在Java编程方面不是很好,那么如果将这两个程序设置为一个工作程序,程序结构会是什么样子?

这个项目是保密的,所以它实际上不是鼠标,但概念也是如此。simplewrite 程序是开源的。

SimpleWrite:http ://www.java-samples.com/showtutorial.php?tutorialid=214

原谅我模糊的英语:)。

提前致谢。

问候帕斯卡

@编辑:

这些程序现在合并了。SimpleWrite 给我消息“Data verzonden”(表示已发送数据),然后连接鼠标并将坐标打印到控制台。实际上发送的数据仍然是messageString。

现在第一个问题已经解决了,下一个问题对我来说仍然是一个黑点。SimpleWrite 程序最初是为打开一个 comport 并通过该 comport 发送一个字符串“messageString”而构建的。结合这两个程序就像单独运行它们一样。

如何将传入的 x 和 y 坐标格式化为 gcode,然后发送 gcode 数据流,如 G0 X(x 坐标) Y(y 坐标) 而不是单个 outputStream.write(messageString.getBytes()); ?

所以它会像:G0 X30 Y30 G0 X31 Y31 G0 X32 Y32 等等....

我不知道传入的gcode之间有多少时间以及CNC机器是否会先缓冲这些命令(以及他可以缓冲多少)然后执行它们,但这是第三个问题:)。

完整的图片现在是:鼠标坐标到 pc ==> OK!USB 端口打开 ==> 好的!USB 端口流(单字符串)==> 好的! 鼠标 x 和 y 坐标 ==> Gcode 不行!鼠标 gcode ==> CNC 机器不行!

再次感谢。

4

2 回答 2

0

如何将这两个程序(包含一个主要方法)组合到一个工作程序中?

如果我理解正确,这就是您遇到的问题。在这两个程序中,将main()方法更改为init()并创建一个新程序,main()如下所示。

public static void main(String[] args){
    Program1.init();
    Program2.init();
}
于 2013-04-02T08:40:33.933 回答
0

您必须更改代码,以便首先处理“鼠标”和 COM 端口的设置内容。然后,获取其余的“鼠标阅读器”代码,并将写入控制台的内容替换为调用写入 COM 端口的方法。因此,您的新 main 方法(可能在新类中)应大致如下所示:

/* open mouse input */
/* open COM output */
while (true) {
    /* read from mouse */
    /* reformat as gcode */
    /* write the data to the COM port */
}

尽量重用现有的类,而不通过调用它们的方法来修改它们。

于 2013-04-02T08:52:16.157 回答