LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado por: m2snd em 28 de Julho de 2011, 19:39
-
Ola pessoal!
Preciso da vossa preciosa ajuda.
Tenho este código em PHP com um exemplo para um Switch com opção ON/OFF.
Tentei modifica-lo para dois Switch´s com as mesmas opções ON/OFF. O problema é que ao fazer por exemplo ON no Switch1 e depois fazer, também ON no Switch2, a indicação de ON no primeiro Switch desaparece ficando apenas a indicação ON no segundo Switch. O mesmo acontece com a opção OFF. Tenho isto a correr num servidor.
Será que me podem indicar como poderei fazer para ficar a indicação independentemente em cada Switch conforme a minha opção?
Muito obrigado
<?php
exec('mode COM4: baud=9600 data=8 stop=1 parity=n xon=no');
$switch1 = "";
$switch2 = "";
/* Serial script for pan/tilt Camera with servos */
/* Script by Aneal Khimani, 2-12-10 */
//check the GET action SuperGlobal var to see if an
//action is to be performed
if (isset($_GET['action'])) {
$switch1 = $_GET['action'];
$switch2 = $_GET['action'];
//Action required
switch ($switch1) {
case "on":
$fp = fopen("COM4", "w");
fwrite($fp, chr(97));
fclose($fp);
break;
case "off":
$fp = fopen("COM4", "w");
fwrite($fp, chr(98));
fclose($fp);
break;
}
switch ($switch2) {
case "on2":
$fp = fopen("COM4","w");
fwrite($fp, chr(99));
fclose($fp);
break;
case "off2":
$fp = fopen("COM4","w");
fwrite($fp, chr(100));
fclose($fp);
break;
}
}
?>
<html>
<body>
<right>
<p>
<font size="4">Switch1</font><br />
<table width="30">
<tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=on" ?>">On</a></td><td><?php if($switch1 == 'on'){echo "<b>ON</b>";} ?></td></tr>
<tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=off" ?>">Off</a></td><td><?php if($switch1 == 'off'){echo "<b>OFF</b>";} ?></td></tr>
</right>
<table width="30">
<font size="4">Switch2</font><br />
<center>
<tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=on2" ?>">On</a></td><td><?php if($switch2 == 'on2'){echo "<b>ON2</b>";} ?></td></tr>
<tr><td><a href="<?=$_SERVER['PHP_SELF'] . "?action=off2" ?>">Off</a></td><td><?php if($switch2 == 'off2'){echo "<b>OFF2</b>";} ?></td></tr>
</table>
</p>
</center>
</body>
</html>
-
Tens um caracter para cada botão, e só envias um caracter, por isso não consegues ter informaçao de vários estados, só de um estado de cada vez, ou fazes uma pequena tabela e tens vários caracteres, cada um diz se cada switch está on ou off, ou então mandas vários caracteres numa string.
Mas isso bastava dois bits.
-
Nada disso, só tens de passar sempre os 2 estados como argumento.
Por exemplo:
Se a tua página for do género "pagina.php?sw1=on&sw2=off", tens acesso aos estados assim:
$sw1 = $_GET['sw1'];
$sw2 = $_GET['sw2'];
Depois de teres acesso aos estados, fazes o que quiseres com eles.
Depois só tens de alterar a forma como alteras a variável.
O teu <a href="..."> tem que apontar para a mesma página, mas tens de passar sempre as 2 variáveis para manter a que não queres alterar.
Por exemplo, queres alterar o botão1:
tens de fazer um link (href) para a página, com o estado do botão 1 contrário ao que está na variável $sw1 e o estado do botão 2 igual ao que está na variável $sw2.
-
microbyte, obrigado!!!!
Já tenho isto a funcionar. Agora vou ver se consigo replicar o código para mais sw´s.
Obrigado pela tua preciosa ajuda, sem a qual acho que não chegaria lá. O código foi quase completamente modificado.
Agora já sei a quem devo recorrer. para o PHP... :D