Archive for the ‘Tools’ Category.

Development: Windows 10 UWP Wireless Label/Receipt printer demo

As I already wrote the small demo apps for wireless printing of Label and Receipts for Android and Windows Phone 8, I now wrote such demo now for Windows UWP. The applciation was tested on a Windows 10 Phone running Windows 10 Iot Enterprise Edition.

The code is based on the Windows Universal Sample app BTRFCommChat, but uses a different, single page layout.

layout_designer     wp_ss_20160811_0001   wp_ss_20160811_0003   wp_ss_20160811_0005

Continue reading ‘Development: Windows 10 UWP Wireless Label/Receipt printer demo’ »

FHEM: Flugdaten mit py1090 loggen

Nun kann ich ja Flugdaten mit Hilfe von Jonas Lieb’s py1090 und adsbox in FHEM aufzeichnen. Dies wollte ich immer um die Aufzeichnung des aktuellen Geräuschpegels erweitern. Das Ergebnis sind Erweiterungen der py1090 Klassen und bessere python Ausgaben der aktuellen Daten.

Angefangen habe ich mit einfachen print-Anweisungen und einer seriellen Verbindung zu einem Arduino Nano, der als ADC Wandler für den Geräuschpegel diente. Nun läuft ein nodeMCU mit espEasy. Dadurch (wireless) kann ich den Geräuschpegel ‘Sensor’ unabhängig positionieren. Die Daten lese ich in Python über json vom espEasy. Die aktuellen ‘Lärm’-Daten werden alle x Minuten über einen Python Telnet Client Code an FHEM übermittelt.

Aufbau

Geräuschpegel-Sensor => nodeMCU mit ESPeasy =(WLAN)=> Python Script => FHEM-Logfile + Telnet FHEM

Anfangs habe ich versucht den ‘Sender’-Code direkt in LUA auf dem nodeMCU zu schreiben. Man stösst aber sehr schnell an Speichergrenzen und der Code läuft sehr unzuverlässig. Dagegen ist ESPeasy total einfach einzurichten und bietet direkt einen ADC Sensor. Nun kann man den Wert via MQTT weiterverarbeiten. Da ich aber den Geräuschpegel zusammen mit dem aktuell ‘nächsten’ Flugzeug versenden will, lese ich die Daten via JSON von ESPeasy in Python und versende sie dann zusammen mit den Flugzeugdaten via Telnet an FHEM.

Das erste Python Script verwendet nur einfache Print-Ausgaben für die aktuellen Aktivitäten. Der Inhalt scrollt ständig über den Bildschirm und man hat keine Übersicht.

dump1090

Daher habe ich den Python-Code so geändert, dass er zur Ausgabe curses verwendet:

dump1090term

Leider ‘zerschiesst’ es ab und an den Bildschirm und die Hervorhebung für das ‘nächste’ Flugzeug erstreckt sich dann auch mal über andere Zeilen. Ausserdem kann man das Terminal Fenster nicht in der Größe ändern. Meistens bricht dann der Curses Code und das Python Script ab.

Dann habe ich es noch mit der Python blessings Erweiterung versucht:

dump1090term_blessings

Nun kann man das Terminalfenster zwar im laufenden Betrieb in der Größe ändern, allerdings muß ich die Ausgabe noch besser anpassen (Kopfzeilen).

Ich habe in diesem Python Projekt möglichst mit Klassen und externen Modulen zu arbeiten. Dadurch kann man das Ganze leicht erweitern und anpassen.

Source Code

Android development: btPrint4 prints demos and files to Bluetooth receipt and label printers

This is an update to my btPrint4 android application. The app now supports ‘printing’ of files. You are no longer tied to the provided demo files. ‘Printing’ here means it sends the file as is to the printer. So, watch your step and do not send files that your printer does not understand.

btprin4_file_main  btprint4_file_selected  btprint4_file_browse

Added a file browser activity: a class named item to hold file informations, a FileChooser class and a FileArrayAdapter. Then the needed layout files are added.

Continue reading ‘Android development: btPrint4 prints demos and files to Bluetooth receipt and label printers’ »

Mobile Development: PingNG-the next generation ping

As I needed a tool to test the maximum MTU size for a network, I needed a ping tool where I can define the packet size and the DF (Do Not Fragment-Flag). As I did not find such a tool, I wrote PingNG.

main main2 options_df

It is a simple tool but the code had to avoid some pitfalls.

Continue reading ‘Mobile Development: PingNG-the next generation ping’ »