Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

serijski port i PHP...

[es] :: PHP :: serijski port i PHP...

[ Pregleda: 2679 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl-2.sezampro.yu.



+1 Profil

icon serijski port i PHP...06.09.2007. u 15:18 - pre 202 meseci
Interesuje me da li je neko probao da radi sa serijskim portom u PHP-u? Potrebno mi je da citam neke podatke koji stizu na taj port, a negde sam procitao da moze jednostavno to da se uradi, pomocu fopen() komande.
Postoji li neka klasa za rad sa serijskim portom pod Windowsom? Znam i za ovu ekstenziju: http://www.easyvitools.com/phpserial/index.html ali nije besplatna

Svako ko je imao neko iskustvo nek napise, znacilo bi mi mnogo! pozz.
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

noctua

Član broj: 10671
Poruke: 185
*.edn.co.yu.



Profil

icon Re: serijski port i PHP...07.09.2007. u 08:21 - pre 202 meseci
Pozdrav!

Ja sam, pre 4-5 godine, pravio jednu PHP aplikaciju koja je morala da komunicira sa COM portom (monitoring telefonske centrale)...
Sta da ti kazem...

Prvi problem na koji se nailazi je OS.
Ukoliko ti je Win... hmmm... neces se bas mnogo leba najesti... Postoje neke aplikacije koje citaju com port i i beleze podatke, ali tu je veeeeeliki problem Win - ume da se "zaglupi' pa da ne komunicira sa COM-om a nista ne prijavi, ume da "popije" update koji zatvori portove, ume da srusi aplikaciju koja cita kom port... sve u svemu, nesigurno...

Ako ti je Linux u pitanju, onda si miran od takvih problema, ali...
I tu ima nekih gotovih aplikacija koje "citaju" hardver ali, po mom misljenju i iskustvu, nepotrebno komplikovanje...
Ja sam u te svrhe napisao 2 Perl skriptice (ali doslovce 20ak linija koda) koje "slusaju" com port i bleze sve sto je stiglo u bazu...

E, sad, za koje svrhe tebi treba takav sport? Da li da sporadicno procitas/upises nesto, ili da konstantno nadgledas taj port? Da li sa tim podacima treba manipulisati ili ih samo beleziti "za kasnije"? Koja je orijentaciona kolicina podataka koja ti stize na port i u kojim vremenskim intervalima? Sta u stvari ti zelis da radis sa tim COM portom?

PS.
Ukoliko treba to raditi konstantno (real-time)... batali Win... nece to raditi pouzdano...
http://noctua4u.blogspot.com
http://moourl.com/shfb0
..:: Aquila non captat muscas ::..
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl-2.sezampro.yu.



+1 Profil

icon Re: serijski port i PHP...07.09.2007. u 10:09 - pre 202 meseci
Upravo za telefonsku centralu mi i treba

Pogledao sam na sajtu, kazu da ova PHP ekstenzija uspeva da prihvata sve što stiže sa COM porta... uostalom, pogledaću, trebalo bi da 9600bps za današnje moderne računare ne predstavlja problem... Probaću da uvežem nekim "ukrštenim" kablom svoj COM1 i COM2 port pa da direktno testiram na svom računaru.

Kakvo je tvoje iskustvo što se tiče telefonske centrale i kontrolisanja iste preko računara? Da li kompjuter kačiš direktno na centralu ili imaš buffer između (ovo drugo je lakša varijanta, jer može da se komanduje bufferu kada da pošalje podatke)?

Hvala puno!
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

noctua

Član broj: 10671
Poruke: 185
*.edn.co.yu.



Profil

icon Re: serijski port i PHP...07.09.2007. u 17:22 - pre 202 meseci
Pozrav!

Pazi, na osnovu mog iskustva, nije problem u extenzijama i aplikacijama vec u WINDOWS-u!!! (procitaj moj prethodni post)
Mi smo centralu (Panasonik DC2 i jos nesto... ne secam se oznake tacno, davno je bilo) nakacili direktno na COM PC-a. To nase cedo radi i dan danas "bez ikoga svoga" - tj, bez ikakvih problema. Doduse, u pitanju je LAMP + Perl.
Kod panasonika je princip rada bio takav da, onog trenutka kad neko spusti slusalicu, centrala posalje na COM port, SPACE separated, podatke tom pozivu (Lokal, linija, pozvani broj, duzina razgovora, vreme poziva i internu oznaku prebacivanja linija). Doduse, nisam ja setovao centralu i nisam siguran da li je takav princip "default" ili je namesteno da salje takve podatke ali mislim da je to bio DEFAULT.

Sto se tice slanja komandi, to funkcionise na isti nacin (bez bafera).

Kao sto sam reako, ja sam to socinio sa 3 perl skripta. Jedan koji se ponasa kao demon i koji slusa COM port non-stop. Cim se nesto pojavi na njemu, zapise prvo u fajl.
Drugi skript se periodicno pokretao (na 5 minuta) i citao je (ako postoji) taj fajl i iz njega upisivao u bazu podatke.
Treci skript je sluzio za slanje komandi centrali.

Pitaces se cemu komplikovanje sa 2 skripta za citanje porta. Pa, imao sam "tehnicki" problem da upisem u istom trenutku ono sto se pojavi na COM portu. Naime, centrala je umela da zastane u sred prenosa. Iz cista mira (nema drugog poziva, nema spustanja slusalice, nema nicega) centrala bi stala nekad na pozvanom broju (npr, otkucano je 123-456, centrala posalje 1234 pa napravi pauzu od 4-5 sekunde pa onda posalje 56) i ja nisam mogao da znam da li je to kraj poziva (zovu 4cifreni lokal) i ide SPACE iza ili ce slediti nastavak broja...
U tom trenutku najpametnije resenje mi je bilo u fajl. Pa kad se pojavi EOL, to je to.

Nisam imao prilike da radim sa nekim drugim centralama (bilo panasonik, bilo neke druge) pa nisam siguran da li je to generalni obicaj kod svih centrala ili je ova nasa za koju smo radili bila malko sj***na

Takodje, pokusavao sam i sa baferom, ali mi to nije bas urodilo onakvim plodom kako sam ja ocekivao (desavalo mi se da se "pomesaju" informacije o pozivima). E sad, da li je to zbog problema sa centralom, ili zbog toga sto sam ja to lose napisao... ne znam... Uglavnom, ovaj "direktni" nacin sljaka, evo, vec godinama...

PS.
Vodi racuna i o jos jednoj "sitnici": PHP koncept je "otvori konekciju", "uradi sta imas", "zatvori konekciju"! Tesko da ce ti proraditi i sa sve extenzijama ako "projektujes" po principu: "Otvori konekciju -> CEKAJ DA SE NESTO DESI -> uradi sta imas sa tim -> GOTO na Cekaj"...

PPS.
E, da... Moras i da na nivou OS-a nastelujes com port T A C N O onako kako pise u specifikaciji centrale (brzina, parnost, etc...), inace... nece sljakati kako treba...
http://noctua4u.blogspot.com
http://moourl.com/shfb0
..:: Aquila non captat muscas ::..
 
Odgovor na temu

mika
NBG-ML

Član broj: 55
Poruke: 640
*.adsl-2.sezampro.yu.



+1 Profil

icon Re: serijski port i PHP...07.09.2007. u 20:16 - pre 202 meseci
Citat:
Kod panasonika je princip rada bio takav da, onog trenutka kad neko spusti slusalicu, centrala posalje na COM port, SPACE separated, podatke tom pozivu (Lokal, linija, pozvani broj, duzina razgovora, vreme poziva i internu oznaku prebacivanja linija).


Tako funkcionisu sve centrale, dakle salju u ASCII formatu, space separated, odredjene kodove. Postoje razliciti standardi, ja bih prvo odradio za najkoriscenije - CIL2, CIL3 i CIL4.

Citat:
Kao sto sam reako, ja sam to socinio sa 3 perl skripta. Jedan koji se ponasa kao demon i koji slusa COM port non-stop. Cim se nesto pojavi na njemu, zapise prvo u fajl.
Drugi skript se periodicno pokretao (na 5 minuta) i citao je (ako postoji) taj fajl i iz njega upisivao u bazu podatke.
Treci skript je sluzio za slanje komandi centrali.


Tako sam i ja zamislio da mi radi moj skript.

Citat:
Nisam imao prilike da radim sa nekim drugim centralama (bilo panasonik, bilo neke druge) pa nisam siguran da li je to generalni obicaj kod svih centrala ili je ova nasa za koju smo radili bila malko sj***na


Sve centrale ovako rade

Citat:
Takodje, pokusavao sam i sa baferom, ali mi to nije bas urodilo onakvim plodom kako sam ja ocekivao (desavalo mi se da se "pomesaju" informacije o pozivima). E sad, da li je to zbog problema sa centralom, ili zbog toga sto sam ja to lose napisao... ne znam... Uglavnom, ovaj "direktni" nacin sljaka, evo, vec godinama...

PS.
Vodi racuna i o jos jednoj "sitnici": PHP koncept je "otvori konekciju", "uradi sta imas", "zatvori konekciju"! Tesko da ce ti proraditi i sa sve extenzijama ako "projektujes" po principu: "Otvori konekciju -> CEKAJ DA SE NESTO DESI -> uradi sta imas sa tim -> GOTO na Cekaj"...


Postoji jedan buffer uredjaj koji je projektovan da prihvata signale sa centrale i cuva ih u svojoj internoj memoriji... Moze da sacuva do 50.000 slogova... E sad, fora je u tome, da ja mogu njemu iz PHP-a periodicno da posaljem komandu za prijem svih slogova (dakle, ne mora PHP da slusa na portu stalno, vec samo kada treba), i onda koncept "Otvori konekciju->Posalji komandu bufferu da on tebi posalje podatke->snimi te podatke u fajl/bazu/wherever->zatvori konekciju". Prilicno lako moze na vise nacina da se ostvari

Pozdrav, hvala na ovome sto si napisao, ako imas jos nesto sto je znacajno, napisi.

Mika
Bolje 100 godina biti milioner nego nedelju dana siromašak
(c) Alan ford
 
Odgovor na temu

[es] :: PHP :: serijski port i PHP...

[ Pregleda: 2679 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.