d i p l o m s k a n a l o g a - Študiraj v novem mestu | fiŠ · izjava o avtorstvu podpisani...
TRANSCRIPT
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
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
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) ______________________
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.
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
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
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
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
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
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
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
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.
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),
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.
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
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.
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.
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-
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
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)
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
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).
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.
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
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
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
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«).
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
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.
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).
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
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
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
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.
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
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.
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.
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.
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,
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):
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}
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.
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,
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)
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«,
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
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
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
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.
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.
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)
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.
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
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.
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)
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)
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).
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
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
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):
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.
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).
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.
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)
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
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
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
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.
60
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).
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).
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).
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).
PRILOGA
Video zapis testiranja Android mobilne aplikacije SensorTalk (11. julij 2015) Elektronski
medij: DVD zgoščenka.