blitz1999 Geschrieben September 1, 2021 at 18:11 Geschrieben September 1, 2021 at 18:11 Hallo, Ich habe gerade wegen eingebrannter Schrift mein OLED-Bricklet 128x64 gewechselt. (und gleich einen Bildschirmschoner etabliert) Altes war 1.0 neu 2.0. mittels .WriteLine werden Daten in versch. Zeilen geschrieben. Nach dem Tausch ist mir aufgefallen daß am rechten Rand 4 Zeichen verschluckt werden. Ich hab gerade mal alt und neu per Master und USB an einen Brick-Viewer gehängt und versucht eine Zeile mit Zeichen zu beschreiben. das 2.0 stellt nur 21 Zeichen/Zeile dar. das 1.0 stellt 25 Zeichen/Zeile dar. Laut Doku sollten beide 26x8 Zeichen beherrschen. Was übersehe ich ??? LG, André Zitieren
borg Geschrieben September 2, 2021 at 10:11 Geschrieben September 2, 2021 at 10:11 Wir haben in der Tat bei der v2 ein Leerpixel zwischen den Buchstaben eingeführt. Dadurch passen weniger Buchstaben in die Zeile und die Doku passt auch nicht mehr 🙁. Ich hab gerade in den Code geschaut, ich glaube am besten ist wir machen das "Character-Spacing" konfigurierbar. Ich melde mich nochmal mit einer Testfirmware wenn ich das implementiert hab. Zitieren
borg Geschrieben September 2, 2021 at 12:54 Geschrieben September 2, 2021 at 12:54 Ich hab leider keine Möglichkeit gefunden die vorhandene WriteLine-Funktion abzuändern ohne die API zu brechen. Hab stattdessen eine WriteLine2-Funktion hinzugefügt bei der man das Letter-Spacing konfigurieren kann. Mein Test dazu (Python) und das Ergebnis: #!/usr/bin/env python # -*- coding: utf-8 -*- HOST = "localhost" PORT = 4223 UID = "Gz2" WIDTH = 128 HEIGHT = 64 from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_oled_128x64_v2 import BrickletOLED128x64V2 import time if __name__ == "__main__": ipcon = IPConnection() # Create IP connection oled = BrickletOLED128x64V2(UID, ipcon) # Create device object ipcon.connect(HOST, PORT) # Connect to brickd # Don't use device before ipcon is connected oled.write_line(0, 0, "01234567890123456789012345") oled.write_line_2(1, 0, 1, "01234567890123456789012345") oled.write_line_2(2, 0, 0, "01234567890123456789012345") Welche Programmiersprache verwendest du? Dann würde ich schonmal für dich zum testen Bindings mit der neuen Funktion anhängen. oled-128x64-v2-bricklet-2-0-6-beta1.zbin Zitieren
blitz1999 Geschrieben September 3, 2021 at 08:59 Autor Geschrieben September 3, 2021 at 08:59 (bearbeitet) Hallo, borg, Danke für die Mühe. ich verwende C#. bearbeitet September 3, 2021 at 09:05 von blitz1999 Zitieren
borg Geschrieben September 3, 2021 at 11:19 Geschrieben September 3, 2021 at 11:19 Anbei die Bindings für C# zu der Firmware oben. Das kommt dann mit dem nächsten Bindings-Release auch offiziell. Die neue Funktion sieht in C# wie folgt aus: public void WriteLine2(byte line, byte position, byte letterSpacing, string text) tinkerforge_csharp_bindings_2_1_30.zip Zitieren
blitz1999 Geschrieben September 3, 2021 at 18:03 Autor Geschrieben September 3, 2021 at 18:03 Bindings eingefügt, Bricklet geflasht, Test läuft... ... und es schaut gut aus. Sehr gut sogar. Danke für den schnellen Beistand und schönes WE. 😀 Zitieren
blitz1999 Geschrieben May 20, 2022 at 11:53 Autor Geschrieben May 20, 2022 at 11:53 @borg Hallo, borg, Seit C# 2.1.31 scheint das Writeline2 (Character-Spacing) für das OLED 128x64 V2 verloren gegangen zu sein. Ich habe eben wieder auf 2.1.30 "downgegraded". Noch ist das kein Problem. Könnte man das dauerhaft übernehmen ? 😮 Zitieren
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.