• Welcome to LusoRobótica - Robótica em Português.
 

php

Started by tiagosilva510, 29 de June de 2011, 22:46

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

tiagosilva510

boas..

CBX, tentei novamente como disseste com aquele link, mas nada.. nem mesmo actualizando me aparece alguma coisa..

o codigo:

<?php
//leitura da porta serie
//http://pplware.sapo.pt/tutoriais/php/php-quinta-feira-controlar-uma-porta-com/
require("php_serial.class.php");
$serial = new phpSerial();
$serial->deviceSet("/dev/ttyUSB0");

$serial->confBaudRate(9600); //Taxa de transmissão
$serial->confParity("none");  //Paridade
$serial->confCharacterLength(8); //Comprimento

$serial->confStopBits(1);  //Bits de paragem
$serial->confFlowControl("none"); //Controlo

$serial->deviceOpen();

//$serial->sendMessage("Hello!");
$read = $serial->readPort();

$serial->deviceClose();


echo "<P>O id inserido é $read </P>";
?>


de referir tambem que na respectiva clase alterei o endereço da porta e passei para /dev/ttyUSB

passei o cartao no leitor.. e actualizei algumas vezes a pagina, no entanto nao apareceu nada...


SJD22

O problema pode não ser no PHP mas no hardware ou nas ligações. Tenta ler com o putty ou com o hiperterminal, se der tudo bem entao passas para o PHP.

CBX

não funciona possivelmente porque não tens nenhum buffer e só vais conseguir ver alguma coisa na página se actualizares no exacto momento em que passas o cartão (praticamente impossível)

tiagosilva510

esta tudo a funcionar.. ja tentei no cutecom.. e no proprio terminal do linux com o comando cat /dev/ttyUSB0

como implementarias o buffer neste caso?

tiagosilva510

n tou mesmo a ver como vou escrever os dados que saem do leitor no formulario html =/

nao ha nenhuma maneira de usar o comando que inseri na consola pois n?

tiagosilva510

ha alguma maneira de ir buscar o valor lido no terminal e armazena-lo numa variavel no php?

SJD22

Podes fazer uma pequena aplicação em Java, .NET, phyton, etc que vá ler o valor à porta e o grave num ficheiro .txt por exemplo e depois o PHP vai ler o ficheiro e mostra no HTML.


tiagosilva510

parece-me bem.. eu nunca funcionei com nenhuma.., n faço a mínima como se faz isso.. tens experiência em alguma delas?

eu com um comando executado na consola consigo escrever o valor lido num ficheiro...

cat /dev/ttyUSB0 > file.txt

para tal teria que estar com a consola aberta paralelamente a execução da pagina HTML, mas nao haveria problema

tiagosilva510

estive a testar a maneira que falei de escrever num file e n deve dar muito resultado, uma vez que como a aplicaçao iria estar sempre aberta iria escrever continuamente no mesmo ficheiro..

Sera que percebes de Java, .NET, phyton, de modo a que quando a aplicaçao seja chamada crie um ficheiro no qual escreve o valor lido na porta usb..
depois o php le esse ficheiro, carrega para uma variavel.. e depois disso pode apagar o ficheiro... pare que depois a aplicaçao  volte a iniciar o processo sempre que seja preciso

SJD22

o ficheiro nao tem que estar sempre aberto...

aplicação 1) abre -> escreve -> fecha

aplicação PHP abre -> le -> fecha

tiagosilva510

o meu problema continua a ser a aplicaçao 1.. a aplicaçao 2 acabei de a fazer

SJD22

Podes chamar essa linha de comandos a partir do PHP com o comando "exec".

tiagosilva510

tipo isto? 

exec (cat /dev/ttyUSB0 > file.txt) ;

sera que da para arquivar o que se obtem numa variavel?

SJD22

Mete entre aspas o que está dentro dos parenteses.

Melhor ainda cria um batch file com isso e depois so chamas o batch file.

tiagosilva510

ja agora como? x)