Pázmány Péter Katolikus Egyetem Információs Technológiai Kar. Mobil alkalmazások fejlesztése. Vonalkód leolvasó Symbian alapú mobiltelefonra



Hasonló dokumentumok
Mobil alkalmazások fejlesztése. Utazási jegyek vásárlása, ellenőrzése és kezelése mobiltelefonos alkalmazások segítségével

ANDROID EMULÁTOR. Avagy nincsen pénz drága telóra.

Blackberry 9000 (Bold) HTC Diamond 2. HTC 6262 Hero

Pocket Office (Word, Excel, PowerPoint, OneNote, PDF viewer)

MOBIL PLATFORMHÁBORÚ. Török Gábor

Készülék árak május. Blackberry 9000 (Bold) 850/900/1800/1900 MHz HSDPA, EDGE, GPRS, MMS. bluetooth

Súlya: 66g Színes, grafikus kijelző GPRS WAP WAP, MMS. Mp3 lejátszó Infravörös port, Bluetooth. Diktafon, Kihangosítás. Súlya: 81g GPRS WAP, WAP, MMS

Symbian Nokia. A Symbian gyártója és a Nokia szabad forráskódúvá tette a Symbiant, így szabadon fejleszthetőek az applikációk a szoftverre.

Bevezetés, platformok. Léczfalvy Ádám

Érvényes: október 15.-től visszavonásig

Bevezetés a Symbian operációs rendszerbe

Mobil eszközök programozása Mivel is kezdjem?

Mobil eszközök programozása Mivel is kezdjem?

A NetBeans IDE Ubuntu Linux operációs rendszeren

A CA-42 adatkommunikációs kábel gyors telepítési útmutatója

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

Okostelefonok az idősek szolgálatában. Sulyok Tamás

Ismerkedés a Python programnyelvvel. és annak micropython változatával

iseries Client Access Express - Mielőtt elkezdi

1. DVNAV letöltése és telepítése

Tisztelt Ügyfelünk! Nokia 6230i Beállítások. Személyes profil létrehozása és beállítása :

Könyvtári címkéző munkahely

Készülék típusa ÁR. Ezüst, kék és narancssárga színekben értékesítjük.

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

Programzás I gyakorlat

Touch me - az Iphone világsikerének titkai

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

Ubuntu Desktop a zsebedben

Sony Ericsson P910i BlackBerry Connect telepítési segédlet

Java I. A Java programozási nyelv

Internet alkamazások Készítette: Methos L. Müller Készült: 2010

ZEBRA LI3678 VONALKÓD OLVASÓ

TaxiLike használati bemutató Taxitársaságok és Taxisofőrök részére

Figyelem : a 3220 központosított beállítási struktúrával rendelkezik ami lehetővé teszi az összes profil egy helyről történő elérését.

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

Internet programozása. 1. előadás

MOODLE mobileszközön

Az MA-660 eszközillesztő program telepítése

SYMBOL/MOTOROLA LI4278 VONALKÓD OLVASÓ

1_Linux_bevezeto_bash

Médiatár. Rövid felhasználói kézikönyv

Zoiper VoIP mobil alkalmazás szoftver beállítása Android rendszerre

Mobil készülékek programozása

Előadás témája: DVR-ek és hálózati beállításuk Szentandrási-Szabó Attila műszaki vezető

Az operációs rendszer fogalma

VIRTUÁLIS GRAFFITI ÜZENETHAGYÓ RENDSZER

Szoftver alapfogalmak

ICR-E DVR ICR-E83H; ICR-E163H ICR-H41; ICR-H81 Felhasználóí kézikönyv ver 2.1

KnowledgeTree dokumentumkezelő rendszer

Videosquare regisztráció - Használati tájékoztató

IP150 frissítés 4.20-ra

K&H token tanúsítvány megújítás

ZEBRA DS8178 VONALKÓD OLVASÓ

Sharpdesk Információs útmutató

ZEBRA LI3608 VONALKÓD OLVASÓ

Cím: 1054 Budapest, Bank utca 6. II. em. 9. Telefonszám: ; cím: ZEBRA DS2278 VONALKÓD OLVASÓ

MOBILTELEFONON keresztüli internet telefonálás

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Bevezetés a Python programozási nyelvbe

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet Szedjük szét a számítógépet 2.

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Flex: csak rugalmasan!

PDF DOKUMENTUMOK LÉTREHOZÁSA

MKB. Mobil NetBANKár. Mobil eszköz és böngészı beállítások


OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

1. Hogyan tölthetem le a Tesco Clubcard mobilapplikációt mobilkészülékre?

Alcatel PCSuite 1 installálása. Mielőtt elkezdenénk installálni a PCSuit programot bizonyosodjunk meg a következőkről:

RIEL Elektronikai Kft v1.0

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

DATALOGIC POWERSCAN PBT9530-DPM VONALKÓD OLVASÓ

Adatbázis rendszerek. dr. Siki Zoltán

mlearning Mobil tanulás a gyakorlatban

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

ÁNYK53. Az Általános nyomtatványkitöltő (ÁNYK), a személyi jövedelemadó (SZJA) bevallás és kitöltési útmutató együttes telepítése

KIRA. KIRA rendszer. Telepítési útmutató v1

FELHASZNÁLÓI ÚTMUTATÓ A MOBIL BROKER KERESKEDÉSI FELÜLET HASZNÁLATÁHOZ

A Web Services protokoll használata hálózati szkennelésre (Windows Vista SP2 vagy újabb verzió, valamint Windows 7 és Windows 8 esetén)

Podoski Péter és Zabb László

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

Nyomtatható verzió. Samsung Galaxy Tab. Platform. Oldal nyomtatása. Nyitóoldal Mobiltelefonok Táblagép. GT-P1000 Rating

Szakköri segédanyag. Írta: Bátfai Norbert október 26.

Dropbox - online fájltárolás és megosztás

Webes alapú értékesítőkliens használati útmutatója

Hálózati betekint ő program telepítése mobil telefonra. Symbian. alarm shop. Windows mobile Android IPhone Blackberry

Android alapok. Android játékfejlesztés

ANDROID ALKALMAZÁS FEJLESZTÉS

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Kezdő lépések Microsoft Outlook

Verzió: PROCONTROL ELECTRONICS LTD

OpenOffice.org irodai programcsomag

Kezdõ lépések. Nokia N93i-1

ERserver. iseries. Az iseries Access for Windows használatának megkezdése

Torma László Új utakon az ubuntuval. Szeged, 2010

Google Cloud Print útmutató

Az Ön kézikönyve NOKIA

FELHASZNÁLÓI KÉZIKÖNYV 1.sz. melléklet

Átírás:

Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Mobil alkalmazások fejlesztése Vonalkód leolvasó Symbian alapú mobiltelefonra Készítette: Témavezető: Tóth Balázs Viktor Dr. Takács György 2006. december

Tartalomjegyzék: 1. A feladat leírása, elképzelések... 3 2. A telefon (Nokia 6680) bemutatása... 4 2.1. Jellemzők... 4 2.2. Leírás... 4 3. A Symbian története, mai helye a piacon, érdekességek... 5 3.1. A Symbian története... 5 3.2. A Symbian szavakban... 6 3.3. A Symbian mai helye a piacon... 6 3.4. Érdekességek... 7 4. Symbian programozás, Python for S60... 8 4.1. A kezdetek... 8 4.2. A Python programozási nyelv... 8 4.3. A Python for S60 története... 9 4.4. A programozás menete Pythonban... 9 4.5. Néhány egyszerű parancs a Pythonból... 10 5. Vonalkód típusok, DataMatrix kód... 11 5.1. Vonalkód, típusok... 11 5.2. A DataMatrix kód, dekódolása... 11 6. Hol tartok? Hogyan működik a program? Mi a cél?... 13 6.1. A nehézségek... 13 6.2. Az elért eredmény... 13 6.3. Célok... 14 7. A feladat alkalmazhatósága, eladhatósága... 15 7.1. Ötletek, felhasználhatóság... 15 7.2. Már létező rendszerek... 15 8. Irodalomjegyzék... 17 2

1. A feladat leírása, elképzelések A cél egy olyan alkalmazás kifejlesztése Symbian alapú mobiltelefonra, amely képes egy két dimenziós DataMatrix vonalkódot feldolgozni, az eredeti információt abból visszanyerni. Az eredeti elképzelés alapján a mobiltelefon fényképezőjén keresztül történt volna a feldolgozás, azaz a felhasználó lefényképezte volna telefonjával a másik telefon kijelzőjén megjelenő vonalkódot és az már a belekódolt szöveget mutatta volna ki. Ezzel az volt a probléma, hogy a kép mindig nagyon életlen lett, azt feldolgozni szinte lehetetlen. A lenti ábrán egy ilyen kép található. 1. ábra Az újabb elképzelés szerint a vonalkód Bluetooth-on, infrán, vagy akár MMS-ben érkezik meg a telefonra, így az algoritmus is sokkal biztosabb végeredményt ad. Gondoljunk csak bele mennyivel hatékonyabb ez a megoldás, mint akár több képet is készíteni egy kijelzőről, amiből vagy megkapunk valamit vagy nem, de a legrosszabb is megtörténhet, hogy rossz megoldásra jutunk. Ha viszont a vonalkódot nem kijelzőről fényképezzük le az algoritmus jó megoldást adhat, sőt erre már léteznek implementációk is. Későbbi terveim egyike között szerepel ez utóbbi megvalósítása. A végső séma tehát: 1. A mobiltelefonunkra megérkezik a vonalkódot tartalmazó kép a fentebb említett módok egyikében. 2. A programot lefuttatjuk a képre. 3. A kijelzőn a vonalkódba kódolt információt látjuk. 3

2. A telefon (Nokia 6680) bemutatása 2.1. Jellemzők 3G (2100 MHz)+Tri-band ( 900/1800/1900 MHz) 1,23 megapixeles külső CMOS kamera (6x smartzoom, időzítő, sorozatkép) + flash LED a sötétben való fotózáshoz 640*480 (VGA) használó felöli kamera (2x zoom) Videotelefonálás Videorögzítés és -szerkesztés "Forró" RS-MMC(1,8 V-os) csatlakoztathatóság 262144 színű (18bit) grafikus aktív mátrix (176x208) kijelző 3GPP video streaming Real Player USB 2.0 sebesség kompatibilis Pop-port Beépített Bluetooth eszköz SyncML Push To Talk (adó-vevő) Symbian 8.0a operációs rendszer WAP 2.0 XHTML / HTML böngésző 3G-2100 - Maximumális letöltés 384 kbps; feltöltés 128 kbps EGPRS (Class B, Multislot class 10) - Maximális letöltés 236,8 kbps; feltöltés 118,4 kbps Java MIDP 2.0, CLDC 1.1, 3D API, PIM API Hangvezérlés/hangtárcsázás/hangfelvétel Desktop (kéz nélküli) kihangosíthatóság Quick office alkalmazások + PDF olvasó Data mover alkalmazás 2.2. Leírás A Nokia 6680-nal már elérhető a mobilkommunikáció harmadik generációja, azaz a videotelefon, gyors mobilinternet, Mobil Tv, kiváló minőségű videó- és zeneletöltések. A készülék ezen felül kiemelkedően sokoldalú: nagyméretű kijelző, MMS, e-mail, határidőnapló, java játékok, hogy csak néhányat említsünk a funkciók közül. A Nokia 6680 két beépített kamerával rendelkezik, az előlapon található kifejezetten a videotelefonálásra, a hátoldali pedig 1,3 megapixeles optikájával fotózásra is alkalmas. A telefon memóriától függően akár egy órányi videofelvétel rögzíthető és azonnal szerkeszthető is. 4

3. A Symbian története, mai helye a piacon, érdekességek 3.1. A Symbian története 1980: David Potter megalapította a Psion-t. EPOC16. A Psion számos Series 3 eszközt forgalmazott 1991 és 1998 között, amelyek az EPOC16 operációs rendszert használták. EPOC OS Releases 1 3. A Series 5 alapú 1997-ben kibocsátott eszközök használták először az EPOC32-t. EPOC Release 4. Az Oregon Osaris és a Geofox 1 használta az ER4-t. 1998-ban megalakult a Symbian Ltd., az Ericsson, a Nokia, a Motorola és a Psion együttműködéseként, céljuk volt, hogy biztosítsák a konvergenciát a PDA-k és a mobiltelefonok között. EPOC Release 5 - Symbian OS v5. Psion Series 5mx, Series 7, Psion Revo, Psion Netbook, netpad, Ericsson MC218 jelent meg 1999-ben az ER5-t használva. ER5u - Symbian OS v5.1. u = Unicode. Az első telefon az Ericsson R380 -, amely az ER5-t használta 2000-ben jelent meg. Symbian OS v6.0 and v6.1. Néha ER6-nak is hívják. Megjelent az első valódi nyílt Symbiant használó telefon, a Nokia 9210. Symbian OS v7.0 and v7.0s. 2003-ban mutatták be. Minden típusú interfésszel megjelent: UIQ (Sony Ericsson P800, P900, P910, Motorola A925, A1000), Series 80 (Nokia 9300, 9500), Series 90 (Nokia 7710), Series 60 (Nokia 6600, 7310). 2004-ben a Psion eladta részesedését a Symbianből. Úgyszintén 2004-ben megjelent az első féreg Symbianre, a Cabir, amely a Bluetooth kapcsolatot használta fel, hogy átterjedjen a többi telefonra. Symbian OS v8.0. 2004-ben mutatták be, egyik fő újdonsága, hogy két különböző kernel alkalmazását támogatta (EKA1 vagy EKA2). Az EKA2 csak a későbbi Symbian v8.1b verziójánál lett alkalmazva. A két kernel felhasználói szempontból nem sokban különbözik, viszont képességüket tekintve nagyon különbözőek, az EKA1 régebbi driverekhez készült, az EKA2 az újabbakhoz. A v8.0b-t 2003-ban adták ki. Symbian OS v8.1. A 8.0 átgondoltabb verziója, 8.1a és 8.1b verzióban jelent meg, előbbi EKA1, utóbbi EKA2 felhasználásával. Symbian OS v9.0. Belső használatra, 2004-ben készült. A v9.0 jelentette az EKA1 végét, az EKA1 utolsó verziója a v8.1a lett. 5

3.2. A Symbian szavakban A Symbian operációs rendszert főként mobil eszközökben (PDA, mobiltelefon) alkalmazzák. Jellemzője az egyfelhasználós, többfeladatos végrehajtás, grafikus kezelői felület. Egyéni igények szerint alakítható, szoftverekkel fejleszthető szemben az operációs rendszerrel nem rendelkező telefonokkal. Alkalmas a dinamikus memória kezelésére, melynek lényege hogy a rendelkezésre álló összes memória felhasználható bármilyen célra, nincs felosztva, hogy mely alkalmazási területen kell adatokat tárolni benne. Bár egyéb operációs rendszerrel nem rendelkező telefonok is képesek erre, a Symbian operációs rendszerek lényegesen több lehetőséget nyújtanak. 3.3. A Symbian mai helye a piacon A Symbiant jelenleg a Nokia (47,9%), Ericsson (15,6%), Sony Ericsson (13,1%), Panasonic (10,5%), Siemens (8,4%), és a Samsung (4,5%) birtokolja. A BenQ a Siemens AG mobil részlegét megvásárolva nem szerezte meg automatikusan a Siemens részesedését a Symbianben, ehhez a Symbian Supervisory Board jóváhagyása szükséges. A lenti ábrán a cégek részesedése látható a Symbianben. 2. ábra Immáron 250 országban, összesen 100 milliónál is több azon mobiltelefonok száma, amelyen Symbian operációs rendszer fut, jelentette be nemrég a Symbian Limited. A Symbian a világ egyik legkedveltebb operációs rendszere, amelyet a legnagyobb készülékgyártók használnak. Az okostelefonok most egy új kategória, az alacsony árú és magas darabszámban eladható modellek felé nyitnak. A legújabb elemzések szerint 2011-ben eléri az 1 milliárdot a világszerte használt Symbian okostelefonok mennyisége. Az első Symbian operációs rendszerű mobiltelefon az Ericsson R380 smartphone (3. ábra) volt, amely 2000-ben jelent meg. 6

3. ábra 3.4. Érdekességek Manapság rengeteg hasznos és érdekes programot lehet Symbian alapú mobiltelefonunkra szereznünk: Adobe Reader Skype (hamarosan!) Útvonaltervező programok F-Secure Mobile Antivirus Mobil lámpa Régi klasszikusok, mint például a Carmageddon 7

4. Symbian programozás, Python for S60 4.1. A kezdetek Amikor kezembe kaptam a Nokia 6680-ast és a feladatot, hogy a vonalkód leolvasót valósítsam meg azt sem tudtam hol kezdjem. Több ismerősömtől hallottam már róla, hogy mobiltelefont és PDA-t elég nehéz programozni. Aztán ahogy mindenki más is tette volna, elkezdtem az Interneten keresgélni. Első találataim között volt egy Symbian tutorial oldal, ami megrémített a különös szintaxisával és bonyolultságával. Egyre mélyebbre ástam magam és megtaláltam egy érdekes gondolatmenetet: Why use C++ you're masochistic you need full access to the phone's APIs you want to develop middleware libraries need the speed (e.g. computer vision algorithms) Can't do it in Java. Can't do it in Python You like really bizarre naming conventions. Why not use C++ Can do it in Java or Python Ezen oldal alapján elkezdtem keresgélni a Symbian-es Python, a Python for S60 után. Egy magyar fórumon ráadásul találtam ilyen irányú témát, így belevetettem magam a Python programozásba. Egyből megtetszett, hogy egy Hello World! kiíratása nem jár több fájllal és több tíz sorral, mint C++-ban: import appuifw appuifw.note(u"hello World!", 'info') A Python for S60 telepítéséhez az alábbi programokra volt szükségem 1. A Python for S60 telefonunkkal kompatibilis változata (nekem a 2nd Editon FP2- re volt szükségem). 2. A megfelelő verziójú SDK (Software Development Kit). A Nokia 6680-as telefonhoz a 2nd Edition FP2-t kellett letöltenem. Arra nagyon ügyelnem kellett, hogy a két verzió ugyanolyan verziójú legyen, ugyanis ha nem azok, akkor egyáltalán nem működik a Python for S60. 4.2. A Python programozási nyelv A Python egy hatékony és könnyen tanulható programozási nyelv. Nem utasítás-zárójeleket használ, hanem tabulátorok vagy szóközök segítségével tagolja a kódot, ezért kényszeríti a programozót jól formázott kód írására. Vannak, akik ettől a tulajdonságától idegenkednek. 8

Előnyei: Magasszintű adatstruktúrák Egyszerű megközelítésű objektum-orientáltság Elegáns szintaxis Dinamikus típusosság Script nyelv, de a Javahoz hasonlóan egy virtuális gép hajtja végre az ún. bájtkódot. A Javatól eltérően a bájtkód nem publikus, definiált szabvány, az egyes Python verziók között a bájtkód változik. Ezért a Pythonban írt programokat forráskóddal célszerű és szokásos terjeszteni. Lehetséges azonban exe -t is készíteni, ekkor a futtató környezetet is mindig külön tartalmazza az adott program. A Python platformfüggetlen, a Windows-on megírt Python program változtatás nélkül futtatható pl. Linuxon vagy Mac-en (feltéve, hogy a program nem használ csak az adott operációs rendszerre jellemző szolgáltatásokat, ill. az útvonalneveket platformfüggetlen módon kódolja a programozó). C, C++ vagy más C-ből hívható nyelven megírt függvényekkel és adattípusokkal az értelmező könnyen bővíthető. Könyvtárát szinte teljes mértékben rögtön magával hozza, általában nem kell külön modulokat installálni. Rövid programok írása gyors, egyszerű és jól áttekinthető. Ezek a tulajdonságok teszik alkalmassá gyors fejlesztői munkákra (extrém programozás, prototípuskészítés). 4.3. A Python for S60 története A Python for S60 a Python programozási nyelv Nokia által megvalósított Series60 mobiltelefonokra írt változata. A Python nyelv alap tudásán felül a telefon több okostelefon funkcióját is kezelni tudja, pl. kamera, kapcsolatok, naptár, hang felvevés és lejátszás, TCP/IP és Bluetooth kommunikáció. A 2004-es év közepén a Nokia bemutatta az akkor még Amaretto-nak nevezett Python for S60 pre-release változatát. 2004.12.26-án megjelent a Python for S60 1.0. 2005.10.22-én megjelent a Python for Series 60 1.2 számos új funkcióval: kamera kezelés, kapcsolatok, audio kezelés, grafika. A Nokia új N70 és N90 telefonjait is támogatta. 2006.01.27-én a Python for S60 a Nokia nyílt forráskódú rendszerének részévé vált az 1.3.1 verzióval. 4.4. A programozás menete Pythonban 1. A program megírása egy szövegszerkesztő programban történik, lehetőleg egy olyanban, ami tud highlight-okat a jobb áttekinthetőség érdekében. Én a Scintilla Text Editort használtam. 2. Lehetőség van a program lefuttatására egy emulátoron. 3. A program lefordítása SIS fájlra. 9

4. A SIS fájl feltöltése és telepítése a telefonra. A program a telefonon kétféle módon futtatható: 1. A py fájlt a telefonra felrakva és a py kiterjesztésű fájlt lefuttatva a Python programban. 2. A SIS fájllá alakított py fájlt a telefonra telepítve. Ekkor úgy viselkedik a program, mint egy teljesen független alkalmazás. 4.5. Néhány egyszerű parancs a Pythonból A cím kiíratása, mint az alkalmazás neve appuifw.app.title = u"cím" Query ablak kiíratása appuifw.query(u"írj valamit:", "text") Választólista készítése Menu = [u'elsõ', u'második', u'harmadik'] test = appuifw.selection_list(choices=menu, search_field=1) Saját függvény definiálása def valamifuggveny(): Data = appuifw.query(u Írj egy szót:, "text") Appuifw.note(u A szó amit írtál: +data, "info") valamifuggveny() Multi-választólista: Menu = [u'elsõ', u'második', u'harmadik', u'negyedik', u'ötödik', u'hatodik', u'hetedik', u'nyolcadik'] test = appuifw.multi_selection_list(menu, style='checkbox', search_field=1) print test Kijelzõméret beállítása appuifw.app.screen='large', ahol: Teljes kijelzõs: 'full' Nagy kijelző: large Normál kijelző: normal Ablaktörzs beállítása appuifw.app.body = appuifw.text(u"tartalom") app_lock = e32.ao_lock() app_lock.wait() 10

5. Vonalkód típusok, DataMatrix kód 5.1. Vonalkód, típusok A vonalkód egy gép által olvasható reprezentációja az információnak vizuális formában. Eredetileg a vonalkódok a vonalak és az azok közti üres részekben hordozták az információkat, manapság viszont már léteznek újabb szabványok is. Szkennerekkel lehet őket leolvasni, vagy speciális erre készült szoftverekkel. Amíg a régebbi vonalkódok csak számokat kódolhattak, az újabb szabványok már a teljes ASCII táblát is tartalmazhatják. A mátrix kódok amelyek már nem vonalakból, hanem négyzetekből állnak - sokkal több információt tudnak kódolni sokkal kisebb helyen. Néhány vonalkód típus EAN-8: EAN-13: Code128: DataMatrix: 5.2. A DataMatrix kód, dekódolása A DataMatrix egy két dimenziós mátrix vonalkód, amely fekete és fehér négyzetekből áll négyzet vagy téglalap alakba rendezve. A kódolható információ lehet szöveg vagy nyers adat, a szokásos adatméret néhány bájttól 2 kilobájtig terjed. Hibajavító kódok adják a szimbólumok megbízhatóságát: ha részben sérültek is, attól még leolvashatók. A DataMatrix kód 2335 karaktert tud maximum kódolni. A szimbólumok négyzetek, amelyek modulokat alkotva reprezentálják a biteket. A Szimbólum méret 8 8-tól 144 144-ig terjedhet.. 11

A dekódolás az alábbi módon történik Minden modulnak van egy kerete: A kereten belüli négyzetből a 0 vagy 1 értéket az alábbi ábra alapján kapjuk meg: Tehát a dekódolást egy kisebb mátrixszal végezzük, a 0-1 sorozatokat azokból folyamatosan kiolvasva. Minden kisebb mátrix egy bájtnak felel meg, aminek így 8 értéke van. Elvégezve a kijött kettes számrendszerbeli számoknak tízes számrendszerbeli számmá való alakítását alap esetben ASCII kódokat kapunk. Ezeket az ASCII táblából kinézve megkapjuk a kódolt üzenetet. 12

6. Hol tartok? Hogyan működik a program? Mi a cél? 6.1. A nehézségek A Python for S60 számítógépre való telepítésével nagyon sokat bajlódtam, a leszedett verziók sehogy sem akartak kompatibilisek lenni. A magyar és külföldi fórumokat végignézve egy darabig semmilyen segítséget nem találtam, csak annyit, hogyha a telepítés során EPOCROOT folder címen NULL -t ír ki, azt nem tudják hogy miért de nem működik. Sok szenvedés és utánajárás után szerencsére találtam egy weblapot, ahol a szerző lépésről lépésre leírta, hogy milyen verziókat telepítsek fel. Ezt a problémát körülbelül két hetembe tellett megoldanom. A következő akadály a Python programozási nyelv szintaktikája volt, nincs pontosvessző a sorok végén például, a tagolás alapján történik a kód értelmezése. Az egyes alap modulok hiánya is megnehezítette a munkámat. Nehézkes volt a hibakeresés is, mert ha a programot mint külön alkalmazást futtatok és hiba van a kódban, akkor a program mindenféle hibaüzenet nélkül kilép. Később rájöttem, hogyha nem SIS, hanem a py fájlt rakom fel a telefonra, akkor mint scriptet lefuttatva a Python programban kiírja a hibaüzeneteket. Amikor már készen volt a program képleolvasó része, azaz egy fekete-fehér kép 1-0 alapú eltárolása sokáig nem találtam a DataMatrix dekódoló algoritmusát. A legnehezebb feladatnak viszont a dekódoló algoritmus megtalálása után annak megírása bizonyult, főleg Python szintaktikával, nem a szokásos adatszerkezetekkel. 6.2. Az elért eredmény Tehát a vonalkód leolvasó program 3 részből áll 1. A vonalkódot tartalmazó kép beolvasása, eltárolása. 2. A dekódoló algoritmus lefuttatása. 3. Az ASCII kódok karakterekké való konvertálása. A képben található információ 0-1 alapú eltárolása tökéletesen működik. Az alábbi képen a mobiltelefon kijelzőjén látható az eredmény, az első képen az eredeti, beolvasandó kép, a második képen a 0-1 mátrix látható. A dekódoló algoritmust az idő hiányában nem sikerült tökéletesen megírnom. 13

Jól látható, hogy a bal oldali képen látható H betű megjelenik a jobb oldali képen is. Hatékonyság Az alábbi ábrán is látható, hogy a program futása közben nem foglal sok memóriát. 6.3. Célok A dekódoló algoritmust megvalósítani. Céljaim között szerepel egy olyan rendszer kialakítása, ahol a felhasználó a képeket mint egy fájl böngészőben kezelheti és például egy Opciók Dekódolás kombinációval egyből megkaphatja a vonalkódból visszanyerhető információt. A fényképezővel történő leolvasás a feladatnak egy különös megvilágítást adna, tehát a következőkben érdemes lenne egy ilyen irányban is elindulnom. A következő fejezetben részletesebben írok a fényképezővel történő leolvasás előnyeiről. 14

7. A feladat alkalmazhatósága, eladhatósága 7.1. Ötletek, felhasználhatóság A program beléptető rendszereknél és olyan helyeken lehet hasznos, ahol valamilyen jogosultságot kell egy embernek ellenőriznie. Ilyen lehet például egy menetjegy ellenőrzése is, amelyet nem lehet egy géppel egyelőre megoldani. A későbbi fényképezős megoldás sokkal messzebbre vezet Áruk megbízhatóságának növelése, olyan információkat tartalmazna a vonalkód, mint például a farm neve ahol készült. Egy hirdetésen lévő vonalkóddal akár internet címre is ugorhatunk. Ugyanakkor az összetevőkről is tájékoztathatná a vevőt. Mozifilmet reklámozó plakáton elhelyezve tartalmat is meg lehetne vele jeleníteni. Az online vásárlást is segítheti: a vevő csak akkor léphetne tovább egy bizonyos ponton, ha a vonalkódot lefényképezte és ezáltal egy emeltdíjas SMS-t küldött. Egy hírportálon például minden hírhez tartozna egy vonalkód és azt a telefonnal lefényképezve a mobilon is olvashatnánk a hírt. 7.2. Már létező rendszerek Az Interneten számos megvalósítását találtam hasonló rendszereknek. Kaywa Reader http://reader.kaywa.com/ A letöltés regisztrációhoz kötött, ingyenes Ha a program vonalkódot lát fél percen belül, egyből végrehajtja annak tartalmát, például az alábbi képet észlelve a Google oldalára lép: 15

Semapedia http://semapedia.org/ Az elképzelés az, hogy a Wikipedia által szolgáltatott információkat ki lehetne tenni például a híresebb helyekre és azt lefényképezve a mobilon olvashatnánk arról a helyről. Lavasphere for Smartphones Hasonló rendszer, mint az előbbiek. A következőket említi felhasználási területének: o M-Commerce o Mobile marketing and advertising o Access to multimedia HTML, XHTML, WAP information and services o Print-to-web integration o Content linking o Data collection o E-Ticketing o Price comparison o Logistics 16

8. Irodalomjegyzék http://www.t-mobile.hu/egyeni/vasarlas/telefonismertetok/ismertetok/keszulek_364.shtml http://www.mobilport.hu/?r=8023 http://wiki.opensource.nokia.com/projects/pys60_history http://en.wikipedia.org/wiki/symbian_os http://org.csail.mit.edu/mode/index.php/symbian_development_general_notes http://www.symbianforum.hu/content.php?article.24 http://mikcsabee.uw.hu/index.php?&lang=hun&modul=leirasok&read=1 http://hu.wikipedia.org/wiki/python_programoz%c3%a1si_nyelv http://en.wikipedia.org/wiki/barcode http://en.wikipedia.org/wiki/datamatrix http://grandzebu.net/informatique/codbar-en/datamatrix.htm http://semapedia.org/ http://reader.kaywa.com/ 17