Jump to content

urmel007

Members
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von urmel007

  1. Habe die Lösung:

     

    das Problem war wirklich die Zeitzone des RED Brick. Da ich

    den RB ohne grafische Oberfläche betreibe habe ich auf der

    Konsole mit "sudo dpkg-reconfigure tzdata" die Zeitzone

    eingestellt.

    Jetzt zeigt auch unter Python time.localtime() den Wert von

    tm_isdst korrekt an.

     

    Das verwirrende war und ist, dass der Brickviewer immer (vor und nach

    der Korrektur der Zeitzone) für den RED Brick und lokal UTC +2 angezeigt

    hat. Ein synchronize hat da auch nichts bewirkt.

     

    Nochmal vielen Dank für die Unterstützung.

     

     

  2. ... sorry, erwartungsgemäß für Sommerzeit wäre 1 (das kommt auch auf den Notebooks). Auf dem RED Brick erscheint jedoch folgendes:

     

    >>> import time

    >>> time.localtime()

    time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=20, tm_min=59, tm_sec=41, tm_wday=3, tm_yday=98, tm_isdst=0)

     

    tm_isdst ist Sommer- wie Winterzeit immer 0.

     

    date gibt folgendes aus:

    Thu Apr  7 21:06:32 GMT-2 2016

     

    Es sieht nach einem Zeitzonenproblem aus ? ???

     

     

  3. Hallo,

     

    ich habe auf dem RED Brick ein Problem mit dem Auslesen der Sommerzeit.

     

    import time

    lt = time.localtime() # Aktuelle, lokale Zeit als Tupel & Entpacken des Tupels

    lt_y, lt_mo, lt_d, lt_h, lt_mi = lt[0:5]      # Datum & Zeit

    lt_dst = lt[8]      #  Angabe der Sommerzeit: -1 = keine Angabe vom Betriebssystem 0 = Winterzeit    1 = Sommerzeit         

    print(lt_dst)

     

    Als Ergebnis wird auf zwei Notebooks mit Windows und ubuntu aktuell jeweils

    ertartungsgemäß -1 ausgegeben. Auf dem RED Brick kommt immer (Sommer- wie Winterzeit) als Ergebnis 0.

     

    Wo kann da der Fehler liegen oder muss die Sommerzeit "von Hand" aktiviert werden?

     

    Ich bin Dankbar für jeden Hinweis.

     

    Viele Grüße

    Michael

  4. Hallo,

     

    ich möchte ein Steuerung mit 4x digital in (IO-4 Bricklet), 2x digital out

    (Dual Relay Bricklet) + Masterbrick aufbauen. Über eine RS485 Masterextension

    soll das dann alles mit einem Arduino mini (auch mit RS485 Erweiterung)

    kommunizieren.

     

    Ist so etwas denkbar, oder habe ich hier noch etwas vergessen?

     

    Viele Grüße

    Urmel

  5. Hallo Equinox,

     

    der Tip die Variable als Klassenvariable zu deklarieren und das final zu entfernen war goldrichtig.

    --> Es Funktioniert.

     

    Grüße & Vielen Dank

     

    Urmel

     

    PS wann kommt der RED Brick ?

     

     

     

    public class ExampleSimple {

    private static final String HOST = "localhost";

    private static final int PORT = 4223;

    private static final String UIDDualRelay = "kuE"; // Change to your UID

    private static final String UIDHumidity = "nED"; // Change to your UID

    private static final String UIDDisplay = "ocE"; // Change to your UID

    private static int buttonState = 0;

     

     

    // Note: To make the example code cleaner we do not handle exceptions. Exceptions you

    //      might normally want to catch are described in the documentation

    public static void main(String args[]) throws Exception {

    IPConnection ipcon = new IPConnection(); // Create IP connection

    BrickletDualRelay dr = new BrickletDualRelay(UIDDualRelay, ipcon); // Create device object

    BrickletHumidity hum = new BrickletHumidity(UIDHumidity, ipcon); // Create device object

    BrickletLCD20x4 lcd = new BrickletLCD20x4(UIDDisplay, ipcon); // Create device object

     

    ...

    ...

    ...

  6. Hallo,

     

    wie einige Forumsteilnehmer vor mir habe ich auch Probleme mit Listenern. Leider habe ich nicht die richtige Lösung im Forum gefunden.

    Hier das Problem:

    Für die Erfassung der Tasten am Bricklet LCD20x4 habe ich wie in den Beispielen den ButtonPressedListener und ButtonReleasedListener hinzugefügt. Um auch mehrere Tastendrücke zugleich erfassen zu können (soll für SET oder RESET Anweisungen genutzt werden) addiere ich über eine Variabale außerhalb der Listener die Tastensignale bei Pressed auf und ziehe diese bei Released wieder ab.

     

    Genau das ist das Problem: ich kann nicht mit Variabalen außerhalb der Klassen kommunizieren. Wie könnte so etwas gehen?

     

    Ich bin für jeden Hinweis dankbar.

     

    Grüße

    Urmel

     

     

    Hier der Code

     

    package net.tinkerforgeTest;

     

    import com.tinkerforge.BrickletDualRelay;

    import com.tinkerforge.BrickletHumidity;

    import com.tinkerforge.BrickletLCD20x4;

    import com.tinkerforge.IPConnection;

     

    public class ExampleSimple {

    private static final String HOST = "localhost";

    private static final int PORT = 4223;

    private static final String UIDDualRelay = "kuE"; // Change to your UID

    private static final String UIDHumidity = "nED"; // Change to your UID

    private static final String UIDDisplay = "ocE"; // Change to your UID

     

     

     

    // Note: To make the example code cleaner we do not handle exceptions. Exceptions you

    //      might normally want to catch are described in the documentation

    public static void main(String args[]) throws Exception {

     

    final short buttonState = 0; // der Tastenstatus außerhalb der Listener

    IPConnection ipcon = new IPConnection(); // Create IP connection

    BrickletDualRelay dr = new BrickletDualRelay(UIDDualRelay, ipcon); // Create device object

    BrickletHumidity hum = new BrickletHumidity(UIDHumidity, ipcon); // Create device object

    final BrickletLCD20x4 lcd = new BrickletLCD20x4(UIDDisplay, ipcon); // Create device object

     

    ipcon.connect(HOST, PORT); // Connect to brickd

    // Don't use device before ipcon is connected

     

    // Turn backlight on

    lcd.backlightOn();

     

    // Write "Hello World"

    lcd.writeLine((short)0, (short)0, "Hello World");

     

     

    // Turn relays alternating on/off for 10 times with 1 second delay

    for(int i = 0; i < 6; i++) {

    Thread.sleep(200);

    if(i % 2 == 1) {

    dr.setState(true, false);

    } else {

    dr.setState(false, true);

    }

    }

     

     

    // Get current humidity (unit is %RH/10)

    for(int j = 0; j < 2; j++){

    Thread.sleep(1000);

    int humidity = hum.getHumidity(); // Can throw com.tinkerforge.TimeoutException

    System.out.println("Relative Humidity: " + humidity/10.0 + " %RH");

    lcd.clearDisplay();

    lcd.writeLine((short)0, (short)0, "RH: " + humidity/10.0 + " %RH");

    }

     

    // Add and implement listener for pressed and released events

    lcd.addButtonPressedListener(new BrickletLCD20x4.ButtonPressedListener() {

    public void buttonPressed(short button) {

                            // von hier kein Zugriff auf buttonState

    System.out.println("Pressed: " + button);

    switch(button){

            case 0:

            buttonState = buttonState + 1; // kein Zugriff

                break;

            case 1:

            buttonState = buttonState + 2;

                break;

            case 2:

            buttonState = buttonState + 4;

                break;

            case 3:

            buttonState = buttonState + 8;

                break; 

    }

    }

    });

     

    lcd.addButtonReleasedListener(new BrickletLCD20x4.ButtonReleasedListener() {

    public void buttonReleased(short button) {

                            // von hier kein Zugriff auf buttonState

    System.out.println("Pressed: " + button);

    switch(button){

            case 0:

            buttonState = buttonState - 1;

                break;

            case 1:

            buttonState = buttonState - 2;

                break;

            case 2:

            buttonState = buttonState - 4;

                break;

            case 3:

            buttonState = buttonState - 8;

                break; 

    }

    }

    });

     

     

     

    lcd.backlightOff();

    ipcon.disconnect();

    System.out.println("Ende");

    }

    }

     

     

×
×
  • Neu erstellen...