Jump to content

Recommended Posts

  • Replies 71
  • Created
  • Last Reply

Top Posters In This Topic

Posted

HI All,

 

habe heute mal ein paar test gemacht dabei sind mit folgende Sachen aufgefallen.

 

LCD automatisches update auf 2.0 im BrickV wirft einen Fehler(manuell geht es)

 

Wen ich meinen Master Stack vom pc entferne bekomme ich keinen Fehler(ist das gewollt?).

dies ist besonderst doof wen ich Sensoren am master habe melden diese sich nicht mehr wen ich den Stack wieder verbinde.

gleiches gild für den Slave Stack wen ich ihn resete.

ausnahme ist bei mir das io16 bricklet das sich zurückmeldet wen sich am imput was ändert(Soll das normal so sein das das auch nach einem reset weiterhin sich zurückmeldet ?).

 

 

 

mit ist gerade auf gefallen das laut doku TimeoutException

unter com.tinkerforge.TimeoutException sein sollen beim program um stellen ist mir auf gefallen das es sich immer noch unter

com.tinkerforge.IPConnection.TimeoutException

 

also ich mach alles unter Java.

 

mfg masder

 

 

 

Posted

Morgen  borg,

 

nein das ist in meinem Java Programm

 

Also normal sollte ich ja TimeoutException bekommen wen etwas nicht erreichbar ist  wen das der Fall ist würde ich ein pause machen und danach einen neu Verbindung machen(besiungs weise könnte ich ja auch die callbacks neu aufrufen).

 

da ich aber keine Rückmeldung bekomme ob der Stack(Sensoren) über haubt noch erreichbar ist,läuft mein Programm einfach normal weiter.

beispiel: ich schreibe alle paar sec etwas auf mein LCD Display,

wen ich es ab ziehe bekomme ich keine TimeoutException.

stecke ich das Display wider an zeigt das Display auch schnell meine gewünschte Text.

das ist also schon mal gut gemacht,

aber wen ich ein callback auf einem Sensor habe meldet der sich nicht mehr.

da her wäre es gut zu wissen wann er nicht mehr erreichbar ist damit man danach den callback wider aktiviren kann.

 

 

mfg masder

Posted

Also normal sollte ich ja TimeoutException bekommen wen etwas nicht erreichbar ist  wen das der Fall ist würde ich ein pause machen und danach einen neu Verbindung machen(besiungs weise könnte ich ja auch die callbacks neu aufrufen).

 

TimeoutException bekommst du nur wenn du etwas aufrufst. Die kommt nicht spontan.

 

TimeoutException für Setter wie WriteLine bekommst du standardmässig nicht. Dazu musst du das Response Expected Flag für diese Funktion aktivieren. Das ist neu.

 

lcd.setResponseExpected(BrickletLCD20x4.FUCNTION_WRITE_LINE, true);

 

Oder gleich für alle Funktionen aktiveren:

 

lcd.setResponseExpectedAll(true);

 

Für Callback Konfigurationsfunktionen ist das Flag standardmäßig an und Getter natürlich auch.

 

Ansonsten ist das empfohlene Vorgehen für robuste Programme den Enumerate Callback zu verwenden. Darüber bekommst mitgeteilt wenn etwas neu verbunden wird und potentiell neu konfiguriert werden muss. Dazu gibt es dann auch noch ein neues Beispielprogramm an dem das genauer erklärt wird.

 

Über den Callback bekommst du auch mitgeteilt wenn etwas von USB abgesteckt wird. Das funktioniert allerdings nur für USB, da der Brick Daemon hier vom Betriebssystem gesagt bekommt das USB getrennt wurde. Dann kann brickd für alle Bricks und Bricklets die ihm für diese USB Gerät bekannt waren einen Enumrate Callback für Disconnect senden.

 

Wie gesagt geht das das nur für die Bricks und Bricklets die brickd bekannt sind im Sinne von brickd hat schon Kommunikation mit diesen gesehen. Ein Device mit dem nie kommuniziert wurde kann brickd nicht kennen und daher auch keinen Enumerate Callback für disconnect senden

Posted

hi photron,

 

danke für den Tipp. habe das wohl Falsch verstanden.

 

habe dann aber noch eine frage kann das sein das verschiedene

Java befehle noch nicht implementirt sind oder in der Doku 2.0 falsch Stehen?

z.b.  .addTemperatureListener Gibt es bei mir nicht

genau so wie .removeTemperatureListener

 

bei mir gibt es nur die alte Version .addListener

das habe ich auch anderen bricklets vestgestelt.

 

mfg masder

 

 

Posted

Die Dokumentation für 2.0 auf dem Server war nicht aktuell, ich habe sie gerade neu generiert.

 

Die Dokumentation ist für die aktuelle Version der Bindings im git. Zum Beispiel addTemperatureListener ist Teil der letzten Änderung, die wir nach Beta 1 gemacht haben. Es wird wohl heute noch Beta 2 der Firmwares und Bindings geben.

Posted

Eine Frage hab ich noch zur neuen Version.

Ich hatte vorher die Beta Version 2 installiert. UID des Masters 67xxxx

Nach dem flashen auf die aktuelle Version 2 hat er die UID 6Kuxxx.

Ändert sich jetzt jedes mal beim flashen die UID oder wie generiert ihr diese?

 

Gruß

Posted

Die neue UID hat 32bit statt 64. Sie wird aus der alten 64bit UID berechnet. In der Berechnung dafür war in beta1 ein Fehler, daher haben sich die UIDs jetzt in der finalen 2.0 nochmal geändert, Sorry!

 

Mit der UID Berechnung in der beta waren Kollisionen möglich, mit der neuen sind sie es nicht. Die Änderung war also leider notwendig.

 

@Loetkolben: Du meinst die Shell Bindings? Die kommen, keine Panik. Aber eins nach dem anderen ;D.

Posted
Mit der UID Berechnung in der beta waren Kollisionen möglich, mit der neuen sind sie es nicht.

 

Wie meinst du das?

Da 32 weniger ist als 64 würde ich spontan sagen, diese Aussage ist falsch unvollständig ;)

 

Bezieht sich das auf die bisher vergebenen UIDs? Oder ist es nur insgesamt unwahrscheinlicher geworden? (Denn Kollisionen sind ja unvermeidlich wenn der Wertebereich kleiner wird)

Posted

Mit der UID Berechnung in der beta waren Kollisionen möglich, mit der neuen sind sie es nicht.

 

Wie meinst du das?

Da 32 weniger ist als 64 würde ich spontan sagen, diese Aussage ist falsch unvollständig ;)

 

Bezieht sich das auf die bisher vergebenen UIDs? Oder ist es nur insgesamt unwahrscheinlicher geworden? (Denn Kollisionen sind ja unvermeidlich wenn der Wertebereich kleiner wird)

 

Die UIDs kommen ja direkt aus dem Microcontroller und Atmel hat dort "Prüfbits" mit reingebaut. Zum Beispiel kommt alle 13 bits ein "1100000011".

 

Hier einmal ein paar 64bit UIDs in binär:

0b11010100110000001100000011001000110010001100000011001000110010

0b11010000110000001100000011001000110001001100000011010100110010

0b11001100110000001100000011010100110010001100000011010100110010

0b11100100110010001100000011000000110001001100000011001100110010

0b11001000110000001100000011011000110010001100000011010100110010

0b11010000110000001100000011000000110010001100000011001000110010

0b11100100110001001100000011000000110100001100000011010100110010

0b11100100110001001100000011000000110011001100000011010100110010

0b11001100110010001100000011010100110010001100000011000000110010

0b11010000110000001100000011011100110001001100000011001000110010

0b11100000110001001100000011010100110010001100000011010100110010

0b11100100110001001100000011010100110010001100000011010100110010

0b11001000110010001100000011100100110010001100000011000000110010

0b11011100110000001100000011011100110010001100000011001000110010

0b11000000110011001100000011010100110000001100000011000000110010

0b11001100110010001100000011010000110011001100000011000000110010

0b11011100110000001100000011010000110001001100000011010100110010

0b11011100110001001100000011100000110001001100000011010100110010

0b11001100110000001100000011100000110001001100000011001000110010

0b11011100110000001100000011100000110001001100000011001000110010

0b11010000110000001100000011000000110011001100000011001000110010

0b11001000110100001100000011001000110010001100000011100100110001

0b11011100110000001100000011001100110011001100000011010000110010

0b11011100110000001100000011010100110010001100000011010100110010

0b11010100110000001100000011001100110010001100000011010100110010

0b11011100110001001100000011000000110100001100000011010100110010

0b11000100110011001100000011100000110010001100000011000000110010

0b11100000110000001100000011000100110010001100000011001000110010

0b11000000110010001100000011011100110010001100000011010100110010

0b11010000110000001100000011000100110011001100000011001000110010

0b11011000110001001100000011100000110001001100000011001100110010

0b11010100110000001100000011001000110001001100000011001000110010

0b11100100110001001100000011011000110010001100000011010100110010

0b11001100110000001100000011001000110010001100000011001000110010

0b11011100110000001100000011000000110011001100000011010100110010

0b11100000110001001100000011011100110010001100000011010100110010

0b11100000110000001100000011001100110011001100000011001000110010

0b11001100110000001100000011011000110010001100000011010100110010

0b11011100110000001100000011001000110011001100000011010000110010

0b11010000110000001100000011011100110010001100000011010100110010

0b11100100110001001100000011011100110010001100000011010100110010

0b11100000110010001100000011010000110010001100000011001100110010

0b11001100110010001100000011001000110000001100000011010100110010

0b11010000110000001100000011011000110001001100000011001000110010

0b11000000110010001100000011011000110010001100000011010100110010

0b11000000110001001100000011100100110001001100000011010100110010

0b11010100110000001100000011000000110011001100000011010100110010

0b11100100110001001100000011001000110001001100000011010100110010

0b11000000110010001100000011000000110100001100000011010100110010

0b11100000110001001100000011100000110010001100000011010100110010

0b11000100110100001100000011010100110010001100000011100100110001

0b11000100110011001100000011010000110000001100000011000000110010

0b11011100110000001100000011001000110011001100000011010100110010

0b11100000110001001100000011100100110011001100000011001100110010

0b11100000110001001100000011011100110001001100000011010100110010

0b11100000110000001100000011011000110010001100000011001000110010

0b11001000110010001100000011000100110011001100000011010100110010

0b11011000110001001100000011011100110001001100000011010100110010

0b11100100110001001100000011100000110011001100000011010100110010

0b11010000110000001100000011010000110010001100000011001000110010

0b11100000110000001100000011010100110001001100000011001000110010

0b11000100110010001100000011011000110000001100000011001100110010

0b11100100110001001100000011100000110000001100000011001100110010

0b11010100110010001100000011100100110011001100000011000000110010

0b11011000110001001100000011010000110000001100000011010100110010

0b11100000110000001100000011011100110010001100000011001000110010

0b11000100110011001100000011011100110001001100000011000000110010

0b11100000110000001100000011010100110011001100000011001000110010

0b11001000110010001100000011000000110100001100000011010100110010

0b11011000110000001100000011011100110001001100000011001000110010

0b11010100110000001100000011011000110010001100000011010100110010

0b11010100110000001100000011100000110010001100000011010100110010

0b11011000110000001100000011100000110000001100000011010100110010

0b11000000110001001100000011100100110010001100000011001000110010

0b11000000110001001100000011000100110011001100000011001000110010

0b11001000110010001100000011011100110011001100000011000000110010

0b11011000110001001100000011010100110001001100000011010100110010

0b11001100110000001100000011100100110001001100000011001000110010

0b11100100110001001100000011010100110000001100000011010100110010

0b11000100110011001100000011000100110010001100000011000000110010

0b11011100110000001100000011011000110001001100000011001000110010

0b11010100110000001100000011100100110001001100000011010100110010

0b11000000110001001100000011001100110011001100000011001000110010

0b11010000110000001100000011001100110001001100000011001000110010

0b11000000110001001100000011001000110011001100000011001000110010

0b11011100110000001100000011001000110001001100000011001000110010

0b11001000110011001100000011001000110001001100000011000100110010

0b11000000110011001100000011000100110010001100000011000000110010

0b11000000110010001100000011010000110001001100000011010100110010

0b11001100110000001100000011001100110001001100000011001100110010

0b11001000110010001100000011011100110011001100000011010100110010

0b11000000110010001100000011000100110011001100000011010100110010

0b11010000110000001100000011000000110011001100000011001100110010

0b11011100110000001100000011000000110011001100000011001000110010

0b11100100110001001100000011000100110000001100000011001100110010

0b11000000110010001100000011000000110100001100000011001100110010

0b11000100110100001100000011011000110010001100000011100100110001

0b11010000110000001100000011100000110001001100000011001000110010

0b11000100110000001100000011010100110010001100000011001000110010

0b11100100110001001100000011011100110001001100000011010100110010

0b11000000110010001100000011010000110010001100000011010100110010

0b11011100110001001100000011011100110000001100000011010100110010

0b11001000110100001100000011011100110010001100000011100100110001

0b11100000110010001100000011010000110000001100000011001100110010

0b11010100110000001100000011010000110001001100000011001000110010

0b11011100110010001100000011000100110001001100000011000000110010

0b11011100110000001100000011010100110011001100000011010100110010

0b11010000110000001100000011011100110001001100000011010100110010

0b11011000110001001100000011000100110010001100000011010100110010

0b11000100110010001100000011011100110000001100000011001100110010

0b11100000110000001100000011000100110011001100000011010100110010

0b11010000110000001100000011000100110001001100000011001000110010

0b11001100110010001100000011001100110000001100000011010100110010

0b11000100110011001100000011001100110000001100000011000000110010

0b11011000110001001100000011000000110010001100000011010100110010

0b11000000110010001100000011100100110001001100000011010100110010

0b11100100110001001100000011011000110000001100000011010100110010

0b11011000110001001100000011001000110011001100000011001100110010

0b11001000110000001100000011010100110010001100000011001100110010

0b11011100110010001100000011001000110001001100000011000000110010

0b11010000110000001100000011001100110010001100000011010100110010

0b11010100110000001100000011100100110010001100000011001000110010

0b11011100110000001100000011010000110001001100000011001000110010

0b11011000110000001100000011100000110001001100000011001000110010

0b11000000110011001100000011001000110001001100000011001100110010

0b11001000110010001100000011100000110001001100000011000000110010

0b11100000110010001100000011001000110011001100000011001100110010

0b11011000110000001100000011100100110010001100000011001000110010

0b11011100110001001100000011011000110010001100000011001100110010

0b11010000110000001100000011000000110011001100000011010100110010

0b11010000110001001100000011001000110001001100000011010100110010

0b11010000110010001100000011000000110100001100000011000000110010

0b11000000110010001100000011100000110010001100000011010100110010

0b11000000110010001100000011011000110001001100000011010100110010

0b11000100110010001100000011000100110000001100000011001100110010

0b11001100110000001100000011010000110001001100000011001000110010

0b11011000110010001100000011001100110000001100000011000000110010

0b11000000110010001100000011001100110010001100000011010100110010

0b11010100110000001100000011000000110001001100000011010100110010

0b11100100110001001100000011000100110010001100000011010100110010

0b11000000110001001100000011000000110011001100000011001000110010

0b11000000110001001100000011011000110000001100000011010100110010

0b11011100110000001100000011100100110010001100000011001000110010

0b11010100110000001100000011001000110001001100000011010100110010

0b11100000110000001100000011010100110011001100000011010100110010

0b11011000110001001100000011011100110010001100000011010100110010

0b11100000110000001100000011011000110011001100000011010100110010

0b11001100110000001100000011000100110010001100000011001000110010

0b11001000110010001100000011011000110011001100000011010100110010

0b11010000110000001100000011011000110010001100000011001000110010

0b11011000110001001100000011000000110011001100000011001100110010

0b11011100110000001100000011000100110011001100000011010100110010

0b11010100110000001100000011010000110001001100000011010100110010

0b11000000110011001100000011000100110010001100000011001100110010

0b11100000110001001100000011000100110011001100000011010100110010

0b11000000110010001100000011000100110100001100000011001100110010

0b11000000110010001100000011011100110001001100000011010100110010

0b11000100110010001100000011011000110001001100000011001100110010

 

Da sind 32bit bei allen UIDs gleich, d.h. wir können (ausgehend von dieser Testmenge) 32bit streichen ohne Kollisionen zu erzeugen die nicht auch vorher mit der 64bit UID schon dagewesen sind.

 

Wenn Atmel die ersten 4 Milliarden Microcontroller verkauft hat könnten sie natürlich anfangen die Prüfbits zu flippen, das halte ich allerdings für hinreichend unwahrscheinlich :).

 

in beta1 hatte ich mich mit den Masken vertan und die Maske für die ersten 32bit auf die hinteren 32bit angewendet und umgekehrt. Dadurch war ein Großteil der Bits in beta1 bei allen UIDs gleich :o.

 

Die neuen Brick UIDs fangen übrigens binär alle mit "11" an (wie vorher auch). Dadurch ist sichergestellt, dass es keine Kollisionen zwischen den Bricks und den Bricklets gibt. Dort haben wir unten bei 1 angefangen hochzuzählen. Das natürlich auch unter der Annahme, dass wir weniger als eine Milliarde Bricklets verkaufen werden ;D.

 

Summa Summarum: Eine Kollision der UIDs ist praktisch unmöglich.

Posted

Ah okay, dachte die 64 Bit wurden auch vollständig ausgenutzt.

Ich denke nach eurer ersten Milliarde Bricklets sollte es Champagner geben und keine Hash-Kollisionen :D

 

Danke für die Erläuterung!

Posted

hallo

 

habe mal eine frage wurde was an der Chibi Extension

geändert?  da nicht mehr der Master die Slave sucht beim Restart

sonder die Slave sich an den Master an melden.

 

habe gerade in die Doku geschaut da steht es eben anderst rum

 

mfg masder

Posted

@borg

 

gut UID Problem verstanden.

 

@masder

dieses gefühl hatte ich auch schon und bin es gerade am durchtesten (in zusammenhang des Chibi-Masters auf nem RS485 Slave.

 

RS485Master---RS485--->RS485Slave(mit Chibi-Master on top)

 

Kann das vielleicht noch wer anders mit seinen Stack testen?

Posted

Im alten Protokoll war es so, dass der Chibi/RS485 Master beim Start seine Slaves gesucht hat. Deshalb musste man den Chibi/RS485 Master immer nach den Slaves starten, damit die Slaves schon initialisiert sind wenn der Chibi/RS485 Master sie sucht.

 

Dieses Suchen der Slaves gibt es im neuen Protokoll nicht mehr, Das funktioniert jetzt dynamisch und es können im laufenden Betrieb Master uns Slaves beliebig neugestartet/hinzugefügt/entfernt werden und das Gesamtsystem sollte davon unbeeinträchtigt weiterlaufen.

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...