Masder Geschrieben July 22, 2012 at 14:54 Geschrieben July 22, 2012 at 14:54 Hi All wie der Titel sagt wohl schon was ich mache. habe da bei aber ein kleines Problem mein Java Code geht von meinem win7 pc einwandfrei (TF HW ist an meinen pi angeschlossen) wen ich jetzt meinen Java Code auf dem pi ausführen möchte geht nur ein teil kann keine Verbindung zum den 3 bricklets die ich angeschlossen habe aufbauen ich bekomme immer eine Timeout hier noch mein Code public class AUTOLCD { private static final String host = new String("192.168.0.107"); private static final int port = 4223; private static final String UID = new String("9yEBJGyawck"); private static final String UID1 = new String("Temp1"); private static final String UID2 = new String("LCD"); private static final String UID3 = new String("LUFT"); private static final String UID4 = new String("Licht"); final BrickletLCD20x4 lcd; final BrickletAmbientLight al; final BrickletHumidity hum; final BrickMaster master; final BrickletTemperature temp; final IPConnection ipcon; public static void main(String[] args){ try { new AUTOLCD(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public AUTOLCD ()throws Exception { ipcon = new IPConnection(host, port); temp = new BrickletTemperature(UID1); master = new BrickMaster(UID); lcd = new BrickletLCD20x4(UID2); al = new BrickletAmbientLight(UID4); hum = new BrickletHumidity(UID3); ipcon.addDevice(master); ipcon.addDevice(lcd); lcd.backlightOn(); // ab hier bekomme ich nur noch Timeouts ipcon.addDevice(al); ipcon.addDevice(hum); ipcon.addDevice(temp); } } habe es sogar mit den beispielen von TF probiert da geht es auch nicht das LCD geht aber einwandfrei. Kann mit da jemand weider helfen? MGF Masder Zitieren
Flo Geschrieben July 22, 2012 at 19:02 Geschrieben July 22, 2012 at 19:02 Schonmal probiert die einzeln anzusprechen? Evtl. hat er den brickd beendet? (ist bei meinem linux manchmal der fall), einfach mal neustarten (also den brickd ). Mal geschaut ob sich die einzeln ansprechen lassen (ohne den verbindungen der anderen) und auf der Konsole ausgeben lassen? Evtl. liegts an einer zu schwachen Stromversorgung? (glaub ich bei den 3 zwar nicht, aber bis meine Beere ankommt kann ichs nicht selber nachprüfen.. ) Gruß Flo Zitieren
Nifty Geschrieben July 23, 2012 at 00:26 Geschrieben July 23, 2012 at 00:26 Das Licht vom LCD zieht Saft ohne ende - versuch mal das nicht einzuschalten. Ich würde den Brick über einen USB Hub mit externer Stromversorgung betreiben. Der PI ist Strommäßig recht schwach ausgelegt. Zitieren
Masder Geschrieben July 23, 2012 at 16:12 Autor Geschrieben July 23, 2012 at 16:12 danke für die Tips habe es mit extra strom über Step-Down versucht das selbe wider wen ich den code auf dem win7 pc ausführe geht alles auf pi nicht nur das LCD keine ahnung wie so MFG masder Zitieren
Nic Geschrieben July 23, 2012 at 16:23 Geschrieben July 23, 2012 at 16:23 Und wenn erstmal nur das lcd hinzugefügt wird, also alle anderen addDevices auskommentieren ? Wieso fügst du eig. den Master als Device hinzu ? Ich mache das nie bei meinem Stack. Um die Bricklets im Code anzusprechen, brauchst du nicht den Master adden. geht nur ein teil Was heißt das ? Kommentiere mal das lcd aus ? Gibt es immer noch timeouts ? Zitieren
chariowalda Geschrieben July 23, 2012 at 20:32 Geschrieben July 23, 2012 at 20:32 Hallo Masder, füge mal zwischen jeden addDevice Aufrufe einen Sleep von einer Sekunde ein. Würde mich nicht wundern, wenn es dann bei Dir AUCH funktioniert. Bei mir hat es geholfen und seither funktioniert es mit der RPi ganz ordentlich. Nachtrag: Und den Master musst Du wirklich nicht hinzufügen. Cu #arald Zitieren
Masder Geschrieben July 23, 2012 at 20:51 Autor Geschrieben July 23, 2012 at 20:51 hallo danke chariowalda der Tipp war sehr gut das einzige was nicht geht ist komischerweise ist mein Temperatur Sensor. geht auch nicht wen ich ihn nur alleine probiere. habe noch einen zweiten zweiten Sensor schau mall ob es mit dem geht. Gruß masder @ habe gerade meinen 2 Sensor getestet und der geht Komisch Komisch das der erste nur unter Windows geht Zitieren
chariowalda Geschrieben July 23, 2012 at 21:13 Geschrieben July 23, 2012 at 21:13 Schön Mit dem nicht funktionierenden Temperatur-Sensor, erhöhe einfach mal die Zeit. Ich bin noch nicht dahinter gestiegen wo das Problem ist (momentan fehlt auch etwas Zeit - was sonst), aber das wirkt auf der RPi manchmal Wunder. Have fun #arald Zitieren
Nic Geschrieben July 24, 2012 at 10:27 Geschrieben July 24, 2012 at 10:27 Was ist nun das Ergebnis daraus ? Wenn ein sleep zw. jedem AddDevice nötig ist, scheint es einen Konflikt zw. der Methode backlightOn und den AddDevice zu geben !? Da doch hier intern 2 Threads arbeiten. Heisst das in der Folge der RaspPi unterstützt kein Multithreading Wenn ich mich recht erinnere an die alten DOS-Zeiten, gab es dort auch nur 1 Thread ! Zitieren
chariowalda Geschrieben July 24, 2012 at 10:40 Geschrieben July 24, 2012 at 10:40 Tja, die Lehre daraus ... Das die RPi kein Multithreading kann ist -soweit ich das bisher blicke- richtig und falsch zugleich. Von Haus aus kann die RPi das schon, aber ich vermute, dass die JVM auf der RPi da was murkst. Leider ist die RPi derzeit nicht in meinem direkten Zugriff. Wenn das wieder der Fall ist, grabe ich dort jedenfalls weiter, denn das ist echter Murks. Zitieren
Nic Geschrieben July 24, 2012 at 10:51 Geschrieben July 24, 2012 at 10:51 Ist die JVM auf dem RaspPi fest in der CPU ? JVM oder RaspPi selber... Wieso ist das hier noch niemanden aufgefallen, soweit ich das hier im Forum und aus den Kommentaren der Leute überblicke, gab und gibt es das eine oder TF-Projekt schon auf einem RaspPi. BTW bei RS-Components soll es anscheinend den RaspPi mittlerweile ohne lange Wartezeit und unbegrenzt geben. Zitieren
chariowalda Geschrieben July 24, 2012 at 11:00 Geschrieben July 24, 2012 at 11:00 Also ich habe das Debian-Image und OpenJDK installiert auf einer 16GB SDCard. Ich vermute mal, dass auch andere die Kombination haben. Ich bin gerade mit Farnell/Element14 am Schreiben um gleich mal 10 zu bestellen. Bisher ist die angegebene Zeit bei 2-4 Wochen. Bin mal gespannt. Zitieren
Nic Geschrieben July 24, 2012 at 11:05 Geschrieben July 24, 2012 at 11:05 Also ich habe das Debian-Image und OpenJDK installiert auf einer 16GB SDCard. Ich vermute mal, dass auch andere die Kombination haben. Ja seltsam, dann müsste es bei allen spätestens im addDevice krachen, kann mir nicht vorstellen, dass es immer nur 1 Device war. Aber wäre super, wenn du diesbezgl nachforscht und hier berichtest. Bisher ist die angegebene Zeit bei 2-4 WochenSo in etwa dauert es auch bei RS-C: http://www.elektor.de/elektronik-news/mini-pc-raspberry-pi-nun-ohne-mengen-begrenzung.2218972.lynkx?referer=rss Zitieren
chariowalda Geschrieben July 24, 2012 at 11:08 Geschrieben July 24, 2012 at 11:08 Tja, nur das ich auf meine RPi von RS seit Wochen warte :'( - Farnell war da deutlich schneller. Zitieren
chariowalda Geschrieben July 24, 2012 at 11:12 Geschrieben July 24, 2012 at 11:12 Da war der Finger zu schnell. JA ich werde das weiter verfolgen. Aus dem Kopf mal was ich dran habe (das Teil steht beim Freund an der Solaranlage): - Temperature IR - LCD 24x4 - Distance IR - IO-16 Zitieren
Nic Geschrieben July 24, 2012 at 11:16 Geschrieben July 24, 2012 at 11:16 Und diese Teile lassen sich hintereinander adden ? Zitieren
Masder Geschrieben July 24, 2012 at 11:24 Autor Geschrieben July 24, 2012 at 11:24 hi also gerade mal wider zeit gefunden Bricklet geflesht und jetzt gehen beide Temperatur Sensoren MFG Masder Zitieren
chariowalda Geschrieben July 24, 2012 at 11:44 Geschrieben July 24, 2012 at 11:44 Und diese Teile lassen sich hintereinander adden ? Nein, ich musste immer das Sleep zwischen den addDevice Aufrufen einfügen, daher auch mein Tipp an Masder. Zitieren
photron Geschrieben July 24, 2012 at 12:00 Geschrieben July 24, 2012 at 12:00 Und diese Teile lassen sich hintereinander adden ? Nein, ich musste immer das Sleep zwischen den addDevice Aufrufen einfügen, daher auch mein Tipp an Masder. Ich kann mir nicht erklären warum das passiert und warum ein Sleep hilft. Hier hatte jemand das gleich Problem unter C auch auf einem Embedded Board: http://www.tinkerunity.org/forum/index.php/topic,322.msg1751.html Da hat dann im Endeffekt ein sleep(0) gereicht. Es ging also nicht darum wirklich eine definierte Zeit zu warten. Bei einem sleep nimmt der Scheduler des OS einen anderen Thread/Process dran und das scheint das Problem zu beheben. Zitieren
chariowalda Geschrieben July 24, 2012 at 12:08 Geschrieben July 24, 2012 at 12:08 Hmmm ... also ein reiner sleep(0) hatte bei mir nicht gereicht. Allerdings habe ich nicht lange rum experimentiert, daher ist die Sekunde eher symbolischer Natur und nicht in Stein gemeiselt. Zitieren
Nic Geschrieben July 24, 2012 at 12:10 Geschrieben July 24, 2012 at 12:10 Da hat dann im Endeffekt ein sleep(0) gereicht. Es ging also nicht darum wirklich eine definierte Zeit zu warten sondern, bei einem sleep nimmt der Scheduler des OS einen anderen Thread/Process dran. Wieso ist das bei einer CPU eines EmbeddedPC notwendig aber nicht bei einem DesktopPC ? Zitieren
photron Geschrieben July 24, 2012 at 12:30 Geschrieben July 24, 2012 at 12:30 Da hat dann im Endeffekt ein sleep(0) gereicht. Es ging also nicht darum wirklich eine definierte Zeit zu warten sondern, bei einem sleep nimmt der Scheduler des OS einen anderen Thread/Process dran. Wieso ist das bei einer CPU eines EmbeddedPC notwendig aber nicht bei einem DesktopPC ? Das sollte gar nicht notwendig sein. Von Java und C/C++ Sicht aus macht das sleep da keinen unterschied. Ich nehme mal an dass Java Programm und brickd auf einem Raspberry Pi laufen. Wenn ja mach es einen Unterschied wenn sich das Java Programm mit einem brickd auf einem anderen Rechner verbindet, statt mit dem auf dem Raspberry Pi? Zitieren
Masder Geschrieben July 24, 2012 at 15:20 Autor Geschrieben July 24, 2012 at 15:20 hi @Phantron Java Programm läuft auf pi. TFHW ist auch am pi angeschlossen. habe es gerade noch mal getestet wen ich nur 1 Millisekunde warten reiht das. aber wen ich es nicht anhalte bekomme ich einen Fehler "Time out" beim adden. naja ich reg mich da nicht auf ich kann damit leben es läuft und die 4 Millisekunde kann ich auch verkraften MFG masder Zitieren
Nic Geschrieben July 24, 2012 at 15:27 Geschrieben July 24, 2012 at 15:27 Also komplett auf dem RaspPi, also hat es mit dem Prozessor und/oder der JVM zutun !? Wenn also immer mehr User den RaspPi für die TF Sachen einsetzen werden, wird das hier im Forum noch öfter ein Thema. Zitieren
chariowalda Geschrieben July 24, 2012 at 17:53 Geschrieben July 24, 2012 at 17:53 Söderle, war gerade nochmal an der Solaranlage von meinem Kumpel und hab das vorort ausprobiert. sleep(1) reicht tatsächlich, aber ein sleep(0) tut nicht. Die JVM muss also gezwungen werden den Thread kurz zu suspendieren. Das wird spannend. Sobald ich eine weitere RPi in den Händen halte geht's an der Ecke weiter, bis dahin muss ich leider warten. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.