Ejemplo de programa básico para una lectora óptica

A continuación se presenta un ejemplo básico del código fuente de programación del formulario de la imagen de abajo a la derecha. Este es el tipo de código de programación que se almacena en los ficheros de extensión ".wjb". Este tipo de programación permite leer un sólo formulario, realizar una interpretación básica y directa de los campos de entrada y almacenar el resultado de la lectura en un fichero de texto o en un fichero CSV delimitado por comas para Excel de Microsoft. En el programa de lectura óptica JBLee (Comaof) son el tipo de ficheros que se emplea en la opción denominada Lectura TXT.

Al tratarse de un ejemplo simple la lectura se resuelve con varios campos del tipo denominado múltiples opciones [MO] y un campo del tipo denominado identificador horizontal [IH].

Los campos se han definido siguiendo la estructura del propio formulario OMR, esto es, de arriba hacia abajo y de izquierda a derecha. Pero esto se ha realizado así para facilitar la compresión de este código fuente de programa, no porque sea estrictamente necesario.

Ejemplo básico de programación de una lectora óptica

[CF]
  Anverso = 42
  Reverso = 0
  Autoreverse = N
  Parar si error = N
  Codigos de barra = 0

[SE]
  Sensibilidad = 25
  Discriminacion = 15

[MO]
  Nombre = "dni            "
  Parametros = 1 1 15 10 8 V 0 0 N 1
  Mascaras = "0123456789"

[MO]
  Nombre = "numero         "
  Parametros = 1 1 6 10 1 V 0 0 N 1
  Mascaras = "0123456789"

[MO]
  Nombre = "tipo           "
  Parametros = 1 11 26 11 20 H 0 1 N 1
  Mascaras = "ABCD"

[MO]
  Nombre = "grupo          "
  Parametros = 1 11 17 11 11 H 0 1 N 1
  Mascaras = "ABCD"

[MO]
  Nombre = "sec            "
  Parametros = 1 11 8 11 2 H 0 1 N 1
  Mascaras = "1234"

[IH]
  Parametros = 1 H 12
  Identificacion = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  "

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 37 42 33 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 29 42 25 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 21 42 17 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 13 42 9 H 0 0 N 1
  Mascaras = "ABCDE"

[MO]
  Nombre = "ítem           "
  Parametros = 1 13 5 42 1 H 0 0 N 1
  Mascaras = "ABCDE"

[FF]

Ejemplo de programa avanzado para una lectora óptica

A continuación se presenta un ejemplo avanzado del código fuente de programación de la lectura de modelos de formulario. Este es el tipo de código de programación que se almacena en los ficheros de extensión ".mlo". Este tipo de programación utiliza definiciones más básicas del tipo WJB (en el siguiente ejemplo puede verse como define el WJB que se emplea en la variable Formatos). Permite leer varios tipos de formularios, evaluar su contenido, corregir exámenes y test, ponderar respuestas, etc. y almacenar el resultado de la lectura en una base de datos. En el programa de lectura óptica son el tipo de ficheros que se emplea en la opción denominada JBLee Lectura de modelos (Comaof).

Ejemplo avanzado de programación de una lectora óptica

[MODELO]
Tipo=Examen monoplantilla
Lectura=Monohoja
Formatos=F:\Archivos\universidad\admision.wjb
DLL=
PuntuacionAprobado=5
NotaMaximaEscalaFinal=10
NotaAprobadoEscalaFinal=5
DecimalesEnSalida=3
Intervalos=10
Intervalos10=10
ListadosNombres=No
FicheroNombresListados=
DniPruebaListados=
DniListados=
NombreListados=
Ape1Listados=
Ape2Listados=


[CABECERA]
Nombre=CREDENCIAL
Comienzo=1
TotalCaracteres=7
GrabarCampo=Si
Alinear=No
RellenarConCeros=No
NoRepetido=Si
DigitoControl=Ninguno
SinDoblesMarcas=Si
Marcado=Si
MarcadoDesdePrimera=No
BuscarEnDB=No
Tabla=
Campo=
Rechazo=Si no existe
Limites=No
LimiteDesde=
LimiteHasta=
LimiteRechazo=Rechazar si esta fuera
ReemplazarSiBlancos=No
ReemplazarSiDobles=No
PosicionNuevoCampo=0
TeclearSiError=Si
ValidarCampoTecleado=Si
AccionEnlace=Ninguna
IndiceScan=No
GrabarImagenScan=No
NumeroImagenesScan=100
ConcatenarOrdenScan=No


[TEST]
Nombre=OPCIONES
Comienzo=8
TotalCaracteres=100
CaracteresXítem=1
SinDoblesMarcas=No
Marcado=No
Total=10
Acierto=1
Fallo=0.25
Doble=0
Blanco=0
PuntuacionAprobado=5
Obligatorio=No
Peso=0
TeclearSiError=No
ValidarCampoTecleado=Si
OpcionesPorRespuesta=4
TipoRespuesta=Alfabetico mayusculas
Intervalos=10
TestConAnulaciones=No
RespuestasPorítem=4
CaracteresPorPregunta=3
TipoRespuestaAnulacion=Alfabetico mayusculas

Hojas de LOPA para la programación de lectores ópticos OMR

Las lectoras ópticas clásicas, como por ejemplo, las lectoras DATASCAN Serie 5 o DATASCAN Serie 7, se programaban mediante formularios OMR. Un formato tradicional de este tipo de formularios de programación son las hojas LOPA II (LOngines PArameter, version 2).

Clásicamente las lectoras se programaban con hojas como LOPA

Actualmente están prácticamente en desuso, pero hay todavía en funcionamiento modelos de lectoras ópticas de marcas que, en algunos casos, necesitan ser programados de esta forma.

Desde OMRForms podemos proporcionar estas hojas de programación LOPA y también ofrecemos servicios de programación mediante este tipo de formularios.

El objetivo de este artículo es proporcionar una ayuda básica para el manejo de las hojas LOPA de programación, porque, si bien su uso es infrecuente, más infrecuente es la información disponible sobre ellas.

Las hojas de programación LOPA se introducen en la lectora óptica antes que los paquetes de formularios a leer. El objetivo de estas hojas es preparar, esto es, programar la lectora para que lea la estructura del formulario que se le introducirá a continuación. Estas hojas LOPA tienen una estructura fija, que la lectora conoce, y mediante marcas ópticas describe a la lectora los campos, las posiciones, los tipos de campo, etc. de los formularios que a continuación se le van a introducir.

CEPPU, Estimación del Potencial Psicológico de la Unidad

Por tanto, para programar una lectora mediante una hoja de LOPA, o bien ya se dispone de ella o bien hay que rellenarla conforme a la estructura del formulario que a continuación se va a leer. En la figura que ilustra este artículo se muestra una hoja de LOPA ya rellena, a modo de ejemplo, de forma que programa la lectora para la lectura del formulario CEPPU (Cuestionario para la Estimación del Potencial Psicológico de la Unidad del Ejército de Tierra).

Una vez que se dispone de una hoja de LOPA ya rellena el procedimiento a seguir, por ejemplo, con una DATASCAN Serie 7, es el siguiente:

  1. Conectamos la lectora óptica al computador a través del puerto serie.
  2. Abrimos un hyperterminal en el computador con las siguientes características a 9600 baudios, no parity, 8 bits y 1 stop bit por el puerto COM al que esté conectada la lectora óptica. Si no se hace así, la lectora mostrará el error [9081] en el display al cargar la hoja de LOPA y no detectará el pin DTR activado por el hyperterminal.
  3. Encendemos la lectora óptica, que tras el test inicial pasará de mostrar el código [0000] a mostrar el código [__01] en su display.
  4. Introducimos la hoja de LOPA rellena como la del ejemplo de este artículo, para cargar la definición del formulario que se va a leer, en este ejemplo se trata de formularios del modelo CEPPU, y pulsamos el interruptor iluminado en verde para que la lectora alimente la hoja. La lectora deberá mostrar el código [__12] en su display, indicando que esta lista para leer formularios.
  5. Ponemos varios formularios rellenos y volvemos a pulsar el interruptor iluminado en verde para que la lectora los alimente. La lectora leerá los formularios y transmitirá, mostrando el código [__18] en su Display, al hyperterminal un registro por cada formulario, volviendo a mostrar el código [__12] en su display tras cada formulario leído y transmitido.
La lectora está programada mediante hojas de LOPA

Una vez que la lectora está programada mediante hojas de LOPA, y cuando comprobamos que lee bien los formularios, podemos guardar la definición de la hoja LOPA en el computador, para no tener que cargar la hoja de LOPA cada vez que encendemos la lectora óptica.

Para guardar la programación en el computador, salimos del hyperterminal para dejar libre el puerto serie (COM1 o COM2) y usamos la opción Guardar LOPA del programa Lanzador para guardar un fichero con el nombre que se desee, en el caso práctico que estamos utilizando de ejemplo, con el formulario CEPPU y una lectora DATASCAN Serie 7, podría ser "ceppu.se7" o similar.

El hyperterminal para dejar libre el puerto serie COM1 o COM2

Para utilizar una programación de LOPA guardada en el computador podemos apagar y volver a encender la lectora, para empezar todo el proceso de cero. Cuando la lectora muestre el código [__01] en su display, podemos usar la opción de Lectura a TXT del Lanzador, comprobando que:

  • en Modelo de lectora aparece la que se esté usando, en este ejemplo, una DATASCAN Serie 7 y .
  • en Ficheros de formato elegimos con el botón [...] el Tipo: Ficheros de LOPA (*.se5, *.se7) y el Nombre: que le hemos dado, en este ejemplo, "ceppu.se7".

Con lo anterior ya podemos leer, mediante el programa JBDef, a un fichero de texto, tal y como se describe en el artículo leer formularios con JBLee y sacar los resultados a Excel.

Índices disponibles en OMRForms.es

En color naranja, con fondo negro, el logotipo de OMRForms.es

Índice de los artículos principales sobre OMR

En color magenta, con fondo negro, el logotipo de OMRForms.es Detalle de una matriz de celdas de un formulario de para la captura óptica de datos