Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Java X,Y naar USB port Gcode

Als je getBytes() aanroept dan wordt er een systeem-default encoding gebruikt (waarschijnlijk UNICODE ofzo). Die CNC kent waarschijnlijk enkel ASCII. Zoek eens op hoe je aan getBytes kan meegeven dat je ASCII wil gebruiken.
RockboyTheSunriser
Artikelen: 0
Berichten: 26
Lid geworden op: di 17 okt 2006, 19:55

Re: Java X,Y naar USB port Gcode

Hallo

Ik kom er niet echt achter wat ik nu precies kan gebruiken om explicite ASCII bytes te versturen. De CNC machine verstaat inderdaad alleen ASCII. Maar wat ik niet begrijp is, de seriele monitor van bijvoorbeeld Arduino, waar je simpel weg iets in kan typen wat dan ook verstuurd wordt, wel wordt begrepen door de CNC machine. Wat voor data type/array/string verstuurd de seriele monitor?

Welke type data wordt er dan verstuurd? Het is dit programmatje: http://arduino.cc/en/Main/Software . Ik loop hiermee echt vast, want veel mensen geven aan hoe data te versturen, maar het principe snap ik denk ik niet zo goed.

nogmaals bedankt voor de hulp
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Java X,Y naar USB port Gcode

Je moet gewoon getBytes("ASCII") of getBytes("US-ASCII") aanroepen ipv gewoon getBytes. Dat vind je toch op quasi elke pagina over die functie?

Kijk eens of dat werkt in 1 van die 2 varianten.
RockboyTheSunriser
Artikelen: 0
Berichten: 26
Lid geworden op: di 17 okt 2006, 19:55

Re: Java X,Y naar USB port Gcode

Ja klopt dit had ik inderdaad ook gevonden. Beide varianten weergeven hetzelfde resultaat. Als ik outputStream.write(messageString.getBytes("US-ASCII"));

System.out.println(messageString.getBytes("US-ASCII"));

of

outputStream.write(messageString.getBytes("ASCII"));

System.out.println(messageString.getBytes("ASCII"));

krijg ik als resultaat: [B@46b8705b . Dus ik dacht dat dit geen effect had, omdat het resultaat het zelfde blijft.

Ik had als andere optie, eerst een bestand aangemaakt naar schrijven en het bestand versturen. Dit probeer ik ook nog even uit, maar vrees dat dit eigenlijk op het zelfde neer komt en dit redelijk omslachtig is.
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Java X,Y naar USB port Gcode

Doe je trouwens een outputStream.flush() nadat je geschreven hebt? Ik heb zo het idee dat je bytes gewoon niet verzonden worden.
RockboyTheSunriser
Artikelen: 0
Berichten: 26
Lid geworden op: di 17 okt 2006, 19:55

Re: Java X,Y naar USB port Gcode

Met deze functie weergeeft het programma het zelfde resultaat, en geen beweging van de mantis. Ik heb met mijn contactpersoon even besproken wat de best optie is hiermee verder gaan of dat ik een ander concept gebruik. Een arduino board werkt als het goed is principieel hetzelfde alleen zonder Gcodes. In plaats van direct de stappenmotoren gebruik ik servomotoren.

Toch nog erg bedankt. Mijn testprogramma om een enkele string te openen ziet er zo uit. Wil nog wel erg graag zelf weten wat ik precies fout doe.:
EnkeleGcode
(3.01 KiB) 112 keer gedownload
gr

pascal
RockboyTheSunriser
Artikelen: 0
Berichten: 26
Lid geworden op: di 17 okt 2006, 19:55

Re: Java X,Y naar USB port Gcode

Hallo

Ik weet het al. Elke keer als een Gcode verstuurd wordt, moet er expliciet verteld worden dat de Gcode eindigt met een new line. Zonder dit werkt het niet.

messageString = "G0 X20 Y20" + "\n" <== moet er achter!

Nogmaals bedankt voor de hulp!
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: Java X,Y naar USB port Gcode

Haha ja daar kan je lang op zitten zoeken, dus nu is het opgelost?

Nog een opmerking over je code: ik zie dat je veel try/catch constructies hebt. Ik vermoed dat Java je verplicht van die te maken (ik werk zelf niet vaak met Java), maar als je niks doet met de Exceptions die je ontvangt dan kan je programma wel fouten maken zonder de crashen en zonder dat jij daarvan op de hoogte bent. Je zou Exceptions minstens naar de console moeten printen zodat je toch een indicatie hebt moest er ergens iets misgaan.
RockboyTheSunriser
Artikelen: 0
Berichten: 26
Lid geworden op: di 17 okt 2006, 19:55

Re: Java X,Y naar USB port Gcode

Ja, achteraf wel logisch, maarja als je dit net over het hoofd ziet en dit niet als een foutmelding wordt gezien, kan het lang duren.

De try en catch was in het begin duidelijker voor mij te weten waar de fout zat. Maar voor het netter maken van het programma zal ik ze eruit halen. Bedankt voor de tip.

Terug naar “Informatica en programmeren”