gpt4 book ai didi

java - 将波动坐标写入文件

转载 作者:行者123 更新时间:2023-12-01 14:36:49 25 4
gpt4 key购买 nike

通过鼠标,我有一个如下所示的命令:

movej([100, 200, 300, 1, 2, 1])= [X, Y, Z, RX, TX, RX]. 

XY 和 Z 是变量并且不相同。他们每秒发出 100 个 movej 命令。如果我使用 bufferwrite 写入文件,它只会写入最后一个已知命令。我想像每个命令一样记录并将其写入文件(即使它是相同的!)。它应该看起来像这样:

movej([100, 200, 300, 1, 2, 1])= [X, Y, Z, RX, TX, RX]
movej .....
movej......
movej......
movej([120, 220, 330, 1, 2, 1])= [X, Y, Z, RX, TX, RX]

我需要对代码进行哪些更改?

    File file = new File("GcodeCoordinaten.txt");

// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
//BufferedWriter bw = new BufferedWriter(fw);
fw.write(Gcode+"\n");
fw.flush();
//fw.close();

System.out.println("Done");

} catch (IOException e) {
e.printStackTrace();
}

该命令来自 mouseEvent,格式如下:

      Gcode = string.format( "movel(p[0.%d,-0.%d, 0.%d, -0.5121, -3.08, 0.0005])"+"\n", coX1, coY1, 150); . 

2e 编辑

大家好,他们的方式我的缓冲确实有效,但对于我使用的应用程序来说它不起作用。我的意思是它对我尝试用它做的事情没有任何影响。执行这些命令的机器人会做出令人震惊的 Action 。这是因为向它发送了很多命令。

我的问题似乎比我想象的更困难。我已经添加了一种通过 TCP/IP 端口发送坐标的方法以及之前的方法来写入文件。因为我试图写入文件的目的是了解发送给它的内容。我已经对写入文件和 TCP 端口的每一个命令进行了计数。

两者同时写入文件和 TCP 端口。计数器每秒递增超过 3000 次!是什么原因导致如此高的增量?

代码如下所示:

         while(true){                   // true when mouse is connected                                                                     
if (listen1.newdata = true){ // listener from the mouse/sensor
coX1 += getX();
coY1 += getY();
bufferX = coX1;
bufferY = coY1;
count++;
}
if(count == 100){
averageX = bufferX/100;
averageY = bufferY/100;
newdata = true;
coY1 = 0;
coX1 = 0;

}
if (newdata = true){
send(Gcode); //This one sends to tcp/ip
write(Gcode; // this one writes to file
counter++; // This counter increments by more then 3000 p/s
}

输入传感器:100hz(我无法更改传感器的采样率!!)输出命令:应该是1hz,最大3hz是什么或可能使该计数器增量如此之快?我没有主意了。

我只是希望程序不要发送或写入那么多命令。

最佳答案

我认为这里的问题是每次你想向文件写入新行时,你都会创建一个新的编写器。您应该只创建一次写入器,然后使用该实例进行写入。

比较这两个代码及其输出:
(也可以使用 FileWriter.newLine() 代替“\n”)
好的一点:

    int i = 100;
try {
File file = new File("GcodeCoordinaten.txt");

// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
//BufferedWriter bw = new BufferedWriter(fw);
while (i > 0) {
fw.write("" + i + "\n");
i--;
}
fw.flush();
//fw.close();

System.out.println("Done");

} catch (IOException e) {
e.printStackTrace();
}

坏处:

    int i = 100;
while (i > 0) {
try {
File file = new File("GcodeCoordinaten.txt");

// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
//BufferedWriter bw = new BufferedWriter(fw);
fw.write("" + i + "\n");
fw.flush();
//fw.close();

System.out.println("Done");

} catch (IOException e) {
e.printStackTrace();
}
i--;
}

关于java - 将波动坐标写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16414864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com