Olá galera. Essa é a primeira vez que estou escrevendo pois me deparei com algo complicado (pra mim pelo menos).
Contextalizando:
Estou fazendo um sistema para monitorar e gerenciar as lampadas da minha casa. O projeto consiste em servidor web Apache, PHP e comando direto para microcontrolador (Arduino em questao).
Pois bem. Todas as conexoes e funcionamento estão perfeitos, mas me deparei com a necessidade de fazer uma atualizacao em tempo real. A minha aplicacao está dessa forma:
index.php: contem as imagens das lampadas. Quando a lampada esta apagada, clico nela e então rodo 3 funcoes basicas:
1. Seto no banco de dados o valor 1 (ligada) para a lampada do ID correspondente;
2. Atualizado o arquivo data.txt com a tag <img src="on.jpg"> (long polling)
3. Mando pro arduino o codigo correspondente para ligar a lampada correspondente.
lampada.php: contem as funcoes necessarias para os passos acima.
O meu problema esta agora em realizar o Long Polling para atualizar a imagem da lampada na tela no exato momento em que o usuario clica na lampada. Achei uma funcao na internet e realmente funcinou, mas me deparei com estas necessidades:
1. Passar o ID da lampada para a funcao que esta no javascript/ajax para que ele corretamente pegue esta informação e atualize a lampada correta.
2. Realizar o long polling corretamente.
Aqui vai o trecho do codigo:
<script type="text/javascript" charset="utf-8">
var timestamp = null;
function waitForMsg() {
$.ajax({
type: "GET",
url: "codlamp/getdata.php?timestamp=" + timestamp,
async: true,
cache: false,
success: function (data) {
var json = eval('(' + data + ')');
if (json['msg'] != "") {
//alert( json['msg'] );
//Display message here
$("#lampada4").empty();
$("#lampada4").append(json['msg'] + "<hr>").slideDown("slow");
}
timestamp = json["timestamp"];
setTimeout("waitForMsg()", 1000);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
// alert("error: "+textStatus + " "+ errorThrown );
setTimeout("waitForMsg()", 1000);
}
});
}
$(document).ready(
function ()
{
$('.jclock').jclock();
waitForMsg();
$("#lampada4").click(function () {
$("#lampada4").load("lampada.php?num=4");
});
});
</script>
No final desse arquivo, tenho as tags divs que possuem a imagem da lampada e que deve ser atualizada. Detalhe que são 15 lampadas e 15 tags. Portando preciso passar o ID para a funcao realizar suas consultas pelo id e retornar atualizacao da imagem que foi clicada.
Pergunta
MarkAngel11
Olá galera. Essa é a primeira vez que estou escrevendo pois me deparei com algo complicado (pra mim pelo menos).
Contextalizando:
Estou fazendo um sistema para monitorar e gerenciar as lampadas da minha casa. O projeto consiste em servidor web Apache, PHP e comando direto para microcontrolador (Arduino em questao).
Pois bem. Todas as conexoes e funcionamento estão perfeitos, mas me deparei com a necessidade de fazer uma atualizacao em tempo real. A minha aplicacao está dessa forma:
index.php: contem as imagens das lampadas. Quando a lampada esta apagada, clico nela e então rodo 3 funcoes basicas:
1. Seto no banco de dados o valor 1 (ligada) para a lampada do ID correspondente;
2. Atualizado o arquivo data.txt com a tag <img src="on.jpg"> (long polling)
3. Mando pro arduino o codigo correspondente para ligar a lampada correspondente.
lampada.php: contem as funcoes necessarias para os passos acima.
O meu problema esta agora em realizar o Long Polling para atualizar a imagem da lampada na tela no exato momento em que o usuario clica na lampada. Achei uma funcao na internet e realmente funcinou, mas me deparei com estas necessidades:
1. Passar o ID da lampada para a funcao que esta no javascript/ajax para que ele corretamente pegue esta informação e atualize a lampada correta.
2. Realizar o long polling corretamente.
Aqui vai o trecho do codigo:
No final desse arquivo, tenho as tags divs que possuem a imagem da lampada e que deve ser atualizada. Detalhe que são 15 lampadas e 15 tags. Portando preciso passar o ID para a funcao realizar suas consultas pelo id e retornar atualizacao da imagem que foi clicada.
O arquivo getdada.php é esse:
A funcao ConsultaEstadoLampada() é irrelevante na duvida, mas para terem uma ideia do que estou fazendo vou colar aqui:
Aguardo resposta!
Editado por MarkAngel11Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.