Windows Mobile – the no-go world of Function Keys

Hello

I want to summarize the role of function keys in Windows Mobile, former Pocket PC, as I got several questions each week on how to use or enable Function keys in this or that application.

Here is a simple information about how function keys work in Windows Mobile.

Continue reading ‘Windows Mobile – the no-go world of Function Keys’ »

WICD does not reconnect after suspend: obtaining IP address

My Debian 8 Jessie installed Acer Aspire One netbook had problems reconnecting after suspend resume.

WICD showed obtaining IP address for a long time and finally gave up or so. Tried dhclient and dhcpcd, no change. Tried debug mode, which results in the netbook sometimes did not resume to the OS and I had to do a hard reset :-(. Disabled debug logging option in wicd.conf again. Could not live with hard resets.

Changed dhcp server from integrated one in router (tested with different models) to my Linux Debian SID server, no change.

I added the option nolink (for buggy interfaces, found in man dhcpcd and dhcp.conf and inspried by LinuxQuestions.Org) to /etc/dhcpcd.conf and now WICD reconnects fine and fast after setting dhcpcd as external DHCP Client. WICD is version 1.7.24.

Issue solved 🙂

UPDATE 31.8.2016:

Bad news: WICD still does not resolve DHCP address. I mostly have to Cancel the ‘Obtaining IP address…’ process and manually connect. Some times it connects on first time but some times on second or thrird attempt.

Now tested connman. But it behaves alsoe strange. After first install everything looked fine. But after reboot it stated no services available or other strange errors about no wifi and sh.. After some more tests I relaized that connman is not really integrated into Debian. Maybe it is good for ArchLinux? Fortunately I always got a connection using ifdown/ifup for wlan0.

Finally I switched to network-manager and network-manager-gnome. And that impressed me. It connects very, very fast. Hopefully that will be reliable. Suspend and resume also works fine without fiddeling in any conf files so far.

BTW: I am running two Cisco APs with same SSID/WPA2 passphrase, so the devices can roam (no AP controller, just the Cisco APs). Possibly that makes WICD nervous?

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

fhem: Flugdaten aufzeichnen mit adsbox und python

Ich wollte gerne die Flugzeug-AktivitÀten, die ich in adsbox mit meinem RTL-SDR empfange aufzeichnen und visualisieren.

Dazu habe ich zuerst TWFlug gefunden. Leider ist das Programm sehr beschrĂ€nkt und der Quellcode nicht verfĂŒgbar. Erschwerend kommt hinzu, dass es ein Java Programm ist. Jedenfalls war es fĂŒr meine Zwecke unbrauchbar und anhand der unvollstĂ€ndigen Beschreibungen nicht zum Laufen zu bekommen.

Dann habe ich py1090 von Jonas Lieb gefunden. Der Autor hat den Quelltext unter MIT Lizenz freigegeben. Also habe ich den Code unter meinem Github Account kopiert und angepasst. Mein py1090_2 liest die ads-b Nachrichten ĂŒber Port 30003 von adsbox und schreibt eine Logdatei in einem fĂŒr fhem tauglichen Format auf demselben Server (Linux Debian 8). Mein Code bereinigt die gesammelten Flugzeuge regelmĂ€ĂŸig und berechnet noch absolute Sicht-Entfernungen. Ausserdem kann man festlegen, in welchem Umkreis um eine Position Flugzeuge aufgezeichnet werden. Wenn einem zum Beispiel nur Flugzeuge im Umkreis von 30km interessieren. Das Ganze kann man dann schön aufbereitet in FHEM anzeigen lassen (oben die Anzahl der Flugzeuge und unten die niedrigste Höhe):

fhem-flugdaten

Zudem habe ich den Code so vorbereitet, dass ich spĂ€ter noch Daten zur LaustĂ€rke und zum nĂ€chst sichtbaren Flugzeug zu FHEM ĂŒbertrage (via Telnet).

fhem-fluglaerm1

Zuerst einmal die Definition der extern befĂŒllten Logdatei in der fhem.cfg:

Continue reading ‘fhem: Flugdaten aufzeichnen mit adsbox und python’ »