Sida 1 av 1
perl/php seriel kommunikation.
Postat: 19 oktober 2005, 20:47:57
av etnica
Hej hopp jag behöver prata med lite hårdvara jag har konstruerat via serie porten.
Jag skall köra en webserver och sedan skall man via en klient kunna skicka data via serie porten på den datorn webservern ligger på.
Nu till min fråga, jag har tittat på php.net och activeperls hemsida.
Men jag hittar enbart folk som har använt php/perl för envägaskommunikation alltså jag har enbart sett exempel på att skicka data mot com porten(PC->com) m.h.a perl eller php.
Så min fråga är om det är möjligt med tvåvägs kommunikation via serie porten m.h.a perl/php. Jag behöver tvåvägs kommunikation då min hårdvara skall ge svar tillbaka och vissa att den lever etc.
Det är windows xp embeded som skall köras med activeperl o php.
Jag kan ej köra linux på denna datorn pågrund av vissa anledningar.
Postat: 19 oktober 2005, 20:50:35
av jack
Borde väl (om inte annat) gå att göra med något slags program i bakgrunden. Som scriptspråket sedan kommunicerar med.
Postat: 19 oktober 2005, 21:05:38
av etnica
Hmm jo fast då blir det ytterligare ett program som skall köras, sen så är jag inte expert på c++ så vill helst hålla mig ifrån att skriva egna program.
Jag har aldrig lyckats komma förbi funktioner och lära mig klasser
Däremot är jag känner jag mig hemma i script språk.
Jag har hittat en programvara som öppnar upp serie portar för tcp/ip kommunikation, men har dock ej ännu haft chans att testa att det funkar. Men verkar vara så bökigt, specielt då programmet öppnat upp en kommandoprompt som hela tiden ligger i bakgrunden, men man kanske kan köra det som service och då bli av med det.
http://www.lspace.nildram.co.uk/freeware.html
Annars får jag väll experimentera på egen hand, blev klar med kommuikationen mellan avr:en och com porten idag så har inte haft så mycket tid att testa ännu.
Postat: 19 oktober 2005, 21:40:22
av Jeppsson
I framtiden, när jag är klar med elektroniken så behöver jag oxå bygga ett program som skall prata med en microprocessor via COM-porten.
Får du några bra tips eller hittar några bra länkar etnica så lägg gärna upp dem på forumet!
Men jag tror att det programmet jag skall göra som sköter all kommuniktaion kommer att vara skrivet i Visual C++.

Postat: 19 oktober 2005, 21:56:45
av sebastiannielsen
http://search.cpan.org/~bbirth/Win32-Se ... ialPort.pm
gå in i cmd och skriv följande:
ppm<enter>
då kommer ppm-prompten upp.
skriv då:
search port
Kolla sedan resultaten.
Om du hittar win32-serialport eller något liknande, så skriver du
install (den siffra som win32-serialport ligger på).
Sedan kan du läsa på CPAN-sidan som jag länkar till överst för att veta hur du använder modulen.
Postat: 20 oktober 2005, 09:30:37
av rickeboy
etnica> Detta är med PHP det kräver dock serprox programmet... och för att tanka ner att behöver man registrera (gäsp)
http://www.phpclasses.org/browse/file/1476.html
Jag konstaterar dock att du skriver Perl också... i Perl är jag 99% säker att det ska gå att komma åt com porten smidigare... tror inte det går att göra direkt i PHP utan att låta infon "mellanlanda".
[EDIT]: Är 100% säker...
Här är en lösning för Perl iaf:
http://members.aol.com/Bbirthisel/alpha.html
[EDIT2]: Ett aight PHP sätt är detta:
http://www.easyvitools.com/articles/webscript.html dvs man kör med sockets, programmet öppnar com porten som sätter igång en server så att PHP sedan kan komma i kontakt med com porten med sockets. Smidigt och extra programmet skulle kunna bli löjligt litet.
[EDIT3]: Här kör dem tydligen PHP direkt till com porten med fopen(); hmm...
http://php.planetmirror.com/manual/en/f ... .php#20935
//rickeboy
Postat: 20 oktober 2005, 13:08:15
av etnica
Hej igen.
Ja för perl verkar det finnas många lösningar, har jag upptäckt nu, för php så verkar det inte finnas lika mycket info.
Dock så har PHP5 dio som verkar vara en funktion som skall vara bättre för att prata mot com porten än fopen. Dock så har jag inte hittat mycket information om dio, antagligen för att det är så nytt.
Med fopen verkar man dock enbart kunna skicka data men inte ta emot.
Visst jag kan strunta blankt i att ta emot inormation, men jag tycker det är mycket trevligare att kunna få nån information tillbaka så man vet att sändningen har gått ok.
Jaja får sätta mig o pilla med perl först då det scriptet jag skall göra för perl har högre prioritet.
Postat: 20 oktober 2005, 14:15:13
av cykze
Det finns flera funktioner för att ta emot, t ex fgets().
Postat: 6 november 2005, 23:46:07
av Lallas
Har haft fettoproblem med att komma åt serieporten under Windows XP/2000 och (Active)Perl. Ibland fungerade det, ibland inte. Däremot är det betydligt enklare under Linux:
http://search.cpan.org/~cook/Device-Ser ... ialPort.pm
Gjorde ett program som loggade minicall-trafiken och skickade meddelande till en IRC-kanal när det hände något roligt (brandlarm)
edit: stavning