Quantcast
Channel: ppedv Team Blog
Viewing all articles
Browse latest Browse all 1198

UWP Kaufhaus

$
0
0

imageAb und zu muss man verrückte Dinge tun. Schon seit Windows 8 hat WinRT eine sehr umfangreiche API für sogenannte POS (Point of Sale) Devices. Ich habe zwar keine Ahnung warum, aber ist so. Das sind spezielle Drucker und Scanner.  Leider nur ganz wenige und dann auch nur wenn sie ESC/POS unterstützen. Die entsprechenden Thermodrucker von Epson sind ganz schön teuer. No Name Geräte gibt es schon ab 15€. Auf denen kann man halt nicht drucken. Dann kam mir die dumme Idee mal so ein ESC/POS kompatibles 2zeiliges Kassendisplay zu kaufen. das Glacetron 8035 erworben für 95€. Einfach per USB an den Rechner angesteckt und schon leuchtet es in sympathischen Blau. Die Aufmerksamkeit von Büro Besuchern ist dir ab sofort sicher.

Das Gerät hängt sich über eine CP210x UART Bridge als weitere serielle Schnittstelle rein. Mein Windows 10 Device Manager hat es zwar erkannt, ich musste aber Treiber bei Dr. Google suchen.

image

Nun könnte man das Display mit recht einfachen Kommandos per Serieller Schnittstelle beschicken. Es geht aber noch einfacher. Man holt sich einfach das Epson Opos ADK. Nach Installation konfiguriert man sein Gerät. Da das LineDisplay 2 Zeilen hat und der Befehlssatz ESC/POS ein Standard ist, habe ich wild geraten und das DM-D 210 ausgewählt.

image

Das OPOS Tool hat auch eine Check Health Funktion, die mir adhoc den Erfolg meldet. Das klappt also. Its Coding Time mit Visual Studio und einem leeren UWP Projekt.

Das XAML User Interface für meine Hello World Kasse enthält einfach einen Button und eine Zeile Text.

   1:  <TextBoxName="text1"Margin="78,20,0,0"VerticalAlignment="Top"/>
   2:   
   3:  <ButtonContent="show"
   4:  Visibility="Collapsed"
   5:  Name="btnDisplay"HorizontalAlignment="Left"
   6:  Margin="78,91,0,0"VerticalAlignment="Top"
   7:  Click="btnDisplay_ClickAsync"/>

Es wäre nicht die Universal Windows Platform, wenn man der sandboxed APP nicht erst das passende Recht zuweisen müsste. Im Manifest des VIsual Studio Projektes muss die DeviceCapability PointOfService eingetragen sein.

Im PageLoad wird dann das passende LineDisplay Device gesucht und einer Liste zugewiesen. Da diese realtiv lange dauern kann, so 15 –30 Sekunden, wird der Button erst aktiviert, wenn es mindestens ein POS Device gibt.

   1:  Dim devices As DeviceInformationCollection
   2:  Private Async Function MainPage_LoadedAsync(sender AsObject, 
e As RoutedEventArgs) As Task HandlesMe.Loaded
   3:          devices = Await DeviceInformation.FindAllAsync(
LineDisplay.GetDeviceSelector(PosConnectionTypes.All))
   4:  If devices.Count > 0 Then btnDisplay.Visibility
= Visibility.Visible
   5:  End Function

Im Button Event wird eine Referenz auf das Device über seine ID abgerufen. Da ich nur ein Display nutze, einfach per First. Die Position 0,0 zeigt auf die erste Stelle, erste Zeile. Zeile 2 wäre dann 0,1. Als zweiten Parameter gibt man noch an ob normal, invers oder blinkend. Die Anzeige wird gelöscht und im der nächsten VB.Code Zeile der Text entsprechend er beiden Parameter gesetzt. Wenn er länger ist, wird automatisch umgebrochen.

   1:   Using lineDisplay = Await ClaimedLineDisplay.FromIdAsync(devices.First.Id)
   2:  Dim position = New Point(0, 0)
   3:  Dim attribute = LineDisplayTextAttribute.Normal
   4:              Await lineDisplay.DefaultWindow.TryClearTextAsync()

5: Await lineDisplay.DefaultWindow.TryDisplayTextAsync(

text1.Text, attribute, position)

   6:  End Using

Supersimpel, deswegen noch der Bonustrack. Man kann die Fähigkeiten des Displays abfragen und so z.B. wie vorher erwähnt Text auch Blinkend ausgeben.

   1:  If Not lineDisplay.Capabilities.CanBlink = 
LineDisplayTextAttributeGranularity.NotSupported Then
   2:                  attribute = LineDisplayTextAttribute.Blink
   3:  End If

 

Das Wahnsinns UWP Kassen Projekt gibt es auch auf Github.


Viewing all articles
Browse latest Browse all 1198

Trending Articles


Vimeo 10.7.1 by Vimeo.com, Inc.


UPDATE SC IDOL: TWO BECOME ONE


KASAMBAHAY BILL IN THE HOUSE


Girasoles para colorear


Presence Quotes – Positive Quotes


EASY COME, EASY GO


Love with Heart Breaking Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


FORTUITOUS EVENT


Pokemon para colorear


Sapos para colorear


Smile Quotes


Letting Go Quotes


Love Song lyrics that marks your Heart


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


Long Distance Relationship Tagalog Love Quotes