VISUALIZAÇÃO DE IMAGENS CAPTURADAS EM UM CIRCUITO FECHADO...

of 69 /69
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO – BACHARELADO VISUALIZAÇÃO DE IMAGENS CAPTURADAS EM UM CIRCUITO FECHADO DE TELEVISÃO (CFTV) NO IPHONE DIOGO CARLASSARA BLUMENAU 2009 2009/2-05

Embed Size (px)

Transcript of VISUALIZAÇÃO DE IMAGENS CAPTURADAS EM UM CIRCUITO FECHADO...

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CINCIAS EXATAS E NATURAIS

CURSO DE CINCIA DA COMPUTAO BACHARELADO

VISUALIZAO DE IMAGENS CAPTURADAS EM UM

CIRCUITO FECHADO DE TELEVISO (CFTV) NO IPHONE

DIOGO CARLASSARA

BLUMENAU 2009

2009/2-05

DIOGO CARLASSARA

VISUALIZAO DE IMAGENS CAPTURADAS EM UM

CIRCUITO FECHADO DE TELEVISO (CFTV) NO IPHONE

Trabalho de Concluso de Curso submetido Universidade Regional de Blumenau para a obteno dos crditos na disciplina Trabalho de Concluso de Curso II do curso de Cincia da Computao Bacharelado.

Prof. Dalton Solano dos Reis, M.Sc Orientador

BLUMENAU 2009

2009/2-05

VISUALIZAO DE IMAGENS CAPTURADAS EM UM

CIRCUITO FECHADO DE TELEVISO (CFTV) NO IPHONE

Por

DIOGO CARLASSARA

Trabalho aprovado para obteno dos crditos na disciplina de Trabalho de Concluso de Curso II, pela banca examinadora formada por:

______________________________________________________ Presidente: Prof. Dalton Solano dos Reis, M.Sc. Orientador, FURB

______________________________________________________ Membro: Prof. Paulo Csar Rodacki Gomes, Doutor FURB

______________________________________________________ Membro: Prof. Mauro Marcelo Mattos, Doutor FURB

Blumenau, 15 de dezembro de 2009

Dedico este trabalho a todos os amigos e familiares, especialmente aqueles que estiveram comigo na realizao deste, incentivando e apoiando.

AGRADECIMENTOS

A Deus, pelo seu imenso amor e graa.

minha famlia, que esteve sempre presente, me apoiando e incentivando.

Aos meus amigos, pelos empurres e cobranas.

Ao meu orientador, Dalton Solano dos Reis, por ter contribudo e acreditado na

concluso deste trabalho.

A empresa, Benner Sistemas S.A., por permitir o horrio flexvel quando fora

necessrio.

Todo o bem que eu puder fazer, toda a ternura que eu puder demonstrar a qualquer ser humano, que eu os faa agora, que no os adie ou esquea, pois no passarei duas vezes pelo mesmo caminho.

James Greene

RESUMO

Este trabalho apresenta o desenvolvimento de uma ferramenta para visualizao de vdeos gerados por webcams diretamente no iPhone, a fim de permitir mobilidade no acompanhamento de sistemas de Circuitos Fechados de TeleViso (CFTV). O trabalho dividido em duas fases, o desenvolvimento de uma aplicao servidora, chamada Gerador e uma cliente, chamada Cliente. O Gerador deve ser instalado no computador desktop, pessoal ou notebook, possuindo uma cmera instalada, que far a captura e gravao dos vdeos. Os vdeos so gravados em um diretrio local na mquina onde o Gerador est instalado, utilizando-se uma resoluo de 300 pixels de altura e 240 pixels de largura, com uma profundidade de cores de 32 bits. O Gerador possui, alm de recurso de iniciar e parar uma gravao de vdeo, a possibilidade de fotografar imagens em tempo real. O Cliente, que por sua vez instalado no iPhone, permite receber e visualizar os vdeos e imagens gerados pelo Gerador. Esta aplicao permite ainda configurar vrios locais de monitoramento e a recepo necessita de uma conexo com a internet. Ambas, aplicao Gerador e Cliente foram desenvolvidas em sistema operacional Mac OS X verso 10.5.8, utilizando-se ambiente XCode (verso 3.1.3), para codificao e Interface Builder (verso 3.1.2) para desenho das telas.

Palavras-chave: iPhone. Dispositivo mvel. Circuito fechado de televiso. Imagens digitais.

ABSTRACT

This paper presents the development of a tool for viewing video cameras directly generated by the iPhone, to enable mobile monitoring systems Closed Circuit Television (CCTV). The work is divided into two phases, the development of an application server and a client. The server must be installed on your computer desktop, notebook or personal, having a camera installed, which will capture and record videos. The videos are recorded in a local directory on the machine where the server is installed, using a resolution of 300 pixels high and 240 pixels wide, with a color depth of 32 bits. The server has, and feature start and stop a video recording, the ability to shoot images in real time. The Client, which in turn is installed on the iPhone, to receive and view the videos and images generated by the server. This application can also configure multiple monitoring locations received independent and to have access to a WiFi network and / or 3G. Both application server and client were developed in Mac OS X version 10.5.8, using XCode environment (version 3.1.3), for encoding and Interface Builder (version 3.1.2) to design the screens.

Key-words: iPhone. Mobile device. Closed circuit television. Digital images.

LISTA DE ILUSTRAES

Figura 1 - Equipamentos necessrios para o funcionamento do sistema de CFTV ................. 17

Figura 2 - Foto de um iPhone ................................................................................................... 18

Figura 3 - Funcionamento do Yoics ......................................................................................... 23

Figura 4 - Tela de visualizao das cmeras do Cavu .............................................................. 24

Figura 5 - Tela da aplicao Nextview ..................................................................................... 25

Figura 6 - Tela de configurao do servidor............................................................................. 26

Figura 7 - Tela de visualizao do JumiCam ........................................................................... 27

Figura 8 - Tela de visualizao do CamControl ....................................................................... 28

Quadro 1- Comparativo entre os principais softwares de vigilncia ........................................ 28

Figura 9 - Configuraes disponveis no desenvolvimento para iPhone ................................. 29

Figura 10 - Configuraes disponveis para desktop ................................................................ 30

Figura 11 - Tela inicial do XCode ............................................................................................ 31

Figura 12 - Ambiente de desenvolvimento............................................................................... 31

Figura 13 - Exemplo retirado do guia Streaming Media Guide ............................................... 32

Quadro 2 - Requisitos funcionais ............................................................................................. 33

Quadro 3 Requisitos no funcionais ...................................................................................... 33

Figura 14 - Diagrama de casos de uso ...................................................................................... 34

Quadro 4 - Caso de uso UC01 .................................................................................................. 34

Quadro 5 - Caso de uso UC02 .................................................................................................. 35

Quadro 6 - Caso de uso UC03 .................................................................................................. 35

Quadro 7 - Caso de uso UC04 .................................................................................................. 36

Quadro 8 - Caso de uso UC05 .................................................................................................. 36

Quadro 9 - Caso de uso UC06 .................................................................................................. 36

Figura 15- Diagrama de classes aplicao Gerador.................................................................. 37

Figura 16 - Diagrama de classes aplicao Cliente .................................................................. 38

Figura 17 - Diagrama sequncia referente caso de uso UC05 .................................................. 40

Figura 18 - Diagrama sequncia referente caso de uso UC06 .................................................. 40

Figura 19 - Diagrama sequncia referente caso de uso UC01 .................................................. 41

Figura 20 - Diagrama sequncia referente caso de uso UC03 .................................................. 41

Figura 21 - Tela da aplicao Gerador ..................................................................................... 42

Figura 22 - Tela inicial da aplicao Cliente ............................................................................ 43

Figura 23 - Passos necessrios para captura de udio e vdeo.................................................. 44

Quadro 10 - Definio do cabealho da classe de captura ....................................................... 45

Quadro 11 - Sesso de captura ................................................................................................. 45

Quadro 12 - Dispositivo de entrada .......................................................................................... 46

Quadro 13 - Prvia do vdeo de sada ....................................................................................... 46

Quadro 14 - Cdigo para gravao do vdeo em arquivo ......................................................... 47

Quadro 15 - Definio da codificao do vdeo ....................................................................... 47

Quadro 16 - Gravao do vdeo ................................................................................................ 48

Quadro 17 - Parar gravao ...................................................................................................... 48

Quadro 18 - Mtodo para gravao de imagem em disco ........................................................ 48

Quadro 19 - Comando para criao do banco de dados ........................................................... 49

Quadro 20 - Comando para criao de tabelas ......................................................................... 49

Quadro 21 - Procedimento adicionarLocal ..................................................................... 50

Quadro 22 - Procedimento excluirLocal .......................................................................... 50

Quadro 23 - Seleo de registros .............................................................................................. 51

Figura 24 - Iniciar gravao...................................................................................................... 53

Figura 25 - Parar gravao........................................................................................................ 54

Figura 26 - Tirar foto ................................................................................................................ 55

Figura 27 - Tela para adicionar locais de monitoramento ........................................................ 56

Figura 28 - Tela de excluso de locais ..................................................................................... 57

Figura 29 Tela com locais disponveis .................................................................................. 58

Figura 30 Vdeos gravados .................................................................................................... 59

Quadro 25- Requisitos concludos ............................................................................................ 60

Quadro 26 - Faixas de tempo e tamanho do vdeo ................................................................... 61

Quadro 27 - Comparao entre os formatos disponveis .......................................................... 62

Quadro 28 - Lista de tarefas ..................................................................................................... 65

LISTA DE SIGLAS

3G 3 Gerao (Rede de telefonia mvel de terceira gerao)

ACID Atomicidade, Consistncia, Isolamento e Durabilidade

API Application Programming Interface

CCD Charged Coupled Device

CCTV Closed Circuit TeleVision

CDMA Code Division Multiple Access

CFTV Circuitos Fechados de TeleViso

CPU - Central Processing Unit

DHCP Dynamic Host Configuration Protocol

EDGE - Enhanced Data Rates for GSM Evolution

FDMA Frequency Division Multiple Access

GHz GigaHertz

GPRS General Packet Radio Service

GPS Global Positioning System

GSM Global System for Mobile Communications

HSDPA High-Speed Downlink Packet Access

IEEE Instituto de Engenheiros Eletricistas e Eletrnicos

IMT International Mobile Telecommunication

KBPS KiloBitt Per Second

PPC PowerPC

RAM - Random Access Memory

SGBD Sistema Gerenciador de Banco de Dados

SP - Service Pack

SQL Structured Query Language

SQL92 Search Query Language 92

TCL Tool Command Language

TDMA Time Division Multiple Access

UIT Unio Internacional de Telecomunicaes

UMTS Universal Mobile Telecommunications System

WCDMA Wide-band Code-Division Multiple Access

WLAN Wireless Local Area Network

SUMRIO

1 INTRODUO .................................................................................................................. 14

1.1 OBJETIVOS DO TRABALHO ........................................................................................ 14

1.2 ESTRUTURA DO TRABALHO ...................................................................................... 15

2 FUNDAMENTAO TERICA .................................................................................... 16

2.1 CFTV ................................................................................................................................. 16

2.2 IPHONE ............................................................................................................................ 17

2.2.1 LINGUAGEM DE PROGRAMAO .......................................................................... 18

2.2.2 SQLITE ........................................................................................................................... 19

2.3 MEIOS DE TRANSMISSO DE DADOS ...................................................................... 20

2.3.1 REDES SEM FIO WIFI .................................................................................................. 20

2.3.2 REDES 3G ...................................................................................................................... 21

2.4 APLICAES CCTV NO IPHONE ................................................................................ 21

2.4.1 YOICS ............................................................................................................................. 22

2.4.2 CAVU FREE VDEO SURVEILLANCE ...................................................................... 24

2.4.3 NEXTVIEW REMOTE VIDEO CAMERA SURVEILLANCE ................................... 24

2.4.4 JUMICAM ...................................................................................................................... 25

2.4.5 CAMCONTROL FOR IPHONE .................................................................................... 27

2.4.6 RESUMO E CARACTERSTICAS ............................................................................... 28

2.4.7 INTERFACE BUILDER ................................................................................................ 29

2.4.8 XCODE ........................................................................................................................... 30

3 DESENVOLVIMENTO .................................................................................................... 32

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO ....................... 33

3.2 ESPECIFICAO ............................................................................................................ 33

3.2.1 Casos de uso .................................................................................................................... 34

3.2.1.1 Cadastrar local .............................................................................................................. 34

3.2.1.2 Excluir local .................................................................................................................. 35

3.2.1.3 Visualizar vdeo ............................................................................................................ 35

3.2.1.4 Iniciar gravao no Gerador ......................................................................................... 36

3.2.1.5 Parar gravao .............................................................................................................. 36

3.2.1.6 Tirar foto ....................................................................................................................... 36

3.2.2 Diagrama de classes ........................................................................................................ 37

3.2.2.1 Diagrama de classes do Gerador ................................................................................... 37

3.2.2.2 Diagrama de classes do Cliente .................................................................................... 38

3.2.3 Diagrama de sequncia ................................................................................................... 39

3.2.3.1 Diagrama de sequncia do Gerador .............................................................................. 39

3.2.3.2 Diagrama de sequncia do Cliente ............................................................................... 40

3.2.4 APLICACO GERADOR ............................................................................................. 41

3.2.5 APLICAO CLIENTE ................................................................................................ 42

3.3 IMPLEMENTAO ........................................................................................................ 43

3.3.1 Tcnicas e ferramentas utilizadas.................................................................................... 43

3.3.1.1 Gerador ......................................................................................................................... 44

3.3.1.2 Cliente ........................................................................................................................... 49

3.3.1.2.1 Gravao de locais ................................................................................................... 49

3.3.1.2.2 Visualizao de vdeos capturados .......................................................................... 51

3.3.2 Operacionalidade da implementao .............................................................................. 52

3.3.2.1 Funcionalidades da aplicao Gerador ......................................................................... 52

3.3.2.1.1 Iniciar gravao ........................................................................................................ 52

3.3.2.1.2 Parar gravao .......................................................................................................... 53

3.3.2.1.3 Tirar foto .................................................................................................................. 54

3.3.2.2 Funcionalidades da aplicao Cliente ........................................................................... 55

3.3.2.2.1 Adicionar local ......................................................................................................... 55

3.3.2.2.2 Excluir local ............................................................................................................. 56

3.3.2.2.3 Visualizar vdeo ....................................................................................................... 57

3.4 RESULTADOS E DISCUSSO ...................................................................................... 59

3.4.1 Aplicao Gerador .......................................................................................................... 60

3.4.2 Aplicao Cliente ............................................................................................................ 62

4 CONCLUSES .................................................................................................................. 64

4.1 EXTENSES .................................................................................................................... 65

REFERNCIAS BIBLIOGRFICAS ................................................................................. 66

14

1 INTRODUO

Com o aumento da constante necessidade de segurana, seja em nossa sociedade, seja

em nossa casa ou trabalho, uma das alternativas que se pode encontrar a implantao de

sistemas de Circuitos Fechados de TeleViso (CFTV). Este tipo de sistema tem por

finalidade, por exemplo, monitorar as atividades de um funcionrio em um estabelecimento

comercial, monitorar um caixa de banco, ou ainda monitorar um beb que est dormindo no

quarto ao lado de seus pais.

O Sistema de Circuito Fechado de TV CFTV, tem como objetivo possibilitar o monitoramento de vrios locais em um nico ponto, centralizando o gerenciamento e facilitando a tomada de decises. Atualmente os Sistemas de CFTV so utilizados nos mais diversos locais, sempre tendo como funo principal o auxlio ao gerenciamento (Controle). (PROCURADORIA REGIONAL DO TRABALHO 19 REGIO, 2006, p. 4).

Atualmente, para o funcionamento de um CFTV, se faz necessria a aquisio de

equipamentos como um computador ou televiso, que recebero as imagens geradas por

webcams. Um problema quanto a isso seria a visualizao, a qual fica restrita apenas a um

destes equipamentos, sem nenhuma mobilidade.

Uma alternativa para visualizao poderia ser atravs de um navegador, tal como

Firefox ou Internet Explorer, via internet. O navegador pode trazer um pouco de flexibilidade,

pois permite a verificao das imagens a partir de qualquer computador ou notebook,

entretanto no possui a mobilidade que um dispositivo mvel pode trazer, uma vez que as

consultas podem ser feitas em qualquer hora e local, independente de um computador.

O desafio proposto possibilitar a visualizao das imagens geradas por webcams em

um nico ponto central, sendo este ponto um dispositivo mvel, o iPhone. A transmisso das

imagens para o iPhone ser feita atravs da internet, utilizando arquivos de vdeo, com a

finalidade de ser possvel a consulta em qualquer hora ou lugar.

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho exibir as imagens e vdeos previamente gravados em uma

mquina remota no iPhone.

Os objetivos especficos do trabalho so:

15

a) capturar imagens atravs de webcams;

b) utilizar o acesso a internet para receber as imagens e vdeos.

1.2 ESTRUTURA DO TRABALHO

O presente trabalho est estruturado em quatro captulos. Neste contexto, o segundo

captulo apresenta a fundamentao terica necessria para o seu desenvolvimento. Nele so

expostos detalhes sobre CFTV, sobre iPhone e suas particularidades, sobre a linguagem de

programao utilizada para o desenvolvimento do trabalho, os meios de transmisso de dados

sem fio, algumas aplicaes disponveis no mercado e tambm as ferramentas utilizadas no

desenvolvimento. O captulo tambm mostra caractersticas de alguns trabalhos correlatos.

No terceiro captulo apresentado o desenvolvimento das aplicaes Gerador e

Cliente, onde so apresentados os requisitos e a especificao das aplicaes desenvolvidas.

Esta especificao compreende os diagramas de casos de uso, de classes e de seqncia. O

terceiro captulo tambm demonstra a operacionalidade da aplicao e aborda aspectos

relacionados sua implementao, bem como os resultados obtidos.

Finalizando, no quarto captulo so apresentadas as concluses e a lista de tarefas para

continuidade do estudo sobre o desenvolvimento para iPhone.

16

2 FUNDAMENTAO TERICA

Neste captulo so abordados os assuntos e tcnicas utilizadas para o desenvolvimento

da ferramenta de visualizao de imagens capturadas em um circuito fechado de televiso. Na

seo 2.1 so apresentadas informaes sobre o CFTV e sua estrutura bsica de

funcionamento. Em seguida, na seo 2.2 apresentada a plataforma iPhone, suas

particularidades, a linguagem de programao utilizada, as ferramentas de desenvolvimento e

banco de dados utilizado. Aps, na seo 2.3 so apresentados os meios de transmisso que

podem ser utilizados para transferncia dos dados capturados para o iPhone. Por fim, na seo

2.4 so descritos os trabalhos correlatos.

2.1 CFTV

Um CFTV um sistema de televiso que distribui sinais oriundos de cmeras de vdeo

localizadas em pontos especficos, para um ou mais pontos de visualizao.

Circuito Fechado de Televiso, (do termo ingls Closed Circuit TeleVision - CCTV), um sistema de televisionamento que distribui sinais provenientes de cmeras localizadas em um local especifico, para um ponto de superviso pr-determinado. Os sistemas de CFTV normalmente utilizam cmeras de vdeo CCD (para produzir o sinal de vdeo), cabos ou transmissores/receptores sem-fio ou redes (para transmitir o sinal), e monitores (para visualizar a imagem de vdeo captada). (Moraes, 2006, p. 6).

Para que um sistema de CFTV funcione completamente, os seguintes componentes so

necessrios: iluminao, lentes, cmera e seus componentes, tais como suporte, cabeamento

ou transmissor sem fio e um dispositivo de carga acoplada (Charged Coupled Device - CCD),

que , segundo Oliveira Filho (1999) uma cmera com [...] lente convergente, ou seja, que

direciona os raios de luz em direo uns aos outros [...], processadores, monitores,

alimentao e opcionalmente gravadores.

A estrutura bsica para o funcionamento do sistema de CFTV ilustrados na Figura 1.

17

Fonte: Horus (2009). Figura 1 - Equipamentos necessrios para o funcionamento do sistema de CFTV

A Figura 1 demonstra a conexo entre os equipamentos necessrios para a criao de

um sistema de CFTV. As cmeras so conectadas ao dispositivo de visualizao e gravao, a

fim de gravar as imagens capturadas em um disco rgido. Este conectado, via internet, a

outros equipamentos de visualizao, tais como computadores, notebooks e dispositivos

mveis.

2.2 IPHONE

O iPhone pertence ao grupo dos aparelhos chamados smartphones (telefones

inteligentes, traduo nossa), que so aparelhos de telefonia mvel com funes avanadas,

nas quais podem ser estendidas por meio de programas em seu sistema operacional. O iPhone

fabricado pela empresa Apple Inc., e entre os recursos pode-se citar: cmera digital, internet

e rede sem fio, sistema de posicionamento global (Global Positioning System - GPS) e tela

touch-screen (tela sensvel ao toque, traduo nossa).

Uma particularidade do iPhone a ausncia de teclado. Quando o mesmo necessrio,

um teclado virtual aparece na tela, permitindo a digitao atravs do toque dos dedos. Foi o

primeiro telefone celular a implementar a tecnologia de multi-touch (mltiplos toques,

traduo nossa), onde se pode tocar com dois dedos na tela, para se ter funcionalidades como

18

zoom de imagens, por exemplo. Outros smartphones tambm possuem a tecnologia touch-

screen, mas o toque na tela deve ser feito com um dedo apenas. A Figura 2 mostra a interface

atual do iPhone.

Figura 2 - Foto de um iPhone

2.2.1 LINGUAGEM DE PROGRAMAO

O desenvolvimento de aplicaes para o iPhone feito no sistema operacional Mac OS

X, utilizando a linguagem Objective-C, que, segundo Webclaudio (2009), [...] a linguagem

utilizada pela Apple para programao de seus sistemas [...].

O Objective-C uma linguagem que foi desenvolvida tendo como base outras duas

linguagens, o C e o Smalltalk. Da linguagem C, o Objective-C trouxe a velocidade, e, do

Smalltalk, a capacidade de ser programada com Orientao a Objetos (OO).

A linguagem Objective-C foi criada por Brad Cox e sua empresa, a StepStone Corporation, no incio da dcada de 80. Em 88 ela foi licenciada pela NeXT, tornando-se a linguagem de desenvolvimento do NeXTstep. O suporte do GNU/gcc foi acrescentado em 1992. Em 1994 as empresas NeXT Computer e Sun Microsystems criaram uma especificao do NeXTstep conhecida como OpenStep. A implementao da Free Software Foundation da especificao OpenStep denominada GNUStep. (Martins, 2005).

19

Para a programao, utilizado o framework1 Cocoa, que uma das cinco maiores

APIs2 disponveis para o Mac OS X.

2.2.2 SQLITE

Segundo Devmedia (2009), [...] SQLite uma ferramenta que permite com que

desenvolvedores possam armazenar os dados de suas aplicaes em tabelas e manipular esses

dados atravs de comandos SQL. A diferena que tudo isso pode ser feito sem que seja

preciso acessar um SGBD.

O SQLite foi desenvolvido em linguagem de programao C, e pode ser integrado com

aplicaes e ferramentas escritas em diferentes linguagens, com o intuito de possibilitar a

manipulao de dados atravs de instrues Structured Query Language (SQL).

Segundo Sqlitebr (2009), algumas das caractersticas do SQLite pode ser:

a) transaes so Atmicas, Consistentes, Isoladas e Durveis (ACID) mesmo que o

sistema trave ou a energia falhe;

b) configurao-zero - nenhuma instalao ou administrao necessria;

c) implementao da maior parte do SQL92;

d) um banco de dados completo armazenado em apenas um arquivo de sistema;

e) arquivos de banco de dados podem ser livremente compartilhados entre mquinas

com diferentes ordens de byte;

f) suporta bases de dados de at 2 terabytes de tamanho;

g) tamanho de strings e BLOBs limitados apenas pela memria disponvel;

h) mais rpido que populares bancos de dados cliente/servidor para a maioria das

operaes comuns;

i) API simples e fcil de usar;

j) TCL bindings3 inclusas. Bindings para a maioria das linguagens disponveis

separadamente;

1 Framework: termo para designar uma aplicao, um conjunto de aplicaes, ou classes que servem de suporte ao desenvolvimento de software num determinado contexto. 2 Application Programming Interface (API): conjunto de rotinas e padres estabelecidos por um software para a utilizao das suas funcionalidades por programas aplicativos. A API composta por uma srie de funes acessveis somente por programao. 3Bindings: ligao entre o protocolo de comunicao e o adaptador de rede.

20

k) cdigo fonte bem comentado, com mais de 95% coberto por testes;

l) auto-contido: sem dependncias externas;

m) fontes esto em domnio pblico, podendo ser usado para qualquer propsito.

2.3 MEIOS DE TRANSMISSO DE DADOS

Segundo Scrcaro e Saturino (2005), O meio de transmisso de dados serve para

oferecer suporte ao fluxo de dados entre dois pontos. Computadores em rede ficam

interligados por meio de fios eltricos, fibras pticas, ondas de rdio ou raios de luz e nas

redes com fio, pode-se utilizar o par tranado ou cabo coaxial.

A seguir, na seo 2.3.1, descrito as redes sem fio e na seo 2.3.2 as redes 3G, sendo

estas as principais formas de transmisso de dados em dispositivos mveis.

2.3.1 REDES SEM FIO WIFI

Uma rede sem fio usa ondas de rdio, do mesmo modo que os telefones celulares,

televises e rdio. A comunicao ao longo da rede sem fio muito parecida com a

comunicao de rdio emissor-receptor (COMO TUDO FUNCIONA, 2009).

Segundo Pricas (2003, p. 53), As especificaes IEEE 802.11b e IEEE 802.11g, que

podem transmitir por radiofreqncia ou infravermelho, oferecem transmisso sem fio sobre

distncias relativamente curtas, operando na freqncia de 2,4 GHz. A taxa de transmisso

deste tipo de rede de 11Mbps (IEEE 802.11b) ou 54Mbps (IEEE 802.11g).

Pricas (2003, p. 53) ainda diz que O protocolo utilizado pelo IEEE 802.11 o

Ethernet e o mtodo bsico de acesso o do tipo de coordenao distribuda, onde a deciso

de transmitir tomada individualmente pelas estaes [...].

Resumidamente, a comunicao se d em dois passos. Primeiro, o adaptador da rede

sem fio (hardware) traduz os dados na forma de um sinal de rdio e os transmite usando uma

antena. Ento, o roteador sem fio recebe o sinal e o decodifica, enviando a informao para a

internet usando uma conexo fsica, com fios.

21

2.3.2 REDES 3G

Segundo 3G, redes 3G dizem respeito terceira gerao de padres e tecnologias para

a telefonia mvel. Os padres so baseados nas famlias de normas da Unio Internacional

de Telecomunicaes (UIT) e no programa Internacional de Telecomunicaes Mveis

(IMT).

Com a evoluo das redes sem fio, mais servios puderam ser oferecidos. Segundo

Kataoka (2008) [...] entre os servios 3G esto o trfego de voz, dados, vdeo, incluindo

vdeo sob demanda e jogos multiplayer.

A evoluo das redes sem fio para telefonia mvel segundo Kataoka (2008) :

a) 1 gerao: transmisso de voz analgica atravs de Acesso Mltiplo por Diviso

de Frequncia (Frequency Division Multiple Access FDMA), que uma tcnica

usada para permitir que mais de uma estao terrestre compartilhe a largura de

banda de um repetidor de satlite;

b) 2 gerao: transmisso de voz digital atravs de Acesso Mltiplo por Diviso de

Tempo (Time Division Multiple Access TDMA), Sistema Global para

Comunicao Mvel (Global System for Mobile Communications GSM),

Servio de Rdio de Pacote Geral (General Packet Radio Service GPRS) que

uma evoluo do GSM, Enhanced Data Rates for GSM Evolution (EDGE) que

uma evoluo do GPRS e Acesso Mltiplo por Diviso de Cdigo (Code

Division Multiple Access CDMA);

c) 3 gerao: transmisso de voz e dados digitais em alta velocidade, utilizando

Acesso Mltiplo por Diviso de Cdigo de Banda Larga (Wide-band Code-

Division Multiple Access WCDMA) e a tecnologia CDMA evoluda, o

CDMA2000.

2.4 APLICAES CCTV NO IPHONE

A seguir sero descritas algumas aplicaes que esto disponveis na App Store, que

nada mais de que um servio disponibilizado pela Apple, no qual permite que usurios

cadastrados naveguem e baixem softwares para iPhone.

22

2.4.1 YOICS

Yoics uma ferramenta que oferece uma alternativa para acessar remotamente

computadores pessoais, arquivos do computador, webcams, cmeras Internet Protocol (IP),

dispositivos de armazenamento ou qualquer outro produto ou servio acessvel rede.

O acesso aos dispositivos realizado atravs do prprio navegador disponvel no

iPhone, uma vez que a ferramenta chamada webapp (aplicao web, traduo nossa), ou

seja, uma aplicao que acessada via navegador, atravs da internet ou intranet.

A ferramenta roda sobre os sistemas operacionais Windows, Linux e Mac OS X,

podendo transformar qualquer webcam em um sistema de vigilncia, capturando e gravando

tudo no disco rgido do computador onde est instalado. A visualizao pode ser feita atravs

do iPhone, mas pode ser feita a partir de qualquer navegador.

A ferramenta pode ser usada como uma aplicao de mensageiro instantneo, mas ao

invs de uma lista de contatos, ele exibe uma lista de dispositivos compartilhados por outras

pessoas. Entre os compartilhamentos disponveis, pode-se citar o compartilhamento de pastas,

arquivos, servios ou dispositivos externos, que podem ser acessados remotamente.

Um exemplo de funcionamento do Yoics no iPhone demonstrado na Figura 3. Na

primeira imagem, demonstrada a tela inicial de login, na qual o usurio dever inserir o

nome de usurio e senha de acesso. A segunda imagem demonstra a tela de configuraes

disponveis, entre elas esto destacam-se a biblioteca de imagens, de documentos e cmeras

disponveis. Na terceira imagem demonstrado o monitoramento em tempo real de uma das

cmeras cadastradas. Na quarta imagem, demonstrada a biblioteca de imagens, com as fotos

tiradas.

23

Fonte: Yoics (2009).

Figura 3 - Funcionamento do Yoics

Segundo Yoics (2009), para o seu funcionamento bsico, alguns requisitos de

hardware e software so exigidos, para o sistema operacional Windows (servios adicionais

do Yoics podem solicitar outros requisitos especficos):

a) sistema operacional Windows 2000 Service Pack (SP) 4, Windows XP SP 2 ou SP

3, Vista SP 1;

b) framework .NET 2.0 para Windows;

c) Unidade Central de Processamento (CPU) de 1 Gigahertz;

d) 1 Gigabyte de Memria de Acesso Randmico (Random Access Memory - RAM);

e) 100 Megabytes de espao no disco rgido;

f) internet de banda larga, com velocidade igual ou superior a 384 Kbps.

Para o sistema operacional Mac OS X, os requisitos so os seguintes:

a) PPC G4, G5 ou processador Intel Core Duo;

b) Mac OS X version 10.4.5 ou superior;

c) 512 Gigabyte de Memria de Acesso Randmico (Random Access Memory -

RAM);

d) 80 Megabytes de espao no disco rgido;

e) internet de banda larga, com velocidade igual ou superior a 384 Kbps.

24

2.4.2 CAVU FREE VDEO SURVEILLANCE

Cavu (2009), uma aplicao para iPhone que possibilita a visualizao de cmeras de

vigilncia em tempo real, a partir de qualquer lugar. A ferramenta necessita conexo com

internet, seja ela com fio, sem fio ou 3G.

Uma vez conectado internet, o software disponibiliza todas as cmeras cadastradas

em uma matriz onde as imagens podem ser visualizadas com o iPhone em posio vertical ou

horizontal, e ainda podem ser organizadas em grupos.

Na verso gratuita, Cavu permite visualizar em tempo real, apenas as cmeras locais.

A verso paga permite que qualquer cmera IP seja visualizada, e possui outras

funcionalidades, tais como suporte conexo com vrios servidores, zoom, entre outros. A

Figura 4 demonstra a tela de visualizao das cmeras do Cavu.

Fonte: Cavu (2009).

Figura 4 - Tela de visualizao das cmeras do Cavu

2.4.3 NEXTVIEW REMOTE VIDEO CAMERA SURVEILLANCE

Nextview (2009) uma aplicao de vigilncia para iPhone que utiliza conexo 3G ou

sem fio. Para cada conta de usurio criada podem ser visualizadas at 16 cmeras em tempo

real.

25

Uma particularidade dessa aplicao a possibilidade de integrao com o sistema de

segurana domstico (sistema de alarmes), acrescentando assim, a possibilidade de

notificao com imagens de vdeo sempre que uma porta ou janela da casa for aberta ou

fechada, atravs dos sensores instalados na residncia. As cmeras so instaladas na rede

utilizando o protocolo de configurao dinmica de endereos de rede, tambm conhecido

como Dynamic Host Configuration Protocol (DHCP).

A aplicao possui verses gratuitas e pagas, com funcionalidades diferentes. Na

verso paga, por exemplo, as cmeras podem ser controladas remotamente (para cima, baixo,

esquerda ou direita).

Um ponto fraco em relao essa aplicao que as cmeras utilizadas para a

visualizao devem ser as prprias disponibilizadas pela empresa que desenvolve o software,

sendo elas NextView Standart ou NextView Pro Wifi. A Figura 5 demonstra a tela da aplicao

Nextview.

Fonte: Nextview (2009).

Figura 5 - Tela da aplicao Nextview

2.4.4 JUMICAM

Jumicam (2009) uma aplicao para iPhone e/ou iPod que permite que sejam

visualizadas webcams de qualquer lugar. Funciona em sistema operacional Windows XP ou

Vista 32 bits, utilizando conexo com internet 3G ou sem fio.

Para funcionar, a aplicao cria o streaming a partir de um computador com webcam.

26

O software requer que sejam utilizados dois programas, o Jumi Controller no computador e o

JumiCam no iPhone e/ou iPod. O Jumi Controller que far a gerao do streaming e o

disponibilizar para o JumiCam. O JumiCam por sua vez, receber o streaming gerado e

mostrar na tela do iPhone e/ou iPod. A Figura 6 demonstra a tela de configurao do

servidor.

Fonte: Jumicam (2009). Figura 6 - Tela de configurao do servidor

A Figura 7 demonstra a tela de visualizao do JumiCam.

27

Fonte:Jumicam (2009). Figura 7 - Tela de visualizao do JumiCam

2.4.5 CAMCONTROL FOR IPHONE

O CamControl for iPhone (CAMCONTROL, 2009) uma aplicao de vigilncia

desenvolvida para iPhone e/ou iPod que permite a visualizao de cmeras em tempo real.

A transmisso das imagens se d em torno de 12 quadros por segundo e se pode ter

controle sobre as cmeras, tal como zoom. Possui vrias distribuies (verses gratuitas e

pagas, com funcionalidades diferentes para cada verso).

A comunicao com iPhone pode se dar em vrios protocolos: Universal Mobile

Telecommunications System (UMTS) em 3G, High-Speed Downlink Packet Access (HSDPA),

Wide-Band Code-Division Multiple Access (W-CDMA), Wireless Local Area Network

(WLAN). Com o iPod disponibilizada apenas a conexo do tipo WLAN. A Figura 8

demonstra a tela de visualizao do CamControl.

28

Fonte: Camcontrol (2009). Figura 8 - Tela de visualizao do CamControl

2.4.6 RESUMO E CARACTERSTICAS

Abaixo (Quadro 1) demonstrado, resumidamente, um comparativo entre os principais

softwares de vigilncia disponibilizados na ITUNES STORE (2009).

Software Yoics CAVU NextView JumiCam CamControl

Transmisso em tempo real * ** ***

Funciona com rede sem fio

Possui verso gratuita

Visualizao de cmeras

pblicas

Zoom **

Cmera pode ser controlada

remotamente **

Visualizada no navegador

* Apenas na verso paga ** Devem ser adquiridas as cmeras do prprio fabricante *** Apenas para cmeras USB conectadas no computador

Quadro 1- Comparativo entre os principais softwares de vigilncia

29

2.4.7 INTERFACE BUILDER

Interface Builder (2009) uma ferramenta para desenho e teste de interfaces na

plataforma Mac OS X. Esta ferramenta permite aos desenvolvedores criar as interfaces apenas

selecionando e arrastando componentes para dentro das mesmas. Possui vrias configuraes,

dependendo do tipo de uso.

Entre estas configuraes, destacam-se o desenvolvimento para iPhone e computador

(desktop), chamada Cocoa. A Figura 9 demonstra os tipos de configuraes disponveis para

desenvolvimento para iPhone e a Figura 10 demonstra as configuraes disponveis para

desktop.

Figura 9 - Configuraes disponveis no desenvolvimento para iPhone

30

Figura 10 - Configuraes disponveis para desktop

O Interface Builder trabalha com arquivos cuja extenso .nib, conhecida como

Nextstep Interface Builder. Estes arquivos so representaes estticas de objetos de

interfaces e suas ligaes (tal como a ao de clicar um boto). O Interface Builder ainda

possui recursos de testes de interface e integrao com o ambiente XCode, utilizado para a

codificao.

2.4.8 XCODE

XCode (2009) um conjunto de ferramenta integradas para o desenvolvimento na

plataforma Mac OS X. Entre estas ferramentas, incluem-se compiladores e aplicativos,

juntamente com um extenso conjunto de bibliotecas e interfaces. O ponto central desta

ferramenta a prpria aplicao XCode, que oferece uma interface organizada para gerenciar

projetos de desenvolvimento de software.

O XCode suporta cdigos escritos em Objective-C, C, C++, por exemplo. No caso

particular da linguagem Objective-C, os cdigos so divididos em arquivos com extenso .h

(arquivo de cabealho, na qual so feitas as declaraes de funes) e .m (arquivo com a

implementao dos mtodos descritos no arquivo .h)

A Figura 12 demonstra a tela inicial e a Figura 12 demonstra o ambiente de

desenvolvimento do XCode.

31

Figura 11 - Tela inicial do XCode

Figura 12 - Ambiente de desenvolvimento

32

3 DESENVOLVIMENTO

O desenvolvimento do visualizador de imagens no iPhone envolveu as fases de

instalao e configurao do ambiente de desenvolvimento XCode, introduo ao

desenvolvimento e depurao de aplicaes, levantamento de requisitos, especificao e

posterior implementao da aplicao, bem como a documentao das operacionalidades com

o intuito de orientar o usurio a fazer uso das funcionalidades que foram disponibilizadas.

Neste captulo, alm do detalhamento das fases acima, so apresentados os resultados obtidos.

O trabalho foi desenvolvido em duas partes, uma aplicao chamada Gerador e uma

aplicao chamada Cliente. No Gerador, que deve ser instalado em um computador pessoal ou

notebook (possuindo uma cmera de vdeo), desenvolveu-se uma aplicao responsvel por

capturar as imagens oriundas da cmera. No Cliente, que por sua vez deve ser instalado no

iPhone, desenvolveu-se uma aplicao que carrega as imagens capturadas pelo Gerador. A

Figura 13 apresenta o contexto do sistema.

Fonte: Streaming Media Guide (2009).

Figura 13 - Exemplo retirado do guia Streaming Media Guide

33

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

Para o desenvolvimento do sistema, foram levantados requisitos funcionais e no

funcionais, descritos nos Quadro 2 e Quadro 3, respectivamente.

REQUISITOS FUNCIONAIS CASO DE USO

RF01: Permitir ao usurio visualizar, a partir do iPhone, imagens geradas

em computador com uma webcam.

UC03, UC04,

UC05

RF02: Permitir ao usurio gravar e excluir os locais de acesso do iPhone. UC01 e UC02

RF03: Permitir que a aplicao geradora capture imagens instantneas. UC06

RF04: Dever ser desenvolvido o programa gerador, responsvel pela

captura das imagens da cmera do computador.

RF05: Dever ser desenvolvido o programa cliente, responsvel por

receber e exibir as imagens geradas pelo Gerador.

Quadro 2 - Requisitos funcionais

REQUISITOS NO FUNCIONAIS

RNF01: Ser desenvolvido utilizando anlise orientada a objetos.

RNF02: As aplicaes devem ser desenvolvidas em sistema operacional Mac OS.

RNF03: As aplicaes devem ser desenvolvidas utilizando ambiente XCode (para

codificao) e Interface Builder (para criao das interfaces).

RNF04: O acesso deve ser utilizando-se rede TCP/IP.

Quadro 3 Requisitos no funcionais

3.2 ESPECIFICAO

A especificao do presente trabalho foi desenvolvida utilizando a notao Unified

Modeling Language em conjunto com a ferramenta Enterprise Architect, gerando como

produtos os diagramas de casos de uso, de classes e de seqncia apresentados nas sees

seguintes.

34

3.2.1 Casos de uso

O diagrama de casos de uso representado pela Figura 14 com as interaes com o

usurio.

Figura 14 - Diagrama de casos de uso

3.2.1.1 Cadastrar local

O primeiro caso de uso (Quadro 4), designado Cadastrar local , descreve como um

usurio deve proceder para cadastrar um novo local de monitoramento.

UC01 Cadastrar local: possibilita ao usurio cadastrar locais de monitoramento. Requisitos atendidos RF02. Pr-condies No possui.

Cenrio principal

1) O usurio inicia a aplicao Cliente. 2) O usurio clica no boto + (mais) . 3) O usurio preenche os dados solicitados, ou seja, o nome e endereo. 4) O usurio clica no boto Save .

Fluxo alternativo 01 Cancelar incluso: 1) No passo 3 do cenrio principal, caso o usurio desejar cancelar a incluso de um novo local, este deve clicar no boto Cancel .

Ps-condies Um novo local cadastrado no banco de dados. Quadro 4 - Caso de uso UC01

35

3.2.1.2 Excluir local

O segundo caso de uso (Quadro 5), designado Excluir local , descreve como um

usurio deve proceder para excluir um local de monitoramento.

UC02 Excluir local: possibilita ao usurio excluir locais de monitoramento. Requisitos atendidos RF02.

Pr-condies O caso de uso UC01 deve ter sido executado pelo menos uma vez, ou seja, deve haver pelo menos um local cadastrado.

Cenrio principal

1) O usurio inicia a aplicao Cliente. 2) O usurio clica no boto Edit . 3) O usurio clica no boto (menos) . 4) O usurio clica no boto Delete . 5) O usurio clica no boto Done.

Fluxo alternativo 01 Cancelar excluso: 1) No passo 3 do cenrio principal, caso o usurio desejar cancelar a excluso do local, este deve clicar novamente no boto (menos) e ento no Done.

Ps-condies Um local excludo do banco de dados. Quadro 5 - Caso de uso UC02

3.2.1.3 Visualizar vdeo

O terceiro caso de uso (Quadro 6), designado Visualizar vdeo , descreve como um

usurio deve proceder para visualizar um local de monitoramento.

UC03 Visualizar vdeo: possibilita ao usurio visualizar locais de monitoramento. Requisitos atendidos RF01.

Pr-condies O caso de uso UC01 deve ter sido executado pelo menos uma vez, ou seja, deve haver pelo menos um local cadastrado. Tambm necessrio que o Gerador esteja em execuo no computador.

Cenrio principal

1) O usurio inicia a aplicao Cliente. 2) A lista de locais disponveis exibida. 3) O usurio seleciona um local, clicando sobre a linha. 4) O vdeo exibido.

Fluxo alternativo 01 Cancelar exibio do vdeo: 1) No passo 4 do cenrio principal, caso o usurio desejar cancelar a exibio do vdeo, este deve clicar no boto Done do iPhone

Ps-condies O vdeo no local selecionado exibido. Quadro 6 - Caso de uso UC03

36

3.2.1.4 Iniciar gravao no Gerador

O quarto caso de uso (Quadro 7), designado Iniciar gravao , descreve como um

usurio deve proceder para iniciar a gravao do vdeo em um local de monitoramento.

UC04 Iniciar gravao: possibilita ao usurio gravar o vdeo de um local de monitoramento. Requisitos atendidos RF01. Pr-condies O computador deve possuir uma cmera de vdeo instalada e configurada.

Cenrio principal 1) O usurio inicia a aplicao Gerador. 2) O usurio clica o boto iniciar gravao .

Ps-condies O vdeo gravado. Quadro 7 - Caso de uso UC04

3.2.1.5 Parar gravao

O quinto caso de uso (Quadro 8), designado Parar gravao , descreve como um

usurio deve proceder para finalizar a gravao do vdeo em um local de monitoramento.

UC05 Parar gravao: possibilita ao usurio finalizar a gravao do vdeo de um local de monitoramento. Requisitos atendidos RF01.

Pr-condies O caso de uso UC04 deve ter sido executado, ou seja, a aplicao Gerador deve ter iniciado uma gravao.

Cenrio principal 1) O usurio clica o boto parar . Ps-condies O vdeo finalizado.

Quadro 8 - Caso de uso UC05

3.2.1.6 Tirar foto

O sexto caso de uso (Quadro 9), designado Tirar foto , descreve como um usurio

deve proceder para fotografar um local de monitoramento.

UC06 Tirar foto: possibilita ao usurio fotografar um local de monitoramento. Requisitos atendidos RF03. Pr-condies No possui.

Cenrio principal 1) O usurio inicia a aplicao Gerador. 2) O usurio pressiona o boto snapshot .

Ps-condies Uma imagem gravada no local apontado pelo campo Local . O campo ltimo snapshot preenchido com a imagem gravada. O campo Log recebe o endereo da imagem gravada.

Quadro 9 - Caso de uso UC06

37

3.2.2 Diagrama de classes

O diagrama de classes apresenta uma viso de como as classes esto estruturadas e

relacionadas. Nesta seo so descritas as classes necessrias para o desenvolvimento da

aplicao Gerador e da aplicao Cliente.

3.2.2.1 Diagrama de classes do Gerador

A Figura 15 demonstra a classe MyRecorderController , utilizada na aplicao

Gerador.

class Serv idor

MyRecorderController

- btnFoto: NSButton- btnStart: NSButton- btnStop: NSButton- currentImageBuffer: CVImageBufferRef- mCaptureDeviceInput: QTCaptureDeviceInput- mCaptureMovieFileOutput: QTCaptureMovieFileOutput- mCaptureSession: QTCaptureSession- mCaptureView: QTCaptureView- mDecompressedVideoOutput: QTCaptureDecompressedVideoOutput- mPreviewVideo: QTCaptureVideoPreviewOutput- viewImagem: NSImageView

+ exibeImagem() : void+ startRecording(id) : IBAction+ stopRecording(id) : IBAction+ tirarFoto(id) : IBAction

Figura 15- Diagrama de classes aplicao Gerador

A classe MyRecorderController possui os seguintes mtodos:

a) exibeImagem : mtodo que fotografa um quadro e salva a imagem em um diretrio;

b) startRecording : mtodo que inicia a gravao dos vdeos;

c) stopRecording : mtodo que para a gravao dos vdeos;

d) tirarFoto : este mtodo executado por um boto, e chama o mtodo exibeImagem .

38

3.2.2.2 Diagrama de classes do Cliente

A Figura 16 demonstra as classes envolvidas no desenvolvimento da aplicao Cliente.

class Cliente

AddViewController

- txtLocalEndereco: UITextField- txtLocalNome: UITextField

Local

- localEndereco: NSString- localID: NSInteger- localNome: NSString

+ adicionarLocal() : void+ destruirObjetos() : void+ excluirLocal() : void+ initWithPrimaryKey(NSInteger) : void+ registrosParaExibir(NSString) : void

RootViewController

- addNavigationController: UINavigationController- appDelegate: SQLAppDelegate- avController: AddViewController- playerVideo: MPMoviePlayerController- vController: viewTocarVideoController

+ CallbackTerminouCarregarVideo(NSNotification*) : void+ CarregarVideo(NSURL*) : void

SQLAppDelegate

- arrayLocais: NSMutableArray- navigationController: UINavigationController- nomeArquivoBanco: NSString- window: UIWindow

+ adicionarLocal(Local) : void+ excluirLocal(Local) : void+ retornaPathBanco() : NSString+ verificaDatabase() : void

Figura 16 - Diagrama de classes aplicao Cliente

A classe SQLAppDelegate responsvel por exibir a janela do iPhone, e possui os

seguintes mtodos:

a) adicionarLocal : este mtodo insere um registro do banco de dados (executa o

mtodo adicionarLocal da classe Local );

b) excluirLocal : este mtodo exclui um registro do banco de dados (executa o

mtodo excluirLocal da classe Local );

c) retornaPathBanco : mtodo que retorna o caminho onde o banco de dados foi

criado;

d) verificaDatabase : mtodo que verifica se existe banco de dados criado. Se o

banco no existir, o mesmo criado.

J a classe RootViewController responsvel pelo exibio dos vdeos. Esta classe

possui os seguintes mtodos:

39

a) CallbackTerminouCarregarVideo : este mtodo executado quando um vdeo

termina de carregar;

b) CarregarVideo : mtodo que carrega um vdeo a partir de um endereo.

A classe Local , por sua vez, responsvel pela manuteno do cadastro de locais de

exibio, e possui os seguintes mtodos:

a) adicionarLocal : mtodo responsvel por adicionar um registro de local no banco

de dados;

b) destruirObjetos : mtodo responsvel por desalocar da memria os objetos desta

classe;

c) excluirLocal : mtodo responsvel por excluir um registro do banco de dados;

d) initWithPrimaryKey : mtodo que retorna uma nova chave primria, para

insero de um novo local de monitoramento;

e) registrosParaExibir : este mtodo executa uma consulta no banco de dados do

cliente, na tabela de locais e retorna todos os registros encontrados.

3.2.3 Diagrama de sequncia

O diagrama de seqncia apresenta uma viso interna do processo e da comunicao

entre as classes para cada caso de uso. Na seo 3.2.3.1 sero apresentados dos diagramas de

sequncia referentes aos casos de uso UC05 e UC06. Na seo 3.2.3.2 sero apresentados os

diagramas de sequncia referentes aos casos de uso UC01 e UC03.

3.2.3.1 Diagrama de sequncia do Gerador

A Figura 17 demonstra o diagrama de sequncia referente ao caso de uso UC05.

40

sd Serv idor-UC05

Usurio

Tela inicial Dispositivos Captura video

preciona boto gravar

verifica dispositivos

inicia sesso captura

exibe vdeo

Figura 17 - Diagrama sequncia referente caso de uso UC05

A Figura 18 demonstra o diagrama de sequncia referente ao caso de uso UC06.

sd Serv idor-UC06

Usurio

Tela inicial Dispositivos

preciona boto snapshot

verifica dispositivo

grava imagem no disco

Figura 18 - Diagrama sequncia referente caso de uso UC06

3.2.3.2 Diagrama de sequncia do Cliente

A Figura 19 demonstra o diagrama de sequncia referente ao caso de uso UC01.

41

sd Cliente-UC01

Usurio

TelaCadastro BancoValidao

Inserir dados

efetua veri ficao

insere registro

Figura 19 - Diagrama sequncia referente caso de uso UC01

A Figura 20 demonstra o diagrama de sequncia referente ao caso de uso UC03.

sd Cliente-UC03

Usurio

Tela inicial Disponvel

Seleciona registro

Verifica disponibil idade

Figura 20 - Diagrama sequncia referente caso de uso UC03

3.2.4 APLICACO GERADOR

A aplicao Gerador instalado no computador ou notebook e responsvel pela

captura e pelo envio das imagens. O objetivo do mesmo capturar as imagens oriundas da

cmera do computador e gravar em um arquivo de vdeo com tamanho de 240 pixels4 de

largura e 300 pixels de altura, com compactao H.264, que , segundo Divx (2009), [...] o

formato avanado de codificao digital para vdeo de alta definio [...]. Este formato de

tela e codificao de vdeo foi escolhido pelo fato de iPhone conseguir ler vdeos nesta

codificao. A Figura 21 demonstra a tela da aplicao Gerador.

4 Pixel: Termo utilizado para designar cada ponto na tela do computador.

42

Figura 21 - Tela da aplicao Gerador

3.2.5 APLICAO CLIENTE

A aplicao Cliente instalada no iPhone e responsvel por ler e exibir na tela os

arquivos disponibilizados pelo Gerador. No Cliente possvel gravar locais de

monitoramento, ou seja, o usurio consegue armazenar no prprio iPhone os locais onde

possuem webcams disponveis. A Figura 22 a tela inicial da aplicao Cliente.

43

Figura 22 - Tela inicial da aplicao Cliente

3.3 IMPLEMENTAO

A seguir so descritas as tcnicas e ferramentas utilizadas na implementao, bem

como detalhes das principais classes e rotinas implementadas durante o desenvolvimento das

aplicaes Gerador e Cliente.

3.3.1 Tcnicas e ferramentas utilizadas

Nesta seo so demonstradas as tcnicas e ferramentas utilizadas no desenvolvimento

44

da aplicao Gerador e da aplicao Cliente.

3.3.1.1 Gerador

A aplicao Gerador foi implementada sob o paradigma da orientao a objetos na

linguagem programao Objective-C, utilizando-se o ambiente de desenvolvimento XCode

verso 3.1.3 (para codificao), ambiente Interface Builder verso 3.1.2 (para desenho de

interfaces), ambos em sistema operacional Mac OS X verso 10.5.7. Este conjunto oferece

todos os recursos necessrios para o desenvolvimento da aplicao.

Para efetuar a captura e gravao das imagens da cmera, foram utilizadas as classes

do QuickTime verso 7.2.1 (API QTKit), que o tocador oficial de udio e vdeo para o

sistema operacional Mac OS. A Figura 23 exemplifica os passos para captura de udio e

vdeo.

Fonte: QTKit Capture (2009). Figura 23 - Passos necessrios para captura de udio e vdeo

A captura das imagens feita em uma sesso, definida pela classe QTCaptureSession .

Na sesso, so instanciados os dispositivos de captura de imagens, definidos pelas classes

QTCaptureDevice e QTCaptureDeviceInput . A conexo dos dispositivos com a sesso de

captura feita com objetos da classe QTCaptureConnection .

45

Dentro da sesso de captura podem ser adicionados objetos das classes

QTCaptureVideoPreviewOutput (para exibio do vdeo), QTCaptureAudioPreviewOutput

(para udio) e QTCaptureMovieFileOutput (para gravao de arquivo de vdeo).

No Quadro 10 demonstrado cabealho da classe desenvolvida para criao e ligao

dos componentes de captura.

01 #import 02 #import 03 04 05 @interface MyRecorderController : NSOpenGLView { 06 07 IBOutlet QTCaptureView *mCaptureView; 08 QTCaptureSession *mCaptureSession; 09 QTCaptureMovieFileOutput *mCaptureMovieFileOu tput; 10 QTCaptureDeviceInput *mCaptureDeviceInput ; 11 QTCaptureVideoPreviewOutput *mPreviewVideo; 12 QTCaptureDecompressedVideoOutput *mDecompressedV ideoOutput; 13 14 IBOutlet NSButton *btnStart; 15 IBOutlet NSButton *btnStop; 16 IBOutlet NSButton *btnFoto; 17 18 IBOutlet NSImageView *viewImagem; 19 CVImageBufferRef currentImageBuffer; 20 21 } 22 23 @property (nonatomic, retain) IBOutlet NSImageVi ew *viewImagem; 24 25 -(IBAction) startRecording:(id)sender; 26 -(IBAction) stopRecording:(id)sender; 27 -(IBAction) tirarFoto:(id)sender; 28 -(void) exibeImagem; 29 30 @end

Quadro 10 - Definio do cabealho da classe de captura

Nas linhas 1 e 2 so importados os frameworks necessrios. Na linha 5 definida a

classe MyRecorderController . Nas linhas 7 a 12 so definidos os objetos das classes citadas

acima, responsveis pela criao da sesso de captura de vdeo, instanciao dos dispositivos

de captura, e definio dos objetos de conexo dos dispositivos com a sesso. Nas linhas 14 a

16 so definidos os botes da aplicao. Nas linhas 25 a 28 so definidos as aes dos botes.

No Quadro 11 demonstrada a instanciao da sesso de captura e definio tipo de

mdia capturada.

... 01 mCaptureSession = [[QTCaptureSession alloc] init ]; 02 QTCaptureDevice *device = [QTCaptureDevice defaultInputDeviceWithMediaType:QTMediaTypeVideo];

...

Quadro 11 - Sesso de captura

46

A varivel mCaptureSession responsvel pela criao da sesso de captura. O

trecho de cdigo [[QTCaptureSession alloc] init] far a alocao de espao na

memria para a varivel mCaptureSession , atravs do mtodo alloc e iniciar a mesma com

o mtodo init .

Na linha 2, criado um dispositivo de captura e definido tipo de mdia que o mesmo

ir capturar, neste caso, vdeo, definido pela constante QTMediaTypeVideo .

O Quadro 12 demonstra a instanciao do dispositivo de entrada, que faz a

intermediao entre o dispositivo de captura (dispositivo fsico) e a conexo com a sesso de

captura.

... 09 mCaptureDeviceInput = [[QTCaptureDeviceInput all oc] initWithDevice:device]; 10 sucess = [mCaptureSession addInput:mCaptureDevic eInput error:&error];

...

Quadro 12 - Dispositivo de entrada

Na linha 9, a varivel mCaptureDeviceInput alocada na memria com o

procedimento [QTCaptureDeviceInput alloc] e iniciada com o dispositivo de captura,

atravs do procedimento initWithDevice . Logo abaixo, na linha 10, o dispositivo de entrada

adicionado sesso de captura.

No Quadro 13 demonstrado o cdigo que define o objeto para exibir a prvia do

vdeo, ou seja, exibir as imagens que a cmera est capturando.

... 20 mDecompressedVideoOutput = [[QTCaptureDecompress edVideoOutput alloc] init]; 21 [mDecompressedVideoOutput setDelegate: self]; 22 [mCaptureSession addOutput:mDecompressedVideoOut put error:&error]; 23 24 mPreviewVideo = [[QTCaptureVideoPreviewOutput al loc] init]; 25 [mCaptureSession addOutput:mPreviewVideo error:& error];

...

Quadro 13 - Prvia do vdeo de sada

Na linha 20 do trecho de cdigo acima, instanciado um objeto da classe

QTCaptureDecompressedVideoOutput , responsvel pela captura dos quadros da cmera.

Este objeto ento deve ser adicionado tambm na sesso de captura. Tambm definido um

objeto da classe QTCaptureVideoPreviewOutput , para que este seja responsvel por exibir a

prvia do vdeo.

Para a gravao do vdeo gravado em um arquivo de vdeo, o cdigo utilizado

demonstrado no Quadro 14.

47

... 35 mCaptureMovieFileOutput = [[QTCaptureMovieFileOu tput alloc] init]; 36 sucess = [mCaptureSession addOutput:mCaptureMovi eFileOutput error:&error];

...

Quadro 14 - Cdigo para gravao do vdeo em arquivo

A classe responsvel pela gravao em um arquivo de vdeo a

QTCaptureMovieFileOutput . Este objeto tambm deve ser adicionado sesso de captura.

Depois de efetuadas as ligaes dos componentes necessrios para a gravao do vdeo, deve

ser definida a codificao de sada. Optou-se pela codificao definida na constante

QTCompressionOptions240SizeH264Video , pois esta contm as propores de tela ideais

para o iPhone, alm do formato de vdeo suportado pelo mesmo.

O Quadro 15 demonstra a definio da codificao.

... 50 // Cria um enumerador para percorrer todos os di spositivos de captura conectados ao computador 51 NSEnumerator *connectionEnumerator = [[mCaptureM ovieFileOutput connections] objectEnumerator]; 52 QTCaptureConnection *connection; 53 54 // Para cada dispositivo, define a codificao d e vdeo 55 while ((connection = [connectionEnumerator nextO bject])){ 56 NSString *mediaType = [connection mediaType]; 57 QTCompressionOptions *compressionOptions = nil; 58 59 if ([mediaType isEqualToString:QTMediaTypeVideo] ){ 60 compressionOptions = [QTCompressionOptions compressionOptionsWithIdentifier:@"QTCompressionOpt ions240SizeH264Video"];661 62 } 63 else{ 64 compressionOptions = [QTCompressionOptions compressionOptionsWithIdentifier:@"QTCompressionOpt ionsHighQualityAACAudio"]; 65 } 66 // Define a compresso do vdeo no arquivo de sa da 67 [mCaptureMovieFileOutput setCompressionOptions:c ompressionOptions forConnection:connection]; 68 69 [mCaptureView setCaptureSession:mCaptureSession] ; 70 } 71 72 [mCaptureSession startRunning];

...

Quadro 15 - Definio da codificao do vdeo

O cdigo do Quadro 15 define a codificao de vdeo para todos os dispositivos

conectados ao computador. Na linha 72, iniciada a sesso de captura.

O Quadro 16 demonstra o cdigo utilizado para a gravao do vdeo.

48

80 -(IBAction) startRecording:(id)sender{ 81 gravando = YES; 82 // Caption do boto 83 [btnStart setTitle:@"Gravando..."]; 84 85 NSString *str;

... 89 // Local de gravao 90 NSURL *url = [NSURL fileURLWithPath:str]; 91 [mCaptureMovieFileOutput recordToOutputFileURL:u rl bufferDestination:QTCaptureFileOutputBufferDestinat ionNewFile]; 92 93 }

Quadro 16 - Gravao do vdeo

O mtodo recordToOutputFileURL inicia a gravao do vdeo no local especificado

pelo parmetro url .

O Quadro 17 demonstra o cdigo utilizado para parar a gravao de vdeo e gravar o

arquivo em disco.

100 -(IBAction) stopRecording:(id)sender{ 101 gravando = NO; 102 [btnStart setTitle:@"Start"]; 103 [mCaptureMovieFileOutput recordToOutputFileURL: nil]; 104 }

Quadro 17 - Parar gravao

Quando o mtodo recordToOutputFileURL recebe nil (valor nulo) como parmetro,

vdeo finalizado e gravado em disco, no local especificado pela varivel url (na gravao

do vdeo).

O Quadro 18 demonstra o cdigo utilizado para gravar uma imagem.

106 -(IBAction) tirarFoto:(id)sender{ 107 NSBitmapImageRep *bits = [[NSBitmapImageRep all oc] initWithCIImage:[CIImage imageWithCVImageBuffer:cur rentImageBuffer]]; 108 109 NSData *data = [bits representationUsingType: N SPNGFileType properties: nil];

... 110 //Salva a imagem no disco 111 [data writeToFile:url atomically:NO]; 112 113 //joga o buffer da imagem na view 114 NSImage *outputImage = [[NSImage alloc] initWit hData:data]; 115 [viewImagem setImage:outputImage]; 116 }

Quadro 18 - Mtodo para gravao de imagem em disco

Na linha 107 instanciado um objeto da classe NSBitmapImageRep , responsvel pela

renderizao de imagens. O objeto iniciado com um objeto da classe CCImage, responsvel

pela representao da imagem. O objeto da classe CCImage iniciado com o quadro atual,

capturado pela cmera.

Logo em seguida, na linha 109 , instanciado um objeto do tipo NSData , que nada mais

49

que um buffer. Este buffer carregado com o objeto bits (que neste ponto contm a

imagem), transformando a imagem em um buffer. Ento este buffer gravado em disco,

atravs do mtodo writeToFile (linha 111 ).

As ltimas linhas (114 e 115 ) iniciam um objeto da classe NSImage, que uma classe

para manipulao de imagens, com o buffer criado. Logo em seguida a imagem apresentada

na tela, atravs do objeto viewImage , com o mtodo setImage .

3.3.1.2 Cliente

A aplicao Cliente tambm foi implementada sob o paradigma da orientao a objetos

na linguagem programao Objective-C, utilizando-se o ambiente de desenvolvimento XCode

verso 3.1.3 (para codificao), ambiente Interface Builder verso 3.1.2 (para desenho de

interfaces), ambos em sistema operacional Mac OS X verso 10.5.7. Esta aplicao possui

recursos de gravao de locais de visualizao e visualizao de captura.

3.3.1.2.1 Gravao de locais

O iPhone possui um banco de dados chamado SQLite, no qual possvel definir

tabelas e atributos e ligao entre as mesmas. Para a criao do banco de dados a ser utilizado

no iPhone necessrio abrir um terminal de comando, disponvel no sistema operacional Mac

OS, e digitar o comando apresentado no Quadro 19.

:~ Sqlite3 LocaisDB.sql

Quadro 19 - Comando para criao do banco de dados

O comando apresentado cria o arquivo LocaisDB.sql , que representa o banco de

dados. Este arquivo deve ser ento adicionado ao projeto criado pelo XCode, na pasta

Resources. Deve-se ento, criar a tabela que armazenar os registros. A tabela criada com o

comando apresentado no Quadro 20.

:~ CREATE TABLE locais (id INTEGER PRIMARY KEY, nom e VARCHAR(50),

endereco VARCHAR(80));

Quadro 20 - Comando para criao de tabelas

Depois de criada a tabela, podem ser gravados os locais. Para gravar registros no banco

de dados criado, utilizado o procedimento adicionarLocal , apresentado no Quadro 21.

50

05 - (void) adicionarLocal { 06 07 if(addStmt == nil){ 08 // SQL de insero 09 const char *sql = "INSERT INTO locais (nome, en dereco) VALUES (?, ?)"; 10 // Cria a query 11 if(sqlite3_prepare_v2(database, sql, -1, &addSt mt, NULL) != SQLITE_OK) 12 NSAssert1(0, @"Erro ao criar query de insercao : '%s'", sqlite3_errmsg(database)); 13 } 14 // Definio dos parmetros 15 sqlite3_bind_text(addStmt, 1, [localNome UTF8Str ing], -1, SQLITE_TRANSIENT); 16 sqlite3_bind_text(addStmt, 2, [localEndereco UTF 8String], -1, SQLITE_TRANSIENT); 17 // Verifica se a query foi executada com sucesso 18 if(SQLITE_DONE != sqlite3_step(addStmt)) 19 NSAssert1(0, @"Erro ao inserir registro: '%s'", sqlite3_errmsg(database)); 20 else 21 localID = sqlite3_last_insert_rowid(database); 22 // Reinicia a query, para uma nova insero 23 sqlite3_reset(addStmt); 24 }

Quadro 21 - Procedimento adicionarLocal

A excluso de registros realizada atravs do procedimento excluirLocal ,

apresentado no Quadro 22.

25 - (void) excluirLocal { 26 27 if(deleteStmt == nil) { 28 const char *sql = "DELETE FROM locais WHERE id = ?"; 29 if(sqlite3_prepare_v2(database, sql, -1, &delet eStmt, NULL) != SQLITE_OK) 30 NSAssert1(0, @"Erro ao criar a query de exclus ao '%s'", sqlite3_errmsg(database)); 31 } 32 // Passagem do parmetro 33 sqlite3_bind_int(deleteStmt, 1, localID); 34 35 if (SQLITE_DONE != sqlite3_step(deleteStmt)) 36 NSAssert1(0, @"Erro ao excluir registro: '%s'", sqlite3_errmsg(database)); 37 // Reinicia a query, para uma nova excluso 38 sqlite3_reset(deleteStmt); 39 }

Quadro 22 - Procedimento excluirLocal

A seleo de registros feita atravs do procedimento registrosParaExibir ,

apresentada no Quadro 23.

51

41 + (void) registrosParaExibir:(NSString *)pathBan co { 42 43 SQLAppDelegate *appDelegate = (SQLAppDelegate *) [[UIApplication sharedApplication] delegate]; 44 // Cria uma conexo com o banco de dados 45 if (sqlite3_open([pathBanco UTF8String], &databa se) == SQLITE_OK) { 46 // Query de seleo de registros 47 const char *sql = "SELECT * FROM locais"; 48 // Define o resultset, ou seja objeto que receb er o resultado da consulta 49 sqlite3_stmt *resultSet; 50 if(sqlite3_prepare_v2(database, sql, -1, &resul tSet, NULL) == SQLITE_OK) { 51 52 // Neste passo percorrido o resultset, crian do um objeto da classe Local, atribuindo os valores selec ionados e inserindo esse objeto no array 53 while(sqlite3_step(resultSet) == SQLITE_ROW) { 54 55 NSInteger primaryKey = sqlite3_column_int(resultSet, 0); 56 Local *localObj = [[Local alloc] initWithPrimaryKey:primaryKey]; 57 localObj.localNome = [NSString stringWithUTF8String:(char *)sqlite3_column_text(re sultSet, 1)]; 58 localObj.localEndereco = [NSString stringWithUTF8String:(char *)sqlite3_column_text(re sultSet, 2)]; 59 60 localObj.isDirty = NO; 61 62 // Adiciona o objeto criado no array 63 [appDelegate.arrayLocais addObject:localObj]; 64 65 // Libera o objeto da memria 66 [localObj release]; 67 } 68 } 69 } 70 else 71 // Fecha a conexo com o banco de dados 72 sqlite3_close(database); 73 74 }

Quadro 23 - Seleo de registros

3.3.1.2.2 Visualizao de vdeos capturados

Para a exibio dos vdeos, utilizado um objeto da classe

MPMoviePlayerController . O cdigo apresentado no Quadro 24 demonstra a alocao de

memria e inicializao do tocador de vdeo.

52

70 -(void)CarregarVideo:(NSURL *)url{ 71 72 // cria o player do vdeo, passando o caminho 73 playerVideo = [[MPMoviePlayerController alloc] initWithContentURL:url]; 74 75 if (playerVideo){ 76 // Cria uma notificao para iniciar a tocar o vdeo depois de carreg-lo totalmente (aparece a tela Carregando.. . 77 [[NSNotificationCenter defaultCenter] addObserv er:self selector:@selector(CallbackTerminouCarregarVide o:) name:MPMoviePlayerContentPreloadDidFinishNo tification object:nil]; 78 } 79 else{ 80 UIAlertView *alert = [[UIAlertView alloc] initW ithTitle:@"Erro" message:@"No foi possvel reproduzir o vdeo!" del egate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 81 [alert show]; 82 [alert release]; 83 } 84 }

Quadro 24 - Cdigo para reproduo do vdeo

3.3.2 Operacionalidade da implementao

A operacionalidade da aplicao apresentada em funo dos casos de uso da

aplicao, fazendo o uso de imagens para facilitar o entendimento de cada uma das

funcionalidades disponibilizadas.

Na seo 3.3.2.1 so apresentadas as funcionalidades da aplicao Gerador e na seo

3.3.2.2 so apresentadas as funcionalidades da aplicao Cliente.

3.3.2.1 Funcionalidades da aplicao Gerador

Nesta seo sero apresentadas as seguintes funcionalidades: Iniciar gravao ,

Parar gravao e Tirar foto .

3.3.2.1.1 Iniciar gravao

Esta funcionalidade permite ao usurio iniciar a gravao do vdeo em disco. O caso de

53

uso criado para esta funcionalidade o UC01 Iniciar gravao . Ao iniciar a gravao, o

vdeo ser criado no diretrio apontado pelo campo Local , conforme demonstrado na Figura

24.

Figura 24 - Iniciar gravao

Para iniciar a gravao, o usurio deve seguir os seguintes passos:

a) iniciar a aplicao Gerador;

b) clicar no boto Iniciar gravao .

3.3.2.1.2 Parar gravao

Esta funcionalidade permite ao usurio parar a gravao do vdeo em disco. O caso de

uso criado para esta funcionalidade o UC02 Parar gravao . A Figura 25 demonstra a

como parar a gravao de um vdeo.

54

Figura 25 - Parar gravao

Para parar a gravao, o usurio deve seguir os seguintes passos:

a) iniciar a aplicao Gerador;

b) clicar no boto Parar gravao .

3.3.2.1.3 Tirar foto

Esta funcionalidade permite ao usurio tirar uma foto e gravar em disco. O caso de uso

criado para esta funcionalidade o UC03 Tirar foto . A foto ser exibida no campo

ltimo snapshot e ser gravada no local apontado pelo campo Local . A Figura 26

demonstra como tirar uma foto do local.

55

Figura 26 - Tirar foto

Para tirar uma foto, o usurio deve seguir os seguintes passos:

a) iniciar a aplicao Gerador;

b) clicar no boto snapshot .

3.3.2.2 Funcionalidades da aplicao Cliente

Nesta seo sero apresentadas as seguintes funcionalidades: Adicionar local ,

Excluir local e Visualizar vdeo .

3.3.2.2.1 Adicionar local

Esta funcionalidade permite ao usurio adicionar um local de monitoramento de

imagens. O caso de uso criado para esta funcionalidade o UC01 Cadastrar local . A

Figura 27 demonstra a tela para adicionar locais de monitoramento.

56

Figura 27 - Tela para adicionar locais de monitoramento

Para adicionar um local de monitoramento (nova webcam), o usurio deve seguir os

seguintes passos:

a) iniciar a aplicao Cliente;

b) clicar no boto + (mais );

c) digitar o nome para o local no campo Nome;

d) digitar o endereo para o local no campo Host ;

e) clicar no boto Save .

3.3.2.2.2 Excluir local

Esta funcionalidade permite ao usurio excluir um local de monitoramento de imagens

previamente cadastrado. O caso de uso criado para esta funcionalidade o UC02 Excluir

local . A Figura 28 demonstra a tela de excluso de locais.

57

Figura 28 - Tela de excluso de locais

Para excluir um local, o usurio deve seguir os seguintes passos:

a) iniciar a aplicao Cliente;

b) clicar no boto Edit ;

c) clicar no boto (menos);

d) clicar no boto Delete;

e) clicar no boto Done .

O procedimento b tambm pode ser feito atravs do movimento de arrastar o dedo para

o lado direito.

3.3.2.2.3 Visualizar vdeo

Esta funcionalidade permite ao usurio visualizar um vdeo a partir de um local

previamente cadastrado. O caso de uso criado para esta funcionalidade o UC03

Visualizar vdeo . A Figura 29 demonstra a tela com os locais disponveis.

58

Figura 29 Tela com locais disponveis

Depois de selecionado o local, aberta uma nova tela, onde so exibidos todos os

vdeos gravados no local escolhido. Na parte superior, exibida a imagem atual referente a

este local. A Figura 30 demonstra a tela com os vdeos gravados para o local escolhido.

59

Figura 30 Vdeos gravados

Para visualizar um vdeo, o usurio deve seguir os seguintes passos:

a) iniciar a aplicao Cliente;

b) clicar no local desejado;

c) clicar no vdeo desejado.

3.4 RESULTADOS E DISCUSSO

Nesta seo sero apresentados os resultados obtidos com o desenvolvimento do

trabalho. O cenrio proposto para os testes envolveu algumas estaes servidoras e uma

Cliente. O Quadro 25 apresenta os requisitos funcionais novamente, evidenciado os que foram

concludos com sucesso.

60

REQUISITOS FUNCIONAIS CONCLUDO

RF01: Permitir ao usurio visualizar, a partir do iPhone, imagens geradas

em computador com uma webcam. Sim

RF02: Permitir ao usurio gravar e excluir os locais de acesso do iPhone. Sim

RF03: Permitir que a aplicao geradora capture imagens instantneas. Sim

RF04: Dever ser desenvolvido o programa gerador, responsvel pela

captura das imagens da cmera do computador. Sim

RF05: Dever ser desenvolvido o programa cliente, responsvel por

receber e exibir as imagens geradas pelo Gerador. Sim

Quadro 25- Requisitos concludos

Foi constatado que a performance das aplicaes Gerador e Cliente est relacionado

mais diretamente dois fatores, sendo eles o tempo de processamento e o espao ocupado em

disco, j que o tempo de transmisso est relacionado apenas com a aplicao Cliente.

3.4.1 Aplicao Gerador

No Gerador, o propsito capturar os vdeos oriundos de uma webcam, em um

computador ou notebook, disponibilizando as mesmas para o Cliente efetuar a leitura, tendo-

se como principal objetivo efetuar auditoria em imagens de uma aplicao de CFTV. Todos

os testes foram realizados utilizando-se uma resoluo de gravao com 300 pixels de altura e

240 pixels de largura, com profundidade de 32 bits de cores e compactao H.264.

Durante os testes realizados no foi percebido qualquer travamento na captura do

vdeo, mas importante evidenciar que no existia nenhuma aplicao em paralelo, salvo as

rotinas bsicas do sistema operacional instalado, sendo ele Mac OS X, verso 10.5.8. O

hardware utilizado possui a seguinte descrio bsica:

a) computador desktop modelo iMac;

b) processador Intel Core 2 Duo 2.4 Gigahertz, com 6 Megabytes de cache L2;

c) um gigabyte de memria RAM DDR2 800Mhz

d) placa de vdeo ATI Radeon HD 2400 PCIe x16, com 128 Megabytes de memria

RAM;

e) resoluo de vdeo 1680 x 1050, com profundidade de 32 bits de cores;

f) disco rgido de 250 Gigabytes;

61

g) cmera iSight (embutida), de resoluo 640 pixels de altura e 480 pixels de largura,

com possibilidade de captura de 30 frames por segundo (FPS).

Em relao aos fatores testados, o tempo de processamento nas mquinas com o

hardware especificado acima, as aes de iniciar gravao , parar gravao e snapshot

(bater foto) foram quase instantneas, ou seja, no se percebeu nenhum atraso nos processos

internos, nem to pouco na interao do usurio com as opes da aplicao Gerador.

O outro fator, espao em disco utilizado, foi testado gravando-se os vdeos em

diferentes faixas de tempo, a fim de se concluir qual seria a mais adequada para utilizao,

sem que se tenha perda de desempenho. O Quadro 26 apresenta as diferentes faixas de tempo

utilizadas e seu tamanho ocupado em disco. Vale lembrar que os vdeos foram gravados

utilizando-se uma resoluo de 300 pixels de altura e 240 pixels de largura, com a codificao

H.264, para que o iPhone pudesse efetuar a leitura.

TEMPO TAMANHO APROXIMADO

20 segundos 580 Kb

65 segundos 2.1 Mb

90 segundos 2.9 Mb

02 minutos 3.4 Mb

04 minutos 9.4 Mb

22 minutos 45.2 Mb

Quadro 26 - Faixas de tempo e tamanho do vdeo

Depois de efetuados os testes acima, optou-se arbitrariamente pela gravao dos vdeos

com tempo de 20 segundos. Na aplicao Gerador no se teve problemas em questo

memria para executar as rotinas de gravao e visualizao, sendo a nica preocupao a

quantidade disponvel de espao em disco.

Entre as aes permitidas pela aplicao Gerador, sendo elas iniciar gravao e

parar gravao , j explicadas acima, tem-se ainda que testar a ao de fotografar. As fotos

so gravadas pelo Gerador com a extenso .jpg, conhecida como Joint Photographic

Experts Group. Optou-se por este formato pois o tamanho do arquivo consideravelmente

menor em relao aos outros formatos de arquivos disponveis na linguagem Objective-C, e,

sendo um arquivo de menor tamanho, reflete diretamente numa transmisso mais rpida. As

imagens foram comparadas visualmente, no se constatando perda de qualidade, o que

vlido para uma aplicao CFTV, uma vez que a qualidade necessria se restringe a poder

interpretar o contedo da imagem. O Quadro 27 demonstra a comparao entre os formatos

62

disponveis.

FORMATO TAMANHO APROXIMADO

.bmp Bitmap 5.2 Mb

.gif Graphics Interchange Format 540 Kb

.jpg Joint Photographic Experts Group 252 Kb

.png Portable Network Graphics 2.2 Mb

Quadro 27 - Comparao entre os formatos disponveis

3.4.2 Aplicao Cliente

J a aplicao Cliente, o propsito era desenvolver uma aplicao na qual possvel ler

os vdeos gravados pelo Gerador. Todos os testes na aplicao Cliente foram executados

utilizando-se o emulador do iPhone verso 2.2.1, disponibilizado no ambiente XCode verso

3.1.3. Optou-se por utilizar o simulador, pois, para carregar uma aplicao no iPhone, se faz

necessrio possuir uma conta de desenvolvedor na loja virtual da Apple.

importante destacar que no iPhone, apenas a aplicao Cliente estava sendo

executada. Uma particularidade do iPhone, que as aplicaes que rodam nele no so

executadas simultaneamente, o que torna a realizao dos testes mais simples. Os mesmos

fatores observados na aplicao Gerador foram observados na aplicao Cliente, ou seja,

tempo de processamento e espao em disco, alm do tempo de transmisso.

Em relao ao tempo de transmisso, este altamente influenciado pela rede utilizada,

ou seja, est limitada rede na qual o iPhone est conectado. O poder de processamento no

iPhone de 620 MHz, e, apesar deste poder de processamento ser um pouco menor em

relao aplicao Gerador, tambm no foram percebidos travamentos ou problemas na

execuo da aplicao. importante destacar que o simulador do iPhone emula tambm a

frequncia do processador do mesmo. Tanto a ao de cadastrar um local de monitoramento

(que envolvia rotinas de banco de dados), quanto ao de ler os arquivos de vdeo deste

local foram executadas sem problemas. Em relao leitura dos arquivos de vdeo,

justificvel no ter ocorrido nenhum problema, j que sua arquitetura e seus componentes de

programao possuem todo um aperfeioamento decorrente dos aparelhos iPods.

No iPhone, o gerenciamento da memria feito atravs das telas, na qual, para este

trabalho, foram desenvolvidas quatro. Uma tela inicial, onde realizada uma consulta ao

63

banco de dados e exibida uma lista com os locais encontrados; uma tela onde so exibidos

os vdeos cadastrados para um local previamente escolhido; outra tela onde so cadastrados

novos locais de monitoramento, possuindo apenas dois campos, nome e endereo. E uma

quarta tela, onde possvel efetuar a excluso de locais cadastrados.

Os espao ocupado em disco no iPhone foi de 4 Kb para o banco de dados (SQLite),

sendo que este possui cinco registros (locais) cadastrados e, a aplicao em si ocupou um

espao em disco de 80 Kb.

64

4 CONCLUSES

Apesar de existirem atualmente trabalhos na rea de vigilncia com CFTV tendo como

visualizadores os dispositivos mveis, o trabalho proposto foi desenvolvido tendo como base

o iPhone.

Uma das principais motivaes para que fosse realizado o trabalho explorar a

tecnologia que o iPhone dispe, criando um receptor e visualizador de arquivos de vdeo, com

possibilidade de ser usado em qualquer lugar, atravs da internet.

O trabalho foi desenvolvido em duas partes, uma aplicao chamada Gerador e outra

chamada Cliente. O Gerador, que deve ser instalado em um computador desktop, pessoal ou

notebook, com uma cmera instalada, foi desenvolvida uma aplicao responsvel por

capturar imagens e vdeos oriundos da cmera, gravando-os na mquina local, a fim de que o

Cliente fosse capaz de efetuar a leitura e visualizao dos mesmos, tendo-se como principal

objetivo realizar auditoria em imagens de uma aplicao de CFTV.

Para o Cliente, que por sua vez deve ser instalado no iPhone, foi desenvolvido uma

aplicao que efetua a leitura e visualizao das imagens e vdeos gerados pelo Gerador, com