wizarPOS 2D Smart POS 
Zavedení
Účel
Tento dokument popisuje instrukce k používání WizarPOS Scan Service, včetně popisu rozhraní, popisu parametrů a metod volání služeb.
Uživatel
Čtenářem tohoto dokumentu je vývojář, který používá službu WizarPOS Scan Service.
Pozadí projektu
Nadview
Inteligentní POS WizarPOS v současné době používá jako OS vylepšený a přizpůsobený systém Android, a pokud jde o funkci skenování, systém Android nepřichází s funkcí skenování čárových kódů / 2D skenování čárových kódů, ale využívá služby open source, jako je Zxing/Zbar . Mnoho aplikací pro Android, které se používají na chytrých POS zařízeních, již realizovalo funkci velmi rychlého skenování.
Existuje však mnoho dalších aplikací vyvíjených na základě chytrých POS, nikoli hotových komerčních aplikací. A mnoho chytrých vývojářů POS má také zázemí v oboru POS, nikoli profesionální vývojáři pro Android. Když tedy začnou vyvíjet aplikace, chtějí, aby jim WizarPOS poskytl pohodlné rozhraní pro skenování, místo aby se sami učili Zxing/Zbar.
Z hardwarového hlediska view, skenovací části používané na chytrých POS, nemusí být nutně standardní fotoaparát, dojde k určité transformaci. V některých případech bude vyžadováno, aby část skenování byla specializovaným hardwarem. Přímé použití Zxing /Zbar proto není skutečně použitelné pro chytré POS WizarPOS, ale vyžaduje určité úpravy a přizpůsobení.
Z výše uvedených důvodů uvažujeme o vývoji služeb skenování WizarPOS, abychom vývojářům třetích stran usnadnili vývoj aplikací s funkcemi skenování.
Využití služby skenování
Služba skenování je aplikace a spouští se pomocí AIDL. Aplikace třetích stran přizpůsobují své uživatelské rozhraní přenesením některých parametrů.
Rozhraní a popis parametrů
- Popis rozhraní
ScanBarcode
Toto rozhraní je rozhraním synchronního volání.
Když aplikace zavolá rozhraní, služba skenování otevře kameru definovanou parametrem skenování a spustí skenování. Po skenování se fotoaparát vypne a výsledky se okamžitě vrátí
ScanResult scanBarcode (parametr ScanParameter); - Parametr:
ScanParameter - Návrat:
ScanResult - začíná
Toto rozhraní je rozhraním asynchronního volání, což znamená, že je spuštěno nepřetržité skenování. Když aplikace zavolá toto rozhraní, služba skenování otevře kameru definovanou parametrem skenování a spustí skenování. Po každém skenování budou výsledky vráceny během zpětného volání. Po každém zpětném volání se spustí další proces skenování. void startScan(parametr ScanParameter, zpětné volání IScanCallBack); Parametr: ScanParameter, IScanCallBack - Návrat:
Nalezený čárový kód v IScanCallBack
Při volání startScan() musí být implementován parametr IScanCallBack. Volající může získat ScanResult prostřednictvím tohoto rozhraní. Při volání tohoto rozhraní je služba skenování ve stavu pozastavení a po návratu volání bude pokračovat další akce skenování. Službu skenování, která je pozastavena, můžete vypnout pomocí „zastavit skenování“.
neplatný nalezený čárový kód (výsledek skenování); - Parametr:
ScanResult - StopScan
Zastavte nepřetržité skenování a vypněte uživatelské rozhraní služby skenování. Po zastavení mohou ostatní volající zavolat rozhraní startScan nebo scanBarcode. - Návrat: getScanType (index int)
Získejte typ skeneru. - String getScanType(int index); Parametr:
Int 0 nebo 1; - Návrat:
Řetězec „Skener“ nebo „Fotoaparát“ nebo „Chyba“; - Popis parametru
ScanParameter
ScanParameter je objekt parametru, který definuje parametry, které potřebuje služba skeneru.
metoda: set (klíč řetězce, hodnota řetězce) (hodnota nerozlišuje malá a velká písmena)
Klíč | Hodnota
Typ |
Hodnota | Popis | ||||
okno_top | int | Výchozí: 0,
Rozsah: >0 |
Vzdálenost k horní části obrazovky. Efekt v režimu překrytí.
(dp) |
||||
okno_vlevo | int | Výchozí: 0,
Rozsah: >0 |
Zbývající vzdálenost k obrazovce. Efekt v režimu překrytí.
(dp) |
||||
šířka_okna | int | Výchozí: šířka obrazovky
Rozsah: >0 |
Režim obrazovky.
(dp) |
šířka. | Účinek | in | překrytí |
výška_okna | int | Výchozí: výška obrazovky
Rozsah: >0 |
Výška obrazovky. Efekt v režimu překrytí.
(dp) |
||||
enable_scan_section n | booleovský | Výchozí: true Rozsah: true/false | false: celé okno displeje je oblast pro skener, odstraňte rám skeneru.
true: přizpůsobit oblast skeneru, má rám skeneru, druhá část je poloprůhledná, rám skeneru je uprostřed, lze upravit šířku nebo výšku rám skeneru. |
||||
scan_section_width | int | Výchozí: 300 dip
Rozsah: >0 |
Šířka rámu skeneru. | ||||
scan_section_heigh
t |
int | Výchozí: 300 dip
Rozsah: >0 |
Výška rámu skeneru. | ||||
display_scan_line | Řetězec | Výchozí: pohybující se Rozsah: Ne/pevný/pohyblivý | Zobrazte červenou čáru v oblasti skeneru.
NE: Nezobrazuje se Opraveno: Uprostřed Pohyb: Pohyb nahoru a dolů |
||||
enable_flash_icon | booleovský | W1 上
Výchozí: true Q1 上 Výchozí: nepravda |
Zda se má zobrazit tlačítko pro ovládání blesku. | ||||
Rozsah: true/false | |||||||
enable_switch_icon | booleovský | Výchozí: true
Rozsah: true/false |
Zda se má zobrazit kurzor
tlačítko přepínání kamery. |
||||
enable_indicator_lig | booleovský | Výchozí: false | Zda zobrazit indikátor |
ht | Rozsah: true/false | světelné tlačítko, podporováno pouze v Q1. | |||||
dekódovací formát | Řetězec | Výchozí: BARCODE_ALL | Rozsah formátů dekódování. Výchozí je BARCODE_ALL, formáty jsou odděleny „,“. | ||||
decoder_mode | int | Výchozí: 2 Rozsah: 0/1/2 | Režim dekódování: 0: režim1
1: režim2 2: režim3 |
||||
enable_return_imag
e |
booleovský | Výchozí: false
Rozsah: true/false |
Zda
obraz. |
na | návrat | a | naskenované |
index_kamery | int | Výchozí: 0 Rozsah: 0/1/2 | 0: hlavní skener (pevná kamera).
1: druhý skener (zomm kamera). 2:zákaznická zobrazovací kamera. |
||||
scan_time_out | dlouhé (ms) | Výchozí: -1
Rozsah: >0 |
<=0: skenovat navždy
>0: skenování s časovým limitem, při vypršení časového limitu vrátí chybu časového limitu, provede se pouze v synchronizovaném rozhraní. |
||||
scan_section_bord
er_color |
int | Výchozí:
Barva bílá |
Barva okraje skenování, použijte
Barva.argb |
||||
scan_section_corne r_color | int | Výchozí: Color.argb(0xFF, 0x21, 0xDB,
0xD5) |
Barva rohu skenování | ||||
scan_section_line_
barva |
int | Výchozí:
Barva.ČERVENÁ |
Barva skenovací čáry | ||||
scan_tip_text | Řetězec | Výchozí: automatické skenování při uchopení naskenovaného dokumentu
obrázek |
Text tipu pod okrajem skenování | ||||
scan_tip_textSize | int | Výchozí: 15 | Velikost textu tipu
Jednotka: sp |
||||
scan_tip_textColor | int | Výchozí:
Barva bílá |
Barva textu tipu | ||||
scan_tip_textMargi n | int | Výchozí: 30 | Vzdálenost mezi textem tipu a spodní částí obrazovky
Jednotka: dp |
||||
flash_light_state | booleovský | Výchozí: false | Počáteční stav blesku true: otevřeno
nepravda: uzavřený |
||||
indikátor_stav_světla | booleovský | Výchozí: false | Počáteční stav kontrolky true: otevřeno
nepravda: uzavřený |
režim skenování | Řetězec | Výchozí: dialog | Režim okna skeneru
dialog: aktivita se zadaným překrytím uživatelského rozhraní:má pouze okno skeneru, bez názvů uživatelského rozhraní, tlačítka uživatelského rozhraní, okno skeneru nad ostatními aktivitami uživatelského rozhraní |
scan_camera_expo jistě | int | Výchozí: 0 | Kompenzace expozice fotoaparátu pro fotoaparát se zoomem |
scan_time_limit | int | Výchozí: 50 | Maximální doba dekódování |
enable_mirror_scan | booleovský | Výchozí: true | Povolit skenování zrcadel
Výchozí hodnota je true, otevřeno |
povolit_handsfree | booleovský | Výchozí: true | Povolení handsfree spustí detekci pohybu a osvětlení pohybu. Obecně platí, že při neustálém skenování by to mělo být povoleno.
Pouze pro skener Zebra. |
enable_ui_by_zebr a | booleovský | Výchozí: true | true: zobrazení uživatelského rozhraní, false: skrytí uživatelského rozhraní. Pokud skryjete uživatelské rozhraní, rychlost spuštění skeneru se zrychlí.
Pouze pro skener Zebra. |
enable_mobile_pho ne_screen_mode | booleovský | Výchozí: nepravda | true: zlepšuje výkon čtení čárových kódů na mobilních telefonech a elektronických displejích, ale může zvýšit dekódování
čas. Pokud tedy nepotřebujete skenovat kód z telefonu, nastavte jej na hodnotu false. Pouze pro skener Zebra. |
enable_upca_count ry | booleovský | Výchozí: true | true: po dekódování UPC_A zobrazit na prvním místě kód země; false: po dekódování UPC_A skrýt na prvním místě kód země.
Pouze pro skener Zebra. |
enable_decoding_ill umination | booleovský | Výchozí: true | Povolení osvětlení obvykle vede k lepším snímkům. Účinnost osvětlení se snižuje
vzdálenost k cíli se zvyšuje. true: Povolte Decoding Illumination, dekodér zapne osvětlení každého zachyceného snímku pomoc |
dekódování.
false: Deaktivujte dekódovací osvětlení, dekodér nepoužívá dekódovací osvětlení. Pouze pro skener Zebra. |
|||
enable_motion_illu mination | booleovský | Výchozí: nepravda | true: zapíná pohybové osvětlení v režimech hands-free a automatického zaměřování.
false: vypne pohybové osvětlení. Tento parametr platí pouze pro režim handsfree. Pouze pro skener Zebra. |
Režim skeneru
V dialogovém režimu je uživatelské rozhraní skeneru nakresleno službou skeneru fotoaparátu, třetí aplikace nemusí uvažovat o uživatelském rozhraní.
V režimu překrytí poskytuje služba skeneru fotoaparátu pouze okno skeneru, okno se zobrazí v horní části třetího uživatelského rozhraní aplikace. Takže třetí aplikace může kreslit uživatelské rozhraní sama, jako je název, tlačítka. V tomto režimu, pokud aplikace potřebuje přepnout fotoaparát, blesk, kontrolku, musí použít vysílání, jak je uvedeno níže:
Fotoaparát:
Akce vysílání: com.wizarpos.scanner.setcamera
Vysílací klíč: overlay_config
hodnota: 0 Pevná kamera;1 kamera se zoomem; 2 zákaznická zobrazovací kamera
Bleskové světlo:
Akce vysílání: com.wizarpos.scanner.setflashlight
Vysílací klíč: overlay_config
Hodnota: true otevřeno; falešně uzavřeno
Kontrolka:
Akce vysílání: com.wizarpos.scanner.setindicator
Vysílací klíč: overlay_config
Hodnota: true otevřeno; falešně uzavřeno
Sample Kód: // otevření blesku
Záměr záměr=new Záměr();
intent.setAction(ScanParameter.BROADCAST_SET_FLASHLIGHT);
intent.putExtra(ScanParameter.BROADCAST_VALUE, sendBroadcast(intent);
Skener Zebra
Skenování zebry vyžaduje následující podmínky:
- Existující Zebra imager.
- Nastavte parametr „camera_index“ na 0- main scanner.
- Když je obrazovka černá, kamera nefunguje.
- Nastavte parametr „enable_ui_by_zebra“ na hodnotu false – skryjte výchozí uživatelské rozhraní před systémem.
ScanResult
Pole | Typ | Popis |
výsledný kód | Int | >=0: Úspěch
<0: Selhání Viz také Kód chyby |
text | Řetězec | Textový výsledek, vrátí null, když dojde k chybě, formát textu je UTF-8, v případě potřeby jiný formát, získejte raw buffer
a změnit se sám. |
rawBuffer | Byte[] | Surový buffer |
bitmapa | Bitmapa | Naskenovaný obrázek se vrátí po nastavení parametru enable_return_image je
věrný. |
Formát čárového kódu | Řetězec | Formát čárového kódu, viz
Dodatek |
Kód chyby
Hodnota | Popis |
1 | Úspěch |
0 | Zrušit |
2 | Plně se zobrazí uživatelské rozhraní skenování |
-1 | Služba byla obsazena |
-2 | Fotoaparát nelze otevřít |
-3 | Časový limit skenování |
-4 | Neplatný parametr |
Používání
Integrace služby skeneru
Služba skeneru používá AIDL, takže aplikace třetích stran musí obsahovat AIDL files( získat z \source\aidl z balíčku SDK čárového kódu), který poskytuje WizarPOS. Dále jsou popsány způsoby integrace v Eclipse a Android Studio.
The files zahrnují:
V Eclipse vložte všechny files do balíčku: com. server clouds.scan. řekl.
V Android Studio nejprve vložte AIDL files v balíčku (com. cloud poz. scan server.aidl) , balíček je ve složce (src—main—aildl), pokud balíček a složky neexistují, nejprve je vytvořte.
A pak vložte balíček (com. cloud pos.scan server.and), dva java files balíček ve složce (src—main-java), pokud balíček a složky neexistují, nejprve je vytvořte.
čistý projekt, pokud je úspěšně kompilován ve složce: build-generated-source-aidl-debug, pak aplikace může úspěšně zavolat službu skeneru.
Závazná služba
Poskytli jsme rozhraní API pro službu vazby. Vložte rozhraní a nástroj do libovolného balíčku. Získejte z \source\aidlControl z balíčku SDK pro čárový kód.
- Ke svázání služby použijte následující metodu:
AidlController.getInstance().startScanService(toto, toto); - Implementujte rozhraní IAIDLListener. Získejte službu skeneru, použijte službu k volání funkcí.
Tuto funkci použijte k odvázání služby.
Podrobnosti naleznete také v demo projektu.
Dodatek
Formát čárového kódu
Exampten:
Dokumenty / zdroje
![]() |
wizarPOS 2D Smart POS [pdfPokyny 2D Smart POS, 2D, Smart POS |