Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 

Citire port COM1 cu PHP

- - - - -
  • Please log in to reply
13 replies to this topic

#1
Parameter

Parameter

    Junior Member

  • Grup: Members
  • Posts: 44
  • Înscris: 04.11.2005
Am un cititor de carduri conectat la un calculator pe portul COM1.

As vrea sa instalez PHP pe acel calculator si sa fac un script care sa-mi trimita data, ora si codul cardului intr-o baza de date MySQL.

Problema este ca nu stiu cum sa ascult portul COM1.

Am o carte groasa de PHP pe masa si nu gasesc nimic despre citirea porturilor.

Am presimtirea ca nu se poate cu PHP.

Am vazut undeva (pe forum) un script Java care ar face citirea portului COM1 dar parea sa dea eroare.

Oricum eu nu ma pricep la JAVA (inca).

Va rog sa-mi spuneti daca se poate citi un port COM1 cu PHP, iar daca da dati-mi macar un indiciu de unde sa incep sapaturile.

#2
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,570
  • Înscris: 30.07.2003
Poti face o extensie in C pentru PHP. Sau lua una gata scrisa de altii (am luat la intamplare): https://github.com/Xowap/PHP-Serial

Edited by neagu_laurentiu, 01 September 2014 - 08:43.


#3
puya4ever

puya4ever

    Active Member

  • Grup: Members
  • Posts: 1,987
  • Înscris: 21.12.2006

View PostParameter, on 01 septembrie 2014 - 08:37, said:

Am un cititor de carduri conectat la un calculator pe portul COM1.

As vrea sa instalez PHP pe acel calculator si sa fac un script care sa-mi trimita data, ora si codul cardului intr-o baza de date MySQL.

Problema este ca nu stiu cum sa ascult portul COM1.

Am o carte groasa de PHP pe masa si nu gasesc nimic despre citirea porturilor.

Am presimtirea ca nu se poate cu PHP.

Am vazut undeva (pe forum) un script Java care ar face citirea portului COM1 dar parea sa dea eroare.

Oricum eu nu ma pricep la JAVA (inca).

Va rog sa-mi spuneti daca se poate citi un port COM1 cu PHP, iar daca da dati-mi macar un indiciu de unde sa incep sapaturile.
PHP mai mult ca sigur nu e limbajul potrivit pentru asta. Daca vrei scripting, incearca python.

#4
Parameter

Parameter

    Junior Member

  • Grup: Members
  • Posts: 44
  • Înscris: 04.11.2005
Am incercat PHP-Serial si am constatat ca nu functioneaza pe windows (dupa sute de teste si modificari in script). Aparent pot modifica setarile portului (Baud rate, parity, etc) dar nu primesc nici un raspuns util (primesc raspuns null mereu).

Problema cu PHP este ca nu asculta portul permanent ci doar il intreaba din cand in cand. De aceea am ajuns la concluzia ca PHP nu este potrivit pentru abordarea acestui proiect.

Am gasit pe net un script Java care initial avea erori si nu citea corect portul dar, ulterior, dupa zeci de modificari si incercari a inceput sa functioneze.

Practic imi asculta portul COM1 permanent iar cand dau cu cardul imi afiseaza datele de intrare.

Problema era ca datele de intrare erau formate din 9 grupe de cifre care initial nu aveau nici un sens pentru mine pentru ca nu semanau deloc cu seria cardului citit.

Am afla ulterior ce semnifica fiecare grup si am reusit sa calculez seria corecta a cardului (era compactata).

Acum am un script Java cu care pot sa citesc portul COM1 si imi intoarce ID-ul cititorului, si seria cardului. Mai trebuie doar sa aflu cum sa imping datele in MySQL.

Cand voi reusi sa fac si salvarea in MySQL voi afisa aici si scriptul (ca sa se bucure si altii).

Intre timp rog moderatorii sa se gandeasca daca acest topic nu ar trebui mutat in aria JAVA.

#5
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostParameter, on 15 septembrie 2014 - 09:55, said:

Am incercat PHP-Serial si am constatat ca nu functioneaza pe windows (dupa sute de teste si modificari in script). Aparent pot modifica setarile portului (Baud rate, parity, etc) dar nu primesc nici un raspuns util (primesc raspuns null mereu).

Problema cu PHP este ca nu asculta portul permanent ci doar il intreaba din cand in cand. De aceea am ajuns la concluzia ca PHP nu este potrivit pentru abordarea acestui proiect.

Am gasit pe net un script Java care initial avea erori si nu citea corect portul dar, ulterior, dupa zeci de modificari si incercari a inceput sa functioneze.

Practic imi asculta portul COM1 permanent iar cand dau cu cardul imi afiseaza datele de intrare.

Problema era ca datele de intrare erau formate din 9 grupe de cifre care initial nu aveau nici un sens pentru mine pentru ca nu semanau deloc cu seria cardului citit.

Am afla ulterior ce semnifica fiecare grup si am reusit sa calculez seria corecta a cardului (era compactata).

Acum am un script Java cu care pot sa citesc portul COM1 si imi intoarce ID-ul cititorului, si seria cardului. Mai trebuie doar sa aflu cum sa imping datele in MySQL.

Cand voi reusi sa fac si salvarea in MySQL voi afisa aici si scriptul (ca sa se bucure si altii).

Intre timp rog moderatorii sa se gandeasca daca acest topic nu ar trebui mutat in aria JAVA.

Nu ar trebui mutat. Poate altii vor avea aceeasi problema in PHP, si acest topic asa cum este el acum, ii va opri din a-si pierde timpul.

Nota: eu as fi scris o extensie in C pentru PHP care ar fi rezolvat problema. De putut se poate.

Deci daca ai o problema cu noua abordare in Java, deschide un nou topic cu descrierea problemei... In java. Nu posta aici cod Java.

Succes.

#6
andronic312

andronic312

    Member

  • Grup: Members
  • Posts: 902
  • Înscris: 16.01.2009
Si eu m-am lovit de o problema asemanatoare(doar pentru windows)

http://batchloaf.wor...com/serialsend/

Si am folosit ceva de genul( cu tot cu optiuni)
<?php

exec("SerialSend.exe /baudrate $baudrate /devnum $devnum $data", $outp, $res);



P.S. nu m-am gandit la securitate deoarece e doar o mica unealta pentru o persoana.

Edited by andronic312, 16 September 2014 - 11:21.


#7
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postandronic312, on 16 septembrie 2014 - 11:21, said:

Si eu m-am lovit de o problema asemanatoare(doar pentru windows)
E complicat deoarece e pentru windows. In Linux ar fi fost simplu: citeai dintr-un fisier.

#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Si sub Windows citesti la fel de usor din fisier: http://msdn.microsof...y/ms810467.aspx

#9
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
Greu fara fopen() - cu care se putea doar in PHP.

#10
andronic312

andronic312

    Member

  • Grup: Members
  • Posts: 902
  • Înscris: 16.01.2009

View PostOriginalCopy, on 16 septembrie 2014 - 19:53, said:

E complicat deoarece e pentru windows. In Linux ar fi fost simplu: citeai dintr-un fisier.

Stai ca am fost putin neatent, cu SerialSend se scrie/trimite pe portul com. In fine, poate va folosi cuiva.

#11
Parameter

Parameter

    Junior Member

  • Grup: Members
  • Posts: 44
  • Înscris: 04.11.2005
Am primit warning de OFF-TOPIC de la OriginalCopy pentru ca am postat solutia in JAVA la o problema pe care initial am vrut sa o abordez in PHP.
In general sunt bine intentionat si fiind prima data cand primesc warning am o senzatie neplacuta si o nemultumire.

Promisesem sa afisez solutia completa pe forum si ma straduisem sa scriu o multime de indicatii printre care si cum se intaleaza JAVA si modulele de JAVA necesare pentru ca aplicatia sa functioneze. Din pacate acestea au fost sterse de moderator.

Am spus ca in general sunt bine intentionat si in consecinta ar trebui sa deschid un nou topic in aria JAVA in care sa descriu problema si solutia numai ca... acum sunt un pic dezamagit si nici nu mai am la dispozitie jumatate de ora necesara sa compun toata solutia.

Pacat, rezolvasem o problema si... mi-a taiat entuziasmul.

Edited by Parameter, 17 September 2014 - 07:43.


#12
byteworks

byteworks

    Member

  • Grup: Members
  • Posts: 864
  • Înscris: 04.04.2003
Extensie PHP pentru portul serial, functionala 100% in Windows.

#13
Parameter

Parameter

    Junior Member

  • Grup: Members
  • Posts: 44
  • Înscris: 04.11.2005

View Postbyteworks, on 17 septembrie 2014 - 08:34, said:


Extensia asta este putin TRIAL.
Daca vrei fara DELAY trebuie sa dai click pe BUY.

#14
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Intr-un fel ii inteleg.
Cum nimeni nu se apuca sa citeasca portul serial din PHP sub Windows, decat daca nu stie altceva mai potrivit, profita si ei.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate