Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.054
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    39

Posts erstellt von photron

  1. Brick Viewer 1.1.12

     

    • Automatically restart Bricks after successful flashing a new firmware
    • Check for invalid characters in SSID and key for WIFI Extension, only ASCII without the quotation mark is allowed
    • Show WIFI encryption mode correctly
    • Show version numbers in flashing dialog
    • Remember the last 5 hosts
    • Add Check-for-Updates functionality for connected Bricks and Bricklets

    Downloads: Windows, Linux, Max OS X

  2. Brick Viewer 1.1.12

     

    • Bricks werden nach erfolgreichem Flashen automatisch neugestartet
    • SSID und Key für die WIFI Extension werden vor dem Speichern auf ungültige Zeichen überprüft, es ist nur ASCII ohne das Anführungszeichen erlaubt
    • Der gewählte WIFI Encryption Modus wird jetzt korrkt angezeigt
    • Der Flashing Dialog zeigt nun Versionsnummern an
    • Es werden jetzt die letzten 5 Hosts statt nur der letzte gespeichert
    • Check-for-Updates für verbundene Bricks und Bricklets hinzugefügt

    Downloads: Windows, Linux, Max OS X

  3. Muesste man dann den brickd stoppen oder deinstallieren, damit man mit dem brick_flash_cmd das Brick flashen kann?

     

    Nein, brickd und Flashen haben nichts mit einander zutun. Abgesehen, davon dass das Flash Script initial einmal über brickd mit dem Brick reden muss um ihn in den Bootloader bringen zu können, wenn das Script vollautomatisch Flashen können soll.

     

    Der Ablauf wäre: flash.py verbindet sich mit dem lokalen brickd und ruft auf dem zu flashenden Brick die Funktion zum Wechsel in den Bootloader auf (diese Funktion gibt es im Moment noch nicht). Dann taucht der Brick als Seriel Port auf und flash.py schreibt die neue Firmware in den Flash. Zuletzt löst flash.py ein Reset des Bricks aus und er startet mit der neuen Firmware.

     

    Dieses automatische Neustarten nach dem Flashen wird auch schon die nächste brickv Version können.

  4. Ich kann das beschriebene Problem reproduzieren. Es hängt mit dem Schreiben aufs LCD zusammen. Dei genau Ursache ist noch nicht klar. Ich untersuche das grade noch.

     

    Zum ° Zeichen: Das LCD hat einen speziellen Zeichensatz, der auch in der Dokumentation der write_line Funktion verlinkt ist:

     

    https://github.com/Tinkerforge/lcd-20x4-bricklet/raw/master/datasheets/standard_charset.pdf

     

    Der Zeichensatz beinhaltet ein Katakana Zeichen, das man als ° Zeichen verwenden kann.

     

    Wie zwischen Unicode un dem speziellen LCD Zeichensatz abgebildet werden kann kannst du dem Unicode Beispiel entnehmen:

     

    http://www.tinkerforge.com/doc/Software/Bricklets/LCD20x4_Bricklet_C.html#unicode

  5. Einen Brick per Brick Viewer in den Bootlader zu bringen ist wohl möglich, braucht aber neue API. Ist auf der TODO Liste.

     

    Remote FW update??? ;D Bitte.

     

    Auch das automatisiertere Flashen wird noch eine USB Verbindung zwischen Brick und Rechner mit brickv brauchen. Aber ja es sieht so aus als könnte man es so bauen, dass man zum Flashen eines Bricks keinen Knopf mehr am Brick selbst drücken müsste.

  6. Reconnect ist für den Fall gedacht, dass die Association der WIFI Extension zum Access Point abreist und die Chance besteht das sie wiederkommt. Dabei tritt dann ein ECONNRESET Fehler (das ist der C Error Code) auf. Daraufhin versucht sich die IP Connection neu zu verbinden. Abgesehen von ein Paar Timeouts ist das für den Benutzer der API transparent.

     

    Das da nicht zwischen brickd und WIFI unterschieden wird liegt daran, dass die IP Connection das nicht unterscheiden kann. Das Protokoll ist dahingehend transparent.

     

    Dein Problem mit brickd ist, dass Callbacks nicht automatisch an alle ausgeliefert werden, sondern nur an die die es potentiell interesiert. Wer das ist erkennt brickd an den GetStackID Aufrufen. Wenn du brickd jetzt neustartest hat er das vergessen. Die Bricks versenden immer noch Callbacks nur stellt sie brickd nicht mehr zu.

     

    http://www.tinkerforge.com/doc/Low_Level_Protocols/TCPIP.html#callbacks

     

    Daher ist brickd hier ein schlechter Test für Reconnect. Bei der WIFI Extension passiert das nicht :)

  7. Oder vielleicht besser, das angezeigt wird wenn neue Firmware-Versionen zur Vergügung stehen. Es wäre auch schön wenn man den Brick über den BrickletViewer in den Modus zum Flashen setzen könnte.

     

    So ein "Check for Updates" im Brick Viewer ist geplant und da das mittlerweile mehrere Leute gewünscht haben wird das jetzt in Kürze kommen.

     

    Einen Brick per Brick Viewer in den Bootlader zu bringen ist wohl möglich, braucht aber neue API. Ist auf der TODO Liste.

     

    Was auch geht ist den Brick automatische nach dem Flashen neuzustarten. Das habe ich gerade in den Brick Viewer eingebaut :)

  8. Eine kleine Herausforderung war, den Temperatursensor auch auf meinem Smartphone Nokia N900 (Maemo-Linux) abzufragen, da dieses Python 2.5 hat, wo doch Python 2.6 gefordert wird (http://www.tinkerforge.com/doc/Software/API_Bindings.html#python).

     

    Zum Glück war nur eine kleine Änderung notwendig:

    In ip_connection.py musste ich an 3 Stellen "current_thread" durch "currentThread" ersetzen. Dies als kleine Anregung an die tinkerforge-Entwickler - Python 2.5 und Python 2.6 sind gar nicht so unterschiedlich.

     

    Ist eingebaut, wird in der nächsten Release der Python Bindings drin sein.

  9. Ohh, kann es sein das ich den ToggleButton erst in der Mainmethode setzen darf, oder sowas in der Art?

     

    Sieht so aus. Wenn ich das Log richtig verstehe löst der Aufruf von findViewById die Exception aus:

     

    private ToggleButton openclose = (ToggleButton) findViewById(R.id.openclosedoor);

     

    Spontan ins Blaue geraten würde ich sagen du solltest den Aufruf in onCreate nach dem Aufruf von setContentView machen.

  10. In der Gefahr den Hinweis darauf übersehen zu haben:

    Warum sind lat/lon jeweils arrays? Was bedeuten sie?

    Erwartet hätte ich double ^^

     

    Die Koordinaten werden in DD°MM.mmmm’ Format ausgegeben, dabei ist DD°MM im ersten Wert des Arrays und mmmm’ im Zweiten. Bei genauerer Betrachtung verwenden wir sonst eigentlich eine andere Darstellung für Floatzahlen. Ich werde das zu einem Wert ändern, der sich dann so zusammensetzt: DDMM * 10000 + mmmm. Den Wert hier wirklich als float zu übergeben ist nicht drin, da floats zusätzlichen Code brauchen und das die Größe des Plugins sprengt.

  11. Es wäre vielleicht wirklich eine gute Idee an einem gewissen Punkt zu sagen "das ist die API, was sagt ihr?"

     

    http://www.tinkerunity.org/forum/index.php/topic,886.0.html

     

    Was aber auch toll wäre ist, wenn man die Brick/lets per Software simulieren könnte; d.h. man könnte sich eine Hardware-Konstellation (per Config?) zusammenstellen und dann dagegen implementieren/testen ohne die Hardware schon zu haben (zB. GPS-Brick).

     

    Stimmt,  die Plattformübergreifende Lösung dafür wäre ja ein am Brickd simuliertes Gerät ^^ Bzw. ein Simulationskit das nen brickd enthält.

     

    Die Light-Variante wäre, dass in Sprachen wie C# und Java erstmal Interfaces für alle Devices erzeugt werden. Dann kann ich meinen Code gegen die Interfaces bauen und beliebige Bricklets durch Mocks austauschen (die dann auch nur das Interface implementieren müssen).

     

    Möglicherweise mache ich da demnächst mal nen Pull Request draus :D

     

    Das Problem daran ist dass dafür erstmal jemand die Logik der Bricks und Bricklets nachprogrammieren müsste.

×
×
  • Neu erstellen...