d i p l o m s k a n a l o g a - Študiraj v novem mestu | fiŠ · izjava o avtorstvu podpisani...

93
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE V NOVEM MESTU D I P L O M S K A N A L O G A VISOKOŠOLSKEGA STROKOVNEGA ŠTUDIJSKEGA PROGRAMA PRVE STOPNJE DEJAN ERJAVEC

Upload: others

Post on 26-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

FAKULTETA ZA INFORMACIJSKE ŠTUDIJE

V NOVEM MESTU

D I P L O M S K A N A L O G A

VISOKOŠOLSKEGA STROKOVNEGA ŠTUDIJSKEGA PROGRAMA

PRVE STOPNJE

DEJAN ERJAVEC

Page 2: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 3: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

FAKULTETA ZA INFORMACIJSKE ŠTUDIJE

V NOVEM MESTU

DIPLOMSKA NALOGA

IMPLEMENTACIJA ANDROID MOBILNE

APLIKACIJE Z RS232 KOMUNIKACIJO

SENSORTALK

Mentor: pred. Gregor Berginc

Somentor: viš. pred. mag. Andrej Dobrovoljc

Novo mesto, september 2015 Dejan Erjavec

Page 4: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

IZJAVA O AVTORSTVU

Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam:

da sem diplomsko nalogo pripravljal samostojno na podlagi virov, ki so navedeni v

diplomski nalogi,

da dovoljujem objavo diplomske naloge v polnem tekstu, v prostem dostopu, na

spletni strani FIŠ oz. v elektronski knjižnici FIŠ,

da je diplomska naloga, ki sem jo oddal v elektronski obliki identična tiskani verziji,

da je diplomska naloga lektorirana.

V Novem mestu, dne _________________ Podpis avtorja(ice) ______________________

Page 5: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

Zahvala

Iskreno se zahvaljujem mentorju pred. Gregorju Bergincu in somentorju viš. pred. mag.

Andreju Dobrovoljcu za vodenje, strokovno pomoč in podporo pri pisanju diplomske naloge.

Zahvaljujem se podjetju Krka, d. d., Novo mesto za možnost opravljanja delovne prakse v

konstruktivnem okolju in za učenje dela z merilnimi napravami.

Hvala tebi, Blažka, ki si mi v času mojega študija stala ob strani ter skrbela za otroka,

predvsem pa za potrpežljivost. Hvala Neli in Neži za vajino prisotnost, s katero sta mi krepili

voljo za študij.

Posebna zahvala gre staršema za vso pomoč, podporo in pozitivne misli, brez katerih bi bil

študij mnogo težji.

Zahvaljujem se tudi Ivanki Višček za lektoriranje diplomske naloge.

Page 6: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 7: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

POVZETEK

Digitalne komunikacije nas danes spremljajo prav na vsakem koraku. V ozadju razvoja

hitrejših in uporabnikom prijaznejših digitalnih komunikacijskih protokolov med

elektronskimi napravami počasi zamirajo standardi in tehnologije prenosa podatkov, ki so se

uporabljali skoraj 30 let. Vendar kljub razvoju tehnologij še vedno lahko zasledimo uporabo

robustnega komunikacijskega protokola serijske komunikacije za potrebe vzdrževanja

industrijskih merilnih naprav. Razvoj sodobne mobilne tehnologije, predvsem mobilnih

telefonov, predstavlja pomemben del našega vsakdanjega življenja. Zmogljivosti mobilnih

naprav lahko že primerjamo z zmogljivostmi klasičnih računalniških sistemov. Z diplomsko

nalogo sem skušal raziskati možnosti razvoja mobilnega komunikacijskega sistema med

Android pametnimi mobilnimi telefoni in industrijskimi merilnimi napravami kot izboljšavo

vzdrževanja merilnih naprav. Na koncu sem predstavil ugotovitve, pridobljene tekom

implementacije in testiranja mobilne aplikacije SensorTalk s podporo serijske komunikacije z

merilnimi napravami.

KLJUČNE BESEDE: serijska komunikacija, univerzalno serijsko vodilo, komunikacijski

pretvornik, Android, mobilna aplikacija

ABSTRACT

These days digital communications follow us every step of our lives. Old fashioned standard

communication protocols between electrical devices that were in use for the last 30 years, are

vanishing in the background of fast modern communication protocols. But on most industrial

measuring devices we can still find serial communication protocols used for maintenance and

repair. Development of the modern mobile smart phones has become important part of our life

today. The newest smart phones already mostly meet the efficiency of the PCs. With this

thesis I wanted to research the possibilities how to develop mobile communication system

between Android smart phone and industrial measuring devices with serial protocols. The

main purpose was to find improvements in maintenance of the measuring devices. At the end

I introduced solution of implemented and tested Android mobile serial communication

application SensorTalk with supported measuring devices.

KEY WORDS: Serial communication, Universal Serial Bus, communication converter,

Android, mobile application

Page 8: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 9: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

KAZALO

1 UVOD ................................................................................................................................. 1

1.1 Raziskovalno vprašanje in cilji raziskave .................................................................... 3

1.2 Pričakovani rezultati .................................................................................................... 3

2 VHODNO IZHODNI PODATKOVNI TOKOVI RAČUNALNIŠKE

KOMUNIKACIJE ............................................................................................................. 4

2.1 Serijska komunikacija RS-232 ..................................................................................... 6

2.2 Univerzalno serijsko vodilo (USB) .............................................................................. 8

2.3 Universal Serial Bus – On-The-Go (OTG) ................................................................ 12

2.4 Pretvornik USB – RS232C ........................................................................................ 13

3 MOBILNE TEHNOLOGIJE IN ORODJA RAZVOJA ................................................... 14

3.1 Mobilne naprave ........................................................................................................ 14

3.2 Mobilni operacijski sistemi ........................................................................................ 16

3.3 Operacijski sistem Android ....................................................................................... 17

3.4 Delovanje Android OS in mobilnih aplikacij ............................................................ 18

3.5 Življenjski cikel mobilne aplikacije Android ............................................................ 20

3.6 Razvojno okolje Android Studio ............................................................................... 21

3.7 Android SDK ............................................................................................................. 22

4 RAZVOJ MOBILNE APLIKACIJE SENSORTALK ..................................................... 23

4.1 Metodologija .............................................................................................................. 23

4.2 Obstoječe stanje in pričakovanja ............................................................................... 24

4.2.1 Pregled obstoječih programskih rešitev ............................................................. 25

4.2.2 Opis praktičnega postopka komunikacije ........................................................... 26

4.3 Specifikacija zahtev funkcionalnosti aplikacije SensorTalk...................................... 27

4.4 Načrtovanje aplikacije ............................................................................................... 28

4.5 Programski vmesnik – gonilnik ................................................................................. 29

4.5.1 Komunikacijski protokol pretvornika PL2303HX .............................................. 30

4.5.2 Gonilnik .............................................................................................................. 31

4.6 Grafični uporabniški vmesnik .................................................................................... 33

Page 10: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 11: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

4.6.1 Načrtovanje in implementacija uporabniškega grafičnega vmesnika ................ 33

4.6.2 Primarni uporabniški vmesnik............................................................................ 36

4.6.3 Vmesnik nastavitev ............................................................................................. 40

4.6.4 Vmesnik za orodja .............................................................................................. 43

4.6.5 Vmesnik komunikacijskega terminala ................................................................ 44

5 TESTIRANJE APLIKACIJE ........................................................................................... 48

5.1 Testna mobilna naprava ............................................................................................. 48

5.1.1 Lastnosti testne mobilne naprave LG G3 ........................................................... 49

5.2 Testna zunanja merilna naprava................................................................................. 49

5.2.1 Protokol serijske komunikacije tehtnice AT ....................................................... 50

5.3 Načrtovanje in testiranje ............................................................................................ 53

5.3.1 Načrtovanje poteka testiranja ............................................................................ 53

5.3.2 Modeliranje poteka testiranja in določitev kriterija ustreznosti ........................ 55

5.4 Rezultati testov .......................................................................................................... 57

6 ZAKLJUČEK ................................................................................................................... 58

7 LITERATURA IN VIRI ................................................................................................... 61

Page 12: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 13: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

KAZALO SLIK

Slika 2.1: Primer štirinivojske arhitekture USB kontrolnika z nekaterimi napravami in

razdelilniki (angl. hub). .............................................................................................. 9

Slika 2.2: Shematski prikaz sestave USB vodnika z oznakami posameznih žic. ....................... 9

Slika 3.1: Nabor novejših in popularnih vrst mobilnih naprav................................................. 15

Slika 3.2: Shema Android programske kopice (angl. software stack)...................................... 19

Slika 3.3: Diagram poteka življenjskega cikla Android mobilne aplikacije z ustreznimi klici

sistemskih funkcij. .................................................................................................... 21

Slika 3.4: Osnovni uporabniški grafični vmesnik razvojnega okolja Android Studio. ............ 22

Slika 4.1: USB pretvornik Aten UC232A. ............................................................................... 30

Slika 4.2: Idejna skica aktivnosti aplikacije SensorTalk .......................................................... 34

Slika 4.3: Prikaz različnih dimenzij grafičnih vmesnikov aplikacije SensorTalk .................... 35

Slika 4.4: Izrezek slike Android standardnega gumba »nazaj« ................................................ 36

Slika 4.5: Levo dialog ročnega pridobivanja dovoljenja, desno dialog zagona aplikacije ob

priključitvi USB pretvornika .................................................................................... 37

Slika 4.6: Preverjanje imetnika dovoljenja uporabe storitev USB ........................................... 37

Slika 4.7: Metoda prejemnika zahtevanega dovoljenja uporabe storitev USB ........................ 38

Slika 4.8: Začetni uporabniški grafični vmesnik s prikazom podatkov pred in po

prepoznavanju USB naprave ................................................................................... 39

Slika 4.9: Obvestila, generirana v povezavi s priključeno USB napravo ................................. 40

Slika 4.10: Grafični vmesnik aktivnosti z nastavitvami serijske komunikacije ....................... 41

Slika 4.11: Metoda klica gumba nazaj, detekcija sprememb in klic funkcije za shranjevanje

nastavitev ................................................................................................................ 42

Slika 4.12: Potrditev ali zavrnitev shranjevanja sprememb v nastavitvah ............................... 42

Slika 4.13: Metoda shranjevanja nastavitvenih parametrov v ozadju aplikacije ...................... 43

Slika 4.14: Metodi za preverjanje razpoložljivosti strojne opreme in vklop/izklop funkcije

ročne svetilke .......................................................................................................... 44

Slika 4.15: Uporabniški vmesnik aktivnosti "Tools" ............................................................... 44

Slika 4.16: Definiranje opravila, ki se bo izvajal v ozadju aplikacija ter klic funkcije za

posodabljanje prejetih podatkov ............................................................................. 46

Page 14: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 15: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

Slika 4.17: Metoda za posodobitev prejetih podatkov na zaslonu in kontrolniki opravila v

ozadju aplikacije ..................................................................................................... 46

Slika 4.18: Potrditveni dialog ponastavljanja komunikacijskega terminala ............................. 47

Slika 4.19: Vmesnik serijskega terminala aplikacije ter primer poslanih (zeleno) in prejetih

(oranžno) prikazanih podatkov .............................................................................. 47

Slika 5.1: Shema formata poslanih podatkov tehtnice gostitelju ............................................. 52

Slika 5.2: Načrtovani potek uporabe mobilne aplikacije po opisu specifikacije uporabniških

zahtev. ....................................................................................................................... 54

KAZALO TABEL

Tabela 4.1: Opis štirih obstoječih aplikacij s serijsko komunikacijo po kriteriju izbora najbolj

ocenjena in plačljiva aplikacija............................................................................. 26

Tabela 5.1: Pomembnejše lastnosti mobilne naprave za izvedbo testov .................................. 49

Tabela 5.2: Nastavitveni parametri serijske komunikacije tehtnice Mettler Toledo tipa AT ... 50

Tabela 5.3:Tabela uporabljenih ukaznih stavkov in opisi zahtevkov ....................................... 52

Tabela 5.4: Komunikacijski protokoli testnih ciklov aplikacije SensorTalk............................ 55

Tabela 5.5: Primer modeliranja testiranja aplikacije SensorTalk. ............................................ 56

Page 16: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 17: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

1

1 UVOD

Digitalne komunikacije nas danes spremljajo prav na vsakem koraku, največkrat le-teh ne

opazimo. Večina sodobnejših komunikacijskih protokolov se izvaja s pomočjo brezžičnih

tehnologij. V ozadju razvoja hitrejših in uporabnikom prijaznejših digitalnih komunikacijskih

protokolov med elektronskimi napravami počasi zamirajo standardi in tehnologije prenosa

podatkov, ki so se uporabljali skoraj 30 let. Prednosti, ki jih pripisujemo trajni uporabnosti

starejšim komunikacijskim tehnologijam (npr. TIA-232-F), je sprva enostavna uporaba in kot

drugo zakoreninjenost v vseh vejah sodobne elektronike ter računalniške tehnologije. Vedno

bolj razširjena novejša komunikacijska tehnologija (USB, Bluetooth) izpodriva starejše

tehnologije. To pomeni, da je uporaba starejših tehnologij težja ali včasih nedostopna. Pri

novejših računalniških sistemih se starejši komunikacijski vmesniki praktično več ne

vgrajujejo.

Čeprav vgradnja sodobnih komunikacijskih vmesnikov izpodriva starejše tehnologije pri

računalniških sistemih in elektronskih napravah, še vedno lahko zasledimo vgrajene

tehnologije klasične serijske komunikacije. Predvsem pri industrijskih merilnih napravah

fizikalnih veličin kot servisni komunikacijski vmesnik. Vmesnik se pri merilnih napravah

tako uporablja npr. za prvi zagon naprave, nastavljanje sistemskih parametrov in odpravljanje

merilnih negotovosti, odkritih med periodično kalibracijo. Potreba po uporabi tehnologije

serijske komunikacije v sodobnem času je privedla do razvoja namenskih integriranih vezij.

Te naprave imenujemo komunikacijski pretvorniki, s katerimi obojestransko transformiramo

komunikacijski protokol med novejšim in starejšim protokolom. Serijski pretvorniki so tako

postali pomemben člen pri vsakodnevnih opravilih strokovnjakov iz smeri meroslovja ter

vzdrževanja merilne tehnike.

Poleg razvoja tehnologij digitalnih komunikacij je v porastu tudi razvoj sodobnih mobilnih

naprav. Z vedno večjim naborom vgrajenih elektronskih pripomočkov in sodobnim

komunikacijskim vmesnikom USB razširjajo uporabnost na različnih področjih. Mobilne

naprave, predvsem mobilni telefoni, predstavljajo pomemben del našega vsakdanjega

življenja. Zmogljivost mobilnih naprav lahko tako programsko kot tudi strojno že primerjamo

Page 18: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

2

z zmogljivostmi klasičnih računalniških sistemov. Trenutno je pri mobilnih napravah v

uporabi najpogosteje nameščen operacijski sistem Android.

Cilj diplomske naloge je z naborom sodobnih strojnih in programsko razvojnih orodij

vzpostaviti mobilni sistem za enostavno serijsko komunikacijo. S celovito rešitvijo bom

skušal izboljšati delovne procese pri vzdrževanju merilnih naprav. Sistem bo omogočal

komunikacijo med Android mobilnim telefonom in elektronsko merilno napravo z vgrajenim

serijskim vmesnikom. Ciljno mobilno aplikacijo bom poimenoval SensorTalk (govoriti z

merilno napravo).

V času pisanja naloge bom raziskoval standarde komunikacijskih protokolov USB in RS232

ter se spoznal s programiranjem Android mobilnih aplikacij. Pomembno pri razvoju

programske opreme za digitalno komunikacijo je poznavanje protokolov, s katerimi želimo

prenašati vsebino podatkov po komunikacijskem kanalu. Upoštevanje predpisanih pravil

komuniciranja privede do izmenjave informacij, s čimer dosežemo želeno stanje oz. povratno

informacijo. Z razvojem novejšega komunikacijskega protokola USB smo uporabniki

pridobili učinkovit in na videz izjemno enostaven protokol. To pomeni, da se večino

aktivnosti, kot so prepoznavanje in povezovanje naprav, izvede v ozadju. Vnos protokolarnih

pravil se je z razvojem vodila USB skoraj v celoti preložilo na razvijalce zunanjih naprav.

Programsko opremo, potrebno pri komunikaciji z USB protokolom, imenujemo programski

gonilnik (angl. driver). Rokovanje z USB perifernimi napravami uporabniku tako ne

predstavlja večjih bremen, z izjemo fizičnega povezovanja naprav s povezovalnim kablom.

Preostale aktivnosti se izvedejo s pomočjo gonilnika. Nekoliko več aktivnosti uporabnika je

potrebno pri vzpostavljanju starejše serijske povezave RS232, ki zahteva usklajevanje

protokolarnih pravil pred pričetkom prenosa podatkov. Pri izdelavi diplomske naloge si bom

pomagal z uporabo ciljno strojne konfiguracije mobilne naprave, komunikacijskega

pretvornika in laboratorijske tehtnice.

Pred pričetkom razvoja Android mobilne aplikacije bom podrobno preučil komunikacijski

protokol in zagotovil ustrezni USB programski gonilnik za komunikacijo mobilne aplikacije s

pretvornikom USB–RS232. Uporabljena laboratorijska tehtnica omogoča usklajevanje

protokolarnih pravil oz. bom nastavljena pravila uskladil z vnosom pravil v razviti mobilni

aplikaciji SensorTalk. Mobilno aplikacijo bom razvil s priporočenim Android razvojnim

Page 19: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

3

okoljem Android Studio. Na koncu bom aplikacijo testiral s pomočjo Android mobilnega

telefona ter ugotovitve predstavil v nalogi.

1.1 Raziskovalno vprašanje in cilji raziskave

Temeljno raziskovalno vprašanje diplomske naloge se glasi: »Ali lahko z uporabo tehnologij

sodobnih prenosnih mobilnih pametnih telefonov in razvojnih orodij zagotovim učinkovitejši

sistem za izvajanje standardne serijske komunikacije z zunanjimi industrijskimi merilnimi

napravami?«. Na podlagi raziskovalnega vprašanja sem definiral sledeče cilje raziskave:

preučiti standardno digitalno serijsko komunikacijo RS-232, univerzalno serijsko

vodilo USB,

ugotoviti možnosti izvedbe serijske komunikacije z uporabo pametnih telefonov,

analizirati možne rešitve in izbrati ustrezen mobilni sistem,

implementirati Android mobilne aplikacije s funkcionalnostjo serijske komunikacije,

testirati rešitve na razpoložljivih napravah in analiza uporabnosti (prednosti in

slabosti).

1.2 Pričakovani rezultati

Preučevanje možnosti za vzpostavitev digitalne serijske komunikacije z zunanjimi merilnimi

inštrumenti in pametnimi mobilnimi telefoni mi bo koristilo pri razvoju in odločanju za izbiro

najprimernejše in najučinkovitejše rešitve. Rešitev se bo navezovala na delo z vzdrževanjem

obstoječih in novih industrijskih merilnih inštrumentov. Pri tem pričakujem izpolnitev

naslednjih predpostavk:

boljša mobilnost in fleksibilnost komunikacijskega sistema,

manjša strojna in energijska zahtevnost delovanja sistema,

krajši čas odkrivanja in posledično odpravljanja napak na merilnih inštrumentih,

enostavnejša prilagoditev uporabniškega vmesnika ciljnega uporabnika,

prednost uporabe vgrajenih strojnih komponent mobilnih telefonov.

Pričakovani rezultat diplomske naloge je torej razviti sistem z uporabo sodobnih mobilnih

tehnologij in odprtokodnih razvojnih orodij operacijskega sistema Android. S sistemom bom

zagotovil učinkovitejšo uporabo pri vsakodnevnih opravilih strokovnjakov na področju

vzdrževanja industrijskih merilnih inštrumentov.

Page 20: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

4

2 VHODNO IZHODNI PODATKOVNI TOKOVI RAČUNALNIŠKE

KOMUNIKACIJE

Podatki v svetu računalništva predstavljajo niz elektromagnetnih signalov. To so npr.

spremembe električne napetosti, radijsko valovanje, mikro valovanje ali infrardeče valovanje.

Elektronske komponente, vgrajene v napravah, in naprave med seboj neprestano izmenjujejo

informacije. Razumevanje podatkov se vzpostavi s skupnim komunikacijskim protokolom.

Tekom razvoja elektronskih naprav od samega začetka se je razvilo mnogo različnih tipov

komunikacijskih protokolov. Podatki so v računalništvu predstavljeni z določenimi nabori

logičnih enic in ničel, ki jih po električnih vodnikih prenašamo z različnimi stanji električnih

ali optičnih veličin (npr. električna napetost, elektromagnetno valovanje …). V glavnem lahko

vse komunikacijske protokole razvrstimo v dve večji skupini glede na način prenosa

podatkov. Skupini imenujemo serijske in paralelne komunikacije (Du Winncy, 2006).

Komunikacijski protokoli znotraj obeh skupin se poglavitno razlikujejo v fizični izvedbi

strojnih komponent in prenosu omenjenih signalov.

Pri paralelnem komunikacijskem vodilu se prenos signalov na vodilu prenaša vzporedno.

Tako je mogoče v enakem časovnem intervalu prenesti več signalov hkrati. Hkratni prenos

več signalov omogoča več vzporednih povezovalnih vodnikov. Najpogosteje se uporablja

povezave z 8 linijami za prenos podatkov dolžine 8 bitov (1 bajt). Standardne izvedbe

paralelnih komunikacijskih protokolov zmorejo prenašati podatke s hitrostjo 50 do 100

kilobajtov na sekundo. Prednosti uporabe paralelnih komunikacijskih protokolov so:

najhitrejša oblika prenosa podatkov, posledično delovanje z nizkimi frekvencami komponent

ter enostavna izvedba. Slabost protokola pa predstavlja zahtevnejša in dražja izvedba

povezovalnih komunikacijskih kablov. Večinoma so dolžine povezovalnih kablov paralelnih

protokolov krajše zaradi povečane možnosti napak, povzročenih z elektromagnetnimi

motnjami. Med bolj prepoznavne paralelne komunikacijske protokole spadajo:

IEEE-488 Parallel (HPIB, GPIB),

Centronics Parallel Protocol,

SCSI,

IDE,

ISA (Industrial Standard Architecture, 16 bit),

Page 21: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

5

PCI (32 bit),

AGP.

V sodobnem času se je bolj uveljavila uporaba serijskih komunikacijskih protokolov. Čeprav

se prenos podatkov z uporabo serijskega protokola izvede s pretvorbo signalov iz paralelnega

tipa komunikacije (UART pretvornik), je uporaba principa serijskega prenosa podatkov vedno

bolj v uporabi (Silicon labs, 20. oktober 2010). Skupino serijskih komunikacijskih protokolov

je potrebno nadalje deliti na dve podskupini, in sicer glede na sinhroni ali asinhroni prenos

podatkov. Sinhroni prenos podatkov pomeni, da se podatek po vodilu prenese v določenem

časovnem intervalu, ki predstavlja dolžino prenesenega podatka, hkrati pa se po posebni

povezovalni liniji usklajuje tudi časovnik. Asinhroni prenos podatkov poteka podobno, vendar

z uporabo posebnih začetnih in končnih bitov prenesenega podatka, kar pomeni, da ne

potrebuje dodatnega usklajevanja prenosnih časovnikov. Prednost obeh tipov serijske

komunikacije, predvsem asinhronega prenosa, je minimalna zahtevnost povezovalnih kablov

in priključkov, za katere je dovolj že samo ena povezovalna žica (večinoma do štiri). Nekateri

komunikacijski protokoli omogočajo oba tipa prenosa podatkov (npr. RS232). Standardni

protokoli serijske komunikacije so (Du Winncy, 2006):

RS 232,

RS 422,

RS 485,

UART (Universal Asynchronous Receiver-Transmitter),

USART (Universal Synchronous-Asynchronous Receiver-Transmitter),

MIDI,

IEEE1395 – FireWire,

CAN (Controller Area Network),

USB (Universal Serial Bus),

I2C (Inter Integrated Circuit),

SPI (Serial Peripheral Interface),

Micro-wire,

Ethernet,

Bluetooth,

WiFi,

optični internet.

Page 22: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

6

Praktično je v uporabi več različnih komunikacijskih protokolov glede na zahtevnosti prenosa

različnih podatkov. Zaradi potrebe diplomske naloge se bom v nadaljevanju osredotočil na

sorodna serijska komunikacijska protokola RS232 in USB. Priljubljenost obeh podatkovnih

komunikacijskih protokolov je predvsem v enostavni uporabi, vendar pri nasprotno različnih

opravilih. Omenjena protokola bom v nadaljevanju naloge podrobneje predstavil.

2.1 Serijska komunikacija RS-232

Standardni komunikacijski protokol RS-232 je starejši predhodnik protokola USB, razvit z

namenom povezovanja računalnika s perifernimi napravami. Standard za digitalno serijsko

komunikacijo z oznako RS-232-C, je bil specificiran v letu 1962 pod okriljem organizacije

Electronic Industries Association (EIA) (Stallings 2000, str. 12). Skozi nagel razvoj

računalniške tehnologije se je na tržišču pojavilo mnogo različnih vrst priključkov in

nestandardnih povezav z zunanjimi napravami, zato je bilo nujno potrebno opredeliti standard

RS-232, ki standardizira tako protokol za prenos podatkov med napravami kot tudi fizično

oblikovanje priključkov in povezovalnih vodnikov. Uporaba starejše različice serijske

komunikacije je kljub temu še danes prisotna za komunikacijo z nekaterimi zunanjimi

napravami. Predvsem se standard RS-232 danes uporablja zaradi preproste vgradnje in

uporabe komunikacijskega protokola v industriji ter enostavnih razvojnih okoljih.

Standardni prenos podatkov poteka med računalniškim sistemom »Data Terminal

Equipment« (DTE) in napravami »Data Communication Equipment« (DCE), katere skupino

predstavljajo vse zunanje naprave s komunikacijskim vmesnikom RS-232. S standardom je

hitrost prenosa podatkov omejena do 19200 bit/s, na hitrost prenosa pa zelo vpliva izvedba

fizične povezave naprav (el. motnje iz okolice). Standard RS-232 definira različne tipe

priključkov, kot so DB-25, RJ45, DB-9, pri nekaterih napravah je mogoče povezovalni kabel

priključiti tudi z vijačnimi sponkami neposredno na integriranem vezju naprave. Glede na

vlogo komunikacije naprave se priključki razlikujejo še z moško ali žensko izvedbo (npr.

smer računalnik – tipkovnica). Danes je pri napravah najpogostejši priključek tipa DB-9

(priključek z 9 nožicami). Prenos podatkov med napravama je mogoč v obeh smereh

istočasno, kar omogoča t. i. »full-duplex« tehnologija z implementacijo dveh prenosnih linij

za prejemanje in oddajanje podatkov. Podatek se po žicah prenaša z generiranjem električnih

signalov digitalno, pri čemer logično 0 (t. i. »space«) predstavlja el. napetost od +3 V do +12

V, logično 1 (t. i. »mark«) pa predstavlja el. napetost od –12 V do –3V. Nedefinirano

Page 23: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

7

območje el. napetosti na liniji od –3 V do +3 V je namenjeno izločanju morebitnih električnih

motenj, povzročenih iz okolice. Dolžina komunikacijskih kablov je sicer s standardom

omejena na 15 m, vendar so dolžine lahko tudi daljše, kar je pogojeno s tehnologijo izvedbe

kablov in z omejitvijo hitrosti prenosa podatkov (SparkFun Electronics, 2012). Večjo dolžino

prenosnega vodnika se lahko zagotovi z vmesnimi t. i. el. ojačevalniki signala.

Protokol serijske komunikacije omogoča komunikacijo na dva načina, in sicer sinhrono in

asinhrono. Sinhrona komunikacija poteka tako, da napravi med vzpostavljeno povezavo

konstantno izmenjujeta informacije o trenutnem stanju prenosnih kanalov. Tovrstno

komuniciranje omogoča hitrejši prenos podatkov, saj ni potrebno pošiljanje podatkov o

začetku in koncu pošiljanja informacij, temveč se informacije izmenjajo takoj ob zahtevi za

prenos. Asinhrono komuniciranje je najbolj razširjen tip serijske komunikacije. Za razliko od

sinhronega, asinhrono komuniciranje pri prenosu podatkov uporablja oznake za začetek in

konec pošiljanja informacij. Prednost uporabe asinhronega pošiljanja namesto hitrejšega

sinhronega je predvsem v razbremenitvi procesorske moči računalnika med pošiljanjem

informacij o stanju prenosnih kanalov.

Komunikacija RS-232 poteka s predhodno določenimi komunikacijskimi parametri.

Parametre je potrebno vnesti v računalniški program in predstavljajo način sporazumevanja.

Nabor parametrov, ki jih je potrebno nastaviti, je (TAL Technologies Inc., 2015):

hitrost prenosa bitov na enoto časa (bits/s) – »Baud rate«,

število bitov za prenos podatkov ali podatkovni okvir (5–9 bitov) – »Data bits«,

število sinhronizacijskih bitov na koncu prenesenega paketa (1–2 bita) – »Stop bits«,

mehanizem prepoznavanja napak pri prenosu podatkov (»Odd«, »Even«, »Mark«,

»Space«) – »Parity bit«,

kontrola in reduciranje pretoka podatkov med napravama v primeru počasnejšega

delovanja gostujoče naprave – »Handshaking«.

Komunikacijski parametri so navadno navedeni v navodilih uporabe zunanje naprave in

morajo biti usklajeni z nastavitvami računalniškega programa, lahko pa se parametri

spreminjajo glede na zmožnost spreminjanja nastavitev na strani zunanje naprave.

Page 24: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

8

2.2 Univerzalno serijsko vodilo (USB)

Danes najbolj razširjeno in uporabljeno vodilo v računalništvu se imenuje univerzalno

serijsko vodilo ali krajše USB (angl. Universal Serial Bus). Tehnologija vodila je bila razvita

z namenom povezovanja in komuniciranja računalnika (gostitelja) z vhodno/izhodnimi ali

perifernimi napravami, kot so tipkovnica, miška, spletna kamera, zvočniki, mikrofoni,

tiskalniki, optični čitalci, fotoaparati, itd. USB v računalništvu večinoma že nadomešča

starejša serijska in paralelna računalniška vodila.

Ideja o razvoju univerzalnega in poenostavljenega vodila se je pojavila zaradi takrat širokega

nabora različnih vodil, ki so bila razmeroma počasna (RS-232, RS-422, RS-485, LPT, I2C),

predvsem pa so starejša vodila predstavljala težavno fizično kot tudi logično povezovanje

zunanjih naprav z računalnikom. Univerzalno serijsko vodilo je s pomočjo sodelavcev razvil

računalniški arhitekt Ajay Bhatt, zaposlen v računalniškem podjetju Intel. Leta 1994 so

podjetja Intel, Compaq, Microsoft, IBM, Digital Equipment Corporation (DEC), Nortel in

NEC ustanovila korporacijo »USB Implementers Forum«, kot neprofitno organizacijo za

specifikacijo standarda USB ter pričela s prvo proizvodnjo računalniških vmesnikov USB

(AllUSB.com, 27. avgust 2015).

Omrežje povezanih naprav temelji na asimetrični ureditvi topologije zvezda, z zvezdiščem v

kontrolniku gostitelja vodila. Računalnik lahko vsebuje več vgrajenih USB kontrolnikov.

Posamezni kontrolnik omogoča priključitev do največ 127 različnih USB naprav. Kontrolniki,

vgrajeni v računalniških sistemih, ponujajo navadno le nekaj USB priključkov, zato

potrebujemo za razširitev omrežja samostojne USB razdelilnike. Nekatere naprave, kot so na

primer spletne kamere, lahko prav tako vsebujejo notranji razdelilnik, ki povezuje napravi

video kamere in mikrofona v eni kompaktni napravi. Razširitev povezovalnih priključkov

vodila enega kontrolnika je omejeno na 6 razdelitvenih nivojev, pri čemer razdelilnik prav

tako predstavlja USB napravo (6 zaporedno povezanih priključnih razdelilnikov). Prav tako je

tehnologija omejena z razdaljo povezovalnega vodnika na dolžino petih metrov.

Page 25: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

9

Slika 2.1: Primer štirinivojske arhitekture USB kontrolnika z nekaterimi napravami in

razdelilniki (angl. hub).

Vir: Erjavec, lastni prikaz (2015)

Električni vodnik USB je sestavljen iz štirih bakrenih žic. Prenos podatkov z električnimi

signali se vrši s prepoznavanjem diferencialnih signalov dveh prepletenih žic, označenih z D+

in D-, drugi dve žici Vbus in GND, pa se uporabljata za distribucijo +5 V električne energije

priključenim napravam. Ena od ključnih prednosti tehnologije predstavlja predvsem

distribucija električne energije preko USB vodnika, ki z ustrezno izvedeno zunanjo napravo

omogoča delovanje izključno z dobavljeno električno energijo iz vodila, kar omogoča

uporabnikom prijazno uporabniško izkušnjo. Vodnik je na obeh koncih zaključen z enim

izmed standardnih priključkov USB (Zoltan, 2014).

Slika 2.2: Shematski prikaz sestave USB vodnika z oznakami posameznih žic.

Vir: Zoltan (2014, str. 6)

Skozi razvoj vodila USB so se sicer razvili številni različni tipi priključkov. Različni tipi

standardnih priključkov se uporabljajo zaradi različnih oblik perifernih naprav ter z namenom

preprečevanja napak med priključevanjem naprav. Priključki, ki jih najpogosteje srečamo, so:

priključek tipa »standard-A« za priklop vodnika v vtičnico računalnika, priključek tipa »mini-

Page 26: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

10

B« se uporablja za povezovanje video kamer in fotoaparatov ter priključki tipa »micro-B«

vgrajeni v manjših napravah, prenosnih telefonih in tablicah, ki v zadnjem času pogosteje

služijo tudi polnjenju baterij naprav. Pravzaprav vgradnjo USB kontrolnika, tako za prenos

podatkov kot tudi za polnjenje baterije, določa mednarodni standard »IEC 62684:2011«.

Standard opisuje specifikacijo vgradnje skupnega standardnega električnega napajanja (EPS)

za mobilne naprave, ki omogočajo tudi prenos podatkov s tehnologijo USB (International

Electrotechnical Commission, 2011).

Hitrosti prenosa podatkov z univerzalnim serijskim vodilom se razlikujejo glede na različico

protokola USB skozi čas samega razvoja. Prva različica protokola USB 1.0 je sprva

omogočala prenos podatkov s hitrostjo 1,5 Mbps, kasneje do hitrosti 12 Mbps. V primerjavi z

najvišjo specificirano hitrostjo prenosa podatkov 115200 bps predhodnega standarda RS-232

je nižja hitrost prve različice USB 1.0 višja za 92 %. Napredek razvoja tehnologije danes

dosega hitrosti prenosa podatkov do 480 Mbps različice protokola USB 2.0 in hitrosti do 5

Gbps z različico USB 3.0. Nadgradnja tehnologije USB sledi trendu zahtevam prenosa vedno

večjih količin podatkov, ki jih zahteva kompleksnejša in naprednejša obdelava podatkov.

Korporacija USB-IF tako na trgu že predstavlja različico protokola USB 3.1 z nazivno

hitrostjo prenosa podatkov kar do 10 Gbps.

Komunikacijski protokol USB deluje na principu paketnega prenosa podatkov v obeh smereh

med zunanjo napravo in gostiteljem, pri čemer zunanje naprave med seboj neposredno ne

morejo komunicirati, razen v nekaterih posebnih izvedbah, ki jih bom predstavil v

nadaljevanju. Standard univerzalnega serijskega vodila ne opredeljuje enotnega

komunikacijskega protokola, ki bi ga razumeli vsi operacijski sistemi hkrati, kot ga

opredeljuje npr. standard RS-232. Zato je potrebno za uspešno prepoznavanje in

komunikacijo namestiti v operacijski sistem tudi programsko opremo oz. gonilnik. Gonilnik

poskrbi, da sporazumevanje perifernih naprav z gostiteljem poteka ustrezno in nemoteno.

Tehnologija USB krmilnika omogoča konstantno detekcijo novih priključenih naprav in se ob

morebitni priključitvi novih naprav samodejno sproži postopek povezovanja z ustreznim

gonilnikom naprave ter tako omogoča enostavno in takojšnjo razpoložljivost zunanje naprave

uporabniku. Prednost predstavlja predvsem prihranek pri dodatnih posegih v nastavitve

računalnika. Novejši operacijski sistemi, kot je npr. Windows 7, v primeru povezanosti z

internetnim omrežjem poišče in samodejno namesti ustrezen gonilnik novo priključene

Page 27: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

11

periferne naprave. Storitev samodejnega nameščanja gonilnikov tako uporabnikom še dodatno

olajša delo z USB napravami.

Proces identifikacije novo priključene USB naprave se imenuje enumeracija oz. popis.

Gostitelj napravi dodeli 7 bitno identifikacijsko oznako, ki se uporablja pri naslavljanju

paketov za prenos na vodilu. Posamezne naprave imajo lahko več različnih USB podatkovnih

struktur (angl. configuration). Vsaka podatkovna struktura lahko vsebuje več podatkovnih

vmesnikov (angl. interface) z različnim naborom komunikacijskih pomnilnikov. Vmesniki

imajo s standardom omejeno do največ 15 vhodnih in 15 izhodnih komunikacijskih

pomnilnikov, ki se imenujejo končne točke (angl. endpoints). Prenos paketov se izvaja po t. i.

logičnih cevovodih, vzpostavljenih med gostiteljem in posamezno končno točko. Prenos

paketov poteka po cevovodih usmerjeno, in sicer od gostitelja proti končni točki z oznako

»OUT« (npr. prenos podatkov tiskalniku) ali v smeri zunanje naprave proti gostitelju za

končne točke z oznako »IN« (npr. prenos zvoka iz mikrofona). Vse naprave vsebujejo vsaj

eno ničelno končno točko, namenjeno enumeraciji naprave ob priključitvi krmilniku

gostitelja. Prenos paketov ob enumeraciji z ničelno končno točko poteka v obeh smereh.

Zahtevku gostitelja z naslovljeno ničelno končno točko se odzovejo vse priključene periferne

naprave.

Priključene naprave na istem krmilniku hkrati prejmejo zahtevek gostitelja za prenos

podatkov, vendar ga upošteva le naslovljena naprava oz. vmesnik. Paketi se po vodilu

prenašajo na štiri različne načine:

»Control transfer« – pakete običajno generira gostitelj v času enumeracije naprave,

lahko tudi za specifično uporabo interpretirano v času razvoja naprave,

»Interrupt transfer« – namenjeno prenosu manjših paketov v omejenem časovnem

intervalu, navadno zahtevano iz strani zunanje naprave (npr. sprememba pozicije

miške),

»Bulk data transfer« – sekvenčno pošiljanje večjih paketov z integriranim strojnim

nadzorom nad poškodovanimi paketi med prenosom in ponovnim pošiljanjem le

teh (npr. prenos podatkov med podatkovnim ključem),

»Isochronous transfer« – sinhroni prenos paketov v realnem času, pri čemer ni

nadzora nad napakami in izgubljeni paketi kasneje niso pomembni (npr. prenos

slike spletne kamere)

Page 28: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

12

USB protokol definira tri tipe paketov različnih formatov. Izmenjava informacij se prične s

pošiljanjem zahtevka paketa tipa »token«, ki vsebuje podatke o tipu transakcije, smeri

pošiljanja, naslov naprave in naslov končne točke. Nato se naprava odzove na zahtevek s

pošiljanjem paketa tipa »data« z vsebino podatkov končne točke oz. z informacijo v primeru,

da podatki za prenos ne obstajajo. Na koncu prejemnik podatkov potrdi prejem ali sporoči

napako pri prenosu s paketom tipa »handshake« (Zoltan 2014, str. 15).

2.3 Universal Serial Bus – On-The-Go (OTG)

Razširitev protokola univerzalnega serijskega vodila »On-The-Go« ali krajše OTG, se je

pojavila zaradi želje po povezovanju in komunikaciji USB naprav med seboj, tudi ko v bližini

nimamo računalnika in lahko ena od perifernih naprav prevzame vlogo gostitelja. Prva

specifikacija protokola, predstavljena v letu 2001, je bila izpeljana z USB verzije 2.0.

Protokol OTG omogoča kompleksnejšim USB kontrolnikom v napravah menjavo vloge med

zunanjo napravo in gostiteljem. Povezovanje naprav in komunikacija poteka enako kot

standardna USB komunikacija 2.0, gostitelj pa postane tista naprava, ki jo določi uporabnik.

Nekatere naprave lahko s pomočjo tehnologije OTG uporabljajo dvojno vlogo, kot je npr.

tiskalnik. Na primer tiskalnik lahko s standardno povezavo USB do računalnika izvaja

opravila, prejeta iz računalnika. Sočasno pa lahko tiskalnik omogoča tudi komunikacijo z

USB podatkovnim ključem, katero povezavo gosti prav tiskalnik in izvaja opravila tiskanja

podatkov iz ključa (USB Implementers Forum, Inc. 2008).

Z razvojem OTG so se pojavile tudi nove zmogljivosti in sicer »Attach Detection Protocol«

(ADP), ki služi OTG napravam detekcijo priklopa novih naprav na vodilo. Novost »Session

Request Protocol« (SRP) omogoča napravam gostiteljem izklop dobave električne energije

preko vodnikov, kar je zelo priporočljivo za mobilne naprave, ki za delovanje potrebujejo

baterijo. Zadnja med novostmi »Host Negotiation Protocol« (HNP) omogoča napravam

dvojno vlogo USB gostitelja ali zunanje naprave oz. sprotno menjavo le teh (USB

Implementers Forum, Inc. 2008).

Uporabniško najbolj oprijemljivo razširitev protokola USB OTG, lahko opazimo predvsem z

novejšimi mobilnimi telefoni, katerih proizvajalci vgrajujejo standardni USB priključek

»mikro-B« za polnjenje baterij. Prav tako nam sistem omogoča standardno USB komunikacijo

neposredno z računalniškimi sistemi. Krmilnik OTG omogoča mobilnim telefonom z

Page 29: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

13

operacijskimi sistemi Android verzije 3.1 dalje priključitev skoraj enako paleto USB zunanjih

naprav, kot jih lahko priključimo računalniškim sistemom. Tako lahko zajete slike s

fotoaparatom telefona nemudoma pošljemo tiskalniku za tiskanje, brez vmesnih postopkov

uporabe računalnika .

2.4 Pretvornik USB – RS232C

Dandanes je integracija serijskega komunikacijskega vmesnika RS-232 v sodobnih

računalnikih vedno bolj v zatonu zaradi večjih prednosti novejšega protokola USB.

Proizvajalci sodobnih računalnikov in drugih naprav zato opuščajo vgradnjo priključkov RS-

232 pri vseh računalniških sistemih. Kljub temu pa veliko naprav (predvsem merilno krmilna

tehnika) še vedno uporablja osnovni komunikacijski protokol RS-232, predvsem zaradi

preprostega protokola izmenjave podatkov.

Standardni komunikacijski priključek DB-9 na računalniku je nadomestil t. i. USB-RS232

pretvornik, ki s pomočjo integriranega vezja in programskega gonilnika na računalniku

pretvori signale iz standarda USB v standardni RS-232 protokol. Na trgu je že kar nekaj

različnih izvedb komunikacijskih pretvornikov, vendar zaradi programske kompleksnosti

tehnologije USB nekateri pretvorniki niso kompatibilni pri vzpostavljanju povezave z vsemi

zunanjimi napravami. Vir navaja, da se napake z manj kvalitetnimi pretvorniki pojavljajo

predvsem zaradi slabo načrtovanega razvoja programskega gonilnika za operacijske sisteme

in programske podpore v integriranih vezjih samih pretvornikov. Pretvorniki, kot vse naprave

s komunikacijskih protokolom USB, potrebujejo za svoje delovanje nameščen ustrezni

programski gonilnik, ki poskrbi za sporazumevanje z računalnikom in pretvornikom.

Operacijski sistem računalnika ob priključitvi pretvornika v vtičnico USB krmilnika s

pomočjo gonilnika prepozna in identificira napravo kot virtualna serijska vrata z avtomatskim

programskim naslavljanjem (npr. COM1). Uspešna vzpostavitev povezave tako virtualno

nadomesti vgradnjo serijskega komunikacijskega krmilnika z novejšimi računalniškimi

sistemi (U.S. Converters LLC, 2015).

Page 30: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

14

3 MOBILNE TEHNOLOGIJE IN ORODJA RAZVOJA

Izredna razširjenost in prisotnost mobilnih tehnologij povsod po svetu predstavlja izjemno

pomembno vlogo v našem vsakdanjem življenju. Izraz mobilne tehnologije ne pomeni le

skupine prenosnih mobilnih telefonov, kot meni večina ljudi, ampak predstavlja sodobne

prenosljive tehnologije, ki uporabnikom med uporabo omogočajo mobilnost oz. prenosljivost.

Razdelimo jih lahko na tri večje skupine (Hribar, 2007):

brezžična omrežja,

mobilne naprave in

mobilne storitve.

Del rešitve diplomske naloge se nanaša predvsem na uporabo sodobnih mobilnih naprav, ki

jih bom opisal v nadaljevanju. Poleg mobilnih tehnologij na trgu bom v tem poglavju raziskal

tudi odprtokodna programska razvojna orodja za mobilne naprave, ki jih bom potreboval pri

razvoju mobilne aplikacije SensorTalk.

3.1 Mobilne naprave

Mobilne naprave so elektronske digitalne naprave, kot jih prepoznamo v obliki prenosnih

pametnih telefonov, pametnih ročnih ur, tabličnih in prenosnih računalnikov. Mobilne

elektronske naprave smo uporabniki v preteklosti uporabljali predvsem za brezžično

komuniciranje z drugimi uporabniki. Razvoj tehnologij mobilnih naprav je preoblikoval

običajne mobilne telefonske naprave v večpredstavnostne pametne komunikacijske naprave

kot jih poznamo danes (angl. smart phone). Razvoj tehnologij pa se navezuje tudi na druge

mobilne tehnologije.

Page 31: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

15

Slika 3.1: Nabor novejših in popularnih vrst mobilnih naprav.

Pametni telefon Tablični računalnik Pametna ročna ura Prenosni računalnik

Vir: prirejeno po Telekom (26. avgust 2015)

Razvoj tehnologij, vgrajenih v sodobnih mobilnih napravah, danes postavlja uporabnost v

povsem novo dimenzijo. Razmeroma majhna velikost in teža mobilnih naprav je ena od

ključnih prednosti, ki omogoča uporabnikom preprosto uporabo, praktično v rokah

uporabnika. Kompaktno mobilno napravo sestavlja LCD zaslon, občutljiv na dotik, ki

virtualno nadomešča uporabo klasične računalniške kombinacije osnovnih vhodnih

komponent miške in tipkovnice. Trend sodobne uporabe digitalnih tehnologij zasebnih

uporabnikov nakazuje vedno večjo rast koriščenja mobilnih tehnologij. Statistični podatki

statističnega urada Evropske unije Eurostat za leto 2013 kažejo, da je izmed 75 %

individualnih uporabnikov interneta, kar 43 % uporabnikov uporabljalo mobilno napravo za

dostopanje do interneta (Eurostat, 2015). Rast uporabe mobilnih tehnologij nam omogoča

razvoj mobilnih tehnologij, ki v nekaterih pogledih že presega uporabnost tehnologij, ki jih

ponuja klasični stacionarni in prenosni računalnik. Procesiranje podatkov z novejšimi

mobilnimi napravami poteka prav tako kot pri računalnikih, z več jedrnimi procesorji, ki

obratujejo s taktom do 2,5 GHz.

Z napredkom tehnologije računalništva v oblaku se je zmanjšala potreba po velikih diskovnih

pogonih za hranjenje podatkov. Z uporabo tehnologije SaaS – »Software as a Service« je

uporabnikom omogočen dostop in uporaba programske opreme na spletu. Storitev IaaS –

»Infrastructure as a Service je oblika računalništva v oblaku, ki omogoča koriščenje

virtualnih računalniških virov (strojna oprema, programska oprema, strežniki, podatkovni

hranilniki …) (Griffith, 17. april 2015). Mobilne naprave postajajo vse bolj zmogljive tudi

zaradi razvoja mobilnih telekomunikacijskih tehnologij. Omrežje slovenskega mobilnega

operaterja Telekom Slovenije omogoča uporabnikom prenos podatkov v kar 90 % vseh krajev

Page 32: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

16

s tehnologijo 3 G (doseganje hitrosti do 3,6 Mbit/s), najnovejša tehnologija 4 G pa pokriva 80

% krajev in omogoča prenos podatkov s hitrostjo kar do 150 Mbit/s (Telekom Slovenije, d. d.,

2012).

Sodobne mobilne naprave imajo vgrajenih vse več uporabnih pripomočkov, ki jih pri

klasičnih računalnikih proizvajalci ne vgrajujejo. To so npr. digitalni fotoaparat z zajemom

slike visoke kakovosti, LED sijalka, mikrofon, vibrator, žiroskop, merilnik pospeškov,

barometer, svetilka, GPS, NFC, WiFi, Bluetooth itd. Z uporabo vgrajenih pripomočkov in

zmogljivo programsko opremo postajajo mobilne naprave za uporabnike vedno bolj zanimive

in uporabne pri raznih opravilih, kar nakazuje tudi statistika ameriške internacionalne

korporacije za podatke, da je bilo v letu 2014 prodanih kar 1,3 bilijona pametnih mobilnih

naprav po vsem svetu (International Data Corporation, 2015).

3.2 Mobilni operacijski sistemi

Mobilni operacijski sistem je kompleksna programska oprema, ki povezuje uporabniško

programsko opremo z elektronskimi komponentami oz. strojno opremo, vgrajeno v mobilnih

napravah. Mobilni operacijski sistemi v primerjavi z operacijskimi sistemi klasičnih

računalnikov (Windows, iOS, Linux) se ne razlikujejo bistveno. Razvoj mobilnih operacijskih

sistemov se je pojavil zaradi potrebe po optimizaciji tako strojnih zahtevnosti kot tudi

uporabniških izkušenj uporabe mobilnih naprav. Ključni dejavniki razvoja namenske

programske opreme so bili optimizacija porabe električne energije, manjše dimenzije

grafičnih zaslonov kot pri računalnikih, vnos podatkov z uporabo zaslona na dotik ter

interakcije s specifičnimi vgrajenimi strojnimi komponentami (npr. žiroskop, bliskavica,

GPS). Prav tako sodobni mobilni operacijski sistemi vedno bolj strmijo k naprednejši rabi

električne energije oz. daljšemu času uporabe naprave brez polnjenja baterij. To je izjemno

zahtevna naloga ob dejstvih, da je vedno več zahtevnih grafičnih zaslonov ter daljšem času

uporabe mobilnih naprav (Beal, 10. avgust 2011).

Skozi čas razvoja mobilnih naprav se je razvilo več različnih mobilnih operacijskih sistemov,

v zadnjem času pa so najbolj pogosti sistemi Android (Google), iOS (Apple) in Windows

Phone (Microsoft). Uporabniška izbira operacijskega sistem je vezana izključno na izbiro tipa

in proizvajalca mobilne naprave. Proizvajalec tovarniško namesti ustrezen operacijski sistem.

Glede na statistiko prodanih mobilnih naprav v letu 2014 ameriške internacionalne

Page 33: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

17

organizacije za podatke IDC, je bilo največje število naprav z operacijskim sistemom

Android, kar 81 %, 15 % je bilo naprav s sistemom iOS, 3 % delež naprav pa ima nameščen

sistem Windows Phone (International Data Corporation, 2015).

3.3 Operacijski sistem Android

Mobilni operacijski sistem Android (krajše Android OS) je odprtokodna programska rešitev

danes podjetja Google, ki temelji na jedru Linux (angl. »kernel«). Imenovanje programske

opreme izhaja iz angleške besede »android« in predstavlja robota v podobi človeka (blagovna

znamka). Android je najbolj razširjen operacijski sistem, namenjen mobilnim napravam, kot

so pametni mobilni telefoni in tablični računalniki z vgrajenim zaslonom na dotik.

Priljubljenost in zmogljivost operacijskega sistema se širi tudi na t. i. pametne televizijske

naprave ter razširja zmogljivosti televizijskih ekranov z mnogo uporabniškimi aplikacijami,

dostopnih z internetno povezavo. V zadnjem času na trg prihajajo vse bolj zmogljive Android

pametne ročne ure, ki tudi v klasični obliki ročnih ur ponujajo barvni zaslon z vrsto različnih

uporabniških programov.

Android OS je prvotno razvilo start-up podjetje Android, Inc. v letu 2003 v Kaliforniji

(Amerika) z namenom poenostavljanja naprav pri rokovanju manj izkušenih uporabnikov.

Prvotni namen je bil razvoj programske opreme za digitalne fotoaparate, vendar se je zaradi

ozkega trga razvoj operacijskega sistema usmeril na mobilne telefone. V letu 2005 je podjetje

Google v želji po vstopu na mobilni trg, prevzelo vodenje projekta Android in celotnega

podjetja. Danes razvoj operacijskega sistema še vedno vodi podjetje Google, najnovejša

verzija sistema pa je bila predstavljena novembra 2014. Razvoj operacijskega sistema je leta

2008 privedel do objave prve različice sistema 1.0 »Alpha« pod okriljem OHA (»Open

Handset Alliance«), ki danes združuje okoli 84 podjetij z namenom izboljšanja

odprtokodnega razvoja mobilnih aplikacij (Open Handset Alliance, 2007). Kot zanimivost je

imenovanje verzij Android OS navezano na imenovanje različnih znanih slaščic, prve črke

imen različic pa sledi vrstnemu redu angleške abecede. Tako je imenovanje zadnje različice

operacijskega sistem 5.0 »Lollipop«, ki spominja na široko prepoznavno liziko.

Uporaba operacijskega sistema je podprta z direktno manipulacijo gradnikov uporabniškega

vmesnika z uporabo zaslona na dotik, kar pomeni, da uporabnik vnaša informacije z

drsenjem, tapkanjem, razširjanjem, krčenjem prstov na zaslonu. Funkcionalnosti vgrajenih

Page 34: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

18

pripomočkov v mobilnih napravah, mobilnega operacijskega sistema in mobilne aplikacije

omogočajo povratno informacijo uporabnikom med vnašanjem informacij, kot sta npr.

vibracije in obračanje zaslonske slike med vrtenjem naprave. Mobilne naprave z vgrajeno

dodatno strojno opremo, kot so npr. merilnik pospeškov, žiroskop, senzor prisotnosti,

barometer in druge, omogočajo uporabnikom izjemno izkušnjo z ustreznimi namenskimi

aplikacijami. Delovanje Android OS spominja na uporabo okenskega operacijskega sistema

Windows, nameščenega na stacionarnih in prenosnih računalniških sistemih, pri čemer

začetno okno predstavlja namizje sistema, zagon aplikacij je omogočen s tapkanjem ikone

aplikacije na namizju ali v meniju, aplikacijo pa lahko sestavlja več okenskih pogledov.

3.4 Delovanje Android OS in mobilnih aplikacij

Arhitektura Android OS (glej Sliko 3.2) sestoji iz programske arhitekture temelječ na jedru

Linux, ki je osnova operacijskega sistema, ki vsebuje programske vmesnike za nižje nivojsko

vhodno/izhodno komuniciranje med operacijskim sistemom in strojno opremo mobilnih

naprav. Jedro sistema skrbi za temeljne storitve, kot so varnost, upravljanje s pomnilnikom,

upravljanje procesov, omrežni sklad in model gonilnikov. Višje nad jedrom se nahajajo

naprednejše programske knjižnice s podporo za operacijski sistem, kot so npr. izris grafike,

mrežna komunikacija, podatkovne baze, ogrodje spletnega brskalnika itd. Na istem nivoju se

knjižnicam pridružuje izvajalnik DVM – »Dalvik Virtual Machine«, ki skrbi za izvajanje

programske kode na višjem programskem nivoju. Izvajalnik DVM deluje podobno kot pri

ostalih računalniških operacijskih sistemih (npr. »Java Virtual Machine«) z razliko, da je

DVM posebej optimiziran za hitrejše delovanje s čim manjšo porabo električne energije. Na

predzadnjem nivoju arhitekture sistema se nahaja Android programsko okolje, ki vsebuje

gradnike za doseganje zahtev najsodobnejših mobilnih uporabniških aplikacij, kot so npr.

gradniki za uporabniški vmesnik (GUI), upravljanje pogledov, paketni prenos, telefonija,

lokacija itd. Android programsko okolje vsebuje programske vmesnike API-je (»Application

Programming Interface«), s katerimi funkcionalnosti razširjajo namenske uporabniške

aplikacije napisane z objektnim programskim jezikom Java. Android programski vmesniki so

zbrani v paketu za razvijalce aplikacij, imenovani Android SDK (»Software Development

Kit«).

Page 35: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

19

Slika 3.2: Shema Android programske kopice (angl. software stack).

Vir: Javatpoint (2014)

Naprednejše mobilne aplikacije združujejo več različnih sistemskih komponent. Android

mobilne aplikacije se z Android OS vršijo z eno ali več funkcionalnostmi štirih programskih

izvršljivih komponent (Android Developers, 2015):

aktivnosti (angl. Activities) – aktivnost je posamezen grafični uporabniški vmesnik

z izvršljivo programsko kodo, ki se izvaja v svojem življenjskem ciklu, aplikacija

pa je navadno sestavljena soodvisno z več aktivnostmi,

storitve (angl. Services) – storitev je programska komponenta, ki se izvaja v ozadju

samostojno ali vezano na aplikacijo in ne omogoča prikaza uporabniškega

vmesnika,

ponudniki vsebine (angl. Content providers) – je programska komponenta,

namenjena izmenjavi podatkov med aktivnostmi z uporabo standardnih

poizvedovalnih mehanizmov (npr. imenik),

sprejemniki (angl. Broadcast receiver) – programska komponenta, namenjena

obveščanju in sporočanju med aplikacijami in uporabniki, ki se izvaja v ozadju in

Page 36: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

20

ni namenjena prikazu grafičnega uporabniškega vmesnika temveč prikazu opozoril

v statusni vrstici.

3.5 Življenjski cikel mobilne aplikacije Android

Android mobilne aplikacije se v primerjavi z drugimi operacijskimi sistemi prav tako pričnejo

z vstopno točko (klic metode »main«). Posebnost pri mobilnih aplikacijah so namenske samo-

oklicne metode, ki se izvršijo glede na pozicijo in status aplikacije v življenjskem ciklu.

Ustrezni klic posameznih omenjenih funkcij poskrbi Android OS. Življenjski cikel Android

aplikacij je razdeljen na faze, ki določajo stanje ali dogodek aktivnosti v določenem trenutku.

Prav tako kot ostale aplikacije imajo mobilne aplikacije oz. posamezne aktivnosti vstopno

točko življenjskega cikla s klicem metode »onCreate()«. S klicem te metode se ustvarijo vsi

grafični gradniki aktivnosti, na zaslonu pa se prikaže uporabniški vmesnik aktivnosti.

Aktivnost je na zaslonu vidna v fazi »onStart()« in »onResume«, ki si zaporedno sledita po

zagonu aktivnosti. Potek aktivnosti se v fazi »onResume()«, kjer je uporabniški vmesnik

popolnoma viden uporabniku, spremeni v delno vidnega v primeru prehajanja med drugimi

aktivnostmi s klicem metode »onPause()«. V kolikor se prehod v tej fazi ne izvede, se v

aktivnosti ponovno kliče metodo »onResume()«. Prehod iz ene aktivnosti v drugo aktivnost

izvrši klic metode »onStop()«, ki pomeni neaktivno stanje aktivnosti, vendar se podatki

aktivnosti še vedno hranijo v ozadju za ponovni klic izvajanja aktivnosti. Ponovni klic

aktivnosti v ozadju izvrši klic metode »onRestart()«, grafični vmesnik aktivnosti pa se zopet

prikaže na zaslonu z začasno shranjemi podatki iz predhodne uporabe. Življenjski cikel

aktivnosti se konča s klicem metode »onDestroy()«, s katero operacijski sistem opusti

podatke, generirane z aktivnostjo in zaključi proces aplikacije (Steele 2011, str. 32). Potek

življenjskega cikla aplikacije Android nazorno prikazuje spodnja Slika 3.3.

Page 37: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

21

Slika 3.3: Diagram poteka življenjskega cikla Android mobilne aplikacije z ustreznimi klici

sistemskih funkcij.

Vir: Android Developers (2015)

3.6 Razvojno okolje Android Studio

Android Studio je prilagojeno integrirano razvojno okolje (IDE-»Integrated Development

Environment«) za razvoj Android mobilnih aplikacij. Program Android Studio je napredna

zbirka že uveljavljenih odvisnih programskih orodij in stremi k preprostejšemu razvoju novih

mobilnih aplikacij. Razvojno okolje je produkt podjetja Google. Izdelka je podjetje

predstavilo prvič na konferenci leta 2013 kot uradno razvojno okolje za razvoj Android

mobilnih aplikacij. Okolje Android Studio temelji na osnovnem javanskem razvojnem okolju

IntelliJ IDEA (»Java integrated development environment«), ki ga je razvilo podjetje

JetBrains z licenco Apache 2.0. Razvojno okolje Android Studio je prosto dostopna

programska oprema na medmrežju za namestitev na računalniške operacijske sisteme

Windows, Mac OS X in Linux. Testiranje programske rešitve in odpravljanje napak

razvijalcem omogoča vgrajena Android virtualna naprava (AVD-»Android Virtual Device«).

Program omogoča izbiro nekaterih najpopularnejših različnih tipov naprav ter najbolj

pomembno za razvoj, z različnimi specifikacijami zaslonov. Virtualna naprava na

računalniški sistem poleg razvojnega okolja namesti tudi programsko opremo navidezne

strojne opreme Intel® x86, s katero razvijalci učinkoviteje testirajo mobilno aplikacijo

(Android Developers, 2015a).

Page 38: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

22

Ena izmed prednosti novega razvojnega okolja Android Studio je predvsem možnost prenosa

in nameščanja razvojne programske opreme uporabnikom v enem razširljivem paketu, ki

združuje vsa potrebna orodja za razvoj že najbolj preprostih Android aplikacij. Predhodna

razvojna okolja, kot je npr. Eclipse, je uporabnik lahko uporabljal le s predhodno namestitvijo

vrste posameznih programskih orodij, ki jih je bilo potrebno za ustrezno delovanje

medsebojno programsko povezati oz. nasloviti. Razvojni koncept je tako predstavljal vrsto

težav razvijalcem začetnikom. Prednost, ki jo prinaša Android Studio razvijalcem mobilnih

aplikacij, je tudi predogled uporabniškega vmesnika med samim razvojem aplikacije (glej

Sliko 3.4). Prav tako je enostavna manipulacija grafičnih gradnikov kar na predoglednem

oknu vmesnika (v preteklosti je bila konstrukcija vmesnika mogoča le z urejanjem

programske kode).

Slika 3.4: Osnovni uporabniški grafični vmesnik razvojnega okolja Android Studio.

Vir: Smith (2015, str. 31)

3.7 Android SDK

Razvoj Android mobilne aplikacije omogoča programsko ogrodje Android SDK (»Standard

Development Kit«). Ogrodje Android SDK je za razvijalce ključnega pomena, saj ponuja vse

Page 39: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

23

potrebne programske pripomočke za razvijanje, testiranje in odkrivanje napak mobilnih

aplikacij. Paket je razdeljen na dve komponenti, in sicer pripomočki, neodvisni od ciljnega

mobilnega operacijskega sistema, in pripomočki, namenjeni izključno določenemu

operacijskemu sistemu. Za razvoj novih aplikacij je nujno potreben nabor SDK orodij za

mobilne aplikacije, neodvisne od operacijskega sistema, in vsebuje naslednje ključne

pripomočke (Steele 2011, str. 14):

programski vmesniki – knjižnična zbirka programskih vmesnikov (ang. Application

Programming Interface – API) razvijalcem novih aplikacij zagotavlja mehanizme

za delo z vhodno/izhodnimi komponentami mobilnih naprav oz. vzpostavlja

komunikacijo z nizkonivojskimi programskimi vmesniki,

Android virtualna naprava (AVD) – simulator mobilne naprave z izbranim Android

operacijskim sistemom z namenom testiranja delovanja nove mobilne aplikacije in

odpravljanje napak v programski kodi (angl. debuging),

razvojna orodja – pripomočki za predogled uporabniškega vmesnika, prevajanje in

razhroščevanje programske kode v Android izvršljivo aplikacijo, za kar

avtomatično poskrbi konstrukcijski program Gradle,

dokumentacija vsebine razvojnega ogrodja SDK z vsebinami pomoči in praktičnimi

primeri uporabe programske kode.

4 RAZVOJ MOBILNE APLIKACIJE SENSORTALK

4.1 Metodologija

Mobilno aplikacijo SensorTalk sem razvijal s pomočjo kaskadnega modela. K izboru

metodologije je prispevalo predvsem dejstvo, da se pri realizaciji zadane naloge prvič

srečujem s programiranjem Android mobilnih aplikacij. Kaskadni model omogoča sprotno

napredovanje in dokumentiranje razvoja programske opreme ter s povratnimi zankami med

fazami modela spodbuja k sprotnemu odpravljanju napak ali dopolnjevanju vsebine. Razvoj

aplikacije s kaskadnim modelom poteka skozi razvojne faze načrtovanja, implementacije,

testiranja, namestitve, odpravljanja napak ter nenazadnje upravljanje in vzdrževanje

aplikacije. Model je primeren za razvoj manj zahtevne aplikacije, katerih cilji so jasno

Page 40: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

24

določeni. Model omogoča sprotno ovrednotenje tako napredovanja kot tudi kakovost

implementacije izdelka (Rouse, 2007). Uporabnik rešitve razvoja programske opreme bom

sam, zato se pri razvoju ciljno osredotočam le na lastno idejno funkcionalnost končne mobilne

aplikacije. V nadaljevanju bom predstavil vse faze razvojnega procesa od analize in

specifikacije zahtev, načrtovanja, implementacije, vključno s končnim testiranjem mobilne

aplikacije.

4.2 Obstoječe stanje in pričakovanja

Ideja za razvoj mobilne aplikacije SensorTalk se je porodila med opravljanjem praktičnega

izobraževanja v oddelku za obvladovanje meril in merilnih inštrumentov v generičnem

farmacevtskem podjetju Krka, d. d., tovarni zdravil v Novem mestu.

Strokovnjaki s področja merilne tehnike pri svojem delu vsakodnevno opravljajo servisne ali

preventivne posege v digitalnih elektronskih inštrumentih, za kar morajo vzpostaviti tudi

digitalno komunikacijo z računalniškim sistemom. Digitalni merilni inštrumenti so naprave, s

katerimi merimo različne fizikalne veličine, kot so temperatura, masa, tlak itd. Merilni

inštrumenti so opremljeni z elektronskimi digitalnimi komponentami, ki poleg

funkcionalnosti za merjenje fizikalnih veličin omogočajo tudi različne vrste računalniških

komunikacijskih vmesnikov z namenom nastavljanja sistemskih in procesnih parametrov

merjenja ter prenosa podatkov o izmerjenih vrednostih do računalniških nadzornih sistemov

(JCGM, 2012). Pri spoznavanju procesne in laboratorijske merilne tehnike je bilo moč opaziti

različne vrste komunikacijskih vmesnikov in protokolov, kot so npr. USB, LAN, Bluetooth,

Profibus, RS485 in drugi. Med vsemi komunikacijskimi protokoli, tako starejši kot tudi

novejši merilni inštrumenti iz servisnega stališča, še vedno v večini primerov temeljijo na

standardnem komunikacijskem protokolu RS232.

Standardno komunikacijo protokola RS232 z merilnimi inštrumenti se danes vzpostavlja z

uporabo sodobnega prenosnega računalniškega sistema, ki ne ponuja več vgrajenega

standardnega vmesnika RS232, temveč je potrebno uporabiti digitalni serijski pretvornik, ki s

pomočjo namenske programske opreme (gonilnik) in namenskih digitalnih komponent

pretvori komunikacijski protokol iz USB v RS232 in obratno (glej poglavje »Pretvornik USB-

RS232C«). Sodobni prenosni računalniki kljub kompaktni konstrukcijski izvedbi

predstavljajo breme uporabniku pri prenosljivosti. Procesna merilna tehnika je nameščena v

Page 41: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

25

različnih okoljih, mnogokrat v težko prehodnih tehničnih prostorih (t. i. strojnicah, namensko

zgrajeni prostori za postavitev in montažo sestavnih delov večjih naprav), do katerih je

potrebno dostopati z računalniškim sistemom.

Rešitev, ki bi olajšala delo z merilnimi inštrumenti, se nanaša na tehnologijo sodobnih

mobilnih telefonov in tabličnih računalnikov, ki z novejšim USB krmilnikom (OTG) in

programskimi orodji omogoča priključitev široke palete USB naprav. Med njimi je prav tako

pretvornik USB - RS232, katerega potrebujemo pri komunikaciji z merilnimi inštrumenti.

Mobilni operacijski sistem Android od verzije 3.1 (API nivo 12) dalje omogoča razvijalcem

Android aplikacij implementacijo gonilnikov za komunikacijo z različnimi USB napravami. Z

implementacijo mobilne aplikacije, pametnim telefonom in serijskim pretvornikom želimo

doseči celovit mobilni sistem za komunikacijo z zunanjimi napravami, ki podpirajo standardni

RS232 komunikacijski protokol.

4.2.1 Pregled obstoječih programskih rešitev

Del razvoja mobilne aplikacije SensorTalk je zajemal pregled podobnih obstoječih rešitev,

objavljenih na svetovnem spletu. Iskanje obstoječih programskih rešitev je najlažje izvesti na

spletni strani Google Play, kjer avtorji aplikacij svoje izdelke objavijo in ponudijo za prenos

uporabnikom. Avtorji na spletni strani uporabnikom ponudijo vsebine brezplačno ali z

odkupom. Storitve spletne strani Google Play zagotavlja podjetje Google Inc., ki poleg

mobilnih aplikacij Android ponujajo prenos uporabnikom tudi glasbo, slike, video vsebine in

t. i. elektronske knjige. Storitve so uporabniku na voljo po modelu računalništva v oblaku

(angl. cloud computing), kar pomeni, da lahko uporabnik vsebino hrani na spletnih strežnikih

in dostopa do vsebin preko svetovnega spleta (Google play).

Iskanje podobnih mobilnih aplikacij sem izvedel z integriranim iskalnikom omenjene spletne

strani. Ključno besedo za iskanje sem vnesel »usb serijska« (angl. usb serial). Iskalnik je našel

in prikazal številne zadetke (preko sto zadetkov), za katere je bilo razvidno, da vsebinsko ne

ustrezajo iskalnim kriterijem oz. opisu zahtev za mobilno aplikacijo SensorTalk. Med njimi

pa so bile različne aplikacije na voljo tako brezplačno kot tudi z možnostjo nakupa. Zato sem

se odločil med njimi izbrati štiri najbolje ocenjene (ocene od 0,0 do 5,0), vsebinsko ustrezne

ter plačljive aplikacije. Izbrane aplikacije sem preučil in ugotovitve zajel v spodnji Tabeli 4.1.

Page 42: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

26

Tabela 4.1: Opis štirih obstoječih aplikacij s serijsko komunikacijo po kriteriju izbora najbolj

ocenjena in plačljiva aplikacija

Ikona Naziv

(avtor) Opis

Android

različica Zmogljivosti

Cena (€)

/ Ocena

USB

Serial

Control

Panel Pro

(hosun

lim)

Program serijske

nadzorne plošče za

pametne telefone

Minimum

3.2

(HONEYCO

MB_MR2,

API nivo 13)

ali novejši

Povezljivost s serijskimi

komunikacijskimi vmesniki tipa:

SilLab CP210X, FTDI FT232,

Prolific PL2303, CDC/ACM

UART, Zigbee TI CC2531;

Shranjevanje in urejanje ukaznih

stavkov – hitri kontrolni gumbi

1,34 / 5,0

USB

Serial

Terminal

Pro

(hosun

lim)

Program serijskega

terminala za

Android mobilne

telefone

Minimum

3.1

(HONEYCO

MB_MR1,

API nivo 12)

ali novejši

Povezljivost s serijskimi

komunikacijskimi vmesniki tipa:

SilLab CP210X, FTDI FT232,

Prolific PL2303, CDC/ACM

UART, Zigbee TI CC2531;

Predstavitev podatkov v

šestnajstiškem, dvojiškem in ascii

znakovnem načinu; Shranjevanje

in urejanje ukaznih stavkov;

Arhiviranje poslanih in prejetih

podatkov

2,04 / 4,5

OTG

UART

Terminal

(Apps

Gempro)

Testno programsko

orodje za testiranje

serijske

komunikacije s

pametnimi telefoni

ali tablicami

Minimum

2.3

(GINGERB

READ, API

nivo 9) ali

novejši

Pošiljanje podatkov neposredno

na vhod UART vmesnika;

Nekatere naprave potrebujejo

pridobiti sistemsko dovoljenje

ROOT

1,49 / 4,5

Slick

USB 2

Serial

Term Pro

(SlickDe

v Labs)

Program namenjen

uporabi s tablicami,

serijski terminal

Minimum

3.1

(HONEYCO

MB_MR1,

API nivo 12)

ali novejši

Povezovanje in komunikacija s

serijskimi vmesniki Prolific in

FTDI; Shranjevanje ukaznih

stavkov – hitri gumbi;

Spreminjanje nastavitev prikaza

teksta

5,19 / 3,9

Vir: prirejeno po Google play (3. september 2015)

Ugotovil sem, da po opisu funkcionalno najbolj ustreza aplikacija »USB Serial Terminal

Pro«. Razvoj aplikacije SensorTalk za potrebe diplomske naloge bo sledil smernicam

omenjene obstoječe aplikacije. Hkrati pa bo razvoj strmel tudi k implementaciji dodane

vrednosti, ki jo obstoječe aplikacije še nimajo in jo bom predstavil v nadaljevanju.

4.2.2 Opis praktičnega postopka komunikacije

V času praktičnega izobraževanja sem ugotovil, da se proces serijske komunikacije izvaja

izključno z uporabo računalniškega sistema. Proces specifikacije zahtev za mobilno aplikacijo

SensorTalk sem izvedel s pomočjo uporabe Windows računalniškega sistema ter prosto

Page 43: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

27

dostopnega terminalskega programa PuTTY, ki je široko uporabna programska rešitev kot

nadomestilo nekdanjega Windows HyperTerminala, katerega z novejšimi verzijami

operacijskega sistema Windows (Vista, 7, 8) dalje ni več mogoče uporabljati (Microsoft,

2015).

Navodila in primer vzpostavljanja serijske komunikacijske povezave z računalniškim

programom PuTTY sem poiskal na svetovnem spletu (Cyberoam Technologies Pvt. Ltd.,

2015). Programska oprema PuTTY ne zagotavlja nabora programskih gonilnikov za

komunikacijske pretvornike USB-RS232, zato je potrebno pred uporabo orodja poiskati in

namestiti ustrezni programski vmesnik pretvornika, ki ga želimo uporabiti. V mojem primeru

testiranja je operacijski sistem Windows 7 samodejno zaznal na spletu ustrezni programski

gonilnik in ga namestil. Tako sem pretvornik lahko uporabil brez dodatnih posegov v

operacijski sistem. Program PuTTY sicer omogoča več različnih opravil, za potrebe raziskave

sem uporabil le razdelek za vzpostavitev serijske komunikacije. Uporabniški vmesnik

omogoča vnos vseh potrebnih komunikacijskih parametrov serijske komunikacije ter izbiro

virtualnega serijskega vmesnika (angl. COM port). S potrditvijo vnesenih protokolarnih

parametrov serijske komunikacije se uporabniku prikaže terminalno okno, v katerega lahko

vpisujemo znakovne (nabor ASCII znakov) zahtevke za pošiljanje preko serijskega vmesnika

periferni napravi. Prav tako program v terminalu prikaže odzive periferne naprave. Nabor

ukaznih stavkov za testno periferno napravo je podrobneje opisan kasneje v sklopu testiranja

programske rešitve SensorTalk (glej poglavje 5).

4.3 Specifikacija zahtev funkcionalnosti aplikacije SensorTalk

Razvoj mobilne aplikacije mora zagotavljati ustrezen programski vmesnik oz. gonilnik za

prepoznavanje in komunikacijo z USB – RS232 pretvornikom. Operacijski sistem mora v

trenutku priključitve pretvornika na USB vodilo mobilne naprave uporabniku ponuditi zagon

mobilne aplikacije in vzpostaviti povezavo z vmesnikom. Vzpostavljanje in prekinitev

povezave je zaželeno tudi med samim izvajanjem aplikacije z izbirnim gumbom na osnovnem

uporabniškem vmesniku. Aplikacija naj status povezanosti s pretvornikom jasno označuje na

uporabniškem vmesniku. Vsako prekinitev vzpostavljene povezave z USB vmesnikom naj

uporabnika ustrezno obvesti z dialogom.

Page 44: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

28

Protokol serijske komunikacije RS232 med aplikacijo in priključeno napravo s pretvornikom

je potrebno omogočiti s prilagajanjem osnovnih parametrov serijske komunikacije RS2323

(parametri opisani v teoretičnem delu). Posamezne parametre komunikacije uporabnik izbira

v predpripravljenih spustnih seznamih na posebnem nastavitvenem uporabniškem vmesniku,

do katerega dostopa iz osnovnega vmesnika z navigacijskim gumbom. Nastavitvene

parametre serijske komunikacije je potrebno shraniti v ozadju aplikacije za kasnejšo uporabo

enakih nastavitev pri komunikaciji in ponovnem zagonu aplikacije.

Vnos teksta za pošiljanje uporabnik vnese v vnosno tekstovno okno z uporabo zaslonske

tipkovnice mobilne naprave. Prenos podatkov na vodilo USB priključeni napravi se izvede z

gumbom za pošiljanje. Nekateri podatki se morajo s serijskim komunikacijskim protokolom

določeno zaključiti z ASCII znakoma nove vrstice »new line« in ali s povratnim znakom

»carrier return«. Uporabnik mora imeti možnost vključiti posebna znaka v nastavitvah

aplikacije. Vhodni podatki, prejeti iz USB vodila, se prevedejo v berljivo obliko ASCII

znakov, ki morajo biti vrstično označeni in prikazani v terminalskem oknu.

Uporabnik mora imeti možnost nastavitve prikazovanja poslanih podatkov v terminalskem

oknu med prejetimi podatki. Uporabnikom je potrebno omogočiti brisanje prikazanih

podatkov v terminalskem oknu oz. ponastavljanja grafičnih gradnikov. Aplikaciji je zaželeno

vključiti tudi implementacijo pripomočka ročne svetilke za uporabo sistema v slabo

osvetljenih prostorih na posebnem grafičnem vmesniku, dostopnega iz glavne aktivnosti.

4.4 Načrtovanje aplikacije

Razvoj mobilne aplikacije sem zaradi kompleksnosti in boljše organiziranosti izvedel v dveh

nivojih. Najprej sem pričel s kompleksnejšo implementacijo programskega vmesnika oz.

gonilnika za sporazumevanje z USB serijskim pretvornikom. V drugem nivoju razvoja sem se

posvetil gradnji grafičnega uporabniškega vmesnika oz. namenske aktivnosti aplikacije.

Sočasno z razvojem posameznih aktivnosti sem vnesel tudi programsko logiko interakcije

aplikacije z uporabnikom in integriral USB programski gonilnik. Na koncu sem izvedel

testiranje mobilne aplikacije z uporabo testne mobilne naprave (API programski nivo verzije

3.1 ali novejša), USB serijskim pretvornikom in laboratorijsko tehtnico.

Page 45: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

29

4.5 Programski vmesnik – gonilnik

Pri načrtovanju programskega vmesnika za komunikacijo je bilo najprej potrebno ugotoviti, s

katero vrsto USB naprave bo mobilna aplikacija komunicirala in način komuniciranja.

Prednost uporabe USB tehnologije z raznimi napravami uporabnikom omogoča enostavno

priključevanje in vzpostavljanje povezave, to prednost pa zagotovi namenski programski

gonilnik. Protokol USB je način sporazumevanja med elektronskimi napravami. Ljudje se

med seboj lahko sporazumevamo le ob predpostavki, da se naučimo skupnega jezika in

upoštevamo določena pravila (Komuniciranje in njegov pomen). Prav tako je potrebno

elektronskim napravam podati znanje za sporazumevanje s protokolom USB in določiti

pravila. Pravila in znanje z uporabo tehnologije USB določa razvijalec strojne kot tudi

programske opreme USB naprav. Zato je potrebno poleg razvoja USB naprav upoštevati tudi

razvoj programskih vmesnikov oz. gonilnikov za posamezne operacijske sisteme

(prenosljivost gonilnikov med operacijskimi sistemi ni ustrezna). Gonilniki služijo

interpretaciji informacij, ki jih sistem prejme od priključene USB naprave.

Na trgu je mnogo digitalnih pretvornikov USB – RS232 različnih proizvajalcev. Proizvajalci

svojim izdelkom definirajo specifična pravila USB komunikacije (FTDI, Prolific, Silicon

Labs …). Nekateri proizvajalci pretvornikov za razvijalce programskih vmesnikov na spletu

objavijo celovito dokumentacijo z opisom komunikacijskega protokola naprave. Razumevanje

in učenje komunikacijskega protokola ostalih slabo ali nič dokumentiranih pretvornikov je

mogoče s postopkom reverzibilnega inženirstva, ki ga v tem sklopu sicer ne bom obravnaval.

Pri načrtovanju mobilne aplikacije sem imel na voljo le pretvornik tipa UC232A proizvajalca

ATEN, ki sem ga predhodno že testiral z računalniškim sistemom. Izdelek je izveden v obliki

kabelskega vmesnika z vgrajenimi digitalnimi komponentami v standardnem DB9 moškem

priključku na eni strani kabla in na drugi strani s standardnim USB moškim priključkom tipa

A. Proces pretvorbe signalov med protokoloma USB in RS232 se izvede z integriranim

namenskim čipom PL2303HX proizvajalca Prolific. Dokumentacijo za omenjeni pretvornik

sem uspel poiskati na spletni strani proizvajalca in analizirati komunikacijski protokol.

Page 46: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

30

Slika 4.1: USB pretvornik Aten UC232A.

Vir: ATEN International CO. (2013, str. 16)

4.5.1 Komunikacijski protokol pretvornika PL2303HX

USB konfiguracija pretvornika PL2303HX predstavlja enotna periferna naprava z

identifikacijsko oznako proizvajalca 0557 (VID) in oznako izdelka 2008 (PID).

Identifikacijske oznake vmesnika so v dokumentaciji pretvornika PL2303HX definirane sicer

nekoliko drugače, ker je proizvajalec vmesnika UC232A ATEN z dovoljenjem podjetja

Prolific priredil oznake. Oznake sem poiskal na svetovnem spletu med postopkom

specifikacije uporabniških zahtev z računalniškim sistemom.

Komunikacija pretvornika z gostiteljem poteka s štirimi podatkovnimi linijami (angl.

endpoints). Osnovna podatkovna linija ima z USB standardom določen naslov 0x00h,

katerega kontrolnik gostitelja naslovi pri vzpostavljanju povezave in inicializaciji

komunikacije z gonilnikom uporabniške aplikacije. Podatkovna linija 1 (»Interrupt input«) je

naslovljena z oznako 0x81h in jo naprava uporablja za periodično (interval 1 ms) pošiljanje

informacij gostitelju o strojnih prekinitvah serijske komunikacije. Podatkovna linija 2 (»Bulk

output OUT«) z naslovom 0x02h je namenjena prenosu paketov v smeri iz pomnilnika

gostitelja proti pomnilniku vmesnika. Podatkovna linija 3 (»Bulk input IN«) z naslovom

0x83h pa je namenjena prenosu paketov iz pretvornika proti gonilniku gostitelja. Zahteva

gostitelja za prenos podatkov se vrši z naslednjim standardnim naborom zahtevkov (Prolific

Technology Inc., 2007):

»Clear Future / Set Future« – navadno gostitelj pošlje paket in napravi informacijo

binarnega stanja določenega parametra),

»Get Configuration / Set Configuration« – uporabno za poizvedovanje ali

nastavljanje konfiguracije naprave,

Page 47: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

31

»Get Descriptor« – zahteva napravi za posredovanje deskriptorjev – generalni

zahtevek »Configuration Descriptor« vrne podatke za vse deskriptorje,

»Get Status« – zahtevek za informacijo o vrsti el. napajanja naprave ter o možnosti

vzbujanja naprave s »Clear Future/Set Future« zahtevkom,

»Set Address« – uporaba pri enumeraciji naprave in prirejanju napravi unikatnega

naslova na vodilu.

4.5.2 Gonilnik

Na spletni strani »GitHub.com«, ki je največje spletno gostišče odprtokodnih programskih

projektov, med katerimi so na voljo tudi projekti za razvoj Android mobilnih aplikacij, sem

poiskal prosto dostopno API knjižnico programske kode, imenovano »usb-serial-for-

android«, ki že implementira nekatere USB programske gonilnike. Med njimi sem našel tudi

gonilnik za komunikacijo s pretvornikom Prolific PL2303HX. Mobilno aplikacijo SensorTalk

sem se tako odločil razviti s pomočjo prosto dostopne razvojne knjižnice in tako prihraniti čas

za razvoj svoje različice gonilnika. Poleg tega sem aplikaciji integriral tudi ostale gonilnike

programske knjižnice, ki sem jo pri razvoju aplikacije SensorTalk uporabil s sprejetjem

licenčnih pogojev GNU LGPL 2.1 (GNU Lesser General Public License).

Za uporabo obstoječega gonilnika pri razvoju mobilne aplikacije sem se odločil na podlagi

pregleda dokumentacije API knjižnice »usb-serial-for-android« na spletni strani GitHub.

Ugotovil sem skladnost USB komunikacijskega protokola s serijskim pretvornikom UC232A.

Čeprav knjižnica omogoča podporo USB serijske komunikacije tudi z nekaterimi drugimi

pretvorniki (FT232R, CDC/ACM, CP2102), bom preučevanje in razvoj aplikacije usmeril le

na ciljno konfiguracijo s pretvornikom PL2303HX in gonilnikom »ProlificSerialDriver«.

Razvojna knjižnica z gonilniki temelji na podlagi programske knjižnice Android USB Host

API. Implementirane metode v knjižnici vršijo nalogo vmesnika med uporabniško mobilno

aplikacijo, Android operacijskim sistemom ter strojno opremo mobilne naprave. Android

programska knjižica USB Host API je za delo z USB kontrolnikom mobilnih naprav na voljo

z verzijo Android 3.1 (API nivo 12) dalje. Knjižnica »usb-serial-for-android« serijske

komunikacije z USB pretvornikom je sestavljena z naslednjimi komponentami, ki jih bom

uporabil tudi pri razvoju mobilne aplikacije (Wakerly, 2015):

Page 48: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

32

UsbId.java {UsbId.class} – objekt definira seznam USB naprav z identifikacijskimi

oznakami VID (proizvajalec izdelka) in PID (izdelek); oznake v seznamu se

uporabljajo za prepoznavanje/enumeracijo USB naprave z gonilnikom ob zaznavi

novo priključene naprave USB kontrolnika; seznama kasneje pri uporabi končne

mobilne aplikacije ni mogoče dopolnjevati;

ProbeTable.java {ProbeTable.class} – objekt definira novo podatkovno strukturo

»ProbeTable« tipa zemljevid, sestavljeno iz ključa VID:PID in ustreznega

gonilnika; vsebovane osnovne metode za delo s podatkovno strukturo;

UsbSerialProber.java {UsbSerialProber.class} – pripomoček za delo s podatkovno

strukturo »ProbeTable« in iskanju ustreznega gonilnika (lahko tudi več različnih)

novo priključeni napravi v fazi USB enumeracije;

UsbSerialRuntimeException.java {UsbSerialRuntimeException.class} – objekt

razširja razred »RuntimeException« z namenom obvladovanja sistemskih sporočil

generiranih med izvajanjem aplikacije;

HexDump.java {HexDump.class} – orodje, namenjeno pretvorbi podatkov iz

šestnajstiških v decimalne oz. znakovne podatkovne tipe;

SerialInputOutputManager.java {SerialInputOutputManager.class} – orodje

namenjeno avtomatizaciji branja in obdelave podatkov na USB komunikacijskem

vhodu;

UsbSerialPort.java {UsbSerialPort.interface} – vmesnik definira temeljno

strukturo (metode, parametre, obliko) klasičnega serijskega komunikacijskega

prehoda RS232;

CommonUsbSerialPort.java {CommonUsbSerialPort.class} – razširitev vmesnika

»UsbSerialPort« z alokacijo internega vhodno/izhodnega podatkovnega

pomnilnika, potrebnega za serijsko komunikacijo in določanje komunikacijskega

prehoda novi USB napravi;

UsbSerialDriver.java {UsbSerialDriver.interface} – vmesnik definira temeljno

strukturo USB gonilnika;

ProlificSerialDriver.java {ProlificSerialDriver.class, ProlificSerialPort.class} –

namenski programski gonilnik za enumeracijo in komunikacijo z USB serijskimi

pretvorniki Prolific (PL2303HX); gonilnik razširja in združuje vse predhodno

opisane gradnike in vmesnike.

Ostali namenski gonilniki za komunikacijo z drugimi tipi pretvornikov:

FtdiSerialDriver.java {FtdiSerialDriver.class, FtdiSerialPort.class}

Page 49: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

33

Cp21xxSerialDriver.java {Cp21xxSerialDriver.class, Cp21xxSerialPort.class}

CdcAcmSerialDriver.java {CdcAcmSerialDriver.class, CdcAcmSerialPort.class}

4.6 Grafični uporabniški vmesnik

Uporabniški vmesnik mobilne aplikacije je vizualna podoba aplikacije, sestavljena iz

pogledov oz. aktivnosti ter grafičnih gradnikov, s katerimi je uporabnik v interakciji med

izvajanjem aplikacije. Android mobilno aplikacijo lahko sestavlja več aktivnosti z različnimi

grafičnimi sklopi, med katerimi uporabnik lahko prehaja s tapkanjem navigacijskih tipk ali z

drsenjem po na dotik občutljivem zaslonu.

4.6.1 Načrtovanje in implementacija uporabniškega grafičnega vmesnika

Aktivnosti mobilne aplikacije SensorTalk sem razdelil glede na opravila, s čimer sem pri

implementaciji grafičnega vmesnika zmanjšal težavo pomanjkanja prostora na zaslonu

mobilne naprave in pripomogel k lažji uporabi aplikacije. Idejo grafičnega vmesnika sem

upodobil s pomočjo uporabe orodja MS Excel 2010 (Slika 4.2). Načrt aplikacije sem pri

implementaciji vmesnika uporabil kot podlago za gradnjo. Načrt sem kasneje prav tako

uporabil pri povezovanju funkcionalnih delov aplikacije z gradniki vmesnika ter prehajanja

med aktivnostmi.

Page 50: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

34

Slika 4.2: Idejna skica aktivnosti aplikacije SensorTalk

Vmesnik nastavitev aplikacije:

- nastavitve parametrov serijske komunikacije

- arhiv že uporabljenih nastavitev komunikacije z različnimi napravami

Settings Activity

Vmesnik orodij:

- ročna svetilka - vklop bliskavice v primeru slabe svetlobe med priključevanjem USB naprave z drugimi napravami

Tools Activity

Vmesnik pogovora:

- implementacija serijskega terminala za komunikacijo z zunanjo napravo

- vnos teksta za prenos in pošiljanje

- prejemanje podatkov zunanje naprave z časovnim zaznamkom in osveževanje

Conversation Activity

Glavni vmesnik:

- vhodna točka aplikacije

- prepoznavanje priključene USB naprave

- prikaz podatkov priključene USB naprave

- navigacijski meni med aktivnosti

Main Activity

Vir: Erjavec, lastni prikaz (2015)

Za gradnjo grafičnega uporabniškega vmesnika aplikacije SensorTalk sem uporabil orodje

razvojnega okolja Android Studio. Vmesnik sem realiziral z Android standardnimi grafični

komponentami, ki sem jih s funkcijo »drag-drop« umestil na virtualni zaslon mobilne

naprave. Napredne funkcije razvojnega okolja so pripomogle k minimalističnemu urejanju

XML kode, ki sicer predstavlja osnovo za gradnjo grafičnih vmesnikov. Aktivnosti aplikacije

so sestavljene iz naslednjih osnovnih gradnikov palete gradnikov Android Studia:

»LinearLayout« – vsebnik skupine grafičnih gradnikov, razvrščenih v določeni smeri

horizontalno ali vertikalno,

»ImageView« – grafični element služi prikazovanju slik na zaslonu različnih virov in

omogoča nekatere osnovne funkcije manipulacije (velikost, usmerjenost, barvni

odtenki …),

»ImageButton« – razširjena izvedba gradnika »ImageView« s funkcionalnimi

lastnostmi gumba,

»Button« – gradnik predstavlja interaktivni gumb, ki služi interakciji uporabnika z

mobilno aplikacijo oz. klicu programskih funkcij,

Page 51: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

35

»TextView« – element prikazuje tekst na zaslonu z možnostjo posrednega urejanja z

vršenjem programske kode, direktna uporabniška manipulacija z vnosno tipkovnico ni

priporočljiva,

»EditText« – razširitev gradnika »TextView« za prikazovanje teksta na zaslonu z

možnostjo neposredne uporabniške manipulacije teksta z uporabo tipkovnice,

»ScrolView« – vsebnik skupine grafičnih elementov ali posameznega gradnika,

katerega velikost lahko presega dimenzije zaslona in je pregled dela vsebine možen z

drsenjem po zaslonu mobilne naprave,

»Spinner« – spustni seznam, prikaz izbrane vsebine ali izbira druge vsebine iz

spustnega seznama.

Gradnike vmesnikov sem v večini oblikoval z orodji razvojnega okolja z izjemo grafične

podobe glave aplikacije, ki sem jo oblikoval s pomočjo programa MS Word 2010 in MS

Paint. Orodje okolja Android Studia omogoča tudi hkratno implementacijo vmesnika za

različne dimenzije mobilnih naprav, kar pomeni, da lahko razvijalec določi ciljno vrsto

dimenzij zaslonov in jih med razvojem ureja istočasno. Razvoj grafičnega vmesnika

aplikacije sem omejil na tipične pravokotne zaslone mobilnih naprav dimenzij od 3,7 inča do

7,0 inča.

Slika 4.3: Prikaz različnih dimenzij grafičnih vmesnikov aplikacije SensorTalk

Vir: Erjavec, lastni prikaz (2015)

Page 52: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

36

Mobilna aplikacija bo večino časa prikazovala zaslonsko tipkovnico, hkrati pa bo uporabnik

potreboval pregled nad prejetimi podatki iz zunanje naprave, kar predstavlja večjo prostorsko

obremenitev zaslona (predvsem manjšim zaslonom). Zato sem aplikaciji med razvojem

vmesnika določil končno vertikalno postavitev vmesnika ter optimalne velikosti gradnikov

prikazovalnikov pomembnih podatkov za vrsto izbranih velikosti zaslonov.

Prehod pogleda na podaktovnosti aplikacije sem realiziral z implementacijo navigacijskih

gumbov v glavnem meniju, za vračanje na pogled glavne aktivnosti pa sem uporabil Android

standardni gumb »nazaj« (Slika 4.4).

Slika 4.4: Izrezek slike Android standardnega gumba »nazaj«

Vir: Erjavec, lastni prikaz (2015)

4.6.2 Primarni uporabniški vmesnik

Vstopno točko aplikacije SensorTalk sem določil z vstopno oz. glavno aktivnostjo, ki sem jo

poimenoval »activity_main.xml«. Programsko kodo glavne aktivnosti sem urejal v samodejno

generirani datoteki »MainActivity.java«, ki jo ustvari razvojno okolje Android Studio

soodvisno z ustvarjanjem nove aktivnosti. Programska koda izvaja vse funkcije življenjskega

cikla glavne aktivnosti. Uporabnik lahko v aplikacijo SensorTalk vstopi na tri različne načine:

iz začetnega zaslona (tapkanje ikone na začetnem zaslonu),

iz seznama aplikacij (tapkanje ikone v meniju seznama aplikacij),

s pomočjo namenskega filtra ob priključitvi USB naprave.

Operacijski sistem Android varnostno omejuje dostop aplikacijam do storitev USB

kontrolnika. Zato aplikacija za polni dostop storitev potrebuje posebno dovoljenje

operacijskega sistema »EXTRA_PERMISSION_GRANTED«, ki ga lahko pridobi na dva

različna načina:

samodejno – uporabnik potrdi dialog za zagon aplikacije z uporabo namenskega

filtra »intent-filter« definiranega v datoteki »AndroidManifest.xml«,

Page 53: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

37

ročno – pošiljanje zahtevka za dovoljenje med izvajanjem mobilne aplikacije in

potrditev dialoga s strani uporabnika.

Aplikaciji SensorTalk sem omogočil oba mehanizma. Ročno pridobivanje dovoljenja sem

implementiral v sklopu klica aktivnosti komunikacijskega terminala z dodatnim preverjanjem

dosegljivosti priključene USB naprave (Slika 4.5).

Slika 4.5: Levo dialog ročnega pridobivanja dovoljenja, desno dialog zagona aplikacije ob

priključitvi USB pretvornika

Vir: Erjavec, lastni prikaz (2015)

Slika 4.6: Preverjanje imetnika dovoljenja uporabe storitev USB

Preverjanje in klic metode za pridobivanje dovoljenja

Page 54: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

38

Slika 4.7: Metoda prejemnika zahtevanega dovoljenja uporabe storitev USB

Vir: Erjavec, lastni prikaz (2015)

Namen glavne aktivnosti poleg vstopne točke je prikaz osnovnih podatkov priključenega

USB-RS232 pretvornika ter prikaz navigacijskega menija med ostalimi aktivnostmi

aplikacije. Pomembnejši podatki, ki sem jih umestil na uporabniški vmesnik, so (glej Sliko

4.8):

ime naprave,

status povezanosti,

par identifikacijskih številk proizvajalca in izdelka (»Vendor ID:Product ID«),

število USB vmesnikov naprave,

število podatkovnih linij vmesnikov (»Endpoints«),

ime ustrezajočega gonilnika naprave iz nabora gonilnikov »usb-serial-for-

android«.

Del vmesnika predstavlja tudi navigacijski meni z naborom interaktivnih gumbov, ki jih

uporabnik lahko aktivira s tapkanjem po zaslonu mobilne naprave. Navigacijski meni

sestavljajo gumbi:

Metoda pridobivanja dovoljenja

Page 55: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

39

»Search« – klic funkcije za enumeracijo na novo priključene USB naprave oz.

povezovanje naprave z enim od gonilnikom ter posodabljanje prikazanih podatkov

naprave, generiranje obvestil o uspehu pri iskanju,

»Start conversation« – klic aktivnosti »activity_conversation.xml« (uporabniški

vmesnik serijske komunikacije), preverjanje in urejanje dovoljenja USB naprave za

dostop do storitev Android »USB Host« ter shranjevanje podatkov USB naprave

(ime naprave, par identifikacijskih številk v obliki »proizvajalec:izdelek«) s

pomočjo objekta »SharedPreferences« v namen preverjanja pri kasnejšem

vzpostavljanju komunikacije, generiranje obvestil v primeru nedosegljive naprave,

»Settings« – klic aktivnosti »activity_settings.xml« (uporabniški vmesnik osnovnih

nastavitev parametrov serijske komunikacije),

»Tools« – klic aktivnosti »activity_tools.xml« (uporabniški vmesnik s pripomočki

aplikacije),

»Exit« – končanje aktivnosti in izhod iz aplikacije SensorTalk.

Slika 4.8: Začetni uporabniški grafični vmesnik s prikazom podatkov pred in po

prepoznavanju USB naprave

Vir: Erjavec, lastni prikaz (2015)

Prikazani podatki USB naprave in status povezanosti se osvežijo s klicem funkcionalnosti

gumbov. Glavna aktivnost povratne informacije uporabniku posreduje tudi z generiranjem

Page 56: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

40

kratkotrajnih sporočil ob uspešni enumeraciji USB naprave ali morebitnih napakah, nastalih z

enumeracijo.

Slika 4.9: Obvestila, generirana v povezavi s priključeno USB napravo

Vir: Erjavec, lastni prikaz (2015)

4.6.3 Vmesnik nastavitev

Implementacija aktivnosti z nastavitvami parametrov serijske komunikacije RS232 je

potrebna za vnos konfiguracije serijskega komunikacijskega protokola z zunanjo napravo.

Nastavljanje parametrov sem realiziral z namensko aktivnostjo, ki sem jo imenoval

»activity_settings.xml« in samodejno generirano (Android Studio) programsko datoteko

»SettingsActivity.java«. Aktivacijo aktivnosti uporabnik kliče z navigacijskim gumbom

»Settings« iz programa glavne aktivnosti.

Aktivnost uporabniku ponuja nastavljanje parametrov serijske komunikacije, ki sem jih

navedel v teoretičnem sklopu naloge. Poleg nastavitev serijske komunikacije lahko uporabnik

določi še zaključevanje poslanega sporočila z novo vrstico oz. posebnima znakoma »carier-

return« in »linefeed« ter ali se poslani podatki tudi prikažejo v terminalu med vrsticami

prejetih podatkov ali ne.

Page 57: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

41

Slika 4.10: Grafični vmesnik aktivnosti z nastavitvami serijske komunikacije

Vir: Erjavec, lastni prikaz (2015)

Hranjenje nastavitvenih parametrov sem realiziral z namenskim orodjem

»SharedPreferences«, s katerim v ozadju aplikacije program ustvari uporabniku nevidno

datoteko in v njej shrani nabor nastavljenih parametrov. Aktivnost z nastavitvami se zaključi

ob aktiviranju Android gumba nazaj. Ob izhodu iz aktivnosti se najprej izvede preverjanje

morebitnih sprememb nastavitev glede na predhodno shranjene parametre. V primeru

sprememb pred izhodom iz aktivnosti ta prikaže uporabniku dialog z možnostjo shranjevanja

sprememb nastavitev v datoteko ali pa se aktivnost konča brez shranjevanja. Podatke

nastavitev serijske komunikacije aplikacije v podatkovni strukturi »SharedPreferences« sem

shranil s klicem metode v programu aplikacije. Shranjeni podatki so indeksi izbranih

elementov v spustnih seznamih, saj so ob nastavljanju parametrov serijske komunikacije na

strani gonilnika USB naprave vrednosti enakovredne.

Page 58: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

42

Slika 4.11: Metoda klica gumba nazaj, detekcija sprememb in klic funkcije za shranjevanje

nastavitev

Vir: Erjavec, lastni prikaz (2015)

Slika 4.12: Potrditev ali zavrnitev shranjevanja sprememb v nastavitvah

Vir: Erjavec, lastni prikaz (2015)

Page 59: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

43

Slika 4.13: Metoda shranjevanja nastavitvenih parametrov v ozadju aplikacije

Vir: Erjavec, lastni prikaz (2015)

4.6.4 Vmesnik za orodja

Mobilno aplikacijo SensorTalk sem z implementacijo aktivnosti, imenovano

»activity_tools.xml«, dodatno opremil kot orodje aplikacije. Mobilna aplikacija se bo

uporabljala tudi pri povezovanju z zunanjimi napravami v slabo osvetljenih prostorih (t. i.

strojnicah). Za ustrezno povezavo mobilne naprave z zunanjo napravo bom tako potreboval

dodatni vir svetlobe. Tako sem z uporabo vgrajene strojne komponente bliskavice in Android

programske knjižnice »Camera« dodal funkcionalnost ročne svetilke. Mobilna naprava lahko

postane ročna svetilka v smislu aktivacije bliskavice za čas, ki ga potrebuje uporabnik pri

priključevanju. Aktivnost orodij aktiviramo z gumbom »Tools« iz navigacijskega menija

glavne aktivnosti. Vklop in izklop ročne svetilke uporabnik izvrši s pritiskom na interaktivni

gumb »Turn on/off«. Vračanje na glavno aktivnost enako kot pri ostalih aktivnostih izvede

uporabnik s pritiskom na gumb nazaj, hkrati pa se v primeru vklopljene svetilke ta tudi

izklopi. Nekatere mobilne naprave v naboru strojnih komponent nimajo vgrajene

»bliskavice«. Temu primerno aktivnost dodatno označuje možnost uporabe dodatne funkcije.

Page 60: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

44

Slika 4.14: Metodi za preverjanje razpoložljivosti strojne opreme in vklop/izklop funkcije

ročne svetilke

Vir: Erjavec, lastni prikaz (2015)

Slika 4.15: Uporabniški vmesnik aktivnosti "Tools"

Vir: Erjavec, lastni prikaz (2015)

4.6.5 Vmesnik komunikacijskega terminala

Aktivnost, s katero bomo vršili serijsko komunikacijo in predstavlja funkcijo serijskega

terminala, sem imenoval »activity_conversation.xml«. Implementacijo aktivnosti serijskega

Page 61: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

45

terminala na nekoliko manjšem zaslonu mobilne naprave kakor na prenosnem računalniku,

sem realiziral z uporabo gradnikov, s katerimi sem omogočil kar najboljšo preglednost nad

prejetimi in poslanimi podatki serijske komunikacije.

Klic aktivnosti se izvede iz menija glavne aktivnosti z gumbom »Start Conversation«, pri

čemer se predhodno preveri status povezanosti priključene naprave, preveri in pridobi

potrebna dovoljenja za komunikacijo. V primeru neustrezne povezanosti naprave se klic

aktivnosti serijskega terminala prekine, hkrati pa glavna aktivnost generira obvestilo

uporabniku o napaki. Ob klicu aktivnosti se v ozadju naložijo shranjeni nastavitveni parametri

serijske komunikacije iz datoteke ter vzpostavi komunikacijo s priključeno USB napravo.

Uspešnost vzpostavljanja povezave s pretvornikom USB-RS232 se prav tako seznani

uporabnika z generiranjem obvestila.

Vnos teksta in pošiljanje zunanji napravi se izvede s pomočjo vnosnega tekstovnega polja,

virtualne zaslonske tipkovnice in priležnega gumba »Send«. Vnesene podatke v tekstovnem

polju uporabnik lahko briše z gumbom »Clear input«. Prejeti podatki iz USB pretvornika se v

terminalu prikažejo samodejno z oznako številke vrstice, v kateri se nahaja podatek.

Samodejno prejemanje in obdelavo podatkov sem implementiral s pomočjo integriranega

objekta USB gonilnika »SerialInpuOutputManager.class«. Ob uspešni vzpostavitvi

komunikacije s pretvornikom sem s klicem pripomočka gonilnika ustvaril novo opravilo v

ozadju Android mobilne aplikacije. Izvajanje opravila v ozadju samodejnega prejemanja

podatkov iz zunanje naprave je zelo pomembno, saj bi sicer to opravilo zasedlo večino

procesorskega časa, kar bi upočasnilo delovanje aplikacije. Tako lahko uporabnik brez motenj

vpisuje in pošilja zahtevke zunanji napravi. Sočasno aplikacija lahko prejema podatke iz

zunanje naprave in jih ustrezno prikaže v terminalu.

Page 62: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

46

Slika 4.16: Definiranje opravila, ki se bo izvajal v ozadju aplikacija ter klic funkcije za

posodabljanje prejetih podatkov

Vir: Erjavec, lastni prikaz (2015)

Slika 4.17: Metoda za posodobitev prejetih podatkov na zaslonu in kontrolniki opravila v

ozadju aplikacije

Vir: Erjavec, lastni prikaz (2015)

Page 63: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

47

Z aktivacijo nastavitev prikaza poslanih podatkov v nastavitvenem vmesniku, se med

prejetimi podatki prikažejo tudi poslani podatki. Razlikovanje prejetih in poslanih prikazanih

podatkov v terminalu sem za prejete podatke določil odtenek oranžne barve, poslani podatki

pa so obarvani z zeleno barvo. Uporabniku sem z gumbom »Reset« omogočil ponastavljanja

grafičnih elementov terminala (brisanje podatkov), pri čemer sem upošteval možnost neželene

aktivacije gumba. Zato sem ob klicu gumba za ponastavljanje implementiral tudi potrditveni

dialog, s katerim uporabnika tudi obvestim o brisanju podatkov.

Slika 4.18: Potrditveni dialog ponastavljanja komunikacijskega terminala

Vir: Erjavec, lastni prikaz (2015)

Slika 4.19: Vmesnik serijskega terminala aplikacije ter primer poslanih (zeleno) in prejetih

(oranžno) prikazanih podatkov

Vir: Erjavec, lastni prikaz (2015)

Page 64: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

48

5 TESTIRANJE APLIKACIJE

Testiranje programske opreme je namenjeno objektivnemu, neodvisnemu vpogledu v

aplikacijo s čemer razvijalec potrdi in ovrednoti morebitna tveganja uporabe aplikacije.

Tehnike testiranja programske opreme v prvi vrsti pripomorejo k učinkovitejši detekciji napak

v programski kodi, ki jih tekom razvoja programske opreme ni enostavno odkriti. Navadno

koraki testiranja sledijo predhodno specificiranim zahtevam strank za razvoj programske

opreme. Zahtevnost testiranja in čas, porabljen za proces, je v veliki meri odvisen od

zahtevnosti aplikacije, pomembnosti rezultatov, ciljne uporabniške skupine, itd. V skladu s

standardom ANSI/IEEE 1059 (Guidance in preparing Software Verification and Validation

Plans – V&V) lahko opredelim testiranje programske opreme kot analiziranje programske

opreme ali kosa programske opreme z namenom odkrivanja razlik med specificiranimi

zahtevami in dejanskim stanjem opreme (napake, okvare, hrošči). Testiranje mobilne

aplikacije SensorTalk za Android operacijski sistem bom opravil v realnem okolju z

razpoložljivima napravama pametnega mobilnega telefona in zunanjo merilno napravo –

laboratorijsko tehtnico.

5.1 Testna mobilna naprava

Mobilna aplikacija SensorTalk je namenska aplikacija za uporabo z Android pametnimi

mobilnimi napravami (pametni telefon ali tablični računalnik). Glavna funkcionalnost

aplikacije je sposobnost vzpostavljanja serijske komunikacije z zunanjimi merilnimi

napravami, kar omogoča vmesnik komunikacijskega protokola pretvornik USB – RS232.

Sodobne mobilne naprave imajo sicer vgrajeno vodilo USB, ki pa pri vseh, tudi sodobnih

napravah, niso tudi USB kombinirani kontrolniki in zatorej vse naprave niso sposobne

komunicirati s pretvornikom. Izbira testne mobilne naprave je omejena z mobilnimi

napravami, ki imajo vgrajen kombinirani USB kontrolnik OTG (On-The-Go). Prav tako je

izbira mobilne naprave omejena s programsko opremo naprave, ki jo mora poganjati mobilni

operacijski sistem Android različice 3.1 »Honeycomb« API nivo 13 ali novejši. Za testiranje

mobilne aplikacije sem uporabil napravo pametni mobilni telefon proizvajalca LG model G3

(predhodno v uporabi).

Page 65: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

49

5.1.1 Lastnosti testne mobilne naprave LG G3

Naprava LG G3 med mobilnimi napravami spada v skupino pametnih mobilnih telefonov.

Proizvajalec LG (Lucky Goldstar) Electronics je izdelek lansiral na trg maja 2014 s pred

naloženim mobilnim operacijskim sistemom različice 4.4.2 »KitKat« (API nivo 19). Med

samim razvojem aplikacije SensorTalk sem nadgradil Android operacijski sistem z različico

5.0 »Lollipop« (API nivo 21). Nadgradnjo Android sistemov omogoča uporaba funkcije

samodejnih posodobitev. V spodnji tabeli sem strnil nekatere, za testiranje aplikacije

pomembne lastnosti mobilne naprave.

Tabela 5.1: Pomembnejše lastnosti mobilne naprave za izvedbo testov

TEHNIČNE LASTNOSTI NAPRAVE

Zaslon True HD (16M barv)

1440x2560 pik z diagonalo 5,5 incha

Osnovna plošča Qualcomm MSM8975AC Snapdragon 801

Procesor Quad-core 2.5 GHz Krait 400

Grafični vmesnik Adreno 330

Interni spomin 32 GB , 3 GB RAM

USB kontrolnik

microUSB v2.0 (SlimPort), USB Host

(OTG dvojna vloga gostitelja in zunanje

naprave)

Kap. baterije 3000 mAh Li-Ion

Bliskavica vgrajena

Operacijski sistem Android 5.0 Lollipop API nivo 21

Kernel v. 3.4.0 (Linux)

Vir: prirejeno po GSMArena.com

5.2 Testna zunanja merilna naprava

Izbor zunanje merilne naprave je nekoliko lažji. Kot sem že v teoretičnem delu omenil, je v

uporabi široka paleta merilnih naprav, ki poleg sodobnejših komunikacijskih vmesnikov kot

temeljni komunikacijski vmesnik vsebujejo serijsko komunikacijo RS232. Pri izboru testne

zunanje merilne naprave sem uporabil sicer meroslovno neustrezno laboratorijsko tehtnico

Mettler Toledo AT 201. Tehtnica kljub meroslovni neustreznosti še vedno omogoča serijsko

Page 66: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

50

komunikacijo in je tako primerna za testiranje serijske komunikacije mobilne aplikacije.

Vzpostavljanje in uporabo serijske komunikacije RS232 zahteva od uporabnikov poznavanje

komunikacijskega protokola in pravil. Zato je potrebno pred vsako uporabo komunikacijskega

sistema protokol dobro poznati. Protokol bom za namen testiranja v nadaljevanju podrobneje

predstavil.

5.2.1 Protokol serijske komunikacije tehtnice AT

Ustrezno vzpostavitev serijske komunikacije lahko dosežem med dvema naprava le, v kolikor

poznam vse, za komunikacijo potrebnih pravil in ukaznih stavkov. Pravila vzpostavljanja

komunikacije za tehtnico AT 201 sem našel v tehnični dokumentaciji, ki sem jo poiskal na

svetovnem spletu. Delovanje tovarniško vgrajenega serijskega vmesnika je določeno z

naslednjimi integriranimi tehničnimi pravili:

asinhroni prenos podatkov,

1 začetni bit,

velikost podatka 7 bitov,

1 bit za detekcijo napak pri prenosu bitov (izbirno),

1 zaključni bit ter

enosmerna/dvosmerni pretok podatkov (izbirno).

Tehtnica v meniju prikazovalnika omogoča vpogled in spreminjanje nekaterih nastavitev za

vzpostavljanje serijske komunikacije. Ker želim sistem testirati z več različnimi nastavitvami,

je tehtnica idealno testno okolje. Nastavitveni komunikacijski parametri, ki jih lahko tehtnici

spremenim, so opisani v spodnji tabeli.

Tabela 5.2: Nastavitveni parametri serijske komunikacije tehtnice Mettler Toledo tipa AT

Navodila delovanja tehtnice Mettler Toledo AT – kom. vmesnik (angl. interface)

Način prenosa podatkov

- »S. Stb« – prenos stabilne vrednosti na tehtnici

- »S. All« – prenos vrednosti nemudoma ob zahtevi za

prenos

- »S. Auto« – avtomatski prenos vrednosti ob spremembi

vrednosti

Page 67: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

51

- »S. Cont« – neprekinjeno pošiljanje vrednosti

Hitrost prenosa podatkov

(angl. Baud rate)

- »150«

- »300«

- »600«

- »1200« [ bit/s ]

- »2400«

- »4800«

- »9600«

Detekcija napak pri prenosu

(angl. Parity)

- »Par -E-« – seštevek bitov je celo število zadnji bit 0

- »Par -O-« – seštevek bitov je liho število zadnji bit 1

- »Par off« – detekcija napak ni uporabljena

- »Par Spc« – zadnji bit je vedno 0

Rokovanje (angl.

Handshake)

- »HS PAUSE« – zakasnitev prenosa za 1 sekundo

- »HS CL« – zaključevanja stavkov z znakoma CRLF

- »HS oFF« – funkcija rokovanja ni v uporabi

- »HS Hard« – strojno rokovanje DTR/CTS

- »HS Soft« – programsko rokovanje XON/XOFF

Zaključevanje stavkov

- »EOL crLF« – zaključek stavka z znakoma CRLF

- »EOL cr« – zaključek z znakom CR

*v primeru nastavitve »HS CL« avtomatsko zaključevanje

stavkov z znakoma CRLF

Vir: prirejeno po Mettler Toledo (2006, str. 70−74)

Laboratorijska tehtnica je zmogljiva merilna oprema, ki ponuja vrsto različnih ukaznih

stavkov. Ocenil sem, da testiranja aplikacije ni potrebno izvesti na celotnem naboru ukazov

tehtnice. Enota prenosa podatka med napravama vedno predstavlja znak iz nabora ASCII

standardnih znakov. V primeru ustrezne izmenjave podatkov, izvedenih z nekaj ukaznimi

stavki, lahko predpostavim, da je bil test komunikacije mobilne aplikacije uspešno opravljen.

Oblika ukaznih stavkov je formalizirana z vrstnim redom. Kot prvo je potrebno vpisati znak

ali niz znakov imena ukaza, ki mu s presledki sledijo ukazni parametri, opisani v navodilih

komunikacijskega protokola. Najpogosteje tehtnica vrne vrednost mase, prikazane na

prikazovalniku tehtnice formata (glej Sliko 5.2):

Page 68: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

52

ID – ime ukaza,

DATA – vrednost na prikazovalniku tehtnice,

UNIT – enota vrednosti,

CRLF – zaključna znaka podatkov,

prazno – ločilo/presledek.

Slika 5.1: Shema formata poslanih podatkov tehtnice gostitelju

Vir: Mettler Toledo (2006, str. 85)

Razločevanje ukaznih stavkov glede na velike in male črke ni pomembno. Izjemoma je

pomembno razločevanje pri nekaterih ukaznih stavkih, kjer se vpisujejo ali izpisujejo posebni

znaki tehtnici, vendar za namen testiranja teh zahtev ne bom obravnaval. Testiranje sistema

sem izvedel z naključno izbranimi ukaznimi stavki iz navodil tehtnice. Vrsto izbranih

zahtevkov in pravila oblikovanja sem strnil v spodnji Tabeli 5.3.

Tabela 5.3: Tabela uporabljenih ukaznih stavkov in opisi zahtevkov

Ime ukaza Uporaba Oblika odziva Opombe

ID

»Identification« ID

STD 10.1.09

TYPE : AT 201

0.00.00

Ukazni stavek je namenjen

pridobivanju podatkov o

tehtnici.

S

»Send Stable« S

S 0.0000 g

S 0.0 mg

SI+ (»overload«)

SI- (»underload«)

Zahteva za posredovanje

stabilne vrednosti na tehtnici,

kot je prikazana na

prikazovalniku, v primeru

prevelike ali premajhne mase na

tehtnici; vrnjeni podatek stanje

ustrezno označuje.

Page 69: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

53

SIR

»Send

Immediate and

Repeat«

SIR *izpis odziva enako kot pri

ukaznem stavku »S«

Zahteva za ponavljajoče

posredovanje vrednosti na

tehtnici, prekinitev zahteve se

izvede s pošiljanjem ukaza »S«.

?

»Help« ? Izpis nabora zahtevkov

Izpis nabora zahtevkov s

kratkimi opisi in priležnimi

parametri zahtevkov.

Vir: Erjavec, lastni prikaz (2015)

5.3 Načrtovanje in testiranje

Načrt poteka testiranja programske opreme (V&V) je potrebno uvajati zaradi boljše

organiziranosti in poskusa približevanja testnih korakov realnemu stanju uporabe programske

opreme. Aktivnosti se pri testiranju navadno s standardom IEEE 1059 razdelijo na več

sklopov. Testiranje in ugotavljanje kakovosti naprednejše programske opreme navadno izvede

tim za ugotavljanje kakovosti (QA). Rešitev, implementirana v sklopu moje naloge, je

preprosta programska oprema. Aplikacija vsebuje manjše število funkcij, ki jih je potrebno

testirati in analizirati. Zato bom testiranje sistema izvedel samostojno s pomočjo načrtovanja

in modeliranja testnih scenarijev v nadaljevanju. Proces testiranja bom poenostavil in zajel z

naslednjimi fazami:

načrtovanje testov,

modeliranje testnih primerov/scenarijev in

izvedba testov po modelu.

5.3.1 Načrtovanje poteka testiranja

Planiranje poteka testiranja aplikacije SensorTalk sem izvedel s pomočjo zapisa specifikacije

zahtev in funkcionalnosti mobilne aplikacije na začetku načrtovanja mobilne aplikacije.

Načrtovanje poteka testnih korakov sem upodobil s pomočjo diagrama poteka možnih poti

podatkov s pogojnimi vejitvami ter vhodno/izhodnimi podatkovnimi tokovi (Slika 5.3).

Page 70: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

54

Slika 5.2: Načrtovani potek uporabe mobilne aplikacije po opisu specifikacije uporabniških

zahtev.

ISKANJE NAPRAVE

START

NAPRAVAPREPOZNANA

DA

BRANJENASTAVITEV

DANASTAVITVEUSTREZNE

ZAČNI KOMUNIKACIJO

NE

VNOS PARAM.

SHRANI NASTAVITVE

NE

MENJAVA Z USTREZNIMTIPOM NAPRAVE

KONEC

Vir: Erjavec, lastni prikaz (2015)

Načrtani diagram poteka predstavlja posamezne korake uporabe aplikacije. Z načrtom sem

zajel sicer le najpomembnejše korake, s katerimi sem nato ugotovil, ali aplikacija izpolnjuje

specificirane zahteve.

Pri testiranju bom imel na voljo le en tip komunikacijskega pretvornika. Tako kot v aplikaciji

tudi v diagramu napravo predstavlja komunikacijski vmesnik ATEN UC232A. Podrobnosti

delovanja vmesnika sem že predstavil v poglavju implementacije mobilne aplikacije

SensorTalk. Tehtnico kot zunanjo merilno napravo bom uporabil z več različnimi

nastavitvami serijske komunikacije. Različne kombinacije nastavitvenih parametrov serijske

komunikacije bom usklajeval tudi v mobilni aplikaciji in bom tako izvedel kakovostnejše

testiranje. V diagramu poteka testiranja sem izpustil testiranje orodij aplikacije in sicer

uporabo bliskavice kot ročne svetilke. Ker uporaba svetilke ni neposredno odvisna od

delovanja komunikacijskega sistema, bom testiranje delovanja orodja ročne svetilke izvedel le

v enem ciklu.

Page 71: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

55

5.3.2 Modeliranje poteka testiranja in določitev kriterija ustreznosti

Potek testiranja mobilne aplikacije sem izvedel s pomočjo zapisov specifikacije zahtev za

programsko opremo in diagramom poteka uporabe mobilne aplikacije. Testiranje programske

opreme bom ponovil z več različnimi naključno izbranimi nastavitvami zunanje merilne

naprave, s čimer bom želel potrditi pravilnost nastavljanja in shranjevanja parametrov serijske

komunikacije v aplikaciji SensorTalk.

Določil bom kriterij ustreznega delovanja serijskega prenosa podatkov med zunanjo merilno

napravo in mobilno aplikacijo. Podatki se pri serijski komunikaciji pravilno prenesejo med

napravama, v kolikor je protokol poenoten z obema napravama. Protokol predstavlja nabor

pravil serijske komunikacije, ki jih vnesem v nastavitve aplikacije. Prav tako lahko

spremenim nastavitve pravil na zunanji napravi. Za ugotavljanje pravilnosti delovanja bom

zato določil tri različne, naključno izbrane nabore pravil. Vsak nabor pravil predstavlja

samostojen cikel testiranja. Preverjanje ustreznosti prenosa podatkov bom izvedel v vsakem

ciklu, z enakim naborom testnih zahtevkov, poslanih tehtnici (glej poglavje Protokol serijske

komunikacije tehtnice). Ustreznost prenosa bom potrdil, v kolikor bo aplikacija SensorTalk

na zaslonu ustrezno prikazala pričakovane povratne informacije tehtnice.

Tabela 5.4: Komunikacijski protokoli testnih ciklov aplikacije SensorTalk.

KOMUNIKACIJSKI PROTOKOLI TESTNIH CIKLOV

Parameter Protokol 1 Protokol 2 Protokol 3

Baud rate 2400 4800 9600

Data bits 7 7 7

Parity Even Space OFF

Stop bits 1 1 1

Handshake OFF DTR/CTS OFF

EOL CRLF CRLF CR

Vir: Erjavec, lastni prikaz (2015)

Page 72: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

56

Tabela 5.5: Primer modeliranja testiranja aplikacije SensorTalk.

PRIMER POTEKA TESTIRANJA – SENSORTALK

Zap.

št. Funkcija Pričakovani rezultat Rezultat

Uspešnost

(DA/NE)

1

Povezava zunanje merilne

naprave z USB

pretvornikom

Priklop povezovalnih

kablov omogočen s

priključnimi konektorji

DB9

Priklop naprave in

pretvornika uspešen DA

2 Povezava USB pretvornika

z mobilnim telefonom

Priklop USB konektorja

micro-B na telefonu Priklop izveden DA

3

Android samodejno

zaznava priključene

naprave

Android OS naprave

obvesti uporabnika o

možnosti zagona

aplikacije SensorTalk

Obvestilo je bilo

ustrezno prikazano DA

4

Zagon aplikacije po

potrditvi obvestila o novo

priključeni USB napravi

Aplikacija SensorTalk

se prikaže na zaslonu

mobilne naprave

Potrditev je bila

mogoča, aplikacija se

je prikazala na

zaslonu

DA

5

Prepoznavanje naprave s

funkcijo aplikacije –

iskanje naprave

Tapkanje gumba za

iskanje prepozna,

prikaže podatke naprave

in kratko obvestilo o

uspešnosti

prepoznavanja

Tapkanje gumba

mogoče, podatki se

prikažejo, obvestilo o

uspešnosti se prikaže

DA

6 Klic vmesnika aplikacije –

nastavitve

Tapkanje gumba

nastavitve, prikaz

vmesnika z

nastavitvami in podatki

Tapkanje gumba

omogočeno, vmesnik

se prikaže z vsemi

podatki

DA

7 Vnos nastavitvenih

parametrov

Usklajevanje

parametrov serijske

komunikacije zunanje

naprave

Vnos parametrov

omogočeno,

parametri usklajeni

DA

8 Shranjevanje nastavitev

Vrnitev na osnovni

vmesnik obvesti

uporabnika o

shranjevanju z izbirnim

dialogom

Tapkanje gumba za

vračanje prikaže

dialog shranjevanja,

potrditev dialoga

DA

9 Zagon komunikacijskega

terminala

Tapkanje gumba – začni

komunikacijo, prikaz

vmesnika serijskega

terminala

Tapkanje gumba

omogočeno, vmesnik

terminala se prikaže

DA

10 Vnos teksta za pošiljanje

Tapkanje vnosne vrstice

izriše tipkovnico, prikaz

vnesenega teksta v

vrstici

Vnosna tipkovnica se

prikaže, vnos teksta

se izpiše v vnosni

vrstici

DA

11 Pošiljanje teksta napravi

Tapkanje gumba pošlji

izvede pošiljanje, izpis

teksta v terminalu z

zeleno barvo

Tapkanje gumba

pošlji omogočeno,

tekst se izpiše na

zaslonu

DA

12 Brisanje teksta vnosne

vrstice

Tapkanje gumba

brisanje izbriše tekst v

Tapkanje gumba

brisanje omogočeno, DA

Page 73: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

57

vnosni vrstici tekst se izbriše

13 Ponastavljanje terminala

Tapkanje gumba

ponastavljanje prikaže

dialog ponastavljanja,

potrditev ponastavi

vmesnik in izbriše

prikazane podatke

Tapkanje gumba

ponastavljanja

omogočeno, dialog

se prikaže, potrditev

izvede brisanje

podatkov

DA

14 Prejem podatkov naprave

Prejeti podatki zunanje

naprave se prikažejo v

terminalu z oranžno

barvo

Odgovor na poslano

zahtevo zunanji

napravi ustrezno

prikaže podatke na

zaslonu

DA

15 Prekinitev komunikacije Vrnitev v osnovni

vmesnik

Tapkanje gumba za

vračanje prikaže

začetni vmesnik

DA

16 Orodja

Tapkanje gumba orodij

prikaže vmesnik z

orodjem ročne svetilke

Tapkanje je

omogočeno, vmesnik

se prikaže na zaslonu

DA

17 Možnost uporabe orodja

Vmesnik orodja jasno

označuje možnost

uporabe ročne svetilke

Informacija o

možnosti uporabe

ročne svetilke je

vidna

DA

18 Vklop ročne svetilke

Tapkanje gumba za

vklop svetilke izvrši

vklop bliskavice

Tapkanje gumba je

omogočeno,

bliskavica zasveti

DA

19 Izklop ročne svetilke

Tapkanje gumba za

izklop ročne svetilke

izklopi bliskavico

Tapkanje gumba za

izklop omogočeno,

svetilka preneha

svetiti

DA

20 Izhod iz orodij Tapkanje gumba nazaj

prikaže začetni vmesnik

Vračanje prikaže

začetni vmesnik DA

21 Izhod Tapkanje gumba izhod

zapre aplikacijo

Tapkanje gumba

izhod zapre

aplikacijo

DA

Vir: Erjavec, lastni prikaz (2015)

5.4 Rezultati testov

Testiranje sem uspešno opravil po zgoraj načrtanih smernicah. Posnetek rezultatov

posameznih korakov testiranja sem zabeležil s snemanjem zaslonske slike mobilnega telefona,

kar omogoča razvojno programsko okolje Android Studio. Posnetek testiranja sem nato

uporabil za analiziranje rezultatov in ga priložil k nalogi v obliki digitalnega zapisa na

zgoščenki (Priloga 1).

Rezultati testiranja so bili pri vseh načrtovanih testnih ciklih uspešno izvedeni. Pri opravljanju

testov ni bilo nepričakovanih zaustavitev aplikacije, vstopov v neskončne zanke ali podobnih

Page 74: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

58

nepravilnosti delovanja. Povezovanje naprav s povezovalnimi vodniki in priključki je

enostavno. Pri tem opravilu uporabniku pripomore orodje aplikacije – ročna svetilka.

Delovanje ročne svetilke je bilo med testiranjem ustrezno. Aplikacija se je po uspešno

vzpostavljeni povezavi z napravo ustrezno zagnala, tako samodejno s prepoznavanjem novo

priključene USB naprave kot tudi ročno z zagonom iz menija Android OS. Grafični gradniki

so se na zaslonu mobilne naprave prikazovali ustrezno in primerno velikosti zaslona. Klic

funkcij s pomočjo aktivacije virtualnih gumbov na zaslonu se je izvedel v obsegu pričakovano

definiranih rezultatov (opis funkcij in rezultatov iz poglavja implementacije aplikacije). Vnos

parametrov serijske komunikacije v nastavitvah je potekal z izborom elementa v spustnih

seznamih. Spustni seznami so se na zaslonu prikazovali ustrezno, nabor elementov seznamov

je ustrezal parametrom različnih kombinacij serijskih komunikacijskih protokolov.

Shranjevanje vnesenih podatkov je bilo ustrezno in so bili na voljo tudi po vnovičnem zagonu

aplikacije. Vnos ukaznih stavkov s pomočjo prikazane tipkovnice je sicer nekoliko težavno, v

kolikor bi v uporabi potrebovali vnašati večjo količino podatkov. Manj zahtevne podatke je

tudi s pomočjo virtualne tipkovnice moč vnesti enostavno. Branje barvno različnih prejetih in

poslanih podatkov v terminalu je enostavno. V primeru večje količine podatkov na zaslonu

postane branje podatkov oteženo in nerazločno. Komunikacija z zunanjo napravo se v primeru

začasne ustavitve aplikacije prekine. Ob nadaljevanju aplikacije je potrebno vmesnik

serijskega terminala ponovno klicati iz začetnega prikaza.

6 ZAKLJUČEK

Temeljni cilj diplomske naloge, ki sem si ga zadal na začetku, je ustvariti mobilni sistem za

naprednejšo serijsko komunikacijo z merilnimi napravami.

Raziskovalno delo je na poti k uresničevanju zastavljenega cilja segalo v dokaj različna

tehnična področja (elektrotehnika, računalništvo). Velik izziv pisanja diplomske naloge je

predstavljal proces pridobivanja znanj in izkušenj povsem novega področja elektrotehnike.

Tako je bilo potrebno večji del posvetiti raziskovanju tehničnih lastnosti komunikacijskih

protokolov tako v smislu fizične izdelave, kot tudi logičnega delovanja protokolov. Z

rezultatom diplomske naloge sem prikazal dodano vrednost razvoja sodobnega

Page 75: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

59

komunikacijskega protokola univerzalnega serijskega vodila k bistveno boljši in enostavnejši

uporabniški izkušnji. Z implementacijo Android mobilne aplikacije sem se tako seznanil z

obema, sodobnejšim in starejšim komunikacijskim protokolom, ter načinom pretvorbe med

enim in drugim protokolom.

Implementacija programskega gonilnika s protokolom univerzalnega serijskega vodila je

zahtevnejši del razvoja uporabne in zanesljive USB periferne naprave. Za uporabnike so

izrednega pomena kvalitetni gonilniki, s katerimi lahko dosežemo polno funkcionalnost

priključenih naprav. Predvsem je pomembno, da se med uporabo ne pojavljajo napake in

nepričakovane zaustavitve. Najpomembnejšo vlogo implementirane mobilne aplikacije

SensorTalk predstavlja ravno ustrezno integrirani gonilnik pretvornika USB – RS232. Razvoj

mobilne aplikacije je izpolnil smernice specifikacij uporabniških zahtev programske opreme

in jih nadgradil z uporabnim orodjem ročne svetilke. Upošteval sem tudi raznovrstnost ciljnih

mobilnih naprav, na katerih se mobilno aplikacijo lahko uporablja. Zato sem implementacijo

izvedel na več različnih simuliranih zaslonih.

Sklepne ugotovitve rešitve diplomske naloge so, da sem z implementacijo mobilne aplikacije

SensorTalk dosegel zastavljeni cilj ter tako prispeval k boljšemu delu z merilnimi napravami.

Prisotnost sodobnih mobilnih telefonov je pri delu vzdrževanja v današnjem času skoraj nujno

potrebna. Dosegljivost uporabniških funkcij telefonov in mobilnih aplikacij omogoča hitrejše

in fleksibilnejše doseganje koristnih informacij preko brezžičnih spletnih omrežij. Nasprotno

od mobilnih telefonov računalniški sistemi niso vedno pri roki in so zaradi velikosti manj

fleksibilni pri vsakodnevnih opravilih vzdrževanja merilnih naprav. Kljub nekaterim

zaznanim slabostim pri testiranju mobilnega sistema lahko potrdim, da ima mobilni sistem za

serijsko komunikacijo z merilnimi napravami doprinos k učinkovitejšemu izpolnjevanju

vsakdanjih opravil.

Page 76: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

60

Page 77: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

61

7 LITERATURA IN VIRI

1. ALEŠ, VOLČINI (2006) Prvi koraki v merjenje in krmiljenje s pomočjo USB vodila.

Dostopno prek: http://www.pef.uni-lj.si/slavkok/diplome/volcini_a/Prvi-koraki-v-

merjenje-in-krmiljenje-s-pomočjo-usb-vodila-diplomsko-delo.pdf (17. 7. 2015).

2. ALLUSB (2015) USB History. Dostopno prek: http://www.allusb.com/usb-history

(27. 8. 2015).

3. ANDROID DEVELOPERS (2015) Android Studio Overview. Dostopno prek:

http://developer.android.com/tools/studio/index.html (22. 8. 2015).

4. ANDROID DEVELOPERS (2015a) Application Fundamentals. Dostopno prek:

http://developer.android.com/guide/components/fundamentals.html (9. 8. 2015).

5. ATEN INTERNATIONAL CO., LTD. (2013) UC232A USB-to-Serial Converter User

Manual. Dostopno prek: http://www.aten.com/download/download_m.php?-

modelNo=UC232A (5. 7. 2015).

6. BEAL, VANGIE (2011) Mobile Operating Systems (Mobile OS) Explained.

Dostopno prek: http://www.webopedia.com/DidYouKnow/Hardware_Software/

mobile-operating-systems-mobile-os-explained.html (10. 8. 2015).

7. CYBEROAM TECHNOLOGIES PVT. LTD. (2015) Setup Serial Console Connection

using PuTTy. Dostopno prek: http://kb.cyberoam.com/redirfile.asp?id=7165&SID=

(28. 8. 2015).

8. DEVSHED, LLC. (2014) All About Android, Google`s New Mobile Operating

System. Dostopno prek: http://www.seochat.com/c/a/Search-Engine-News/All-About-

Android-Googles-New-Mobile-Operating-System/ (5. 7. 2015).

9. DU, WINNCY (2006) Communication Protocols and Interface (Lecture #8). Dostopno

prek: http://www.engr.sjsu.edu/wdu/ME296N/2006/Lecture/Lecture8_Serial-

Paralle.pdf (18. 7. 2015).

10. EUROSTAT (2015) Information society statistics – households and individuals.

Dostopno prek: http://ec.europa.eu/eurostat/statistics-

explained/index.php/Information_society_statistics_-_households_and_individuals

(28. 7. 2015).

11. Komuniciranje in njegov pomen. Dostopno prek: http://colos1.fri.uni-

lj.si/ERI/INFORMATIKA/Komuniciranje/komuniciranje.html (19. 7. 2015).

Page 78: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 79: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 80: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 81: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

62

12. FUTURE TECHNOLOGY DEVICES INTERNATIONAL LTD. (2009) Technical

Note TN_116 USB Data Packet Structure. Dostopno prek:

http://www.ftdichip.com/Support/Documents/TechnicalNotes/TN_116_USB-Data-

Structure.pdf (17. 7. 2015).

13. GOFTON, PETER W. (1994) Mastering serial communications. San Francisco:

Sybex.

14. GOOGLE PLAY. Dostopno prek: https://play.google.com/store/apps (3.9.2015).

15. GRIFFITH, ERIC (2015) What Is Cloud Computing? Dostopno prek:

http://www.pcmag.com/article2/0,2817,2372163,00.asp (25. 7. 2015).

16. GSMARENA.COM. Dostopno prek: http://www.gsmarena.com/lg_g3-6294.php

(24.8.2015).

17. HAUFFA, JAN (2011) Reverse Engineering USB Device Drivers. Dostopno prek:

https://info.fs.tum.de/images/8/86/2011-06-08-usb.pdf (18. 7. 2015).

18. HRIBAR, UROŠ (2007) Razvoj mobilnih tehnologij . Dostopno prek:

http://uploadi.www.ris.org/editor/1259623431Hribar%20Uros%20-

%20Razvoj%20mobilnih%20tehnologij.pdf (25. 7. 2015).

19. INTERNATIONAL DATA CORPORATION (IDC) (2015) Smartphone OS Market

Share, Q1 2015. Dostopno prek: http://www.idc.com/prodserv/smartphone-os-market-

share.jsp (28. 7. 2015).

20. INTERNATIONAL ELECTROTECHNICAL COMMISSION (2011) IEC

62684:2011 – Interoperability specifications of common external power supply (EPS)

for use with data – enabled mobile telephones. Dostopno prek:

https://webstore.iec.ch/-publication/7365 (16. 8. 2015).

21. JAVATPOINT (2014) Android Architecure. Dostopno prek:

http://www.javatpoint.com/android-software-stack (14. 8. 2015).

22. JCGM (2012) International vocabulary of metrology – Basic and general concepts and

associated terms (VIM) 3rd edition. Dostopno prek:

http://www.bipm.org/utils/common/documents/jcgm/JCGM_200_2012.pdf (27. 8.

2015).

23. JURE, POGLAJEN (2013) Model za vrednotenje operacijskega sistema mobilne

naprave. Dostopno prek: https://dk.um.si/Dokument.php?id=55695 (23. 7. 2015).

24. KUNŠIČ, MIRKO (2009) Uvajanje proizvodnega informacijskega sistema. Dostopno

prek: http://eprints.fri.uni-lj.si/816/1/Kunsic_M__UN.pdf (4. 4. 2015).

Page 82: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 83: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 84: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 85: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

63

25. METTLER TOLEDO (2006) Bidirectional Data Interface AT/MT/UMT Balances.

Dostopno prek: http://us.mt.com/dam/mt_ext_files/Editorial/Generic/4/AT_-

MT_UMT_Bidirectional_Data_Interface_0x000010083f8130e740009db5_files/70401

8_2_12.pdf (14.7.2015).

26. MICROSOFT WINDOWS (2015) What happened to HyperTerminal? Dostopno prek:

http://windows.microsoft.com/en-us/windows/what-happened-

hyperterminal#1TC=windows-7 (22. 8. 2015).

27. MILETTE, GREG in STROUD, ADAM (2012) Professional Android sensor

programming. Indianapolis: J. Wiley & Sons.

28. OPEN HANDSET ALLIANCE (2007) Android. Dostopno prek:

http://www.openhandsetalliance.com/android_overview.html (10. 8. 2015).

29. PROLIFIC TECHNOLOGY INC. (2007) PL-2303HX Edition (Chip Rev D) USB to

Serial Bridge Controller Product Datasheet. Dostopno prek:

https://www.adafruit.com/datasheets/PL2303HX.pdf (20. 7. 2015).

30. ROUSE, MARGARET (2007) Waterfall model definition. Dostopno prek:

http://searchsoftwarequality.techtarget.com/definition/waterfall-model (9. 8. 2015).

31. SPARKFUN ELECTRONICS (2012) Serial Communication, Wiring and Hardware.

Dostopno prek: https://learn.sparkfun.com/tutorials/serial-communication/wiring-and-

hardware (15. 7. 2015).

32. SPARKFUN ELECTRONICS (2012) Serial Terminal Basics. Dostopno prek:

https://learn.sparkfun.com/tutorials/terminal-basics (25. 7. 2015).

33. STALLINGS, WILLIAM (2000) Data and computer communications. Upper Saddle

River (New Jersey): Prentice Hall.

34. STEELE, JAMES (2011) The Android developer's cookbook: building applications

with the Android SDK. Upper Saddle River (NJ): Addison-Wesley.

35. TAL TECHNOLOGIES, INC. (2015) Introduction to Serial Communications.

Dostopno prek: http://www.taltech.com/datacollection/articles/serial_intro (12. 7.

2015).

36. TELEKOM SLOVENIJE, D.D. (2012) Pokritost mobilnih omrežij. Dostopno prek:

http://www.telekom.si/pomoc-in-podpora/teme-pomoci/pokritost-in-

dostopnost/pokritost-mobilnega-omrezja (28. 7. 2015).

37. U.S. CONVERTERS LLC (2015) Why cheap USB Serial adapters does NOT work

with Windows 7 / 8. Dostopno prek: http://www.usconverters.com/index.php?main-

page=page&id=56 (22. 8. 2015).

Page 86: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 87: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 88: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 89: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

64

38. USB IMPLEMENTERS FORUM, INC. (2008) USB for Portable Devices. Dostopno

prek: http://www.usb.org/developers/onthego/USB_for_Portable_Devices_FINAL.pdf

(18. 7. 2015).

39. WAKERLY, MIKE (2015) Android USB host serial driver library for CDC, FTDI,

Arduino and other devices - usb-serial-for-android. Dostopno prek:

https://github.com/mik3y/usb-serial-for-android (3. 7. 2015).

40. WEBOPEDIA.COM (2011) Mobile Operating Systems (Mobile OS) Explained.

Dostopno prek: http://www.webopedia.com/DidYouKnow/Hardware-

Software/mobile-operating-systems-mobile-os-explained.html (5. 8. 2015).

41. ZOLTAN, FRANCISC BARUCH (2014) Input/Output Systems and Peripheral

Devices. Dostopno prek: http://users.utcluj.ro/~baruch/media/siee/labor/USB-

Interface.pdf (15. 7. 2015).

Page 90: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 91: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 92: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal
Page 93: D I P L O M S K A N A L O G A - Študiraj v Novem mestu | FIŠ · IZJAVA O AVTORSTVU Podpisani Dejan Erjavec, študent FIŠ Novo mesto, izjavljam: da sem diplomsko nalogo pripravljal

PRILOGA

Video zapis testiranja Android mobilne aplikacije SensorTalk (11. julij 2015) Elektronski

medij: DVD zgoščenka.