2010-03-22 23 views
16

Me preguntaba si puedo usar PHP para controlar un hardware externo conectado con el puerto paralelo o USB. alguna idea o recurso?¿Puedo controlar hardware a través de PHP Language?

+0

en qué plataforma? ¿Puedes ser un poco más específico sobre qué tipo de hardware? –

+0

¿Conectado a qué computadora? Servidor o cliente? –

+0

@Pekka un hardware simple, consideremos una lámpara conectada con un puerto paralelo. – Waseem

Respuesta

0

Tiene que escribir un programa que puede llamar a través de llamadas al sistema. El código PHP no puede acceder a su hardware directamente.

+0

No completamente. Existen extensiones solo para Windows para acceder a impresoras e (indirectamente) hardware a través del COM de Windows. Aún así, generalmente es cierto. –

+0

@Pekka - AFAIK, todos funcionan en dispositivos de impresora virtuales, no en puertos físicos. – symcbean

+0

@symcbean ah, está bien. –

3

Es posible que desee consultar php exec. PHP no permite el acceso directo al hardware a través de la API, necesita llamar a subprogramas para hacerlo.

+1

No hay nada intrínseco para evitar que php acceda al hardware; de ​​hecho, si los permisos lo permiten, puede manipular la asignación en el sistema de archivos sin extensiones/códigos adicionales. p.ej. $ of = fopen ('/ dev/lp0', 'w'); Sin embargo, una gran cantidad depende del sistema operativo y del controlador del dispositivo en cuanto a lo que es realmente posible. – symcbean

5

Esta es una clase útil para dispositivos adjuntas de serie en Linux: PHP Serial

puertos serie se utilizan a menudo para se comunican con los dispositivos periféricos, tales como: módems, terminales de punto de venta, impresoras especiales, etc. .

Esta clase se puede utilizar para comunicarse y configurar los periféricos conectados a un puerto serie en Linux, simplificando el desarrollo de aplicaciones que necesitan acceso a dispositivos serie.

0

Según mi comentario sobre la respuesta de Filip Ekberg .... tal vez.

Depende de su sistema operativo y del nivel de acceso requerido, ¿debería ser bidireccional? ¿Estás tratando de usar las líneas de control para otros propósitos que no sean el control de flujo? ¿Conoces los detalles del protocolo de comunicaciones?

C.

0

Si va a ejecutar esto en un sistema * NIX, es posible quiero mirar Plan 9 From User Space. Con estas bibliotecas, podría escribir un programa C que haga que su hardware aparezca como parte de su sistema de archivos, es decir, que lo monte como lo haría con una unidad USB, por ejemplo. Una vez montado, puede usar la función de PHP para manipular archivos para controlar su hardware.

Si no sabe qué es el Plan 9, esto puede no ser muy claro. Permítanme ilustrar con un ejemplo ficticio: su hardware es una placa electrónica que muestra el número de usuarios conectados a través de una pantalla de 7 segmentos. Se utiliza Plan 9 del espacio de usuario para escribir un programa que se monta 2 archivos:

/algún lugar/entrada

/algún lugar/salida

Escritura "42" (como lo haría con un archivo de texto) para ingresar hará que su tablero muestre 42. La salida de lectura por ejemplo le dirá por cuánto tiempo este número no cambió.

Esta puede no ser la forma más sencilla de lograr su objetivo, ya que aprender a utilizar las bibliotecas de Plan 9 no es muy fácil (aunque las personas en IRC son muy amables y serviciales), pero en mi opinión es la más elegante .

Con esto, también podría controlar su hardware desde cualquier otro idioma, ya que todos los idiomas que conozco pueden manipular archivos.

Cuestiones relacionadas