我叫帕斯卡,今年19岁。在实习期间,我必须证明是否有可能从鼠标接收红外坐标,并将其以Gcode的位置发送到数控机床。
编程语言是Java。这种情况不能再改变了。
其基本思想是制作一个与鼠标和数控机床通信的程序。我已经有两个独立工作的程序了。它被称为SimpleWrite和MouseCoordinates(都是用Java编写的)。SimpleWrite程序,通过com端口写入特定的消息。鼠标坐标与鼠标建立连接,并将IR坐标记录到控制台。
鼠标==>电脑==>数控机床。。IRcoordinates ==>格式到Gcode ==>发送
因此,主要的问题是:我如何将这两个程序(包含两个主要方法)结合到一个工作程序中?因此,该程序启动与鼠标的通信,并发送这些坐标(使用SimpleWrite程序),这些坐标以Gcode的形式在comport上形成。
我并不是想向我展示解决方案,只是简单地给出一些寻找的建议。我唯一的问题是我不是很擅长java编程,所以如果将这两个程序设置为一个工作程序,那么程序结构是什么样子的呢?
在这个项目上是保密的,所以它实际上不是一个鼠标,但这个概念也是如此。简单的程序是开源的。
SimpleWrite:http://www.java-samples.com/showtutorial.php?tutorialid=214
原谅我模糊的英语:)
提前谢谢。
帕斯卡
@编辑:
这些程序现在被合并了。SimpleWrite给我消息"Data“(意思是发送的数据),然后连接鼠标并将坐标打印到控制台。实际上,发送的数据仍然是messageString。
现在第一个问题已经解决了,下一个问题对我来说仍然是个黑点。SimpleWrite程序最初是为了打开comport而构建的,并在comport上发送一个字符串"messageString“。合并这两个程序就像单独运行它们一样。
如何将传入的x和y坐标格式化为gcode,然后,发送像G0 X(x坐标) Y(y坐标)这样的gcode数据流,而不是单个outputStream.write(messageString.getBytes());?
就像: G0 X30 Y30 G0 X31 Y31 G0 X32 Y32等等.
我不知道传入的gcode和CNC机器是否会先缓冲这些命令(以及他能缓冲多少),然后执行这些命令,但这是第三个问题:)。
完整的图片现在是:鼠标坐标到pc ==> OK!USB端口打开==>好的!USB端口流(单字符串) ==>确定!鼠标x和y坐标==> Gcode不确定!鼠标gcode ==>数控机床不行!
再次感谢。
发布于 2013-04-02 08:40:33
如何将这两个程序(包含两个主要方法)合并到一个工作程序中?
如果我理解正确的话,这就是你的问题所在。在这两个程序中,将main()方法更改为init(),并使用这样的main()创建一个新程序。
public static void main(String[] args){
Program1.init();
Program2.init();
}发布于 2013-04-02 08:52:16
您必须更改代码,以便首先处理“鼠标”和COM端口的设置内容。然后,获取其余的“鼠标读取器”代码,并将写入控制台的内容替换为调用写入COM端口的方法。因此,新的主方法(可能在新类中)大致如下所示:
/* open mouse input */
/* open COM output */
while (true) {
/* read from mouse */
/* reformat as gcode */
/* write the data to the COM port */
}尽量重用现有的类,而不通过调用它们的方法来修改它们。
https://stackoverflow.com/questions/15759486
复制相似问题