• Nenhum resultado encontrado

1. INTRODUÇÃO

4.4 DETALHAMENTO DO DESENVOLVIMENTO

4.4.3 Servidor Web E Ajax

O campo “Agendamento de Controles” é responsável pelos agendamentos de controles programados disponíveis para cada EM. Para fazer uso do agendamento o usuário deve preencher as informações necessárias.

No campo “Ativo” marca se a programação será executada ou não.

No campo “Aplicar à Estação” deve ser escolhida a EM que se deseja executar o comando.

No campo data e hora deve ser inserida a hora e a data que se deseja que a programação ocorra.

No campo “Ação” o usuário deve escolher o comportamento de seu interesse, são eles: ligar, desligar e simular ocupação. Quando escolhido ligar ou desligar, o sistema simplesmente acionará ou desligará o equipamento controlado pela EM em questão.

No campo “Dados da EM” é possível identificar o ambiente de sua residência onde será instalada uma EM para monitoramento ou controle. As informações deste cadastro serão utilizadas posteriormente na seleção do campo “Parâmetros” na Figura 32.

No campo “Trocar Senha” é possível trocar a senha de usuário de acesso ao sistema de automação.

XML para leitura ou gravação, ou ainda encaminhando o comando de acionamento para determinada EM. A Figura 34 mostra o fluxo com as principais funções do servidor WEB.

q

Figura 34 - Fluxo principal do servidor WEB.

Ao receber uma requisição na porta 80, o servidor WEB verifica se esta é do tipo AJAX. Caso não seja, ele retornará o arquivo index.html ou o arquivo HTML que estiver armazenado no endereço da requisição. Caso a requisição seja do tipo AJAX é possível classifica-las em dois diferentes métodos: GET, para requisitar um dado, ou POST, para enviar um dado ao servidor. Caso seja um método GET o servidor web chama a função responsável por realizar a leitura na base de dados XML, que irá ler os dados e retornar os valores requisitados ao navegador. Caso seja um método POST,

poderá ser uma instrução de gravação de alguma informação na base de dados XML ou poderá ser uma instrução de execução de um comando. Em ambos os casos o servidor WEB irá executar a função relacionada a uri recebida e retornará a informação “TRUE” ou “FALSE” em caso de sucesso ou não, respectivamente ao navegador de internet.

Uma requisição deve seguir um padrão devendo conter, por exemplo, método de acesso, endereço IP de origem (host), caminho de localização do arquivo uri (Uniform Resource Identifier,), além de algumas informações do navegador (user-agent) e autorização conforme pode ser visto nas Figura 35 e Figura 36.

A principal diferença entre a requisição GET e POST é que uma requisição POST contém no caminho de localização de arquivo (uri) o endereço para uma função do tipo ajax/set_data enquanto a do tipo GET contém o caminho ajax/get_data. Através destes caminhos é que o servidor WEB irá identificar e executar a função equivalente ao comando que o usuário requisitou na interface de controle, por exemplo, na Figura 35 a uri recebida foi:

Figura 35 - Exemplo requisição AJAX GET

GET /ajax/get_data?func_name=out_get_ST&parameter=0&param=0 HTTP/1.1

Host: 10.0.0.6 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0 Accept: application/json, text/javascript, */*; q=0.01 Accept-Language: en-

US,en;q=0.5 Accept-Encoding: gzip, deflate X-Requested-With: XMLHttpRequest

Referer: http://10.0.0.6/ Authorization: Digest username="admin", realm="TS60IP", nonce="68", uri="/ajax/get_data?func_name=out_get_ST&parameter=0&param=0", response="

e0745bda90f950dafbc27d05a3521023", qop=auth, nc=00000022, cnonce="3e189c37e916a8dc

Figura 36 - Exemplo de requisição AJAX POST POST /ajax/set_data HTTP/1.1

Host: 10.0.0.6 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0 Accept: application/json, text/javascript, */*; q=0.01 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Referer: http://10.0.0.6/ Content-Length: 94

Authorization: Digest username="admin", realm="TS60IP", nonce="68", uri="/ajax/set_data", response="2bcb3a81de8921f81e77bfe67bda231e", qop=auth, nc=0000002b,

cnonce="b89a9ecb411e6946"func_name=in_set_DM&parameter=&sys_hour=00&sys_minute=16&

sys_day=21&sys_month=10&sys_year=2013

uri="/ajax/get_data?func_name=out_get_ST&parameter=0&param=0"

Através deste uri é possível saber que esta requisição HTTP refere-se ao método de acesso GET e a função que será chamada pelo servidor WEB é a “out_get_ST”. Além disso, são passados dois parâmetros, o “parameter” e o “param” ambos com o valor “0”.

Já no exemplo mostrado na Figura 36 a uri recebida foi:

uri="/ajax/set_data?func_name=in_set_DM&parameter=&sys_hour=00&

sys_minute=16&sys_day=21&sys_month=10&sys_year=2013”

Através deste uri é possível saber que esta requisição refere-se ao método de acesso POST (set_data) e a função que será chamada pelo servidor WEB é a “in_set_DM”. Além disso, são passados os parâmetros “parameter”, “sys_hour”, “sys_minute”, “sys_days”, “sys_month” e “sys_year” com seus respectivos dados.

A função “in_set_DM é responsável por atualizar a data e hora do sistema de automação residencial. Os valores referentes aos parâmetros recebidos são enviados ao sistema operacional Linux, que atualiza a data e hora do sistema.

Além da função “in_set_DM”, existem outras que compõe o sistema de automação residencial.

As funções com o prefixo “in_set”, são executadas sempre que o usuário na interface WEB realizar alguma alteração nos dados. Já as funções com o prefixo “out_get”, são executadas sempre que é necessário carregar as informações gravadas no arquivo XML e transferi-los para a interface WEB. As possíveis funções de acesso acrescidas no servidor WEB são:

B) A função “in_set_password”: altera a senha de acesso ao usuário;

C) A função “in_set_DM”: altera a data e a hora do sistema;

D) A função “in_set_AC”: altera os dados dos campos parâmetros e serviços disponíveis das EMs.

E) A função “in_set_ST”: altera as programações de agendamentos das EMs,

F) A função “out_get_DM”: refere-se a leitura das informações de data e hora do sistema, G) A função “out_get_ST”: refere-se a leitura das informações de agendamentos das EMs, H) A função “out_get_AC”: refere-se a leitura das informações dos campos parâmetros e

serviços disponíveis das EMs ; e

I) A função “out_get_MU”: refere-se a leitura das informações do campo status de monitoramento das EMs.

Documentos relacionados