2 van 2
Re: Java X,Y naar USB port Gcode
Geplaatst: wo 10 apr 2013, 16:16
door Xenion
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.
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 10:20
door RockboyTheSunriser
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
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 10:35
door Xenion
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.
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 11:18
door RockboyTheSunriser
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.
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 12:04
door Xenion
Doe je trouwens een outputStream.flush() nadat je geschreven hebt? Ik heb zo het idee dat je bytes gewoon niet verzonden worden.
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 13:29
door RockboyTheSunriser
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.:
gr
pascal
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 13:46
door RockboyTheSunriser
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!
Re: Java X,Y naar USB port Gcode
Geplaatst: do 11 apr 2013, 13:50
door Xenion
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.
Re: Java X,Y naar USB port Gcode
Geplaatst: vr 12 apr 2013, 08:01
door RockboyTheSunriser
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.