Академический Документы
Профессиональный Документы
Культура Документы
CENTRO TECNOLGICO
DEPARTAMENTO DE INFORMTICA
VITRIA
2017
JOS MARQUES SOARES JNIOR
VITRIA
2017
JOS MARQUES SOARES JNIOR
BANCA EXAMINADORA
RESUMO
Devido ao constante aumento da demanda por bens e servios em reas urbanas,
torna-se cada vez mais comum a formao de filas. Preocupados com isso, os
donos de estabelecimentos comerciais buscam alternativas para minimizar o
desconforto causado pela espera e uma consequente insatisfao dos clientes em
relao aos servios prestados. Sendo assim, este trabalho tem o objetivo de mitigar
o desconforto causado pela espera ociosa em estabelecimentos comerciais. Para
isso, foi desenvolvido um sistema de controle de filas remotas, onde o cliente pode
planejar tanto a sua entrada na fila quanto a sua permanncia na mesma. Esse
sistema foi dividido em duas aplicaes: uma servidor desenvolvido com o
framework Web Django embarcado num Raspberry Pi; um aplicativo para a
plataforma Android. Com o servidor, o dono do estabelecimento comercial pode
gerenciar filas e funcionrios. Tambm possvel conectar o Raspberry Pi a uma TV
e exibir informaes sobre a fila e sobre o estabelecimento. J o cliente do
estabelecimento, pode usar o aplicativo Android para visualizar o status da fila, antes
mesmo de retirar uma senha. Com o aplicativo, o cliente se mantm informado
acerca da sua situao, recebendo notificaes quando o seu atendimento est
prximo. Outro recurso do aplicativo a possibilidade de gerenciar vrias senhas
para filas diferentes, permitindo a espera em vrias filas ao mesmo tempo.
Palavras-chave: Filas remotas. Gerenciamento de filas. Raspberry Pi. Django.
Android.
ABSTRACT
Due to the constant increase in demand for services in urban areas, queuing is
becoming more common. Concerned about this, shop owners seek alternatives to
minimize the discomfort caused by waiting and consequent customer dissatisfaction
with the services provided. Therefore, this work aims to mitigate the discomfort
caused by idle waiting in commercial areas. For this, a remote queuing control
system has been developed, where the client can plan both their queue entry and
their stay in the queue. This system was divided in two applications: a server
developed with the Web framework Django embedded in a Raspberry Pi; An
application for Android platform. With the server, the business owner can manage
queues and employees. You can also connect Raspberry Pi to a TV and display
information about a queue and about the establishment. The establishment's
customer can use the Android application to view the status of the queue before get
a ticket. With the application, the client keeps informed about their situation, receiving
notifications when they are attended is soon. Another feature of the application is a
possibility to manage multiple tickets for different queues, allowing the waiting in
multiple queues at the same time.
Keywords: Remote queues. Queue management. Raspberry Pi. Django. Android.
LISTA DE FIGURAS
Figura 1 - Sistema de filas bsico. ............................................................................ 14
Figura 2 - Filas lineares em diferentes configuraes. .............................................. 15
Figura 3 - Tickets retirados pelo sistema FASTPASS ............................................... 17
Figura 4 - Jornada de um cliente em uma sistema de fila remota. ............................ 19
Figura 5 - componentes de hardware presentes no Raspberry Pi 3 model B ........... 21
Figura 6 - Atualizando informaes de senhas retiradas. ......................................... 29
Figura 7 - Diagrama de casos de uso do sistema SmartLine .................................... 30
Figura 8 - Diagrama de classes do sistema SmartLine ............................................. 31
Figura 9 Login para o painel administrativo do SmartLine ..................................... 37
Figura 10 - Painel administrativo do SmartLine ......................................................... 37
Figura 11 - Formulrio para criao de conta de usurio. ......................................... 38
Figura 12 - Formulrio para a criao de filas (parte 1). ........................................... 39
Figura 13 - Popup com formulrio para a criao de servios. ................................. 39
Figura 14 - formulrio para a criao de filas (parte 2) .............................................. 40
Figura 15 - Formulrio para a criao de terminais. .................................................. 40
Figura 16 - Representao da nova fila criada. ......................................................... 41
Figura 17 - Display informativo exibindo informaes sobre a fila 1. ......................... 42
Figura 18 - Mensagem de erro exibida no display. .................................................... 44
Figura 19 - O dispensador virtual de senhas. ............................................................ 45
Figura 20 - Senha retirada no dispensador virtual..................................................... 45
Figura 21 - Estado atual da senha. ........................................................................... 46
Figura 22 - Tela de autenticao para conexo em terminais. .................................. 47
Figura 23 - Terminal da Balana 01 conectado. ........................................................ 47
Figura 24 - Menu da pgina do terminal. ................................................................... 49
Figura 25 - Controle bluetooth VX Case Compact. ................................................... 50
Figura 26 Transio entre a atividade principal e o leitor de QR Code.. ................ 51
Figura 27 - Senha informativa. .................................................................................. 52
Figura 28 - Nova senha retirada. ............................................................................... 53
Figura 29 - Lista de senhas retiradas. ....................................................................... 54
Figura 30 Registrando-se no Firebase. .................................................................. 55
Figura 31 - Recebendo notificaes atravs do Firebase. ........................................ 56
Figura 32 - cone indicador de notificao. ................................................................ 57
Figura 33 - Senha com atendimento finalizado. ........................................................ 57
LISTA DE TABELAS
1. INTRODUO ................................................................................................... 11
3 METODOLOGIA .................................................................................................. 25
6 REFERNCIAS....................................................................................................60
1. INTRODUO
1.1 - OBJETIVOS
Este trabalho teve como objetivo mitigar o desconforto causado pelo tempo ocioso,
despendido pelos clientes, em filas de espera situadas em estabelecimentos
comerciais. Beneficiando, assim, tanto os clientes quanto os donos desses
estabelecimentos.
1.1.2 - Objetivos Especficos
2 FUNDAMENTAO TERICA
Uma classe muito comum de sistemas de filas aquela pertencente aos sistemas de
atendimento comercial, onde clientes externos recebem atendimento de
organizaes comerciais. Essa classe envolve atendimento pessoa a pessoa, em
uma rea fixa, como em caixas de supermercado, barbearia, caixas em um banco ou
em parque de diverso. Em sistemas de atendimento comercial, as entidades que
entram na fila so os clientes do estabelecimento, enquanto o mecanismo de
atendimento se refere aos funcionrios do estabelecimento.
Filas podem ser configuradas de vrias formas. Filas de espera podem ser divididas,
basicamente, entre lineares, virtuais e remotas.
Filas lineares so aquelas em que os clientes se organizam, presencialmente, em
uma rea fixa do estabelecimento comercial e o tipo mais comum de fila de
espera. Esse tipo de fila pode ser configurado das seguintes formas:
Para muitas pessoas, esperar 5 minutos na fila de uma farmcia parece uma espera
interminvel, enquanto os 30 minutos esperando uma bebida na mesa de um bar
com os amigos, parecem passar voando. As pessoas esto dispostas a gastar 50%
de seu tempo em uma visita ao parque de diverses, mas reclamam quando
precisam esperar cinco minutos na fila da cafeteria (MCGUIRE, KIMES, et al.). O
tempo efetivo (aquele medido pelo relgio) e o tempo psicolgico nem sempre
andam no mesmo passo. O primeiro bem definido, mensurvel, e permite
flexibilidade apenas em situaes muito especiais (aquelas descobertas por Einstein
no incio do sculo XX); o segundo puramente de natureza subjetiva, e est sujeito
a situaes e ao ambiente em que o indivduo se encontra.
A fila um dos ambientes onde o tempo percebido e o psicolgico pode chegar a
diferenas considerveis. Segundo pesquisas, essa diferena entre tempos pode
chegar a 36 porcento, em mdia (STONE, 2012). Os psiclogos sugerem que as
filas de espera so repreensveis porque: desperdiam tempo; tiram, do cliente, o
controle da situao; provocam tdio; levam sensao de aglomerao; atrasa a
sensao de gratificao (CARMON, SHANTHIKUMAR e CARMON).
Em geral, as pessoas que aguardam atendimento sem fazer qualquer tipo de
atividade para passar o tempo, alm de ficarem aborrecidas, tendem a superestimar
o tempo de espera. Larson (1987) destaca o tempo ocioso, a "injustia social" e a
falta de feedback como alguns dos principais fatores que aborrecem aqueles que
precisam aguardar atendimento.
Muitos estudos foram realizados com foco no tempo percebido em filas de espera.
Esses estudos podem ser resumidos pelas seguintes afirmaes (DICKSON, FORD
e LAVAL, 2005):
1. Tempo desocupado parece mais longo que tempo ocupado;
2. Clientes ansiosos, tristes e irritados parecem esperas mais que clientes
relaxados;
3. Esperas incertas parecem mais longas que esperas certas;
4. Esperas inexplicadas parecem mais longas que esperas explicadas;
5. Esperas desconfortveis parecem mais longas que esperas confortveis;
6. Esperas injustas parecem mais longas que esperas justas.
2.3 - FILAS VIRTUAIS E REMOTAS
Fonte: (Tips About Disneyland From a Native Cali Annual Pass Holder, 2012)
2.4 RASPBERRY PI
Raspberry
Raspberry Pi model Raspberr Rasberry Pi Raspberry Raspberr
Pi A+ y Pi 2 Zero Pi Zero W y Pi 3
B
O Raspberry Pi 3 model B foi o primeiro a incorporar o Bluetooth 4.1 como uma mais
uma opo de conectividade sem fio. Esse tambm o modelo que traz o melhor
desempenho em termos de capacidade de processamento, contando com um
processador de quatro ncleos Cortex-A53 de 1,2 GHz. A Figura 5 ilustra os
componentes de hardware presentes nesse SBC.
Figura 5 - componentes de hardware presentes no Raspberry Pi 3 model B
2.5 DJANGO
O Barcode Scanner API faz parte da Mobile Vision API, primeiramente introduzida
na verso 7.8 do Google Play Services, e compatvel com o Android 4.2.2 e
posteriores (Barcode API Overview, 2017).
Essas so apenas cinco dos mais de dez servios oferecidos pelo Google Firebase.
Os servios so gratuitos para os que querem conhecer as funcionalidades do
Firebase, mas tambm oferece um plano flexvel, com preos baseados em
consumo, para aqueles que quiserem uma integrao total ao sistema (AVRAM,
2016).
3 METODOLOGIA
3.2 - PROCEDIMENTOS
Para a concretizao deste trabalho, foi feito um estudo sobre os diferentes tipos
sistemas de filas bsicas e as formas de gerenci-las, assim como os efeitos
negativos que o ato de esperar, em filas, causa nos clientes. Paralelamente, foram
feitos estudos acerca do framework de desenvolvimento Web Django, da plataforma
de desenvolvimento para dispositivos mveis Android e o SBC (single-board
computer) Raspberry Pi.
Aps a fase de aquisio de conhecimento, deu-se incio ao desenvolvimento.
Primeiramente, foi feita a modelagem do sistema a partir da UML. Para a
implementao, foi utilizado um Raspberry Pi 3 Model B.
Para auxiliar no desenvolvimento da aplicao Django, foi utilizada o IDE PyCharm
Community Edition verso 2.3 juntamente com o template SB Admin 2 Bootstrap
(para a implementao da interface) e o framework Django verso 1.11.6.
Para a implementao do aplicativo, foi utilizado o IDE Android Studio verso 3.0 e o
Android SDK 26 para a compilao do cdigo.
Aps o desenvolvimento do aplicativo, foram feitos testes atravs do Android
Emulator 2.0 simulando um smartphone Nexus One (API 22), relativa ao Android 5.1
(Lollipop).
Um controle remoto bluetooth foi utilizado como boto chamador de senhas. Embora
tenha sido implementada uma interface Web para a chamada de clientes, ter um
meio "offline" de chamada acaba sendo uma boa soluo em ambientes com
limitao de espao ou infraestrutura de rede. Foi utilizado um controle de basto de
fotos VX Case Compact, composto de 3 botes e uma bateria interna recarregvel.
Por limitaes financeiras, no foi possvel adquirir uma impressora trmica para a
impresso dos tickets. No entanto, foi implementado uma interface Web simulando
as funcionalidades do dispensador fsico.
4 RESULTADOS E DISCUSSO
Este projeto fez uso da arquitetura cliente/servidor, com o SLS assumindo o papel de
servidor e os as instncias do SLM assumindo o papel de clientes.
O SLS, na implementao deste projeto, opera de forma passiva na maior parte do
tempo, o que significa dizer que os clientes precisam assumir a iniciativa da
comunicao. Portanto, para consultar o status de uma dada fila, por exemplo, uma
instncia do SLM precisaria realizar pulling com uma certa frequncia. Como o
status da fila no se altera o tempo inteiro, fcil concluir que muitas das
requisies por status retornaro dados repetidos. Essa desvantagem era sabida
antes da implementao do sistema, no entanto optou-se por manter essa estratgia
devido a limitaes de tempo de desenvolvimento.
Para a troca de mensagens, foi utilizado o formato JSON, devido a sua facilidade de
interpretao e gerao, alm de ser independente de linguagem de programao.
A Figura 6 ilustra o diagrama de sequncia para as atualiza de informaes de
senhas.
Figura 6 - Atualizando informaes de senhas retiradas.
<nome-da-fila>_<prefixo-do-servico>_<preferencial-ou-comum>.png
Ao entrar no estabelecimento, o cliente ter duas opes para retirar senhas: ler o
QR Code a partir do SLM (mtodo lerQRCode) ou a partir da impressora trmica.
Optando pelo SLM, o cliente receber como resultado da leitura uma senha
disponvel contendo uma estimativa do tempo de espera para aquela senha e o
nmero de pessoas sua frente. Essa senha ainda no pertence ao cliente, e no
entra na fila de fato. Ela serve para o cliente obter informaes sobre a fila e planejar
a sua entrada na mesma. Ao receber a senha informativa, o SLM exibe dois botes,
logo abaixo das informaes sobre a fila:
Uma vez retirada, a senha vai para a lista de senhas no SLM. A lista ordena as
senhas de acordo com o instante em que so retiradas (senhas retiradas primeiro,
ficaro no topo da lista). Cada senha exibe: o prefixo do servio concatenado com
identificador de tipo de senha, o nmero da senha, o tempo previsto para o
atendimento, nmero de pessoas frente do cliente e a situao da senha. Alm
das informaes sobre a senha, abaixo de cada senha o SLM exibe dois botes:
Optando por retirar uma senha atravs da impressora, o cliente deve pressionar o
boto da impressora que corresponde fila, servio e tipo de senha que ele deseja.
A senha impressa conter: o prefixo do servio concatenado com identificador de
tipo de senha, o nmero da senha, o tempo previsto para o atendimento e o nmero
de pessoas sua frente. Com essas informaes, o cliente pode planejar sua
entrada na fila.
Para estar apto a chamar senhas, um atendente deve efetuar login em um terminal
disponvel. Ao efetuar login, o mtodo conectarTerminal da classe Terminal
chamado, recebendo como parmetro o atendente que ficar alocado naquele
terminal. Estando alocado ao terminal, o atendente pode iniciar os atendimentos a
partir do mtodo chamarSenha da classe Terminal. Ao chamar uma senha, uma
notificao ser enviada para a o cliente que possuir a senha chamada - isso,
claro, se o cliente possuir o SLM instalado no smartphone. Caso haja algum atraso
na chegada do cliente ao terminal, o atendente poder realizar uma rechamada a
partir do mtodo rechamarSenha da classe Terminal. Assim como chamarSenha,
esse mtodo tambm envia uma notificao para o cliente que possui a senha
chamada.
H casos onde o atendente quer desfazer uma chamada e chamar uma senha
anterior. Isso tambm poder ser feito chamando o mtodo retrocederChamada da
classe Terminal. Assim como os dois mtodos anteriores, o possuidor da senha
receber uma notificao de chamada.
A indicao de que um atendimento foi finalizado a realizao de uma nova
chamada. Sendo assim, o atendimento de uma senha ser finalizado sempre que
uma nova chamada for realizada.
Uma senha, uma vez finalizada, recebe o status atendimento finalizada. Senhas
finalizadas permanecem na lista de senhas do SLM, mas no recebem atualizaes
sobre o status da sua respectiva fila.
As possveis situaes que uma senha pode assumir so:
4.4 - IMPLEMENTAO
O SLS foi desenvolvido num desktop com processador Intel e sistema operacional
Linux, mas foi instalado em um Raspberry Pi 3 model B com processador ARM e
sistema operacional Raspbian (distribuio Linux customizada para o Raspberry).
Todo o cdigo foi escrito em Python 3 utilizando o framework Django.
Apesar das diferenas entre ambiente de desenvolvimento e ambiente de produo,
no houve qualquer problema no processo de implantao, graas ao interpretador
Python 3 disponvel para ambos os ambientes.
No Raspbian foi necessrio instalar, alm do interpretador Python 3, o framework
Django e o mdulo bluetooth para o Raspberry receber os eventos de bluetooth do
controle remoto.
Para a instalao do sistema, basta copiar os arquivos do SLS para o diretrio que
desejar. Isso pode ser feito remotamente via SSH ou localmente com um pendrive.
Em uma primeira instalao, ser necessrio criar uma instncia do banco de dados,
assim como a conta administrativa do mesmo.
Para instanciar o banco de dados, execute os comandos:
Basta definir um nome de usurio e uma senha para o novo atendente, clicando em
Salvar para efetuar a operao.
Fazer a manuteno de filas, servios e terminais, tambm simples: na seo
SMARTLINE, basta clicar em Adicionar ao lado do campo referente ao objeto que se
quer criar.
Para criar uma fila, por exemplo, basta clicar em Adicionar ao lado do campo Filas.
O gerente ser direcionado ao formulrio de criao de filas, como ilustrado na
Figura 12.
Figura 12 - Formulrio para a criao de filas (parte 1).
Alm dos campos referentes prpria fila, o gerente precisar informar os servios
prestados naquela fila (campo Servios prestados). Como pode ser observado na
Figura X, no h qualquer servio disponvel para cadastro na fila, mas o gerente
poder adicionar um novo servio clicando no sinal + e preenchendo o formulrio
apresentado no popup que se apresenta como ilustrado na Figura 13.
Tendo criada a fila e seus servios, resta criar ao menos um terminal para que o
sistema esteja pronto para operar.
Voltando pgina inicial e clicando em Adicionar ao lado do campo Terminais, o
gerente ser direcionado para o formulrio de criao de terminais, como ilustrado
na Figura X.
<ip>:<porta>/smartline/display/1
Isso pode acontecer por alguma queda no servidor ou algum outro problema na
comunicao entre o display e o servidor Web. A mensagem ser removida to logo
a conexo seja restabelecida.
No dispensador virtual o cliente dever definir a fila e o servio que deseja, bem
como o tipo de fila - se preferencial ou no.
Ao selecionar uma fila, a lista de servios atualizada a partir de uma requisio
ajax para o endereo <ip>:<porta>/smartline/listar_servicos/<id-fila>, onde <id-fila>
se refere ao ID da fila selecionada na lista do dispensador.
Clicando em Retirar Senha, o cliente direcionado para a pgina referente a nova
senha. A template senha renderizada como ilustrada na Figura 20.
Esse controle possui 3 botes e uma chave liga/desliga, mas emite apenas dois
cdigos de evento diferentes:
o cdigo 115 - emitido ao pressionar o boto + no controle, o script
bluebutton.py interpreta esse cdigo como a chamada de uma nova senha.
Esse mesmo script chama o mtodo chamarSenha da classe Terminal;
O cdigo 114 - emitido quando o boto - pressionado, o bluebutton.py
chama o mtodo retrocederChamada da classe Terminal.
O terceiro boto emite os dois cdigos ao mesmo tempo e, por isso, deve ser
ignorado pelo utilizador.
{url:http://<ip>:<porta>/smartline/senha_diponivel/<id-fila>/<id-servico>/<prefer>}
Onde: <ip> e <porta> representam o IP e a porta por onde o servidor Web est
escutando as requisies; <id-fila> o ID da fila em que se quer entrar; <id-servico>
o ID do servio prestado pela fila; <prefer> indica se as senhas dispensadas por
este cdigo so ou no preferenciais. Todos esses valores so numricos, exceto
<ip>, pois poder assumir um hostname como valor.
Para retirar uma senha informativa, basta executar o SLM e clicar no boto flutuante
no canto inferior direito (Figura 26-a). A activity principal ento interrompida e
ento inicializa a activity para leitura de QR Code (Figura 26-b).
Basta apontar a cmera para o QR Code referente ao tipo de senha que deseja
retirar e o aplicativo decodificar a URL contida no QR Code. A partir desse
momento, o SLM tentar efetuar uma requisio ao SLS atravs da URL obtida.
Todas as conexes de rede do SLM so feitas atravs de threads separadas das
classes das activitys, evitando, assim, erros em tempo de execuo.
Se a requisio for bem-sucedida, o SLM receber como retorno um objeto JSON
contendo os dados da senha informativa. A Figura 27 ilustra uma senha informativa
retirada a partir da leitura de um QR Code.
A senha informativa exibe estimativas sobre a fila e possibilita que o cliente retire
uma senha vlida para aquela fila. Cabe ao cliente analisar os dados da senha
informativa e avaliar se deve ou no entrar na fila. Na Figura 27, a senha possui
tempo de espera igual a 1 minuto e no h pessoas esperando na fila, o que indica
uma boa hora para retirar uma senha e ser atendido logo!
Para retirar a senha, basta clicar no boto PEGAR. Essa ao enviar uma
requisio do tipo POST para a view retirar_senha_disponivel implementada no SLS,
que associar o UUID do cliente nova senha retirada. O retorno da requisio ser
um objeto JSON contendo os dados da nova senha, como pode ser visto na Figura
28.
Figura 28 - Nova senha retirada.
Descartar (cone da lixeira) - esse boto envia uma requisio do tipo POST
para a view descartar_senha implementada no SLS. Como o prprio nome
sugere, a view descarta a senha informada, removendo qualquer vnculo do
cliente com a senha e sua respectiva fila. Aps clicar nesse boto, a senha
automaticamente removida da lista de senhas do cliente.
Renew (cone das setas) - esse boto envia uma requisio POST para a
view info_senha, que retorna um dados atualizados sobre tempo de espera
previsto, nmero de pessoas a frente, e a situao da senha.
O cliente poder retirar quantas senhas quiser, desde que cada senha seja para
uma fila diferente. Todas as senhas retiradas ficaro na lista de senhas
implementada na activity principal. A Figura 29 ilustra a lista de senhas agora com
duas senhas retiradas: uma para a Fila do Aougue e outra para o Pronto
Atendimento.
Figura 29 - Lista de senhas retiradas.
Embora exista um boto renew para cada senha da lista, o cliente no precisa se
preocupar em clicar nesse boto para garantir a atualizao do status, pois o SLM
implementa uma thread que atualiza o status de todas as senhas da lista. Essa
atualizao automtica feita a cada 5 segundos e acontece sempre que existir ao
menos uma senha na lista, mesmo que o aplicativo tenha sido encerrado pelo
cliente.
Portanto, pode-se dizer que o FCM funciona como um proxy na comunicao entre o
SLS e o SLM.
O token de registro pode mudar quando: o SLM restaurado em um novo
dispositivo; o cliente desinstala/reinstala o SLM; o cliente limpa os dados de cache
do SLM. Para esses casos, o aplicativo repete os passos de registro de token
apresentados anteriormente, e o cliente passa a ser representado, no SLS, como
uma nova instncia da classe Cliente.
O envio de notificaes a nica ao que faz o SLS deixar sua condio passiva
na comunicao com o SLM.
O cliente SLM receber notificaes sempre que:
Alm do FCM, este projeto fez uso de outro servio oferecido pelo Firebase: o
Google Analytics for Firebase. Com essa soluo possvel monitorar a atividade
dos usurios e a forma como eles utilizam o aplicativo. As informaes podem ser
segmentadas de acordo com pblicos-alvo personalizados, eventos personalizados
ou propriedades dos usurios.
5 - CONSIDERAES FINAIS
5.1 - CONCLUSO
Por ter sido inserido no final da implementao, o Google Firebase foi pouco
explorado, sendo utilizado apenas no servio de notificao de status de senhas.
Entretanto, seus servios poderiam ter sido explorados, por exemplo, para atualizar
as informaes da lista de senhas, eliminando a necessidade de realizar pulling a
cada 5 segundos.
Uma soluo mais eficiente para a atualizao de senhas seria o envio de
notificaes push sempre que o estado de uma dada fila se alterasse. O SmartLine
Server, ao identificar uma alterao em alguma fila, enviaria as atualizaes de
status dessa fila ao FCM, que se encarregaria de entregar os dados de atualizao a
todos os clientes que estivessem naquela fila.
Outro possvel ponto a ser trabalhado a questo do desempenho do Display no
navegador do Raspberry Pi. A reproduo de vdeo e a renderizao de alguns
elementos CSS (eg., efeitos de sombra e superposio), fazem com que o
Raspberry Pi consuma mais da metade de seus recursos computacionais apenas
exibindo o Display. A substituio das sombras - renderizadas em tempo real - por
imagens com fundo transparente, pode melhorar o desempenho. Uma outra soluo
poderia ser a substituio do vdeo institucional por uma apresentao de slides.
Ainda no SmartLine Server, seria interessante escrever um script python auxiliar na
instalao e execuo do sistema. O script que escuta os eventos bluetooth poderia
ser integrado a esse novo script de instalao/execuo.
Uma alternativa ao atual controle bluetooth pode ser sugerida. Pode-se, por
exemplo, substituir o controle bluetooth por um sistema alternativo de transmisso
via rdio.
Por fim, o SmartLine poderia mudar o seu enfoque, passando a ser um servio Web.
O Raspberry Pi serviria apenas para a comunicao com o servidor Web e a
exibio do Display. Sendo assim, todas as atividades do sistema seriam
gerenciadas na nuvem, no mais por um dispositivo instalado no estabelecimento
comercial.
6 REFERNCIAS
NOVAIS, A. Como funciona o Fast Pass+ da Disney? Disney Guia, 2014. Disponivel
em: <http://www.disneyguia.com.br/site/como-funciona-o-fast-pass-da-disney/>.
Acesso em: 19 Novembro 2017.
PAGLIARUSSI, M. S. Oimizao de Sistemas de Transporte. Rio de Janeiro:
[s.n.], 2016.
ROSSIGNOL, J. Google Says There Are Now More Than 2 Billion Monthly Active
Android Devices. MacRumors, 2017. Disponivel em:
<https://www.macrumors.com/2017/05/17/2-billion-active-android-devices/>. Acesso
em: 19 Novembro 2017.
SALUTES, B. AOSP: saiba o que e para que serve. Android Pit, 2017. Disponivel
em: <https://www.androidpit.com.br/aosp-android-open-source-project>. Acesso em:
19 Novembro 2017.
SENSO Demogrfico 2010. Instituto Brasileiro de Geografia e Estatstica.
Disponivel em: <https://www.ibge.gov.br/estatisticas-
novoportal/sociais/populacao/9662-censo-demografico-2010.html>. Acesso em: 19
Novembro 2017.
STONE, A. Why Waiting Is Torture. The New York Times, 2012. Disponivel em:
<http://www.nytimes.com/2012/08/19/opinion/sunday/why-waiting-in-line-is-
torture.html?_r=2>. Acesso em: 19 Novembro 2017.
THE Django Admin Site. The Django Book, 2017. Disponivel em:
<https://djangobook.com/django-admin-site/>. Acesso em: 19 Novembro 2017.
TIPS About Disneyland From a Native Cali Annual Pass Holder. Travel 4 The Soul,
2012. Disponivel em: <https://travelista1.wordpress.com/tag/fast-pass/>. Acesso em:
19 Novembro 2017.
TUDO de que voc precisa para criar aplicativos no Android. Android Developers,
2017. Disponivel em: <https://developer.android.com/studio/features.html?hl=pt-br>.
Acesso em: 19 Novembro 2017.