從鼠標我有一個看起來像這樣的命令:寫波動座標文件
movej([100, 200, 300, 1, 2, 1])= [X, Y, Z, RX, TX, RX].
的X,Y和Z是varaibles並且是不一樣的。他們每秒發出100個movej命令。如果我使用緩衝寫入寫入文件,它只寫入最後一個已知的命令。我想記錄每個命令並將其寫入文件(即使它是相同的!)。它應該看起來像這樣:
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編輯
嗨,大家好,他們的方式IM緩衝的工作,但對於應用程序,我用它不工作。我的意思是它對我試圖用它做的沒有任何影響。執行這些命令的機器人會發生震動。這是因爲許多命令都被髮送給它。
我覺得我的問題似乎比較困難。我已經提出了一個方法,通過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的(I不能改變傳感器!!的採樣率) 輸出命令:它應該是這樣的1Hz,最大的3HZ 什麼是或可能使這個計數器增量如此之快?我沒有想法。
我只是想讓程序不發送或寫入這麼多的命令。
是,謝謝您的回答。它完成了這項工作。但不幸的是,這並不是我所期望的。程序一直髮送到很多座標,即使它被緩衝或者數值已被改變,它仍然在發送命令。現在我必須說一些方法,如果舊座標等於新然後不發送。 – 2013-05-08 10:39:33