Author Topic: LCD 128x64 Button Größe  (Read 536 times)

remotecontrol

  • Hero Member
  • *****
  • Posts: 593
    • View Profile
LCD 128x64 Button Größe
« on: December 30, 2018, 16:39:34 »
Hallo TF Team,

es scheint, als könnte man einen Button nicht exakt bündig zum rechten oder unteren Rand platzieren - wenn man den letzten Pixel nutzt wird der Button nicht mehr angezeigt

Beispiel
Code: [Select]
    lcd_128x64_set_gui_button(lcd, 0, 0, 47, 21, 16, "XX");
=> geht: 47 mit 16 Höhe => letzter Pixel ist in Zeile 62 (nicht 63 !)

Code: [Select]
    lcd_128x64_set_gui_button(lcd, 0, 0, 48, 21, 16, "XX");
=> geht nicht mehr, Button wird nicht angezeigt

Ist das so gewollt oder eher ein Bricklet Bug, der auf "y + height >= 64" prüft. Letzeres stimmt eigentlich nicht, denn bei y=63 und Höhe=1 liegt der Button ja noch in Zeile 63 - oder ?

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.142
    • View Profile
Re: LCD 128x64 Button Größe
« Reply #1 on: January 02, 2019, 10:08:55 »
Muss ich mir angucken, klingt aber in der Tat nach einem off-by-one irgendwo. Komme ich womöglich erst morgen zu.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!

borg

  • Tinkerforge Staff
  • Administrator
  • Hero Member
  • *****
  • Posts: 3.142
    • View Profile
Re: LCD 128x64 Button Größe
« Reply #2 on: January 04, 2019, 14:37:14 »
Du hattest exakt recht mit deiner Vermutung! Den gleichen Bug gab es auch noch beim Slider.

Neue Firmware ist veröffentlicht, hab das getestet mit:

Code: [Select]
/usr/bin/env python
# -*- coding: utf-8 -*-

HOST = "localhost"
PORT = 4223
UID = "GK7" # Change XYZ to the UID of your LCD 128x64 Bricklet

from tinkerforge.ip_connection import IPConnection
from tinkerforge.bricklet_lcd_128x64 import BrickletLCD128x64

if __name__ == "__main__":
    ipcon = IPConnection() # Create IP connection
    lcd = BrickletLCD128x64(UID, ipcon) # Create device object

    ipcon.connect(HOST, PORT) # Connect to brickd
    # Don't use device before ipcon is connected

    # Clear display
    lcd.clear_display()
    lcd.remove_all_gui()

    lcd.set_gui_button(0, 100, 50, 28, 14, 'test')

    lcd.set_gui_slider(0, 0, 0, 128, 0, 50)
    lcd.set_gui_slider(1, 0, 30, 34, 1, 10)

    raw_input("Press key to exit\n") # Use input() in Python 3
    ipcon.disconnect()

Der Button und beide Slider tauchen in 2.0.5 nicht auf, funktionieren aber in der neuen 2.0.6.
Wir sind die Borg, Widerstand ist Spannung durch Stromstärke!