Sidverktyg

Pekskärm med förhinder (och en lösning)

Jag köpte ett par 23″ pekskärmar från Samsung till projektet som var byggda för offentliga miljöer. De kostade en god slant men fick vara värda pengarna eftersom jag inte ville att utrustningen skulle vara en svaga länken. Till dessa köptes även små billiga och strömsnåla datorer som skulle installeras med Python (tolken som kör programmen jag skriver till systemet) och Python Imaging Library (för bildhantering). Sagt och gjort. Problemen började dock när det visade sig att man inte kunde koppla pekfunktionen till en extern dator. Visa bild gick bra, men inte utnyttja pekfunktionen.

Hur hänger då det ihop – en pekskärm där man inte kan utnyttja pekfunktionen? Enkelt: skärmen innehåller en liten dator som kör Windows XP Embedded. Utmärkt kan man tycka även om det innebär begränsningar som jag inte var medveten om när jag trodde att jag köpte en ”normal” pekskärm. En allvarlig begränsning var att det inte gick att installera det livsviktiga Python Imaging Library som har hand om all bildhantering. Att kompilera biblioteket själv kändes övermäktigt med tanke på hur knöligt det kan vara så jag provade en annan väg: att använda PY2EXE som packar ihop alla de skript man skrivit, Pythontolken och alla kringbibliotek till en .exe fil som kan användas på Windowsdatorer utan Python och kringbibliotek installerade.

Problemet med PY2EXE visade sig dock vara att det inte trivs särskilt väl ihop med Python Imaging Library. Det senare gör en del dynamiska importer som PY2EXE inte klarar av att hantera. Efter en hel del felsökning hittade jag dock ett sätt att manuellt importera alla moduler och lura systemen att allting är initierat som det skall. Därefter var de sista problemen relativt enkla.

Summa summarum har vi nu ett komplett pekskärmssystem system bestående av en skärm med en strömsladd och ingenting mer. Efter några sorger och bedrövelser blir det alltså en mycket elegantare lösning än jag ursprungligen hoppats på!