thunderbird Posted January 15, 2013 at 06:14 PM Posted January 15, 2013 at 06:14 PM Ist die getIdentitiy Methode in der ersten Version dann auch schon in der Device Klasse ?? @getIdentitiy in Device Klasse: Es würde reichen wenn sie dort drin ist und von den Brick/Bricklet Klassen überschrieben wird oder? Quote
borg Posted January 15, 2013 at 06:28 PM Author Posted January 15, 2013 at 06:28 PM @thunderbird: Jo, guck ich mir gleich noch an. @Loetkolben: Wir erwarten einen Mehraufwand in Höhe von 2Mrd€, Veröffentlichung erfolgt in 2015 . Quote
AuronX Posted January 15, 2013 at 09:15 PM Posted January 15, 2013 at 09:15 PM @Loetkolben: Wir erwarten einen Mehraufwand in Höhe von 2Mrd€, Veröffentlichung erfolgt in 2015 . Zumindest würdet ihr so auch auf die Titelseite von Spiegel Online kommen ^^ Quote
Masder Posted January 20, 2013 at 08:59 PM Posted January 20, 2013 at 08:59 PM 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 Quote
borg Posted January 21, 2013 at 09:08 AM Author Posted January 21, 2013 at 09:08 AM Wen ich meinen Master Stack vom pc entferne bekomme ich keinen Fehler(ist das gewollt?). Im Brick Viewer? Wie sieht der Fehler aus? Quote
Masder Posted January 21, 2013 at 09:53 AM Posted January 21, 2013 at 09:53 AM 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 Quote
photron Posted January 21, 2013 at 10:13 AM Posted January 21, 2013 at 10:13 AM 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 Quote
Masder Posted January 21, 2013 at 01:25 PM Posted January 21, 2013 at 01:25 PM 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 Quote
photron Posted January 21, 2013 at 04:07 PM Posted January 21, 2013 at 04:07 PM 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. Quote
Masder Posted January 21, 2013 at 04:13 PM Posted January 21, 2013 at 04:13 PM danke dann weis ich ja bescheid und wert warten bis es aktuell ist mfg masder Quote
borg Posted January 22, 2013 at 05:59 PM Author Posted January 22, 2013 at 05:59 PM So, das neue Protokoll ist veröffentlicht. Wer die Beta installiert hatte muss nochmal einmal alles updaten auf die neuesten Versionen. Vielen Dank für die Hilfe! Quote
Einstein Posted January 22, 2013 at 08:31 PM Posted January 22, 2013 at 08:31 PM 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ß Quote
Loetkolben Posted January 22, 2013 at 08:37 PM Posted January 22, 2013 at 08:37 PM Huch, es scheint so weit zu sein. Warum finde ich die Shellscripte fuer Linux nicht? Der Loetkolben Quote
AuronX Posted January 22, 2013 at 09:04 PM Posted January 22, 2013 at 09:04 PM @Einstein: Die UIDs wurden gekürzt und die alten längeren werden dementsprechend umgerechnet. Ich vermute es hängt damit zusammen. Ist die neue UID kürzer? Quote
borg Posted January 22, 2013 at 09:25 PM Author Posted January 22, 2013 at 09:25 PM 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 . Quote
AuronX Posted January 22, 2013 at 09:40 PM Posted January 22, 2013 at 09:40 PM 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) Quote
borg Posted January 22, 2013 at 10:08 PM Author Posted January 22, 2013 at 10:08 PM 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 . 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 . Summa Summarum: Eine Kollision der UIDs ist praktisch unmöglich. Quote
AuronX Posted January 22, 2013 at 10:27 PM Posted January 22, 2013 at 10:27 PM 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 Danke für die Erläuterung! Quote
Masder Posted January 22, 2013 at 11:06 PM Posted January 22, 2013 at 11:06 PM 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 Quote
Einstein Posted January 22, 2013 at 11:53 PM Posted January 22, 2013 at 11:53 PM @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? Quote
Masder Posted January 26, 2013 at 06:22 PM Posted January 26, 2013 at 06:22 PM @TF keine neuen Infos wie so das jetzt andersherum ist ?? mfg masder Quote
photron Posted January 28, 2013 at 11:42 AM Posted January 28, 2013 at 11:42 AM 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. Quote
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.