• Nenhum resultado encontrado

Comando remoto universal

No documento Controlo Remoto Universal por ZigBee (páginas 51-56)

Sistema de controlo ZigBee RF4CE

4.2 Prot otipo ´ desenvolvido

4.2.2 Comando remoto universal

A aplicac¸ ˜ao do comando remoto universal foi desenvolvida tendo como base a aplicac¸ ˜ao de suporte Basic Remote Control fornecida pela RemoTI. As funcionalidades propostas para o comando remoto permitem:

• Envio de diferentes comandos do perfil ZRC para um dispositivotarget espec´ıfico assim como para todos os dispositivostarget simultaneamente.

• Recec¸ ˜ao do comando de extens ˜ao ao perfil ZRC que permite que este seja encontrado quando estiver perdido.

• Emparelhamento e controlo de tr ˆes tipos de dispositivostarget: televis ˜ao, set-top-box e leitor de DVD.

• Desemparelhamento com um dispositivostarget ou com todos os dispositivostarget emparelha- dos.

Tabela 4.1: Mapeamento das operac¸ ˜oes nos bot ˜oes do comando remoto universal.

Bot ˜ao Constante RTI Operac¸ ˜ao

Acionar o emparelhamento.

RTI CERC POWER TOGGLE FUNCTION Ligar ou desligar um equipamento Selecionar o equipamento televis ˜ao Selecionar o equipamento set-top-box Selecionar o equipamento leitor de DVD

Quando pressionado por cerca de 5 segundos, re- aliza o desemparelhamento com o equipamento selecionado

RTI CERC EJECT Ejetar ou expelir o disco. Quando pressionado por cerca de 5 segundos, realiza o desemparelha- mento com todos equipamentos emparelhados RTI CERC POWER OFF FUNCTION Desligar todos os equipamento

RTI CERC POWER OFF FUNCTION Ligar todos os equipamento

RTI CERC VOLUME UP Aumentar o volume

RTI CERC VOLUME DOWN Diminuir o volume

RTI CERC MUTE Silenciar ou repor o som

RTI CERC CHANNEL UP Incrementar o canal

RTI CERC CHANNEL DOWN Decrementar o canal

RTI CERC ROOT MENU Abrir o Menu

RTI CERC SELECT Confirmar uma opc¸ ˜ao selecionada no Menu RTI CERC BACKWARD Voltar `a opc¸ ˜ao anterior selecionada no Menu

RTI CERC UP Mover para cima

RTI CERC DOWN para baixo

RTI CERC LEFT para esquerda

RTI CERC RIGHT para direita

RTI CERC NUM 1 a RTI CERC NUM 9 Sintonizar os canais de 1 a 9 RTI CERC AV INPUT FUNTION Selecionar a entrada AV na televis ˜ao

RTI CERC PLAY Reproduzir o filme

RTI CERC PAUSE Pausar a reporduc¸ ˜ao do filme

RTI CERC STOP Parar a reporduc¸ ˜ao do filme

RTI CERC REWIND Parar a reporduc¸ ˜ao do filme RTI CERC FAST FORWARD Avanc¸ar a reporduc¸ ˜ao do filme

As operac¸ ˜oes associadas a cada bot ˜ao do comando remoto universal, est ˜ao descritas na Tabela 4.1.

Nas operac¸ ˜oes que implicam o envio de comando, existe um identificador definido pelo perfil ZRC, tal como se apresenta no Anexo A. Estes identificadores est ˜ao representados na Tabela 4.1 por constantes definidos pela RTI que guardam o valor desses identificadores.

O comando remoto universal quando ´e ligado realiza uma inicializac¸ ˜aowarm. De seguida, ´e efetu- ada a configurac¸ ˜ao dos par ˆametros do comando remoto universal, conforme descreve a Tabela 4.2:

Tabela 4.2: Par ˆametros do comando remoto universal.

Par ˆametro Configurac¸ ˜ao

Tipo de dispositivo Controller

Lista de dispositivostargetsuportados Televis ˜ao, Set-top-Box e Leitor de DVD N ´umero de tipos de dispositivos que implementa 1

Tipo de dispositivo que implementa Comando remoto N ´umero de perfis de aplicac¸ ˜ao suportados 1

Perfis de aplicac¸ ˜ao suportados ZRC

Tipo de alimentac¸ ˜ao Bateria

Nome do fabricante TI-LPW

Identificador do fabricante 0x0007 (Texas Instruments)

Seguranc¸a Sim

Durante a configurac¸˜ao,a func¸˜aoR TIW riteITemEXd aR TIA PIe´i nvocada,u mav ezp orcada par ˆametro, paraescrever essespar ˆametros namem ´oria vol ´atil docomando remotouniversal. Ap ´os aconfigurac¸˜aodep ar ˆametros,afunc¸˜aoR TII nitReq,inicializaascomponentesdaRemoTIeiniciaas operac¸˜aodarede. Ainda,guardanamem ´orian ˜aovolatilospar ˆametroconfiguradosanteriormentena mem ´oria vol ´atil docomandoremotounviversal. ARTIInitCnfe´ umafunc¸˜aodotipo callback (tipo de func¸ ˜ao chamada como consequ ˆencia de chamada a outra func¸ ˜ao) que e´ chamada como consequ ˆencia dachamada a`func¸˜aoRTIInitReq. Estafunc¸˜aoherda oresultado dachamada a`func¸˜aoRTIInitReq, quepodeterumvalorqueindicasucesso,nocasodafunc¸˜aoRTIInitReqocorrercomsucesso,ouuma gamadeoutrospossiveisvaloresdefinidosem[18].

Asfunc¸˜oes dotipo callback, diferentedasoutrasfunc¸˜oes definidasp elaRTIA PI,s ˜aofunc¸˜oesem queoprogramadordaaplicac¸˜aotemaliberdadedeacustomizardeacordocomoresultadoherdado.

A func¸˜ao RTIInitCnf configurao t ipod einicializac¸˜ao,s elecionao d ispositivot argeti niciale aciona o buzzer do comando remoto universal durante 2 segundos, quando o resultado indicar o sucesso da operac¸ ˜ao RTI InitReq. Caso contr ´ario, nenhuma operac¸ ˜ao ´e efetuada. A configurac¸ ˜ao do tipo de inicializac¸ ˜aowarm ´e feito por meio da chamada `a func¸ ˜ao RTI WriteITemEX. A selecc¸ ˜ao do dispositivo target inicial consiste em procurar na tabela de emparelhamento se existe alguma refer ˆencia de empa- relhamento em que o tipo de dispositivo seja uma televis ˜ao. Se existir, escolhe este dispositivo como o dispositivo target inicial. Caso contr ´ario, escolhe o dispositivo target referente `a ´ultima entrada na tabela de emparelhamento. Caso n ˜ao existir nenhuma entrada na tabela de emparelhamento, nenhum

dispositivotarget ´e selecionado. A raz ˜ao pela qual optou-se por forc¸ar que o comando remoto universal escolha uma televis ˜ao como o dispositivotarget inicial, caso este se encontra na sua tabela de empa- relhamento, baseia-se no facto de a televis ˜ao ser o principal equipamento entre os equipamentos de eletr ´onica de consumo.

Ap ´os conclus ˜ao dos procedimentos envolvidos na inicializac¸ ˜ao do comando remoto universal, a rotina RSA ProcessEvent chama a func¸ ˜ao RTI EnableSleepReq da RTI API que ativa os mecanismo de gest ˜ao de energia especificados pela ZigBee RF4CE. Assim sendo, o comando remoto universal encontra-se apto para realizar emparelhamentos, desemparelhamentos, assim como enviar ou rece- ber comandos atrav ´es das func¸ ˜oes da RTI API SendDataReq e ReceiveDataInd respetivamente. O processamento de bot ˜oes pressionados no comando remoto universal ´e efetuado atrav ´es da func¸ ˜ao RSA KeyCback, a qual foi desenvolvida pela aplicac¸ ˜ao de suporte e alterada pela aplicac¸ ˜ao do co- mando remoto universal, de forma a se incorporar nesta as operac¸ ˜oes associadas aos bot ˜oes conforme especificadas na Tabela 4.1. A RSA KeyCback ´e uma func¸ ˜ao do tipocallback que ´e chamada a partir da func¸ ˜ao HalKeyRead da HAL API, se a func¸ ˜ao RSA KeyCback for configurada como func¸ ˜aocallback apartir da func¸ ˜ao HalKeyConfig da HAL API aquando da inicializac¸ ˜ao da componente HAL. Ou seja, a func¸ ˜ao HalKeyConfig define a func¸ ˜ao chamada a partir da func¸ ˜ao HalKeyRead quando a chave de um bot ˜ao pressionado for lido. A func¸ ˜ao HalKeyConfig, permite ainda definir o servic¸o utilizado na leitura da chave do bot ˜ao pressionado, que pode ser por interrupc¸ ˜ao ou porpolling. Neste contexto, o servic¸o de interrupc¸ ˜ao mostra ser mais vantajosa que o servic¸o de polling, pois al ´em de n ˜ao utilizar os recur- sos do temporizador envolvidos no servic¸o depolling, os quais afetam desfavoravelmente o consumo de energia, permite que o comando remoto universal entre em modo dormente, por longos per´ıodos de tempo. O processamento de bot ˜oes consiste na chamada a determinadas func¸ ˜oes ou gerac¸ ˜oes e envio de determinados comandos de acordo com a chave do bot ˜ao pressionado, herdada pela func¸ ˜ao HalKeyRead. Quando o bot ˜aoair mouse ´e pressionado, ´e chamada a func¸ ˜ao RTI PairReq da RTI API que inicia o mecanismo de emparelhamento push-button. A func¸ ˜ao callback RTIPairCnf ´e chamada como consequ ˆencia da chamada `a func¸ ˜ao RTIPairReq e aciona obuzzer durante 2 segundos quando o emparelhamento ´e realizado com sucesso. Nenhuma operac¸ ˜ao ´e realizada caso contr ´ario.

Sendo que o comando remoto universal suporta o controlo de apenas tr ˆes tipos de dispositivos target, televis ˜ao, set-top-box e leitor de DVD, foram definidos tr ˆes bot ˜oes ’TV’, ’FAV’ e ’VDD’, cada um com a func¸ ˜ao de selecionar um dos dispositivos target respetivamente. O pressionamento desses bot ˜oes causa a chamada `a func¸ ˜ao SelectEmulator. Esta, recebe como par ˆametro de entrada o tipo de dispositivo do emulador que ´e diferente conforme o bot ˜ao pressionado que causou a chamada a essa func¸ ˜ao. Isto ´e, o tipo de dispositivo ser ´a televis ˜ao, set-top-box ou leitor de DVD se o bot ˜ao pressionado for TV, FAV ou VDD respetivamente. A func¸ ˜ao SelectEmulator procura na tabela de emparelhamento do comando remoto universal a refer ˆencia de emparelhamento associada ao tipo de dispositivo que recebe como par ˆametro de entrada e devolve esta refer ˆencia de emparelhamento se existir. Se sim, a vari ´avel que guarda a refer ˆencia de emparelhamento do dispositivotarget corrente ´e atualizada com este valor, caso contr ´ario nenhuma operac¸ ˜ao ´e realizada.

O comando remoto universal foi programado de forma a suportar a opc¸ ˜ao de se desemparelhar com apenas um dos dispositivos emparelhados ou com todos os dispositivos emparelhados. A primeira opc¸ ˜ao ocorre quando o bot ˜ao vermelho ´e pressionado durante 5 segundos. Isto, gera uma chamada

`a func¸ ˜ao RTI UnpairReq da RTI API que inicia o mecanismo de desemparelhamento. Se este ocorrer com sucesso ´e acionado o buzzer durante 2 segundos, caso contr ´ario nenhum operac¸ ˜ao ´e realizada.

A segunda opc¸ ˜ao ocorre quando o bot ˜ao azul ´e pressionado durante o mesmo per´ıodo de tempo, ap ´os o qual ´e efetuado uma inicializac¸ ˜aocold que limpa a tabela de emparelhamento com todos os disposi- tivos emparelhados. O per´ıodo de tempo ap ´os o qual as diferentes formas de desemparelhamento s ˜ao realizadas foram definidas como forma de salvaguarda que este estes n ˜ao sejam realizados indeseja- damente caso os respetivos bot ˜oes forem pressionado por acidente.

O pressionamento dos bot ˜oes mencionados at ´e ent ˜ao, n ˜ao geram o envio de quaisquer coman- dos, mas sim o processamento de determinados mecanismos ou configurac¸ ˜oes de funcionamentos do pr ´oprio comando remoto universal. Os restantes bot ˜oes, quando pressionados geram a construc¸ ˜ao de um comando ZRC e o envio do mesmo. Este, conforme descrito no cap´ıtulo 3.7, ´e constitu´ıdo pelo tipo de comando e pelo identificador da operac¸ ˜ao associada ao bot ˜ao pressionado. O envio de comandos

´e feito atrav ´es da chamada `a func¸ ˜ao RTI SendDataReq que se encarrega de enviar o comando ao dispositivotarget selecionado no momento. As opc¸ ˜oes de transmiss ˜ao utilizadas no envio dos coman- dos s ˜ao por defeito a combinac¸ ˜ao das opc¸ ˜oes de transmiss ˜aoacknowledge/unicast/canal ´unico. A combinac¸ ˜ao de opc¸ ˜oes de transmiss ˜ao broadcast /unacknowledged / multiplos canais ´e utilizada no envio de comandos gerados pelo pressionamento dos bot ˜oes ’verde’ e ’amarelo’ que permitem ligar ou desligar todos os emuladores emparelhados simultaneamente.

O comando remoto universal integra a funcionalidade que permite ser encontrado quando estiver perdido. A implementac¸ ˜ao desta funcionalidade originou a necessidade de se definir um comando de extens ˜ao ao perfil ZRC para este fim. Este comando ´e constitu´ıdo por dois 2 byte. O primeiro ´e utilizado para identificar o protocolo utilizado, e o segundo para identificar o comando de extens ˜ao ao perfil a enviado. Estes identificados encontram-se definidos no Anexo A. A func¸ ˜ao RTI ReceiveDataInd da RTI API ´e uma func¸ ˜ao do tipocallbackque ´e chamada pela componente RTI para indicar a aplicac¸ ˜ao que dados foram recebidos de outro dispositivo. Esta func¸ ˜ao ao receber o comando de extens ˜ao ao perfil ZRC utilizado para este fim aciona o emphbuzzer durante 10 segundos.

No documento Controlo Remoto Universal por ZigBee (páginas 51-56)

Documentos relacionados