perl/php seriel kommunikation.

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
etnica
Inlägg: 68
Blev medlem: 8 september 2005, 17:05:38

perl/php seriel kommunikation.

Inlägg 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.
Användarvisningsbild
jack
EF Sponsor
Inlägg: 2059
Blev medlem: 5 oktober 2004, 17:32:27

Inlägg 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.
etnica
Inlägg: 68
Blev medlem: 8 september 2005, 17:05:38

Inlägg 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.
Användarvisningsbild
Jeppsson
EF Sponsor
Inlägg: 810
Blev medlem: 3 oktober 2005, 18:00:43
Ort: Karlskrona

Inlägg 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++. 8)
sebastiannielsen
Inlägg: 3663
Blev medlem: 11 september 2004, 09:30:42
Ort: gbg
Kontakt:

Inlägg 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.
Användarvisningsbild
rickeboy
Inlägg: 678
Blev medlem: 13 augusti 2003, 09:12:17
Ort: Göteborg / Karlskrona
Kontakt:

Inlägg 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
etnica
Inlägg: 68
Blev medlem: 8 september 2005, 17:05:38

Inlägg 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.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Det finns flera funktioner för att ta emot, t ex fgets().
Lallas
Inlägg: 463
Blev medlem: 30 november 2003, 18:46:51
Ort: Malmö

Inlägg av Lallas »

rickeboy skrev: [EDIT]: Är 100% säker...
Här är en lösning för Perl iaf: http://members.aol.com/Bbirthisel/alpha.html
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) 8)

edit: stavning
Skriv svar