Jump to content

Recommended Posts

Geschrieben

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

 

 

 

 

Geschrieben

Schonmal probiert die einzeln anzusprechen? Evtl. hat er den brickd beendet? (ist bei meinem linux manchmal der fall), einfach mal neustarten (also den brickd :D ).

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 :)

Geschrieben

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.

Geschrieben

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

Geschrieben

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 ?

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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 !

Geschrieben

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.

Geschrieben

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.

Geschrieben

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.

Geschrieben
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 Wochen
So 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

Geschrieben

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.

Geschrieben
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 ?

Geschrieben

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?

Geschrieben

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

 

Geschrieben

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.

Geschrieben

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.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...