鼠标坐标到cnc位置

时间:2013-04-02 08:33:34

标签: java communication

我的名字是Pascal,我今年19岁。对于我的实习,我要证明是否可以从鼠标接收IR坐标并将其以Gcode位置发送到CNC机器。

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

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

鼠标==>计算机==>数控机床。 。 IR坐标==>格式为Gcode ==>发送comport

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

我不是要求向我展示解决方案,而是简单地提供一些搜索提示。我唯一的问题是我在java编程方面不是很好,所以如果将这两个程序设置成一个工作程序,程序结构如何?

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

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

原谅我模糊的英语:)。

提前致谢。

问候 帕斯卡

@Edit:

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

现在第一个问题已经解决,下一个问题对我来说仍然是一个黑点。 SimpleWrite程序最初构建为打开一个comport并在comport上发送一个String“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 ==>好!     USB端口开启==>好!     USB端口流(单串)==>好!     鼠标x和y坐标==> Gcode不行!     鼠标gcode ==>数控机床不行!

再次感谢。

2 个答案:

答案 0 :(得分:0)

  

如何将这两个程序(包含主方法)与一个工作程序结合起来?

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

public static void main(String[] args){
    Program1.init();
    Program2.init();
}

答案 1 :(得分:0)

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

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

尝试尽可能多地重用现有类,而无需通过调用方法来修改它们。