Sunteți pe pagina 1din 49

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei


Facultatea Calculatoare Informatic i Microelectronic
Catedra Automatic i Tehnologii Informaionale

VIDEO-AUDIO
NREGISTRATOR(COMPARTIMENTELE: MAP,
VIDEO,SETRI MAP, SETRI VIDEO)
Practica tehhnologic

Student:

______________________________

(V.Josu , gr. TI-131 )

Conductorul de la unitatea economic:_________________________________(M. Potlog )


Conductor practic:

________________________________(Sv. Cojocaru )

Chiinu 2016

Cuprins
Introducere................................................................................................................................................................. 3
1 Analiza domeniului de studiu..................................................................................................................................4
1.1 Indicaii teoretice..................................................................................................................................................6
1.2 Cerine funcionale...............................................................................................................................................6
2 Modelarea i proiectarea sistemul informatic..........................................................................................................8
2.1 Digrama cazurilor de utilizare..............................................................................................................................9
2.2 Diagrama de secven.........................................................................................................................................11
2.3 Diagram de colaborare........................................................................................................................................12
2.4 Diagrama de activitate........................................................................................................................................14
2.5 Diagrama de clase...............................................................................................................................................15
2.6 Diagrama de Componente...................................................................................................................................17
3 Realizarea sistemului............................................................................................................................................19
3.1 Instrumente.........................................................................................................................................................19
3.2 Executarea aplicatiei.........................................................................................................................................22
3.2 Componente aplicatiei........................................................................................................................................25
4 Documentarea produsului realizat.........................................................................................................................33
4. 1 Componentele categoriei Maps........................................................................................................................33
4.2 Componentele categoriei Video........................................................................................................................35
Descrierea componentelor categoriei VIDEO:........................................................................................................35
4. 3 Componentele categoriei More........................................................................................................................36
4.4 Componenta categoriei MORE - setri map.....................................................................................................37
4.5 Componenta categoriei MORE setri Video...................................................................................................38
Concluzii.................................................................................................................................................................. 41
Bibliografie............................................................................................................................................................... 42
Anexa A(Codul surs)..............................................................................................................................................43

Introducere
Analizinid situatia rutiera la momentu actual, ajungem la concluzia: cei care dispun de un
automobil au nevoie s inregisteze situatia rutiera la momentul deplasarii dintr-un punct in altul.
Pentru a indeplini acesta cerinta, putem gasi o oferta larga a astfel de produse, care se numesc
Video-Registratoare, insa acestea sunt foarte costisitoare .
La rezolvarea acestei dileme este propusa crearea unui soft ce va indeplini aceleas functionalitati
cu ajutorul telefonului mobil.
Majoritatea dintre noi detine un astfel de gadget performant, care ne permite un larg de functiuni
si posibilitati.
Produsul realizat este un program cu ajutorul caruia se efectuiaza Video-Audio inregistrare care
ajuta la monitorizarea transportului.Acest produs trebuie sa cotina un fuctional larg, care sa ne permita
indeplinirea operatiilor necesare pentru monitorizarea fuxului si statisticii rutier.
Sistemul GPS Video-Audio registrator reprezint o totalitate de tehnici de colectare, prelucrare i
sistematizarea a statisticii rutiere.
Prin crearea Programului

GPS Video-Audio registrator (in continuare VAR) sunt atinse

urmatoarele scopuri: controlul eficient al statisticii rutiere , inregstrarea contentului Video-Audio si


catalogarea,sortarea acestuia in format calendaristi.
Asigurarea unei interfete prieteoase de comunicare intre user si soft ,prin simplicitatea acestea si
asigurarea unor costuri minimale pentru a achizitionarea produsului.
Beneficiile pentru automobilisti (user): Mobilitatea VAR , aceasta presupune posibiliatea acesarii
contentului video si statiscitilor rutiere acumulate (ce include :viteza maximala,distanta parcrsa,vitea
medie a acestuia,altitudinea,timpu de lucru a VAR,stationarea vechicolului,timpul total de conducere al
calatoriei) oriunde si orcind din gadjetul dumnevoastra. Tot odata prezenta unui navigator integrat ce
foloseste hartile google ,spedomentru si audioplayer.

1 Analiza domeniului de studiu


Pentru proectarea unei aplicatii competitive este nevoe de interactionarea urmatoarelor intitati.
Utilizatorii (user) care vor folosi si vor face parte dintr-un sondaj , pentru a identifica cerintele si
necesitatile oamenilor simpli la utilizarea a V.A.R. in practica.
Developerii cei care vor elabora, dezvolta si vor crea aplicatia pe baza cerintelor utilizatorilor.
Abrevieri, termeni i definiii utilizate n document
Aici urmarim acronimele i abrevierile care sunt utilizate n document i explicate n tabelul 1.1.

Tabelul 1.1 - Totalitatea abrevierilor i acronimelor utilizate n document


Nr.

Abreviere/Acronim

1
2
3
4
5
6
7
8
9

VAR
Km/h
Mp/h
IDE
Max
App
TI
3D
2D

Descriere
Video-Audio nregistrator
Kilometru pe or
Mile pe or
Integrated Development Environment
Maximum
Application (Aplicatie)
Tehnologie informaional
Spaiul tridimensional
Spaiu bidimensional

Aici urmrim acronimele i abrevierile care sunt utilizate n document i explicate n tabelul 1.2.

Tabelul 1.2 - Totalitatea abrevierilor i acronimelor utilizate n document


Nr.

Termen

Definiie

Video

Element de compunere care nseamn imaginesi se refera la sistemele


de transmitere i de nregistrare a imaginii.

Audio

Element care servete la perceperea auditiv.

nregistrator

Aparat care inregistreaza .

Continuare tabelul 1.2


GPS GPS (Global Positioning System sistem de poziionare global),GPSuri, s.n. 1.tehnologie bazat pe un sistem mondial de radionavigaie,
4

5
6

format dintr-o constelaie de satelii i staii de recepie terestre, maritime


i aeriene, fixe sau mobile, prin care se poate stabili poziia unui punct pe
glob.
Utilizator al unui calculator electronic; (n particular) al unui program
User informatic (spre deosebire de programator).
Gadget

denumire generic pentru obiecte mici, mecanisme cu largi ntrebuinri


n viaa de toate zilele.

Raportul dintre spaiul parcurs de un mobil i timpul folosit pentru


Speed parcurgerea acestui spaiu; raportul dintre variaia unei mrimi i timpul
n care se produce aceast variaie.

Computer de bord - unitatea centrala de procesare si memorare a


informatiilor furnizate de diversele sisteme de semnalizare si conrol
Board integrate in structura automobilului. Rolul computerului de bord este de a
Computer furniza date catre conducatorul auto, de a gestiona procesele interne,
memora, contoriza si furniza spre diagnostic erorile ivite in functionare.

Viteza maximala intre Raportul dintre spaiul parcurs de un mobil i


Max speed timpul folosit pentru parcurgerea acestui spaiu; raportul dintre variaia
unei mrimi i timpul n care se produce aceast variaie.

10
11

Distance

Interval care desparte dou puncte n spaiu; deprtare.

Viteza medie este raportul dintre distanta parcursa si timpul in care s-a
parcurs aceasta distanta.
speed

Average

Viteza medie este raportul dintre distanta parcursa si timpul in care s-a
parcurs aceasta distanta.
12

Altitude

13

Satelite

nlime a unui punct de pe suprafaa Pmntului, considerat n raport


cu nivelul mrii sau fa de un alt punct de pe suprafaa terestr.

obiect care a fost trimis n spaiu, n scopul de a colecta informaii sau s


fac parte dintr-un sistem de comunicaii.

Obiectivele de afacere primordiale


Aplicatia GPS Vide-Audio Inregistrator reprezinta o tatalitate de posibilitati colectate intr-un
singur soft ce permite monitorizarea rutierei .
Prin crearea VAR vor fi atinse urmatoarele scopuri:
monitorizarea traficului rutier;
monitorizarea vitezei medii si maximale a altitudinei, stationarii si timpului in calatorie ;
mobilitatea VAR;
5

asigurarea comoditatii gestionarii componentilor VAR.

1.1 Indicaii teoretice


Pe AppStore sau pe Play Market putem s gsim aplica ii asemntoare care inregstreaza videoaudio .
Aa aplicaii sunt ca:
Speedometer-free speed limit, CamOnRoad-Car Video Recorder , iRegistration DVR Free,
Car Driving Recorder . Aceste aplicaii ne permit un numar limitat de setari i unile functionalitati pot fi
blocate si trebue cumpatate suplimentar ceeea ce este un dezavantaj pentru user. Deasemenea unile dintre
programe pot fi folosite numai pentru editarea videolui sau numai a pozelor.
Unele din aceste aplicaii sunt doar pentru tablete si n cele mai dese cazuri sunt greu de
gsit pentru telefoane sau chiar deloc nu sunt. Multe din aceste aplicaii au multe bug-uri care nu le
avantajeaz pozitiv pentru utilizator.
Funcionalitile ce trebuie implementate n Sistemul V.A.R.
Se poate vorbi despre 6 categorii de obiecte informaionale de care trebuie s se in cont
n procesul de proiectare i realizare a GPS Video-Audio inregistrator:
administrarea si monitorizarea aplicatiei;
setri;
informaii generale;
salvarea pe gadget n timp real;
poze i video.

1.2 Cerine funcionale


Cerinele funcionale ale sistemului sunt:
aplicaia va dispune de o interfata unde o sa putem sa contibuim la alegem unei dintre
functionalitati ca GPS, Video content, viteza, bord computer, music player;
utilizatorul va pute vizualiza poze si video pe gadjetul sau astfel moitorizind traficul
rutier;

la apsarea butonului se va deschide un meniu n care userul va avea posibilitatea dea a


alege setarile ca: maps, video, speed, bordcomputer, file, settings maps, setings video, setings
music;
la apsarea butonului foto se creaza poza cu datele salvate anterior ;

la apsarea pe buton putem sa accesam camera frontala;

la apsarea butonului maps ne se va deschide garta cu 2 compartimente start si end;


la apsarea butonului video o sa ne se deschida o fereastra de unde o sa avem acces la
inregistrator si camera ;

la apsarea butonului record are loc inregistrarea automata a videoului si posibilitatea de a

fotografia in timp real;


la apsarea butonului Speed

o sa ne se deschida o fereastra unde o sa putem sa

vizualizaam vitezometrul care ne va infica viteza viteza in timp real;


la apsarea butonului BordComputer se va deschide o fereastra cu monitorizarea traficului
rutier.
c11 La apasarea butonului More se va deschide un meniu in care vom putea avea acces la
Adio-Video deja inregistrate pe gadget, deasemenea comportimentul muzica;
ncredere, rezultatele finale vor fi salvate pe memoria interna

si vor si gata pentru

vizualizare si exportare unui alt dispozitiv;


fiabilitate: VAR poate fi rulata de orice dispozitiv mobil care dispune de o video camera si
foto;
mentenana, adaugarea componentelor pot fi realizabile prin update-uri, n acest sens
utilizatorul nu trebuie dect s apese un buton, fr a fi necesare alte aciuni din partea sa;
portabilitate: consta n posibilitatea de fi rulat pe diferite platforme hardware;
tolerana la erori, aplicaia va raporta utilizatorului un mesaj de eroare n cazul
imposibilitatii inscrierei

contentului de video si audio in caz de insuficienta memoriei

acestuia, aplicatia va raporta utilizatorului un mesaj cu eroarea in cazul in care nu va avea


conexiune interne.
Este necesar de dezvoltat un program

Video-Audio inregistrator care s uureze activitatea

oamenilor in monitorizarea traficului rutier . Se cere ca programul s poat efectua opera iile de
inregistrare

a Video-Audio contentului, de a putea monitoriza traficul, gestionarea datelor despre

utilizator, remiterea datelorVideo-Audio ,a duce o statistica a datelor de monitorizare pentru user .


Sistemul dat va permite sortarea Video-Audio contentului calendaristic dupa data, luna,an.
7

2 Modelarea i proiectarea sistemul informatic


Fiecare sistem informatic are un ciclu de via al su, care reprezint totalitatea etapelor ce sunt
parcurse n procesul de dezvoltare a aplicaiei respective. Din punct de vedere al realizatorilor, etapele
cele mai importante snt cele n care se construiete produsul soft. Durata ciclului de via al sistemului
informatic depinde de caracteristicele, de calitatea i performana acestuia precum i de o serie de factori
externi ai sistemului informatic cum snt:
stabilitatea funcional;
relaiile sale cu mediul nconjurtor;
dinamica metodelor tehnice i conceptuale.
Ciclul de realizare a unui sistem este o noiune derivat din cea de ciclu de via , acoperind
intervalul dintre momentul deciziei iniiale de realizare i pn la punerea n ac iune a sistemului
informatic. Acest interval este mprit n faze care presupune probleme n proiectarea sistemului
informatic, implementarea de cod, testarea i experimentarea acestuia, deci reprezint o parte a ciclului de
via i anume acea care are ca scop dezvoltarea sistemului informatic. Dezvoltarea sistemului informatic
de nalt calitate necesit procese de producie software utilizate pentru dezvoltarea acestora, principii de
inginerie software pe care s se bazeze aceste procese i care ncorporeaz practici ale ingineriei software.
Metodele de analiz i proiectare orientat-obiect permit parcurgerea etapelor ciclului de via a a
aplicaiilor ntr-o maniera iterativ. n acest fel proiectul se mparte n proiecte mai mici, fiecare avnd
ciclul lui de viaa, parcurs de mai multe ori. n rezultat modelul sistemului elaborat cre te treptat ceea ce
permite planificare eficient a lucrrilor i controlul riscurilor. La finisarea acestei itera ii vom ob ine o
versiune primar a acestui sistem [1].
Arhitectura sistemului este bazat pe conceptul de integrare, care i-a n considerare procesele de
desfurarea sistemului cit mai rspndite i eficiente n orice ar.
Limbajul vizual de modelare UML nu este un limbaj vizual de programare, deoarece nu dispune de ntreg
sprijinul semantic i vizual pentru a nlocui limbajele de programare. Limbajul este destinat vizualizrii,
specificrii, construirii i documentrii sistemelor de aplicaii, dar are limitri n ceea ce privete
generarea codului. UML reunete cele mai bune tehnici i practici din domeniul ingineriei programrii,
care i-au dovedit eficiena n construirea sistemelor complexe.
Pentru a nelege UML-ul, trebuie nelese trei elemente majore: blocurile constructive, regulile
care dicteaz modul n care aceste blocuri pot fi combinate, precum i mecanismele generale, utilizate de
OMT.
Blocurile constructive se mpart n trei categorii: elementele, relaiile i diagramele. Pentru fiecare
dintre acestea s-a ncercat identificarea metodelor de analiz i proiectare din care provin.
9

Elementele sunt abstraciuni care reprezint piesele fundamentale ntr-un model. La rndul lor se
mpart n: elemente structurale, elemente comportamentale, elemente de adnotare i elemente de grupare.
Relaiile sunt abstraciuni ce leag elementele ntre ele. O relaie este o conexiune ntre elemente.
n modelarea orientat obiect, exist patru tipuri de relaii: dependente, generalizri, asocieri i realizri.
Diagramele sunt prezentri grafice ale unui set de elemente, cel mai adesea exprimate ca un graf
de noduri (elementele) i arce (relaiile). Regulile stabilesc cum trebuie grupate blocurile constructive.
Exista reguli detaliate pentru definirea modelelor bine formate. Sunt admise ns i modele mai
puin dect bine formate, n sensul ca se pot admite i modele cu elemente ascunse, modele incomplete
sau modele inconsistente, cel puin pentru iteraiile preliminare ale procesului de dezvoltare .
n ce privete generarea de cod Enterprise Architect, acesta ofer posibilitatea proiectantului de
aplicaii s genereze cod din modelul realizat folosind una dintre metodele amintite mai sus. Generarea de
cod se realizeaz doar la nivelul diagramelor de clas, i deci se genereaz doar abloane. Astfel, pentru
fiecare clas din model se vor genera fiiere cu extensia ".cs", n care vor fi incluse declara ia clasei,
declaraiile tuturor variabilelor i funciilor membru existente n model precum i declaraii de variabile
membru corespunztoare tuturor asociaiilor i agregrilor care implic clasa respectiv [2].

2.1 Digrama cazurilor de utilizare


Modelarea vizual n UML poate fi reprezentat ca un oarecare proces de lansare pe niveluri de la
cel mai general i abstract model conceptual al sistemului iniial ctre model logic i mai apoi fizic, ce
corespunde unui sistem de program. Pentru atingerea acestui scop de la nceput se creeaz un model n
form de diagrama cazurilor de utilizare (use case diagram) care descrie destinaia func ional a
sistemului sau cu alte cuvinte descrie ceea ce sistemul va executa n procesul su de funcionare.
Diagrama Use-Case defineste interactiunea dintre un sistem si utilizator, sau alte componente
externe. Un model a cazurilor de utilizare include: actori, scenarii, cazuri de utilizare, diagrame UseCase.
Actorii sunt aceei care interactioneaza direct cu sistemul, ei sunt responsabli pentru pentru
exploatare sau interogarea cu aplicatia.
Scenariu este o secventa de pasi care desciru o posibila interactiune dintre actor si sistem, la
rindul sau pot fi mai multe scenarii.
In diagrama din figura 2.1 , sunt reprezentate scenariile de utilizare a aplicatiei, acestea sunt:
accesare Google Hart;
iniializare camera;
accesare vitezometru;
setare Computer de Bord;
10

deschiderea managerului de fisiere;

selectare setari.

Actorul poate interactiona cu fiiecare din compartimentele descrise, cu posibilitatea de a face


setari.

Figura 2.1 - Diagrama cazurilor de utilizare pentru User


In diagrama din figura 2.2 este reprezentat optiunile setrii hart:
Selectare GPS tip de map;
Slelectare GPS mod de vizualizare;

Selectare sistem de uniti;

Selectare istorie.

11

Figura 2.2 - Diagrama cazurilor de utilizare pentru cazul Setari hart

2.2 Diagrama de secven


n limbajul UML colaborarea ntre elemente se cerceteaz n aspectul informativ al comunica iilor
lor, adic obiectele care interacioneaz fac schimb de informaie anumit. Pentru modelarea colaborrii
ntre obiecte n limbajul UML se utilizeaz diagramele de secven.
Diagramele de secvene descriu interaciunile dintre dou sau mai multe entiti i ordinea n care
mesajele sunt schimbate ntre acestea. Sun folosite n special pentru a reprezentat interaciunile dintre
obiecte.
Vorbind despre aceste diagrame se iau n consideraie dou aspecte. Mai nti, colaborarea ntre
obiecte poate fi cercetat n timp i atunci pentru reprezentarea particularit ilor temporale i modului de
acceptare a mesajelor se utilizeaz diagrama de secven.
Diagramele de secvene sunt utilizate pentru:
descrierea scenariilor de utilizare a aplicaiei, pentru fiecare diagram a cazurilor de
utilizare definit n cadrul procesului de analiz se pot defini unul sau mai multe scenarii de
utilizare prin care se evideniaz fluxurile de mesaje ntre sistem i utilizator sau intre
componentele sistemului;
12

descrierea logicii metodelor diagramele de secvene pot fi folosite pentru a descrie logica
de funcionare a funciilor sau proceselor complexe;
descrierea logicii unui serviciu sau proces pentru a implementa o funcie complex la
nivelul sistemului este nevoie ca dou sau mai multe componente s interacioneze,
diagramele de secvene permit reprezentarea fluxurilor de mesaje ntre componentele
sistemului, evideniind i constrngerile temporare (ordine de execuie, durate de execuie,
termene limit).
Aceast diagram reprezint setul de aciuni ce descriu transferul de informa ii intre obiecte n
timp, n urma crora userul beneficiaz de opiunea de a fi acceseata harta.

Diagrama reprezint

consecutivitatea de aciuni n ordinea apariiei lor.


Diagrama din figura 2.3 vedem diagrama de interaciune ce descrie funcionalitatea general a
aplicaiei. Ea reprezint setul de aciuni ce descriu pasii de setare a navigatorului.

13

Figura 2.3 - Diagrama de secven pentru cazul De creare traseului de navigare

2.3 Diagram de colaborare


Diagramele de colaborare (cunoscute i sub numele de diagramele de comunicare) ilustreaz
fluxurile de mesaje i legturile dintre componentele sistemului. Sunt similare cu diagramele de secvene
dare spre deosebire de acestea timpul nu este reprezentat ca o dimensiune separat. Diagramele de
colaborare sunt utilizate pentru:

14

a descrie diverse scenarii de funcionare a aplicaiei prin reprezentarea fluxurilor de mesaje


dintre obiecte;
a prezenta organizarea spaial a obiectelor i legturile dintre acestea.
Principalele elemente ale unei diagrame de colaborare sunt:
obiectele sunt reprezentate sub forma unor dreptunghiuri n interiorul crora este scris
numele obiectului i clasa din care face parte (ex: obiect:Clasa);
legturile sunt reprezentate sub forma unor linii ce conecteaz obiectele ntre care are loc
schimbul de mesaje, legturile nu ofer informaii cu privire la tipul i direcia n care mesajele
sunt transmise ci doar specific faptul c ntre dou obiecte exist un schimb de mesaje;
mesajele sunt reprezentate sub forma unor sgei cu captul orientat nspre obiectul ce
transmite mesajul i vrful orientat spre obiectul ce recepionez mesajul, sgeata este nsoit
de numele mesajului transmis i un numr de ordine, mesajele sunt adugate pe legturile
dintre obiecte.
n diagrama din figura 2.4 sunt descrise strile prin care trece sistemul VAR. Astfel dac
inregistrarea contentului Video-Audio are loc cu succes, atunci n dependen de cerinele pe care le avem
de la pragram, el poate trece n strile de vizualizarea a contentului videolui sau pozelor. Dup aceasta
vizualizare acestea sunt salvate sau sterse din date. Pentru inrtegistra contentul video si de a monitoriza
traficul rutier , este necesar efectuarea mai multor operaii, cum ar fi deschiderea aplicatiei, initializare
camera, deschiderea file managre, selectare Video-Poze.

15

Figura 2.4 - Diagrama de stri ce descrie utilizarea sistemului informational

2.4 Diagrama de activitate


Diagramele de activiti sunt cazuri particulare ale diagramelor de stare care nu descriu ns un
flux de control bazat pe evenimente, ci unul procedural, n care toate sau majoriatea tranzi iilor se
efectueaz automat, la terminarea aciunilor efectuate n interiorul strilor. Diagramele de activit i se pot
reprezenta pentru a descrie un caz de utilizare, un pachet sau implementarea unei operaii.
Diagrama de activitate reprezint o modalitate de modelare vizual a fluxurilor.
Cu ajutorul activity diagram pot fi modelate foarte bine use case-urile, dar, n aceeai msur,
aceste diagrame pot fi folosite pentru modelarea proceselor de business (fr legtur cu sistemul
informatic).
Notatiile sunt foarte asemntoare cu cele din diagrama de stare deoarece activity diagram nu sunt
altceva dect o variaie a statechart diagram.
Urmtoarea diagram din figura 2.5 reprezint setarile hartii . Din aceast diagram de activitate
este evident c dup crearea Video-Audio contenrtului putem sa o vizualizam si sa o stergem din galerie.

16

Figura 2.5 - Diagrama activitate ce descrie setarile hartii


Urmtoarea diagram din figura 2.6 descrie procesul de crearea a traseului navigatorului. Din
aceast diagram de activitate este selectata locatia si creat traseul de navigarea.

17

Figura 2.6 - Diagrama de activiti ce descrie procesul de crearea a traseului navigatorului

2.5 Diagrama de clase


In UML, o clas este reprezentat printr-un dreptunghi alcatuit din trei compartimente care conin:
numele clasei, atributele, operaiile. Compartimentul atributelor i cel al operaiilor pot fi omise.
Reprezentarea detaliata a unei clase,construita in etapa de proiectare de detaliu, precizeaza vizibilitatea
informatiilor din clasa, lista de parametri a fiecarei operatii si tipul parametrilor.
Regulile de vizibilitate se aplica atat atributelor cat si operatiilor din clase si se refera la domeniul
de acces permis la un membru al unei clase.
Fiecare nivel de vizibilitate este reprezentat printr-un simbol:
18

Private ( - ) : accesibiltate numai din interiorul clasei;

Public (+) : accesibiltate la nivelul intregului system;

Protected (#) : accesibiltate in arborele de mostenire;

Package (~) : accesibiltate din interiorul pachetului care contine clasa.

Urmtoarele diagrame din figura 2.7 i figura 2.8 reprezint rela ia dintre principalele clase ale
sistemului modelat. Clasa Video care contine inscrierea Video-Audio contentului .
n clasele MAPS sunt aratate functiunile stard si end a inregistrarii Vide-Audio contentului .
Relaiile dintre clase este de asociere, fiind descrise i rolurile fiecreia dintre ele, precum i
multitudinea existent.

Figura 2.7 - Diagrama de clasa pentru toate componentele

19

Figura 2.8 - Diagramele de clasa pentru toate componentele

2.6 Diagrama de Componente


O diagram component este o diagram de tip a Modeling Language Unified .
O diagram care arat modul n care componentele unui sistem software este mprit
n componente i

prezint dependenele dintre

aceste

componente. Componentele

fizice

includ si

HYPERLINK "https://es.wikipedia.org/wiki/Archivo_(computaci%C3%B3n)" fiiere , antete, biblioteci


partajate , module , executabile , sau pachete .
Componente diagrame predominante n domeniul arhitecturii software , dar poate fi folosit pentru
a modela i documenta orice arhitectur de sistem.
Pentru c diagramele de componente sunt mai mult ca diagrame cazuri de utilizare, acestea sunt
folosite pentru a modela vizualizarea static i dinamic a unui sistem. Acesta diagram din figura 2.9
arat organizarea i dependene ntre un set de componente. Nu este necesar s includ toate o diagram a
componentelor sistemului, efectuate n mod obinuit de ctre pri. Fiecare diagram descrie o sec iune a
sistemului.
20

n ea librrii, tabele, fiiere, fiierele executabile i documentele care fac parte din sistemul este
plasat.
Una dintre utilizrile principale este c acesta poate fi folosit pentru a vedea care componentele
pot fi partajate ntre sisteme sau ntre diferite pri ale unui sistem.

Figura 2.9 - Diagramele de componente pentru aplicata V.A.R

21

3 Realizarea sistemului
Softul care urmeaz a fi descris mai jos este un instrument cu ajutorul cruia persoanele de rind
economisesc timp i bani ctignd n eficacitate totodat. Pe lng aceste argumente forte, aplica ia este
un instrument care poate lucra autonom, cerndu-se de la utilizator minimul necesar pentru ca softul sa
ruleze, si sa ofere rezultatele necesare la momentul dat.
Pentru a realiza acest proiect pe baza planurilor la stadiu de proiectare este necesar de ales cu
atenie instrumentele corecte i efective. Ca rezultat au fost alese cteva instrumente care permit
realizarea proiectului n timp i calitativ.

3.1 Instrumente
Pentru crearea unui soft la momentul actual este necesar de un sir de intrumente, care ne
permit indeplinirea scopului stabilit. Mai jos sunt enumerate intrumentele minim necesare:
calculator;
IDE (XCode);
alegerea limbajului de programare (Objectiv-C);
dispozitiv de testare (Iphone, (Ipod,Ipad)).
Un calculator ( figura 3.1), numit i sistem de calcul, computer sau ordinator, este o main de
prelucrat date i informaii conform unei liste de instruciuni numit program. n zilele noastre
calculatoarele se construiesc n mare majoritate din componente electronice i de aceea cuvntul
calculator nseamn de obicei un calculator electronic.
Calculatoarele care sunt programabile liber i pot, cel puin n principiu, prelucra orice fel de date
sau informaii se numesc universale (englez general purpose, pentru scopuri generale). Calculatoarele
actuale nu sunt doar maini de prelucrat informaii, ci i dispozitive care faciliteaz comunicaia ntre doi
sau mai muli utilizatori, de exemplu sub form de numere, text, imagini, sunet sau video sau chiar toate
deodat

(multimedia).

tiina

prelucrrii

informaiilor

cu

ajutorul

calculatoarelor

se

numete informatic (englez Computer Science). Tehnologia necesar pentru folosirea lor poart numele
Tehnologia Informaiei, prescurtat TI sau IT (de la termenul englezesc Information Technology) .
n principiu, orice calculator care deine un anumit set minimum de funcii (altfel spus, care poate
emula o main Turing) poate ndeplini funciile oricrui alt asemenea calculator, indiferent c este vorba
de un PDA sau de un supercalculator. Aceast versatilitate a condus la folosirea calculatoarelor cu

22

arhitecturi asemntoare pentru cele mai diverse activiti, de la calculul salarizrii personalului unei
companii pn la controlul roboilor industriali sau medicali (calculatoare universale).

Figura 3.1 Desen al unui calculator personal[10]


Un mediu de dezvoltare (engl. software development environment, sau integrated development
environment - "mediu integrat de dezvoltare) este un set de programe care ajut programatorul n scrierea
programelor. Un mediu de dezvoltare ( figura 3.2) combin toi paii necesari crerii unui program (ex.:
editarea codului surs, compilarea, depanarea,testarea, generarea de documentaie) ntr-un singur soft,
care, de regul, ofer o interfa cu utilizatorul grafic, prietenoas.
Principalele componente ale unui mediu de dezvoltare sunt editorul de cod surs i depanatorul.
Mediile de dezvoltare apeleaz compilatoare, sau interpretoare, care pot veni n acelai pachet cu mediul
nsui, sau pot fi instalate separat de ctre programator. Printre facilit ile prezente n mediile de
dezvoltare mai sofisticate se numr: exploratoare de cod surs, sisteme de control al versiunilor,
designere de interfee grafice, sau unelte de ingineria programrii (ex. generarea de diagrame UML).

23

Figura 3.2 Desen cu IDE (XCode)[11]


De obicei un mediu de dezvoltare este specific unui anumit limbaj de programare, ns exist la
ora actual i medii de dezvoltare care pot lucra cu mai multe limbaje, de ex. Eclipse , Microsoft Visual
Studio sau XCode.
Obiectiv-C este un scop general, limbaj de programare orientat-obiect care adaug mesaje
Smalltalk stil la limbajul de programare C. Este principalul limbaj de programare folosit de Apple pentru
sistemele de operare iOS OS X i, i interfeele lor de programare a aplica iilor (API): Cacao i cacao
Touch.
Limbajul de programare Obiectiv-C ( figura 3.3) a fost ini ial dezvoltat la nceputul anilor 1980.
Acesta a fost selectat ca limb principal utilizat de NeXT pentru sistemul su de operare NeXTStep, din
care. Fiiere de cod de program surs Obiectiv-C, "punere n aplicare", de obicei, extensii de nume de
fiier .m, n timp ce obiectivul-C "antet / interfa" fiiere au extensii (.h), la fel ca i fi iere header C.
Obiectiv-C ++ Fiierele sunt notate cu o extensie de fiier (.m).

24

Figura 3.3 Desen cu secventa de cod (Obiectiv-C)


iPhone ( figura 3.4) este un telefon mobil de tip smartphone. A fost anunat de ctre Steve Jobs,
fost CEO al companiei americane Apple, Inc., n timpul discursului su de la Macworld Conference &
Expo de la 9 ianuarie 2007. iPhone are suport pentru push e-mail, telefonie mobil GSM, SMS,
navigare web. n plus este dotat cu un ecran de tip touchscreen (tactil) , include funciile gsite i la
playerele media de tip iPod i ruleaz o variant a sistemului de operare Mac OS X, numit
actualmente iOS.
Capabilitile iOS sunt un element cheie al succesului pe pia al iPhone-urilor. iPhone este cel
mai vndut gadget din toate timpurile, cu peste 215 milioane de uniti livrate pn n vara anului 2012.
iPhone a fost lansat n Statele Unite la data de 29 iunie 2007, fiind disponibil n magazinele
companiilor Apple (v. Apple Store) i AT&T. Modelul iniial a cptat ulterior denumirea iPhone 2G.
La 11 iulie 2008 Apple a lansat modelul iPhone 3G, compatibil cu standardul GSM 3G i
cu GPS asistant.
n Romnia terminalul iPhone 3G a fost lansat la Orange la 22 august 2008, iar n Republica
Moldova acesta este distribuit oficial de Orange Moldova ncepnd cu 31 octombrie2008.

Figura 3.4 Desen dispositive Iphone[13]

3.2 Executarea aplicatiei


Mai jos voi da exemplu pas dupa pas cum are loc crearea unei aplicatii Ios.
Crearea XCode Project
Deschidem Xcode-ul, si creem proectul nostru accesind File->New->Project , vom gasi un
meniu unde utem selecta diferite tipuri de proecte.
Alegem Single View Application.

25

.
Figura 3.5 New Project
Poduct Name este ceea cum se va numi proiectul. Si in continuare vom putea seta numele
aplicaiei care va fi afiat sub pictograma aplicaiei mai trziu.
Organization Name reprezinta nume companiei din care facem parte, si atunci chind completam
rubrica data , se completeaza automat si rubrica Bundle Identifier.
Bundle Identifier este un indentificator unic pentru aplicatia noastra si de obicei are unrmatorul
format: com.organization_name.product_name
In rubric Devices alegem tipul de dispozitiv pentru care noi dorim sa creem aplicatia. Si dupa
selectarea dispozitivului, facem clic pe Next pentru a alege locul salvarii proectului.
Fisierele noului proiect Xcode
Sa vedem ce fisiere au fost crate in mod omplicitit:
n figura 3.6 vedem fisierele AppDelegate.h si AppDelegate.m, acestea impreuna formeaza o
clasa. Ok, deci avem o clas numit AppDelegate, dar cu toate acestea, nu este ca o clas normal pe care
o definim i creem o instana ale acesteia.
Clasa AppDelegate este punctul de intrare pentru aplicaia dumneavoastr. Tot ce facem cu
adevrat n AppDelegate,adugam un cod personalizat (dac avem nevoie) la anumite evenimente, cum ar
la pornirea aplicaiei, cind o inchidem , o trimitem pe fundal sau cind revine pe prim-plan.

26

Figura 3.6 New XCode project files


Urmatoarea clasa pe care o avem este ViewController ce o numim (controller role) in
MPC(ModelViewController). Avem, de asemenea, un storyboard care definete vizualizarea pentru
ViewController i desemneaz drept controler de vizualizare de pornire pentru aplicaia noastr.
Acesta este un fiier constructor de interfa astfel nct, atunci cnd facei clic pe el, zona de
editor ne dezvlui designer vizual.
n figura 3.7 vedem cum AppDelegate, View (Storyboard) i ViewController interac ioneaz
ntre ele.

Fig. 3.7 Schema de interaciune AppDelegate, View (Storyboard) i ViewController[12]

27

Dac ne amintii model-view-controller pattern, view controller se ocup de comunicare nainte i


napoi ntre view i model, cu toate acestea nu exist nici o clas de model n XCode proiectul nostru.
Crearea Interfeei utilizatorului in Interface Builder
Cnd ne-am creat proiectul, XCode a adugat un fiier storyboard pentru aplicaia noastr, care
descrie viziunea pentru clasa ViewController.
Dac facei clic pe acest fiier Storyboard, XCode va schimb Editor Area in Interface Builder
designer.
n cadrul acestui designer vom glisa i fixa elementele de interfa ale utilizator pe ecran i apoi
vom face legatura cu acele elemente cu ajutorul codului, astfel nct vom putem accesa i manipula
aceste elemente din ViewController.m.
n primul rnd, s ne asigurm c suntem pe aceeai pagin. Ar trebui s vedei ceva de genul cnd
evideniai Main.storyboard n XCode Project Navigator ca in figura 3.8.
In urmatorii adaugam Background, butoane, etichete text, ajustam toate componentle de design, si
facem legatura lor cu codul , pentru a da viata acestora.

Figura. 3.8 - XCode Project Navigator

3.2 Componente aplicatiei

28

Din rubrica componente a aplicatiei fac parte MAPS, VIDEO, SPEED, BORD COMPUTER si
MORE.
Clasa Hart
Acesta clasa raspunde pentru: conectarea cu serverul google pentru a incarca harta, crearea
marsutul pe care ne vom misca, distribuierea unui screenshot sau a coordonatelor marsutului pe retelele
sociale(Facebook, Twitter, ) precum i E-mail, sau salvarea in galereia proprie a dispozitivului.
pragma mark - GPS MAP methods
- (IBAction)startBt
{
drawRoutePath = [GMSMutablePath path];
passedDist = 0;
passedTime = 0;
startTime = [NSDate date];
[self chooseMapButton:2];
[self startLocationManager];
[self setSimpleWebViewText:@"Started!"];
[mapViewGMS animateToZoom:17];
if (internet.isReachable){
locationIndex = 0;
conexion = YES;
noNet = NO;
}else{
polyline.map = nil;
_arrowToRouteView.hidden = NO;
conexion = NO;
noNet = YES;
}
}
- (IBAction)stopBt
{
[self chooseMapButton:3];
countUpdates = 0;
_arrowToRouteView.hidden = YES;
[locationManager stopUpdatingLocation];
if (noNet) {
GMSMutablePath xline = [GMSMutablePath path];
[line addCoordinate:startPin.position];
[line addCoordinate:endPin.position];
[self addPolyline:line line:YES];
[self setMapBoundsWith:line];
[self setSimpleWebViewText:@"Stopped!"];
}else{
NSMutableDictionary xdict = [userDefaults objectForKey:@"tempDictToSave"];
[self showRoute:dict];
if ([[utils getLocalLanguage]isEqualToString:@"en"])
[self performSelectorInBackground:@selector(speak:) withObject:@"Stopped"];
shareBt.hidden = NO;
routeInfoView.frame = CGRectMake(shareBt.frame.size.width+5, 0,
startButton.frame.origin.x-shareBt.frame.size.width 10,
mapMainMenu.frame.size.height);
routeInfoWebView.frame = CGRectMake(0, 0, routeInfoView.frame.size.width,
routeInfoView.frame.size.height);
}
startPin = [self setStartEndFlagsMarker:startFlagLocation.coordinate
flag:@"directionsPin"];
startPin.groundAnchor = CGPointMake(0.5, 0.5);
}
- (IBAction)cancelInsideMap
{
[self hideSubmenus:@"13"];

29

[self showSubmenus:@"2"];
[mapViewGMS clear];
[self cancelInputData];
tapDir = YES;
animatedX = YES;
[self setCurrentStart];
shareBt.hidden = YES;
routeInfoView.frame = CGRectMake(5, 0, startButton.frame.origin.x-5,
mapMainMenu.frame.size.height);
if ([userDefaults objectForKey:@"tempDictToSave"] != nil)
[self saveRouteToHistoryFile];
else
NSLog(@"temp dict for save nil");
noNet = NO;
_arrowToRouteView.hidden = YES;
[self chooseMapButton:1];
[drawRoutePath removeAllCoordinates];
drawRoutePath = nil;
[userDefaults removeObjectForKey:@"tempDictToSave"];
}
#pragma mark - Stop methods
-(void)saveRouteToHistoryFile
{
NSMutableArray xtempArrayForSave = [utils readFromFile:historyPath];
NSMutableDictionary xtempDictForSave = [[NSMutableDictionary alloc]initWithDictionary:
[userDefaults objectForKey:@"tempDictToSave"]];
NSDate xcurrDate = [NSDate date];
NSDateFormatter xdateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM.YYYY HH:mm"];
NSString xdateString = [dateFormatter stringFromDate:currDate];
[tempDictForSave setObject:dateString forKey:@"time"];
if (!tempArrayForSave) {
tempArrayForSave = [[NSMutableArray alloc]initWithObjects:tempDictForSave, nil];
[utils saveArray:tempArrayForSave toFile:historyPath];
}else{
[tempArrayForSave insertObject:tempDictForSave atIndex:0];
[utils reSaveArray:tempArrayForSave toFile:historyPath];
}
[tempArrayForSave removeAllObjects];
tempArrayForSave = nil;
}

Clasa Setri hart


n clasa dat sunt create setarile hart, ce permit modificarea tipului de map ncarcat de pe
serverul Google( sunt 3 tipuri de mapa: drumuri, satelit, hibrid), modul de vizualizare: 2D i 3D, sistemul
de uniti:metric, imperial i setari istorie ce permite tergerea i vizualizarea istoriei.
-(void)refreshElements
{
if (kiPhone){
if ([[userDefaults objectForKey:@"mapType"]integerValue] == kGMSTypeNormal){
[roadMapType setImage:[UIImage imageNamed:@"selRoad"]
forState:UIControlStateNormal];
[satMapType setImage:[UIImage imageNamed:@"sat"] forState:UIControlStateNormal];
[hybridMapType setImage:[UIImage imageNamed:@"hyb"]
forState:UIControlStateNormal];
}else if ([[userDefaults objectForKey:@"mapType"]integerValue] == kGMSTypeSatellite) {
[roadMapType setImage:[UIImage imageNamed:@"road"] forState:UIControlStateNormal];
[satMapType setImage:[UIImage imageNamed:@"selSat"]
forState:UIControlStateNormal];
[hybridMapType setImage:[UIImage imageNamed:@"hyb"]
forState:UIControlStateNormal];

30

}else if ([[userDefaults objectForKey:@"mapType"]integerValue] == kGMSTypeHybrid) {


[roadMapType setImage:[UIImage imageNamed:@"road"] forState:UIControlStateNormal];
[satMapType setImage:[UIImage imageNamed:@"sat"] forState:UIControlStateNormal];
[hybridMapType setImage:[UIImage imageNamed:@"selHyb"]
forState:UIControlStateNormal];
}else{
//nil
}
}else{
if ([[userDefaults objectForKey:@"mapType"]integerValue] == kGMSTypeNormal) {
[roadMapType setImage:[UIImage imageNamed:@"selRoadsPad"]
forState:UIControlStateNormal];
[satMapType setImage:[UIImage imageNamed:@"satPad"]
forState:UIControlStateNormal];
[hybridMapType setImage:[UIImage imageNamed:@"hybPad"]
forState:UIControlStateNormal];
}else if ([[userDefaults objectForKey:@"mapType"]integerValue] == kGMSTypeSatellite) {
[roadMapType setImage:[UIImage imageNamed:@"roadsPad"]
forState:UIControlStateNormal];
[satMapType setImage:[UIImage imageNamed:@"selSatPad"]
forState:UIControlStateNormal];
[hybridMapType setImage:[UIImage imageNamed:@"hybPad"]
forState:UIControlStateNormal];
}else if ([[userDefaults objectForKey:@"mapType"]integerValue] == kGMSTypeHybrid) {
[roadMapType setImage:[UIImage imageNamed:@"roadsPad"]
forState:UIControlStateNormal];
[satMapType setImage:[UIImage imageNamed:@"satPad"]
forState:UIControlStateNormal];
[hybridMapType setImage:[UIImage imageNamed:@"selHybPad"]
forState:UIControlStateNormal];
}else{
//nil
}
}
if (kiPhone){
if ([[userDefaults objectForKey:@"mode3D"]boolValue] == YES) {
// 3D selected
[mode3D setImage:[UIImage imageNamed:@"sel3D"] forState:UIControlStateNormal];
[mode2D setImage:[UIImage imageNamed:@"2D"] forState:UIControlStateNormal];
}else{
// 2D selected
[mode3D setImage:[UIImage imageNamed:@"3D"] forState:UIControlStateNormal];
[mode2D setImage:[UIImage imageNamed:@"sel2D"] forState:UIControlStateNormal];
}
}else{
if ([[userDefaults objectForKey:@"mode3D"]boolValue] == YES) {
// 3D selected
[mode3D setImage:[UIImage imageNamed:@"sel3DPad"] forState:UIControlStateNormal];
[mode2D setImage:[UIImage imageNamed:@"2DPad"] forState:UIControlStateNormal];
}else{
// 2D selected
[mode3D setImage:[UIImage imageNamed:@"3DPad"] forState:UIControlStateNormal];
[mode2D setImage:[UIImage imageNamed:@"sel2DPad"] forState:UIControlStateNormal];
}
}
if (kiPhone){
if ([[userDefaults objectForKey:@"units"] isEqualToString:@"metric"]) {
// metric selected
[metricUnits setImage:[UIImage imageNamed:@"selMet"]
forState:UIControlStateNormal];
[imperialUnits setImage:[UIImage imageNamed:@"imp"]
forState:UIControlStateNormal];
}else {
// imperial selected
[metricUnits setImage:[UIImage imageNamed:@"met"] forState:UIControlStateNormal];
[imperialUnits setImage:[UIImage imageNamed:@"selImp"]
forState:UIControlStateNormal];
}

31

}else{
if ([[userDefaults objectForKey:@"units"] isEqualToString:@"metric"]) {
// metric selected
[metricUnits setImage:[UIImage imageNamed:@"selMetPad"]
forState:UIControlStateNormal];
[imperialUnits setImage:[UIImage imageNamed:@"impPad"]
forState:UIControlStateNormal];
}else {
// imperial selected
[metricUnits setImage:[UIImage imageNamed:@"metPAd"]
forState:UIControlStateNormal];
[imperialUnits setImage:[UIImage imageNamed:@"selImpPad"]
forState:UIControlStateNormal];
}
}
}
- (IBAction)mapChange:(UIButton x)bt
{
if (bt.tag == 1) {
[userDefaults setObject:[NSNumber numberWithInt:kGMSTypeNormal] forKey:@"mapType"];
}else if(bt.tag == 2){
[userDefaults setObject:[NSNumber numberWithInt:kGMSTypeSatellite] forKey:@"mapType"];
}else if(bt.tag == 3){
[userDefaults setObject:[NSNumber numberWithInt:kGMSTypeHybrid] forKey:@"mapType"];
}
[self refreshElements];
[userDefaults synchronize];
}
- (IBAction)modeChange:(UIButton x)bt
{
if (bt.tag == 4) {
[userDefaults setObject:[NSNumber numberWithBool:YES] forKey:@"mode3D"];
}else if(bt.tag == 5){
[userDefaults setObject:[NSNumber numberWithBool:NO] forKey:@"mode3D"];
}
[self refreshElements];
[userDefaults synchronize];
}
- (IBAction)unitsChange:(UIButton x)bt
{
if (bt.tag == 6) {
[userDefaults setObject:@"metric" forKey:@"units"];
}else if(bt.tag == 7){
[userDefaults setObject:@"imperial" forKey:@"units"];
}
[self refreshElements];
[userDefaults synchronize];
}
- (IBAction)historyClear
{
if (history.count == 0) {
[utils simpleAlertView:@"Info"
andMessage:@"History already removed!"
andOKButton:@"OK"
otherButton:nil];
return;
}else{
if([utils removeFile:historyPath] == YES){
[utils simpleAlertView:@"Info"
andMessage:@"All history removed!"
andOKButton:@"OK"
otherButton:nil];
[utils createNewEmptyFile:historyPath];
[history removeAllObjects];
history = nil;

32

}else{
[utils simpleAlertView:@"Info"
andMessage:@"History not removed\nPlease try again!"
andOKButton:@"OK"
otherButton:nil];
}
}
}
- (IBAction)historyShow
{
if (![utils checkIfExistFile:historyPath]){
[utils simpleAlertView:@"Info"
andMessage:@"History file not found or not created yet"
andOKButton:@"OK"
otherButton:nil];
return;
}else if(history.count == 0){
[utils simpleAlertView:@"Info"
andMessage:@"History is empty!"
andOKButton:@"OK"
otherButton:nil];
return;
}else{
ABBk xABBKs = [[ABBk alloc]initWithNibName:@"ABBk" bundle:nil];
ABBKs.delegate = self;
[self presentViewController:ABBKs animated:YES completion:nil];
[self.tabBarController setSelectedViewController:
[self.tabBarController.viewControllers objectAtIndex:0]];
}
}

Clasa Video
Clasa Video (Camera) are ca functional inregistra video si audio content precum si captarea
imaginilor in caz de necessitate, deasemenea salveaza si distribute contentul foto si video in clasa
GalleryPhoto pentru a putea viziona materialul salvat.
#pragma mark #pragma mark Start/Stop recording
// x x x x x x x x x x START STOP RECORDING BUTTON
- (IBAction)StartRecordingButton:(id)sender
{

x x x x x x x x x x

OptionsButton.userInteractionEnabled=NO;
VideosButton.userInteractionEnabled=NO;
if ((!WeAreRecording)&&(timpvideo>0))
{
[self playSound];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
[playbutton setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"rec_on" ofType:@"png"]] forState:UIControlStateNormal];
else
[playbutton setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"rec_on" ofType:@"png"]] forState:UIControlStateNormal];
//----- START RECORDING ----WeAreRecording = YES;
deleg = (AppDelegate x)[[UIApplication sharedApplication] delegate];
//Create temporary URL to record to

33

//
//
//

NSString xdir = @"~/";


NSFileManager xmanager = [ NSFileManager defaultManager];
[manager changeCurrentDirectoryPath:[dir stringByExpandingTildeInPath]];

//
deleg.home=home;
//
nume = [NSString stringWithFormat:@"dalban"];
NSString xoutputPath1 = [[NSString alloc] initWithFormat:@"%@/%@", Documents, [NSString
stringWithFormat:@"%@.mp4",nume]];
nameToSave = nume;
NSURL xoutputURL1 = [[NSURL alloc] initFileURLWithPath:outputPath1];
NSFileManager xfileManager1 = [NSFileManager defaultManager];
if ([fileManager1 fileExistsAtPath:outputPath1])
{
NSError xerror;
if ([fileManager1 removeItemAtPath:outputPath1 error:&error] == NO)
{
//Error - handle if requried
}
}
//Start recording
[MovieFileOutput startRecordingToOutputFileURL:outputURL1 recordingDelegate:self];
}
}
- (void)StopRecordingButton {
if((WeAreRecording)||(timpvideo==0))
{
[experiment invalidate];
experiment = nil;
//
WeAreRecording = NO;
[MovieFileOutput stopRecording];
}
}
- (void)killActivityIndicator

Clasa Setari Video


In clasa data sunt create setarile compartimentului video. Aceste setari permit schimbarea unor
performante ca : incorporarea datelor depre vitez , or, data, tip de sistem metric si sensibilitatea
dispozitivului la miscare acestuea in spatiu .
- (IBAction)date:(id)sender {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
if (myCustomdate.isOn) {
[[NSUserDefaults standardUserDefaults] setObject:@"NULL" forKey:@"dateBool"];
}else{
[[NSUserDefaults standardUserDefaults] setObject:@"yes" forKey:@"dateBool"];
}
[UIView animateWithDuration:0.2 animations:^{
imagedate.transform = CGAffineTransformMakeScale(1,0 );
}completion:^(BOOL finished) {
if ([[[NSUserDefaults standardUserDefaults]
objectForKey:@"dateBool"]isEqualToString:@"NULL"]) {
if (self.view.frame.size.width == 320) {

34

[imagedate setImage:[UIImage imageWithContentsOfFile:[[NSBundle


mainBundle] pathForResource:@"date_on" ofType:@"png"]]];
}else{
[imagedate setImage:[UIImage imageWithContentsOfFile:[[NSBundle
mainBundle] pathForResource:@"date_activite_landscape" ofType:@"png"]]];
}
}else{
if (self.view.frame.size.width == 320) {
[imagedate setImage:[UIImage imageWithContentsOfFile:[[NSBundle
mainBundle] pathForResource:@"date_off" ofType:@"png"]]];
}else{
[imagedate setImage:[UIImage imageWithContentsOfFile:[[NSBundle
mainBundle] pathForResource:@"daet_landscape" ofType:@"png"]]];
}
}
[UIView animateWithDuration:0.2 animations:^{
imagedate.transform = CGAffineTransformMakeScale(1,1 );
}];
}];
}else{
if (myCustomdate.isOn) {
[[NSUserDefaults standardUserDefaults] setObject:@"NULL" forKey:@"dateBool"];
}else{
[[NSUserDefaults standardUserDefaults] setObject:@"yes" forKey:@"dateBool"];
}
[UIView animateWithDuration:0.2 animations:^{
imagedate.transform = CGAffineTransformMakeScale(1,0 );
}completion:^(BOOL finished) {
if ([[[NSUserDefaults standardUserDefaults]
objectForKey:@"dateBool"]isEqualToString:@"NULL"]) {
[imagedate setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"date_11~ipad" ofType:@"png"]]];
}else{
[imagedate setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"date_1~ipad" ofType:@"png"]]];
}
[UIView animateWithDuration:0.2 animations:^{
imagedate.transform = CGAffineTransformMakeScale(1,1 );
}];
}];
}
}
- (IBAction)timer:(id)sender {
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){
if (myCustomtime.isOn)
{
[[NSUserDefaults standardUserDefaults] setObject:@"NULL" forKey:@"timeBool"];
}else{
[[NSUserDefaults standardUserDefaults] setObject:@"yes " forKey:@"timeBool"];
}
[UIView animateWithDuration:0.2 animations:^{
imagetime.transform = CGAffineTransformMakeScale(1,0 );
}completion:^(BOOL finished) {
if ([[[NSUserDefaults standardUserDefaults]
objectForKey:@"timeBool"]isEqualToString:@"NULL"]) {
[imagetime setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"time_on" ofType:@"png"]]];
}else{
[imagetime setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"time_off" ofType:@"png"]]];
}
[UIView animateWithDuration:0.2 animations:^{
imagetime.transform = CGAffineTransformMakeScale(1,1 );

35

}];
}];
}
else
{
if (myCustomtime.isOn)
{
[[NSUserDefaults standardUserDefaults] setObject:@"NULL" forKey:@"timeBool"];
}else{
[[NSUserDefaults standardUserDefaults] setObject:@"yes " forKey:@"timeBool"];
}
[UIView animateWithDuration:0.2 animations:^{
imagetime.transform = CGAffineTransformMakeScale(1,0 );
}completion:^(BOOL finished){
if ([[[NSUserDefaults standardUserDefaults]
objectForKey:@"timeBool"]isEqualToString:@"NULL"])
{
[imagetime setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"time_11~ipad" ofType:@"png"]]];
}
else
{
[imagetime setImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]
pathForResource:@"time_1~ipad" ofType:@"png"]]];
}
[UIView animateWithDuration:0.2 animations:^{
imagetime.transform = CGAffineTransformMakeScale(1,1 );
}];
}];
}
}

36

4 Documentarea produsului realizat


Sistemul care este realizat este un instrument (Program) cu ajutorul cruia utilizatorul
economisete timp i bani ctignd n eficacitate totodat. Instalarea programului porneste accesind App
Store, dupa downloadare si instalarea programului GPS Video-Audio inregistrator putem accesa
contentul.
Accesing GPS Video-Audio inregistrator pe ecranul dispozitivului intilnim componentele
acestuia : (MAPS, VIDEO, SPEED, BORD COMPUTER, MORE) figura 4.1.

Figura 4. 1 Componentele GPS Video-Audio inregistrator

4. 1 Componentele categoriei Maps


Accesind categoriea MAPS utilizatorul urmareste interfata grafia care cuprinde componentele
(SET MENU, START, CURRENT, END, DONE, CAR, START, FLAG, STOP, BACK.) , figura 4.2.
Descrierea componentelor categoriei MAPS:
SET MENU , START, CURENT - bara de MENU in care intra compartimentui;
START - punctul de startare a pozitiei automobilului;
37

CURRENT - punctul de locatie curent a automobilului;


END - punctul sau destinatiea finala a automobilului;
DONE - butonul DONE reprezinta trasarea marsrutului si a informatiei de timp si de km
intre pozitia actuala a automobilului si punctul final de destinatie, deasemenea vizualizarea
traseului in timp real;
CAR - interfata grafia care reprezinta automobilul;
FLAG - interfata grafica care reprezinta punctul final de destinatie;
START - butonul START reprezinta startarea calatoriei si monitorizarea cursei pe tot
parcursul calatoriei a pasagerului;

STOP - butonul STOP reprezinta finisarea calatoriei sau intreruperea acesteea;

SHARE - butonul SHARE indeplineste functia de screenshot a programului cu toata


informatia care este reprezentata lamoment pe

interfata grafica a acestuea si

expediereaimaginei pe (Facebook, Twitter, E-Mail sau memorarea imaginii pe dispozitiv);

BACK - butonul BACK are functia de a reintoarce utilizatorul la inceputul programului

de startare.

38

Figura 4.2 Componentele categoriei Maps

4.2 Componentele categoriei Video


Categotia VIDEO contine un set de elemente care interactioneaza cu utilizatorul, aici intra:
PHOTO, CHANGE CAMERA, MUSIC

PLAYER, BARA DE JOS LANDSCAPE, SOUND ON,

SOUND OFF, REC OFF, REC ON. Toate acestea ishi au functinalul si utilizarea sa in monitorizarea
traficului si ushurarea acestuia. (figura 4.3)

Figura 4.3 Componentele categoriei VIDEO

Descrierea componentelor categoriei VIDEO:


PHOTO - acest buton realizeaza functia de FOTO in decursul inscrierei VIDEO sau
atunci cind nu se evectueaza VIDEO ;

39

CHANGE CAMERA - acest butor are functia de schimbare a camelor celei din spate si
celei frontale, pentru inscrierea sau monitorizarea traficului dorit cu ajutorua a oricarei camere
a dispozitivului;

MUSIC PLAYER - aceasta functie este activa in decursul inscrierei VIDEO doar cu

setarea acestuea din meniu utilizatorului se da posibilitatea de a alege muzica din dispozitiv si
de a reda muzica,deasemenea putem muta piesele din lista alese anterior;
BARA LANDSCAPE - reprezinta interfata grafica pe care se pozitioneaza butoul REC
ON si REC OFF : SOUND ON, SOUND OFF si coronometrul care arata timpul de inscriere
VIDEO;
SOUND ON - reprezinta optiunea de inscriere a sunetului pe parcursul inscrierei de
VIDEO;
SOUND OFF - reprezinta optiunea de inscriere a sunetului pe parcursul inscriereide
VIDEO care poate fi stopata in orice timp;

REC ON - inscrierea VODEO cu ajutotul programului Video, audio Inregistrator se pote

efectua atit cu camera dispozitivului frontala atit si cu cea din spate cu ajutorul butonului

CHANGE CAMERA, butonul REC ON serveshte la pornirea inscrierei VIDEO.

REC OFF - butoul REC OFF are functia de finisare a inscrierei VIDEO.

4. 3 Componentele categoriei More


Categoria MORE este una din componentele care contine in sine toate setarile si
functionalitattile programului GPS Video-Audio inregistrator, figura 4.4.
Aceasta categorie da posiilitate utilizatorului sa seteza setarile: SETITNGS MAPS;
SETTINGS VIDEO; SETTINGS MUSIC si permite acceserea setarii FILES care raspunde la rindul sau
de accesarea tuturor componentelor VIDEO si IMAGE.
Categoria constituie un avantaj a programului GPS Video-Audio inregistrator deoarece
permite utilizatorului de a seta toate setarile dupa preferintile, dorintele si necesitatile pe care le are
acesta.

40

Figura 4.4 Componentele categoriei MORE

4.4 Componenta categoriei MORE - setri map


Componenta de setari Settings Maps contine in sine setarile : GPS Map type; GPS view
mode; System units; History, figura 4.5
Toate aceste setari au functionalitatile sale si butoaele care raspund de acestea.
GPS Map type cotine trei setari sau functii dupa care acesta poate fi modificate : Roads,
Satellite si Hybrid.
GPS view mode contine doua setari care raspund de : 3D si 2D.
System units la fil contine doua setari care sunt : Metric si Imperial.
History este constituit din doua setati : Show si Clear.
Toate aceste setari pot fi schimba oricind de catre utilizator pentru setarea mai corecta a
prgramului si pentru monitorizarea mai comoda si mai eficace.

41

Figura 4.5 - Setarile categoriei - Settings Maps

4.5 Componenta categoriei MORE setri Video


Componenta de setari Setings Video contine setarile ce cuprind SPEED, TIME, DATE,
STORE SHOTS, MOTION SENSITIVITY si BUTONUL PERFORMANCE, figura 4.6.

42

Figura 4.6 - But. Performance


Setarile SPEED ,TIME DATE si MOTION SENSITIVITY pot fi activate sau dezactivate cu
ajutorul butoanelor : ON si OF.
Deasemenea indicatorul SPEED poate fi setat pentru masurare in indici Km/h si Mph.
Accesind butonul Performance programa putem urmari setarile SOUND si VIDEO&PHOTO
figura 4.7.

Figura 4.7 - Setarile categoriei - Setings


Setarile SOUND si VIDEO&PHOTO le putem modifica cu ajutoeul interfetii grafice VIDEO
BAR si SOUND BAR, figura 4.8.
43

Video

Figura 4.8 - Interfata grafica SOUND BAR SI VIDEO BAR

Deasemenea utilizatorul poate modifica inscrierea sound in tipul inregistrarii video cu ajutorul
butonului grafic OF si ON, figura. 4.9, figura 4.10.

Figura 4.9 - Butonul OFF

Figura 4.10 - Butonul ON


In submeniul Performance utilzaorul poate vualiza graficul Fre Space care ne indica numerar
numarul de memorie libera si reda numarul de fotografii si tmpul total de filmare care poate fi efectuat,
figura 4.11.

44

Figura 4.10 - Graficul Free Space

45

Concluzii
Elabornd aceast lucrare am studiat mai aprofundat ce constituie acest domeniu al informaticii i
anume proiectarea sistemelor nzestrate cu anumite proprieti. Am analizat ce este un sistem, de ce
cunotine i capaciti dispun n desfurarea activitii.

46

Bibliografie
1. Sirghi Igor, Sistem de informare, accesat 30.03.2016, [Resursa electronica]. - Regim de acces:
2. http://biblioteca.regielive.ro/proiecte/electronica/sistem-de-informare-163884.html
3. tefan Marin, Analiza i modelarea sistemelor informatice ndrumar metodic pentru lucrri de
laborator, UTM 2004
4. Florin Leon, Limbajul unificat de modelare UML, Universitatea Tehnic Gh. Asachi, Iai
5. Despre NeXT , accesat 28.09.2015, [Resursa electronica]. - Regim de acces:
http://www.kevra.org/TheBestOfNext/index.html
6. Librariele iOS i a limbajului de programare Objective-C, accesat 13.10.2015 , [Resursa
electronica]. - Regim de acces:
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/
Introduction/Introduction.html
7. Chris Frazier Editor (versions 1.2-4.0),Jon Leech Editor (version 2.0), Pat Brown The OpenGL R
8. Xcode descarcare, accesat 01.09.2015, [Resursa electronica]. - Regim de acces:
https://itunes.apple.com/us/app/xcode/id497799835
9. Planificarea necesarului de personal, acce 19.05.2016, [Resursa electronica]. - Regim de acces:
http://resurseumane.wikidot.com/example-item-1
10. Limbajul de programare Objective-C, accesat 28.09.2015, [Resursa electronica]. - Regim de
acces: http://www.tutorialspoint.com/objective_c/
11. Imagine Calculator personal [Resursa electronica]. - Regim de acces:
https://en.wikipedia.org/wiki/Desktop_computer#/media/File:Desktop_computer_clipart__Yellow_theme.svg
12. Imagine [Resursa electronica]. - Regim de acces: IDE Xcode http://2012.igem.org/Team:SUSTC-Shenzhen-A/Biodesign_Tool
13. Codewithchris [Resursa electronica]. - Regim de acces: http://codewithchris.com/demo-app-withxcode-4-and-interface-builder/
14. Imagine evolutie Iphone -[Resursa electronica]. - Regim de acces:
https://www.google.md/search?
q=iphone&newwindow=1&hl=en&biw=1366&bih=643&site=webhp&source=lnms&tbm=isch&s
a=X&ved=0ahUKEwi1oZfd1ZvNAhWIHpoKHdUIBRgQ_AUIBigB#newwindow=1&hl=en&tb
m=isch&q=iphone+history+timeline&imgdii=jDq2yDCOCdgCpM%3A%3BjDq2yDCOCdgCpM
%3A%3BYTWTk2TEK1-8PM%3A&imgrc=jDq2yDCOCdgCpM%3A

47

Anexa A
Codul surs
//Maps
#pragma mark - GPS MAP methods
- (IBAction)startBt
{
drawRoutePath = [GMSMutablePath path];
passedDist = 0;
passedTime = 0;
startTime = [NSDate date];
[self chooseMapButton:2];
[self startLocationManager];
[self setSimpleWebViewText:@"Started!"];
[mapViewGMS animateToZoom:17];
if (internet.isReachable){
locationIndex = 0;
conexion = YES;
noNet = NO;
}else{
polyline.map = nil;
_arrowToRouteView.hidden = NO;
conexion = NO;
noNet = YES;
}
}
- (IBAction)stopBt
{
[self chooseMapButton:3];
countUpdates = 0;
_arrowToRouteView.hidden = YES;
[locationManager stopUpdatingLocation];
if (noNet) {
GMSMutablePath *line = [GMSMutablePath path];
[line addCoordinate:startPin.position];
[line addCoordinate:endPin.position];
[self addPolyline:line line:YES];
[self setMapBoundsWith:line];
[self setSimpleWebViewText:@"Stopped!"];
}else{
NSMutableDictionary *dict = [userDefaults objectForKey:@"tempDictToSave"];
[self showRoute:dict];
if ([[utils getLocalLanguage]isEqualToString:@"en"])
[self performSelectorInBackground:@selector(speak:) withObject:@"Stopped"];
shareBt.hidden = NO;
routeInfoView.frame = CGRectMake(shareBt.frame.size.width+5, 0,
startButton.frame.origin.x-shareBt.frame.size.width 10,
mapMainMenu.frame.size.height);
routeInfoWebView.frame = CGRectMake(0, 0, routeInfoView.frame.size.width,
routeInfoView.frame.size.height);
}
startPin = [self setStartEndFlagsMarker:startFlagLocation.coordinate
flag:@"directionsPin"];
startPin.groundAnchor = CGPointMake(0.5, 0.5);
}
- (IBAction)cancelInsideMap
{
[self hideSubmenus:@"13"];

48

[self showSubmenus:@"2"];

49

S-ar putea să vă placă și