 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Ned Feb 27, 2011 3:53 pm Naslov sporočila: php branje iz com porta |
|
|
Pišem program v php-ju, ki bi mi prebral podatek (string) iz navideznega USB serijskega porta. Delam po primeru iz spodnje strani in uporabljam tudi njihov class. http://www.phpclasses.org/package/3679-PHP-Communicate-with-a-serial-port.html
Koda: |
<?php
require("php_serial.class.php");
$serial = new phpSerial();
$serial->deviceSet("COM10");
$serial->confBaudRate(19200);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
$read = $serial -> readPort();
echo $read;
$serial->deviceClose();
?> |
Programček nekaj melje, mislim da je port normalno odprl, težavica je po mojem le v branju podatka. Če je že mogoč kdo delal s čim podobnim ga prosim za pomoč. _________________ Če smrdi je kemija, če kadi pa elektronika! |
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Ned Feb 27, 2011 5:33 pm Naslov sporočila: |
|
|
Kaj pa naj bere? Ali mu kaj pošiljaš od zunaj? Če nič ne pošiljaš, se zna obesit na tistem delu. Odvisno od izvedbe tiste class komponente.
Precej bolj enostavno bo, če za začetek vzameš en preizkušeno delujoč USB-RS232 vmesnik in nanj iz PHPja nekaj pošiljaš. In z osciloskopom gledaš, če kaj ven prileti.
Potem šele preskoči na branje, ki je marsikdaj bolj zahtevno kot pisanje na port. _________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Ned Feb 27, 2011 7:35 pm Naslov sporočila: |
|
|
Pozabil sem omenit, da mi podatke pošilja mikrokontroler, in sicer podatek o temepraturi, ki ga v hyperterminalo normalno izpisuje. _________________ Če smrdi je kemija, če kadi pa elektronika! |
|
Nazaj na vrh |
|
 |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Čet Mar 03, 2011 9:45 pm Naslov sporočila: |
|
|
Stvar sem "naštudiral" in podatek (temperaturo) že lahko vidite na spletišču http://jerny.tk _________________ Če smrdi je kemija, če kadi pa elektronika! |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Pet Mar 04, 2011 12:15 pm Naslov sporočila: |
|
|
Koda: |
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed. |
Imaš pa vroče... 500  |
|
Nazaj na vrh |
|
 |
jerny Član


Pridružen-a: Čet 17 Apr 2008 11:27 Prispevkov: 414 Aktiv.: 1.98 Kraj: Dravograd
|
Objavljeno: Sre Mar 09, 2011 10:01 am Naslov sporočila: |
|
|
Hehe, server do nadaljnega izklopljen, delam "update" projekta, ki pa nekako ne uspeva. _________________ Če smrdi je kemija, če kadi pa elektronika! |
|
Nazaj na vrh |
|
 |
mato1111 Član

Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 617 Aktiv.: 4.07 Kraj: Vrhnika
|
Objavljeno: Sob Jan 24, 2015 7:45 pm Naslov sporočila: |
|
|
//*********************** 2015 **********************//
Tudi jaz bi rad bral iz serial porta, problem imam pa da mi prikaže samo spremenljivko $myout. V čem je težava da mi noče prikazati spremenljivke $podatek1 2 in 3 ?
Koda: |
<?php
system('python /var/www/html/podatki.py', $myout);
$podatek1=substr($myout, 0, 7);
$podatek2=substr($myout, 8, 7);
$podatek3=substr($myout, 16, 7);
echo $myout;
echo $podatek1;
echo $podatek2;
echo $podatek3;
?> |
|
|
Nazaj na vrh |
|
 |
mobwap Član


Pridružen-a: Sre 14 Mar 2012 9:42 Prispevkov: 326 Aktiv.: 2.02 Kraj: Doma
|
Objavljeno: Ned Jan 25, 2015 11:55 am Naslov sporočila: |
|
|
Preglej php substr dokumentacijo. Prvo spremenljivko bi še moral dobit nazaj, ostalih ne.
Predvidevam da je $myout dolžine 24 znakov ali več?
Koda: |
<?php
$myout = "1234568abcdefghijklmnop";
$podatek1=substr($myout, 0, 7); // Vrne "12345678"
$podatek2=substr($myout, 8, 15); //Vrne "abcdefgh"
$podatek3=substr($myout, 16, 23); //Vrne "ijklmnop"
?> |
_________________ INSTALLING DEMOCRACY.... 44% DONE.
Installation failed.
404 error: form not found.
FORMING GOVERNMENT.... 23% DONE.
Formation failed. |
|
Nazaj na vrh |
|
 |
mato1111 Član

Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 617 Aktiv.: 4.07 Kraj: Vrhnika
|
Objavljeno: Ned Jan 25, 2015 12:34 pm Naslov sporočila: |
|
|
saj če naredim tako mi deluje in izpiše vse 4 spremenljivke
Koda: |
<?php
$myout = "1234567abcdefghijklmn"; // Tak string dobim na serial port in bi ga moral razbiti na 3 dele
$podatek1=substr($myout, 0, 7); // izpiše 1234567
$podatek2=substr($myout, 8, 7); // izpiše abcdefg
$podatek3=substr($myout, 16, 7); // izpiše hijklmn
echo $myout
echo $podatek1;
echo $podatek2;
echo $podatek3;
?> |
V tisti kodi ki sem jo objavil zgoraj pa dobi $myout iz python programa ki bere serial port in mi izpiše samo $myout. Je mogoče to da $myout ni string ampak kaj drugega?
Tvoja koda pa mi ne deluje tako kot si napisal.
Koda: |
$myout = "(1234567abcdefghijklmnop)";
$podatek1=substr($myout, 0, 7); // Vrne "1234567"
$podatek2=substr($myout, 8, 15); //Vrne "abcdefghijklmno"
$podatek3=substr($myout, 16, 23); //Vrne "ijklmnop" |
substr($myout, 8, 15) - prva številka pomeni mesto v stringu, druga pa pomeni koliko mest boš gledal ne pa do katerega mesta v stringu boš gledal. v tem primeru bi izpisal 15 mest ne pa 7 kot jih rabim jaz. |
|
Nazaj na vrh |
|
 |
mato1111 Član

Pridružen-a: Pet 28 Dec 2012 14:42 Prispevkov: 617 Aktiv.: 4.07 Kraj: Vrhnika
|
Objavljeno: Ned Jan 25, 2015 1:07 pm Naslov sporočila: |
|
|
Sedaj sem ugotovil da če imam napisano samo to vrstico v php kodi mi že kar izpiše
Koda: |
system('python /var/www/html/podatki.py', $myout); |
|
|
Nazaj na vrh |
|
 |
b0ha Član

Pridružen-a: Sre 14 Nov 2012 23:44 Prispevkov: 33 Aktiv.: 0.22 Kraj: Ljubljana
|
Objavljeno: Ned Jan 25, 2015 3:46 pm Naslov sporočila: |
|
|
Ali lahko objaviš še kodo "podatki.py" ? Sam sem sicer tudi napisal
program za branje serijskega porta v pythonu, ampak se mi stvar po nekaj časa obesi. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|