Controlando puertos paralelos a través de la Web (ePanorama)

Sección dedicada a imágenes de circuitos, diagramas que no requieren explicación previa, Proyectos sencillos.
Area para desarrollo de proyectos, colaboración de toda la comunidad en proyectos. Solución de dudas y aportes.

No publicar manuales, no publicar temas ajenos a los proyectos. de ser necesario, hacer indicación con enlace entre etiquetas CODE
Avatar de Usuario
Enigma
Administrador del Sitio
Administrador del Sitio
Mensajes: 1268
Registrado: 20 Oct 2013, 16:26
Genero: Mujer
Profesion: Webmaster CEO SEO
Ubicacion: Matrix
Navegador: Chrome
Contactar:

Controlando puertos paralelos a través de la Web (ePanorama)

Mensaje sin leer por Enigma » 08 Mar 2015, 14:09

Controlando puertos paralelos a través de la Web (rescatado de ePanorama.net)

Es posible construir un sistema que le permita controlar las clavijas del puerto paralelo a través de la red. Para hacer esto, necesita las siguientes partes en su sistema Linux:
Un servidor Web:
  • Apache es el más usado, pero también se puede usar Boa.
  • Las páginas Web de control de la interfaz (estas tiene que hacerlas usted mismo, posiblemente algunos formularios con botones de control)
  • Un script CGI-BIN de control de puertos paralelos (tiene que escribirlo usted mismo)
  • Un programa de control que controle los puertos paralelos (el programa Linux de control descrito más arriba sirve para este uso)
Normalmente, el control vía Web de dispositivo de entrada/salida funciona de la forma siguiente:

1. Los usuarios descargan una página Web de donde se encuentra la página Web (el navegador lo hace automáticamente con la dirección Web que se le da)
2. El navegador del usuario muestra la página descargada que tiene el control necesario (formularios, botones, etc.)
3. El usuario presiona el botón de control o el botón enviar de un formulario
4. La operación del usuario en el paso 3 provoca que el navegador envíe la información (que se ha pulsado la tecla o los datos que contiene el formulario) a la dirección Web donde este botón/formulario se encuentra (puede ser el mismo servidor u otro que el que se encuentra el formulario)
5. Un servidor Web en la dirección dada recibe los datos del navegador del usuario, comprueba que sean correctos y los envía con algún tipo de comando al hardware para llevar a cabo lo que sea requerido (esto podría ser una llamada al driver del hardware o señalando a alguna otra aplicación corriendo en algún sitio accesible por servidor Web)

La Web basada en la construcción de la interfaz se puede dividir en dos partes bien diferenciadas: la parte de la interfaz Web (obtener el formulario usado con la información de control al ordenador) y el control del hardware en sí mismo.

La primera parte incluirá el servidor Web, el control de las páginas Web y los scripts necesarios para recuperar los controles del usuario. Hay una gran selección de lenguajes de scripting que se pueden usar. Los más atractivos para este uso podrán ser Perl, PHP y UNIX Shell script (bash).

Todos estos se pueden usar para leer los controles del usuario. La segunda parte normalmente requiere ser escrita en el lenguaje C, porque la mayoría de lenguajes de scripting carecen de las opciones necesarias para el control directo de hardware.

Para esto el lenguaje C es generalmente la mejor opción. La idea es que el control de hardware de nivel bajo se hace con un programa C simple y después el script (en la parte 1) envía los controles a este programa C de alguna forma (en el caso más simple, ejecuta este programa C con los argumentos de línea de comandos correctos cada vez que el hardware necesita ser controlado).

Ejemplo simple de control CGI-BIN
En este ejemplo la idea es que usted hace una página Web que tiene los botones de control con los controles que usted quiere hacer. Los botones de control se establecen de forma que al presionarlos, el navegador del usuario envía el contenido del formulario a un script CGI-BIN. Esta llamada provoca que el servidor Web ejecute el script CGI-BIN especificado. El script CGI-BIN está escrito para llevar a cabo el control necesario, normalmente llamando al programa de control de puertos paralelos con los parámetros correctos.

Esta es la idea básica sobre cómo hacerlo.
Aquí hay un ejemplo simple de una aplicación de control Web. Haga lo siguiente para hacerla funcionar:

1. Asegúrese que su sistema está ejecutando un servidor Web Apache.
La mayoría de las distribuciones Linux modernas ya vienen con este software de servidor Web. Asegúrese que tiene instalado Apache. Los pasos siguientes requieren que usted está corriendo un sistema Linux con un servidor Apache correctamente configurado (la configuración por defecto de Red Hat 7.2 es válida).

Considero que las páginas relacionadas al material que estamos tratando se encuentran en el directorio /var/www/ (este es el caso típico en los sistemas Linux Red Hat, en otras distribuciones esta ruta puede ser diferente, cambie los ejemplos como sea necesario si este es su caso).

Asegúrese que su servidor Web se está ejecutando. Si no lo está, lo puede iniciar con el siguiente comando (en la mayoría de sistemas necesitará ser root para hacer esto):

Código: Seleccionar todo

/sbin/service httpd start
Asegúrese que puede acceder a su ordenador Linux con su navegador Web (corriendo en el mismo ordenador) cuando Apache está corriendo el ordenador Linux.

2. Compile el código fuente
Compile el código fuente lptout.c al programa binario lptout, copie el programa a su directorio /usr/sbin/ y establezca los derechos necesarios para que siempre se ejecute como root. Puede hacer esto identificándose como root y ejecutando los comandos siguientes:

Código: Seleccionar todo

gcc -O lptout.c -o lptout.c
cp lptout /usr/sbin/lptout
chmod +s /usr/sbin/lptout
Esto deberá ser todo. Ahora todo el mundo deberá ser capaz de ejecutar el comando. Compruebe esto identificándose como algún otro usuario y ejecutando el comando:

Código: Seleccionar todo

/usr/sbin/lptout 0xff
Esto deberá encender todas las clavijas de datos del puerto paralelo LPT1 y establecerlas a alto (3.5V). Ejecutando el comando:

Código: Seleccionar todo

/usr/sbin/lptout 0xff
Deberá establecer todas las clavijas de salida a bajo (0.1V). Asegúrese que todo esto funciona sin problemas. Compruebe que los puertos realmente sean controlados por este programa con un multímetro o el circuito LED descrito en el principio de este documento.

3. Instale los scripts CGI para el control de los puertos paralelos.
Los scripts requeridos son lpton.cgi y lptoff.cgi

Código fuente lpton.cgi

Código: Seleccionar todo

#!/bin/sh
# Parallel port CGI script
#
# Send HTTP headers
echo Content-type: text/html;charset=ISO-8859
echo
# Do the controlling
/usr/sbin/lptout 0xff
# Output web page data
echo "<html><head></head><body>"
echo "Parallel port controlled<br>"
echo "<a href=\"/lpt/index.html\">Go back to controlling page</a>"
echo "</body></html>"
#

Código fuente lptoff.cgi

Código: Seleccionar todo

#!/bin/sh
# Parallel port CGI script
#
# Send HTTP headers
echo Content-type: text/html;charset=ISO-8859
echo
# Do the controlling
/usr/sbin/lptout 0x00
# Output web page data
echo "<html><head></head><body>"
echo "Parallel port controlled<br>"
echo "<a href=\"/lpt/index.html\">Go back to controlling page</a>"
echo "</body></html>"
#
Haga clic en los nombres de los archivos para ver su codigo fuente, haga uso de ver código fuente si lo necesita, guarde estos archivos en su sistema con los nombres lpton.cgi y lptoff.cgi.

A continuación, copie estos archivos al directorio CGI-BIN de su servidor Web y dé los los permisos de ejecución necesarios. Identifáquese como root y ejecute los comandos siguientes en el directorio donde haya guardado lpton.cgi y lptoff.cgi:

Código: Seleccionar todo

cp lpton.cgi /var/www/cgi-bin/lpton.cgi
cp lptoff.cgi /var/www/cgi-bin/lptoff.cgi
chmod go+rx /var/www/cgi-bin/lpton.cgi
chmod go+rx /var/www/cgi-bin/lptoff.cgi
4. Instale la pagina Web de control necesaria. En este ejemplo:

Código: Seleccionar todo

http://elnombredesuservidor/lpt/index.html
Código fuente Index.html

Código: Seleccionar todo

<html>
<head>
<title>Parallel port controlling test page</title>
</head>
<body>
<h1>Parallel port controlling test page</h1>
<p>
<form action="/cgi-bin/lpton.cgi" method="get" name="on">
<input type=submit value="Set all data pins high">
</form>
<p>
<form action="/cgi-bin/lptoff.cgi" method="get" name="off">
<input type=submit value="Set all data pins low">
</form>
<p>
</body>
</html>
En donde "elnombredesuservidor" significa el nombre o dirección IP del ordenador Linux en el que está ejecutando la aplicación. Necesita el código fuente de la página Web index.html (haga clic sobre el nombre del archivo para ver el código fuente, use ver código fuente si es necesario, guarde el archivo a su ordenador con el nombre index.html). Para crear el directorio Web para el control del puerto paralelo haga lo siguiente una vez identificado como root:

Código: Seleccionar todo

cd /var/www/html/
mkdir lpt
chmod go+rx lpt
Ahora vaya al directorio donde tiene el archivo index.html y cópielo al directorio creado con los siguientes comando (siguiendo identificado como root)

Código: Seleccionar todo

cp index.html /var/www/html/lpt/index.html
chmod go+r /var/www/html/lpt/index.html
5. Compruebe que puede acceder a la página de control en su servidor Linux.
Dirija su navegador Web a la dirección

Código: Seleccionar todo

http://elnombredesuservidor/lpt/index.html
En donde elnombredesuservidor significa el nombre o la dirección IP de su ordenador Linux. Deberáa ver una página de control parecida a la siguiente:

Imagen

6. Pruebe a hacer clic en los botones de control
Pruebe a hacer clic en los botones de control y compruebe que las clavijas de salida del puerto paralelo cambian de estado como indican los botones.

Puede encontrar todos los archivos necesarios para este proyecto Web simple en un archivo tar llamado weblpt.tar. Simplemente descárguelo en su sistema Linux y descomprímalo a un directorio adecuado con el comando

Código: Seleccionar todo

tar xvf weblpt.tar
Ahora tiene todos los archivos necesarios. Simplemente siga los pasos requeridos con cada uno de ellos y deberá tener su aplicación Web de control funcionando correctamente.

NOTA:
Esto es un ejemplo simple de control de puertos paralelos por la Web. Este ejemplo probablemente no sea la forma más conveniente o eficiente de hacer el control, pero ha funcionado para mí. Al hacer electrónica que será controlada a través de la Web, siempre hay que tener en cuenta la seguridad de la información relacionada, eso significa que hay que asegurarse que solo las personas que deberán pueden hacer el control y que nadie puede piratear fácilmente el sistema.

Este método tiene riesgos potenciales de seguridad porque el programa lptout siempre se ejecuta con privilegios de root (si alguien consigue hacerlo colgarse de alguna manera, puede causar problemas potenciales de seguridad). Para hacer todos los pasos mencionados en este documento necesita estar identificado como root en el sistema. Cuando uno está identificado como root puede hacer mucho daño a su sistema si comete errores estúpidos.

Control de puertos paralelos usando PHP
Aquí hay otro ejemplo de código fuente para el control de puertos paralelos. Este se me envió por Andrew Nickson para que lo incluyera en esta página Web. Se trata de un script php que permite la escritura de data en cualquier puerto paralelo. Requiere tener un servir Web Apache y una versión decente de PHP instalada en Apache. Muchas distribuciones de Linux ya incluyen estas herramientas si las selecciona al instalar su sistema (si no, tendrá que instalarlas usted mismo).

Imagen

Hay dos archivos, uno es el mismo script php y el otro los datos del formulario usados para obtener los datos de entrada del usuario. Para que este script funcione necesita tener en su ordenador el mismo programa lptout del que se ha hablado en los otros ejemplos instalado en /usr/sbin/ con los derechos necesarios para que el servidor Web lo pueda ejecutar.

Aquí puede ver el código fuente de lptout.php / parallel.php:

Código: Seleccionar todo

<?php
/* Program: lptout.php
 * Desc:    Toma los datos del formulario y los envía al programa de control del puerto paralelo (lptout).
 *			Los valores deben ser introducidos en hex (0 - ff)
 *          Requiere que lptout se encuentre en /usr/sbin/
 *          
 *	Por Andrew Nickson (www.re-mastered.co.uk)
 */

?>

<?php

  switch (@$_GET['do'])                               
  {

    case "update":
	{
		echo ("<center><br>Data sent to parallel port (0x$fvalue)</br></center>");

		exec ("/usr/sbin/lptout 0x$fvalue");
		include("parallel.inc");
	}
	break;             

    default:                                             
        include("parallel.inc");
  }
?>
Aquí puede ver el código fuente del archivo parallel.inc file usado por el código fuente anterior. Este código fuente imprime el formulario que se muestra al usuario para el control del puerto paralelo.

<?php
/* Program: Parallel.inc
 * Desc:    Contiene los datos del formulario para el control del puerto paralelo
 *          Esto llamará a parallel.php.
 *         
 *	Por Andrew Nickson 2005 (www.re-mastered.co.uk)
 */
?>

<html>
<head><title>Controlador del Puerto Paralelo</title></head>
<body topmargin="0" leftmargin="0" marginheight="0"
      marginwidth="0">
         <center><form action="parallel.php?do=update" method="POST"> 
         <table border="0">
          <tr><td align=right><b>Value (HEX)</b></td>
             <td><input type="text" name="fvalue" 
                      size="5" maxsize="3">
             </td></tr>
                <br><input type="submit" name="Update" 
                           value="Actualizar">
               </td></tr>
         </table>
</body></html>
Control Web usando PHP y AJAX
La interfaz Web del software portcontrol es una interfaz Web moderna simple para el control de puertos paralelos. Este software está basado en software PHP corriendo en un servidor Linux y una aplicación cliente JavaScript corriendo en el navegador del usuario. De esta forma es posible obtener el estado de las clavijas de datos del puerto paralelo en la pantalla prácticamente a tiempo real y de forma bonita y flexible y fácil de controlar.

Por el lado del servidor encontramos un software de portcontrol constituido por unas pocas líneas de PHP. Portcontrol es un programa simple de control de puertos de entrada/salida para Linux de uso general. Este programa permite escribir y leer los puertos de entrada/salida suportados. Este programa permite escribir el valor especificado al puerto, leer un valor a una dirección entrada/salida dada e imprimirlo a la pantalla en diferentes formatos y la manipulación de los datos del puerto a nivel de bit.

Imagen

El archivo control.php es el que se encarga de la magia del control del puerto. Una vez cargado, el usuario obtiene una página Web y código JavaScript user end. Este código JavaScript pregunta periódicamente (una vez cada 5 segundos) el estado del puerto paralelo al servidor (llamada AJAX) y si este ha cambiado actualiza la pantalla. También gestiona los botones de control. Cada clic sobre un botón de control hace que el software de control llame al servidor para llevar a cabo la función deseada (llamada AJAX). Cuando el control se ha llevado a cabo, el servidor devuelve el estado actual del puerto (es impreso en la pantalla).

Cuando el software de control esta escrito de esta forma, funciona bastante bien y se siente prácticamente como si fuera una aplicación que esta controlando los puertos paralelos directamente (a diferencia de la típica aplicación Web que requiere recargar la página cada vez que hace algo).

A parte del propio script de control PHP, también he escrito otra versión del archivo control.php. Este archivo controlfile.php funciona prácticamente de la misma forma, pero en vez de controlar el puerto paralelo, escribe y lee el estado de un archivo (status.txt en el mismo directorio que se encuentra el script). Puede usarlo para testear fácilmente el sistema de control basado en AJAX/PHP desde cualquier parte (no requiere que el ordenador tenga un puerto paralelo real). La aplicación AJAX de testeo de control de puertos basada en un archivo se puede ver como el siguiente código fuente de aquí:

Código: Seleccionar todo

<html>
<head>
	<title>Port control</title>
	<script>
			
		// remote scripting library
		// (c) copyright 2005 modernmethod, inc
		var sajax_debug_mode = false;
		var sajax_request_type = "GET";
		
		function sajax_debug(text) {
			if (sajax_debug_mode)
				alert("RSD: " + text)
		}
 		function sajax_init_object() {
 			sajax_debug("sajax_init_object() called..")
 			
 			var A;
			try {
				A=new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					A=new ActiveXObject("Microsoft.XMLHTTP");
				} catch (oc) {
					A=null;
				}
			}
			if(!A && typeof XMLHttpRequest != "undefined")
				A = new XMLHttpRequest();
			if (!A)
				sajax_debug("Could not create connection object.");
			return A;
		}
		function sajax_do_call(func_name, args) {
			var i, x, n;
			var uri;
			var post_data;
			
			uri = "/circuits/portcontrol/controlfile.php";
			if (sajax_request_type == "GET") {
				if (uri.indexOf("?") == -1) 
					uri = uri + "?rs=" + escape(func_name);
				else
					uri = uri + "&rs=" + escape(func_name);
				for (i = 0; i < args.length-1; i++) 
					uri = uri + "&rsargs[]=" + escape(args[i]);
				uri = uri + "&rsrnd=" + new Date().getTime();
				post_data = null;
			} else {
				post_data = "rs=" + escape(func_name);
				for (i = 0; i < args.length-1; i++) 
					post_data = post_data + "&rsargs[]=" + escape(args[i]);
			}
			
			x = sajax_init_object();
			x.open(sajax_request_type, uri, true);
			if (sajax_request_type == "POST") {
				x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
				x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			}
			x.onreadystatechange = function() {
				if (x.readyState != 4) 
					return;
				sajax_debug("received " + x.responseText);
				
				var status;
				var data;
				status = x.responseText.charAt(0);
				data = x.responseText.substring(2);
				if (status == "-") 
					alert("Error: " + data);
				else  
					args[args.length-1](data);
			}
			x.send(post_data);
			sajax_debug(func_name + " uri = " + uri + "/post = " + post_data);
			sajax_debug(func_name + " waiting..");
			delete x;
		}
		
				
		// wrapper for portstatus		
		function x_portstatus() {
			sajax_do_call("portstatus",
				x_portstatus.arguments);
		}
		
				
		// wrapper for portcontrol		
		function x_portcontrol() {
			sajax_do_call("portcontrol",
				x_portcontrol.arguments);
		}
		
			
	function do_portstatus_cb(z) {
		// update status field in form
		document.getElementById("status").value = z;
	}
	
	function do_portstatus() {
		x_portstatus(do_portstatus_cb);
		setTimeout('do_portstatus();',5000); // executes the next data query in every n milliseconds
	}

	function do_portcontrol_cb(z) {
		// update status field in form
		document.getElementById("status").value = z;
        }
	
	function do_portcontrol(bit,value) {
		x_portcontrol(bit,value,do_portcontrol_cb);
	}

	</script>
	
</head>
<body>

<SCRIPT LANGUAGE="JavaScript">
<!--
do_portstatus();
// -->
</SCRIPT>

<P>

<H1>Port control</H1>
<P>

<input type="text" name="status" id="status" value="No status yet" size="60">

<P>

Bit 0: 
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(0,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(0,0); return false;">
<BR>
Bit 1:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(1,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(1,0); return false;">
<BR>
Bit 2:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(2,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(2,0); return false;">
<BR>
Bit 3:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(3,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(3,0); return false;">
<BR>
Bit 4:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(4,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(4,0); return false;">
<BR>
Bit 5:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(5,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(5,0); return false;">
<BR>
Bit 6:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(6,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(6,0); return false;">
<BR>
Bit 7:
<input type="button" name="check" value="Set"
		onclick="do_portcontrol(7,1); return false;">
<input type="button" name="check" value="Reset"
		onclick="do_portcontrol(7,0); return false;">
<BR>


</body>
</html>
El software de control de puertos con interfaz Web se encuentra disponible como paquete portcontrol.tar que incluye código fuente, instrucciones de compilación/instalación e instrucciones de uso. Para más detalles eche un vistazo al README:

Código: Seleccionar todo


 Port control software for Linux

  Version 0.3

  Copyright Tomi Engdahl 1996-2005

  

 Introduction

This software package provides access to PC computer hardware 
I/O ports under Linux operating system. 

This softare package is designed to run on Linux system that 
runs on normal PC hardware. The software has been tested to 
run nicely on Fedora Core 4 Linux distribution. 
You need GCC to compile the programs. 

This package provides the following tools:

lptout       simple program to control LPT1 printer port data pins
portcontrol  general use I/O port reading and writing application
control.php  AJAX/PHP based web interface for parallel port controlling

The software are provided with no guarantee of their correctness.
Use them at your own risk.


 Compiling

Run:
make install

 Installing

Log in as root.
Run:
make install 

The software is now installed to /usr/local/sbin/ directory
 
 Using lptout

The user has to have the root previledges to have access to the ports 
for the program to run. For this reason the the program is installed 
with SUID ROOT settings, meaning that every time the program is run 
it is automatically run at root previledges no matter who runs it. 
This program is designed to access LPT1 parallel port at I/O address 
0x378 (normal address for parallel port integrated to motherboard)

For example command
/usr/local/sbin/lptout 0xFF 
will turn all data pins in LPT1 port to high state (1).
Command
/usr/local/sbin/lptout 0x00 
will turn all data pins to to low state (0).


 Using portcontrol

portconrol is a simple general purpose I/O port control program for 
Linux. It allows you to write and read the supported I/O ports. 
The software allows writing specified value to port, reading 
value at given I/O address and printing it out to screen in 
different formats and bit-level manipulation of the port data.


Examples

/usr/local/sbin/portcontrol LPT1DATA read setbit 1 write 
Reads parallel port data, set bit D1 to 1 and writes value back
Effectively sets the LPT1 pin D1 in parallel port to logic 1

/usr/local/sbin/portcontrol LPT1DATA read resetbit
Reads parallel port data, set bit D1 to 0 and writes value back
Effectively sets the LPT1 pin D1 in parallel port to logic 0

/usr/local/sbin/portcontrol LPT1DATA setvalue 0xff write
Writes value 0xff (255 dec) to the parallel port
Effectively sets all LPT1 data pins to logic 1

/usr/local/sbin/portcontrol LPT1DATA read print bin
Reads the parallel port data pin states and prints 
the results as binary numbers to the screen (standard output).

/usr/local/sbin/portcontrol LPT1DATA read print bin
Reads the parallel port data pin states and prints
the results as binary numbers to the screen (standard output).

/usr/local/sbin/portcontrol LPT1DATA read printbits 021
Reads the parallel port data pin states and prints
the states of bits D0, D2 and D1 in that order to the 
screen (standard output).



Supported port identifiers
   LPT1DATA         LPT1 port data lines controlling (0x378)
   LPT1STATUS       LPT1 printer status inputs register
   LPT1HANDSHAKE    LPT1 handstake output controlling 
   JOYSTICK         Joystick port reading (only reading makes sense)

Supported commands
  PRINT DEC       Read data, gives output as decimal number
  PRINT HEX       Read data, gives output as hexadecimal number
  PRINT BIN       Read data, gives output as binary number
  PRINTBITS bits  Reads the specified bits in the specified order (0..7)

  WRITE           Writes register value to port
  READ            Reads value from specified port to register

  SETVALUE value  Sets the given value to register
  AND value       Performs AND with given value and register
  OR value        Performs OR with given value and register
  XOR value       Performs XOR with given value and register
  SETBITS bits    Sets given bits to 1 in register 
  RESETBITS bits  Sets given bits to 0 in register
  SETBIT bits     same as SETBITS
  RESETBIT bits   same as RESETBITS 
  TOGGLEBITS bits Toggles specified bit values

value can be gives as decimal number or heaxadecimal starting with 0x
bits is a list of bit position identifiers from 0 to 7

Port names are ment to be written at high case. 
Commands at low case. 


  Using web interface

The web interface for controlling paralle port is simple 
modern web based interface for controlling parallel port. 
To make it you need to have the following parts in your system:
- Apache web server with PHP5 support working with it
- portcontrol software installed to the default install directory
- SAJAX Simple Ajax Toolkit by ModernMethod
- Modern web browser that supports JavaScript (IE6, Mozilla Firefox) 

Installing the web interface is simple. All you need is
to copy the control.php file to a suitable place
on your web directory you want it to be copy the Sajax.php 
file from the SAJAX package to the same directory where you 
have the control.php. 

Then just go to the URL where you have that control.php 
accessable. You should see status line plus a set 
of control buttons. The status bar shoudl automatically update 
every 5 seconds with the parallel port status and current 
time on the server computer. 
Pressing the buttons will change the parallel port bit states. 

Note that on some systems the PHP script might hot have 
enough rights to run the portconrol software. 
Check your access rights to make sure that rights are correct
(the system did not work on my Fedora Core 4 system when 
I had SELinux security enabled). 

SAJAX Simple Ajax Toolkit by ModernMethod can be downloaded from 
http://www.modernmethod.com/sajax/

NOTE: There is an another version of the control.php file available. 
This file controlfile.php work pretty much in the same way, but 
instead of controlling parallel port writes and reads the status 
from a file (status.txt in the same directory as the script is). 
It can be used to test the AJAX/PHP based control system.
Para usar el software también necesita descargar SAJAX Simple Ajax Toolkit by ModernMethod de

Código: Seleccionar todo

http://www.modernmethod.com/sajax/
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.



Dante
Mensajes: 1
Registrado: 13 Mar 2015, 19:24
Genero: Hombre
Profesion: Ingeniero Mecatronica
Ubicacion: Guadalajara
Navegador: Chrome
Contactar:

Re: Controlando puertos paralelos a través de la Web (ePanor

Mensaje sin leer por Dante » 13 Mar 2015, 19:46

Excelente post enigma, con ello, podemos implementar una etapa de alta potencia y poder encender una lámpara, algún electrodoméstico, etcétera...me gustaría que publicaras información acerca de los comandos AT, es un tema que me parece muy interesante que tiene infinidad de aplicaciones, incluso la misma función de controlar el puerto paralalelo, pero, con una terminal módem, por ejemplo, un celular o un módulo GSM.

Responder

Volver a “Proyectos y Circuitos Didacticos”