Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE CIENCIAS DE LA COMPUTACIN SISTEMA PARA EL MANEJO DE UN GRAFICADOR BAJO AMBIENTE UNIX TESIS PROFESIONAL QUE PARA OBTENER EL TTULO DE LICENCIADA EN CIENCIAS DE LA COMPUTACIN PRESENTA: MARIA DEL ROSARIO MUOZ HERNNDEZ
A MIS PADRES, HERMANAS Y HERMANOS: SEOR: JUAN MUOZ RUBIN SEORA: MARGARITA HERNNDEZ HUERTA MARGARITA, SILVIA, OCTAVIANO Y RUFINO.
ii
NDICE
PRLOGO ... v CAPTULO 1. OBJETIVOS
1.1 1.2 1.3 1.4
....................................1
OBJETIVO DEL PROYECTO DE TSIS 1 ANTECEDENTES GENERALES ...1 ANTECEDENTES ESPECFICOS .................2 DESARROLLO DE LA SOLUCIN ....2
CAPTULO 2.
2.1 2.2 2.2.1
MARCO TERICO
........4
CAPTULO3.
3.1 3.2
INTRODUCCIN . ..10 GRAFICADOR DMP-61 Y LA ESTACIN DE TRABAJO..10 COMPONENTES Y CARACTERSTICAS DEL GRAFICADOR DMP-61 .....10 FUNCIONAMIENTO DE LA PLUMA . ...10 MEDIO AMBIENTE DE OPERACIN . .....11 LENGUAJES DEL GRAFICADOR . ....11 ESTACIN DE TRABAJO(WORK STATION WS) . ...12 PUERTO SERIAL ............................................................................................14 BASE DE LA COMUNICACIN SERIAL .....15 COMUNICACIN ASNCRONA ....15 ACCESANDO EL PUERTO SERIAL ..17
iii
3.3.4 3.3.5
A. B. C.
GUA PARA EL USO DE COMANDOS HPGL .........62 CABLE RS-232 ..64 FUNCIONES DE LA BIBLIOTECA LHGP.H (COMPLEMENTO).....67
iv
D. E.
FUNCIONES Y COMANDOS DEL LENGUAJE HPGL ....87 CONJUNTO DE CARACTERES ASCII ....93
BIBLIOGRAFA ...94
PRLOGO
El trabajo que se presenta se realiz en el Instituto Nacional de Astrofsica, ptica y Electrnica (INAOE) para el grupo de Instrumentacin y Sistemas pticos Digitales del rea de ptica, el objetivo fue poner a disponibilidad de los usuarios de Estacin de Trabajo el graficador DMP-61, usando el sistema operativo UNIX de una manera fcil. Esta tesis consta de cinco captulos y cinco apndices. En los cuales se describen los antecedentes de los graficadores en general, las caractersticas principales de una configuracin serial, como programar desde una estacin de trabajo utilizando las herramientas del lenguaje C de UNIX aplicadas de una manera sencilla al lenguaje estndar HPGL del graficador. Para la obtencin de figuras lineales; se incluyen ejemplos. La mayora de estos ejemplos pueden ser, realizados por los lectores. Los apndices son un gran apoyo para la programacin del graficador DMP-61.
vi
Dr. Jos Javier Bez Rojas. Doctor en ptica; del Instituto Nacional de Astrofsica, ptica y Electrnica. Dr. Manuel Martn Ortiz. Doctor en Ciencias; de la Facultad de Ciencias de la Computacin de la Benemrita Universidad Autnoma de Puebla. Licenciada Ana Mara Zarate Rivera. Tcnico en investigacin; del Instituto Nacional de Astrofsica, ptica y Electrnica. Licenciada Mara de Lourdes Orta Corts. Tcnico en investigacin; del Instituto Nacional de Astrofsica, ptica y electrnica. Jos Pedro Hernndez Enrquez, del Departamento de Aplicacin de
Microcomputadoras, del ICUAP. Al Instituto Nacional de Astrofsica, ptica y Electrnica (INAOE). A la Facultad de Ciencias de la Computacin de la Benemrita Universidad Autnoma de Puebla (FCC-BUAP). Al Departamento de Aplicacin de Microcomputadoras, del Instituto de Ciencias de la Universidad Autnoma de Puebla (ICUAP).
vii
CAPTULO 1
OBJETIVOS
1.1
Crear una biblioteca para el lenguaje emulador HPGL que permita el uso del graficador DMP61, desde una estacin de trabajo, bajo el sistema UNIX.
El uso de los graficadores surge como una necesidad de obtener patrones con una mayor definicin de imagen a la que proporcionaban las impresoras de matriz de punto, posteriormente se adaptan ms soportes de pluma al graficador para darle color a la imagen, los primeros graficadores eran llamados de mesa ya que la hoja se colocaba sobre la base y solo se mova la pluma, el uso de estos equipos comenz a crecer en la industria y la ingeniera, por tal razn los fabricantes de estos equipos se dieron a la tarea de hacer un equipo de graficado donde se obtuviese una imagen con un mejor tamao, tratando de que fuera lo ms real posible, surgen as, los graficadores de tambor que son equipos que ocupan menos espacio para graficar, a diferencia de los anteriores ahora se mueve tanto la pluma como el papel. El tamao de una figura dependa de lo ancho del graficador, actualmente ya no es necesario para ciertos usos. Adems el trazo de cualquier punto sobre el papel requiere de una exactitud tal que se tuvieron que cambiar las plumas por cartuchos de tinta de colores, e implementar equipo fsico para enrollar el papel (o cualquier otro material p.ej.
tela). Las aplicaciones de un graficador tienen mayor demanda en la publicidad y diseo; que igualan a lo original en color e imagen y sobrepasan el tamao, por ejemplo: Dibujar anuncios espectaculares donde la imgen se grafica en un solo lienzo a lo largo, y despus realizar el corte y pegado de la misma en la estructura. Dibujar objetos y aparatos industriales con la mejor precisin posible. Dibujar planos ya no solo de una casa, sino de una rea ms grande como pueden ser un centro comercial, una INFONAVIT, la estructura de las calles de una ciudad completa, etc.
El grupo de instrumentacin cuenta con un graficador modelo Houston Instrument DMP-61, y el cual actualmente se usa bajo los sistemas operativos DOS y Windows con los paquetes de software: ORIGIN(anlisis de datos y tcnicas de graficado), SIGMA(simulacin de diseos pticos), COREL DRAW, entre otros.
1.4
DESARROLLO DE LA SOLUCIN
En principio, el desconocimiento del sistema operativo UNIX, as como del funcionamiento del graficador y la forma de comunicacin entre la estacin de trabajo y el graficador; fueron los
principales obstculos. Sin contar con que toda la informacin que se utiliz esta escrita en ingls. As la primera etapa fue: Leer, traducir y estudiar el manual del graficador DMP-61 y despus de algunas semanas utilizar el graficador de manera manual, para posteriormente conocer superficialmente el sistema de graficacin llamado ORIGIN, el cul es uno de los ms usuales para el manejo del graficador desde los sistemas operativos DOS y Windows. La siguiente etapa fue leer, traducir y estudiar: libros de texto del lenguaje C para UNIX, libros de sistemas operativos con plataforma UNIX, manuales de la estacin de trabajo, el manual en lnea de la misma estacin de trabajo y buscar en Internet. De esta manera comenzar a hacer uso del shell del Sistema Operativo con algunos comandos, lo ms importante, fue buscar referencias del puerto serial. La tercera etapa fue relacionar ambos equipos, a travs de su respectivo puerto serial, programar la interfase y programar el conjunto de funciones que hacen referencia a los comandos que sirven de interprete para el envo de datos en lenguaje HPGL al graficador. Revisar el funcionamiento de los comandos, realizando las pruebas respectivas de los comandos ms importantes.
CAPTULO 2
MARCO TERICO.
2.1
INTRODUCCIN
Un equipo de graficacin es utilizado en industrias, empresas textiles, empresas particulares, por arquitectos, ingenieros civiles, en ingeniera aplicada a la computacin, ingeniera de dominio elctrico entre otros. Los graficadores en su mayora utilizan lenguajes especficos, y accesorios originales creados por el mismo fabricante. Las constantes aplicaciones, fuerzan a los fabricantes a desarrollar mejores equipos y tratan de enfocar su bsqueda al realismo.
2.2
GRAFICADORES.
Cada equipo tiene accesorios nicos para el uso correspondiente.
Algunos de los sistemas para uso de graficadores son: autoCAD. Creado para diseo grfico por computadora. MicroGDS. Tiene una interfase de programacin aplicable (API), se desarrolla en lenguajes de Visual Basic y Visual C++. WinLINE. Trabaja con programas estandar de windows para generar salidas a graficadores de pluma, graficadores a chorro de tinta, cortadores de vinil y gravados a travs de interfase de sistemas de impresin de Microsoft.
4
Wx Plotter. Diseado para ser usado por meteorlogos. Algunos de los lenguajes de graficacin son: HPGL, DM/PL, HP-GL/2, PostScript (Lenguaje de programacin optimizado para imprimir grficos y texto). Algunas marcas de fabricantes. CalComp, Hewlett Packard, canon, encad, oc, texas Instruments, oyo instruments, Veritas.
203/406 dpi emulacin vertical En lnea/fuera de lnea Alimento de forma, ajusta alimento de forma Avance manual Corte manual /corte Automtico Reflejo de imagen Deteccin panel de control: Salida de papel Tope de formato Temperatura de cabeza automtica y realimentacin (feedback) Rapidez de trazo: Interfase: Opciones: Seleccin Manual 0.125" por segundo a 2" por segundo Versatec Greensheet Longline / Shortline SCSI Externa (interfase estndar de computadoras pequeas) Retencin de papel Memoria expandible a 32 MB Requerimientos de energa: Auto alcance de entrada: vigente: 110V AC / 60Hz-220V AC / 50Hz 13 Amperios Mximo y 110V AC 6 Amperios Mximo y 220V AC CARACTERISTICAS FISICAS Dimensiones: Alto: Fondo: Ancho: Peso: CARACTERISTICAS DE AMBIENTE Temperatura de Operacin: 32 - 95 F
6
Caractersticas Dispositivo de frenado electromagntico Eliminador electrosttico Dispositivo de presin hidrulica diferencial Dispositivo de seguridad Contador electrnico de yarda Dispositivo de calibracin Rodillo para pintar Anti-acumulador de pintura Dispositivo de pintado Cinta especial de pintado
Aplicaciones Tela de pao Manta, sarape Abrigos Piel sinttica Forro interior Felpa para sof
Graficador de tipo horizontal con barras de 3-6 niveles, con equipo mejorado con barra elevada Modelo CL-G 1800/2000/2200 Rodillo: 24
Caractersticas Equipo que cambia de un solo lado Equipado con tornillos que producen
Velocidad diferencial Rodillo peludo tirado por engranajes Eliminador esttico Partes que son cambiadas de fabricacin Sacos, abrigos Forro interior Piel sinttica
CAPTULO 3
CARACTERSTICAS DE LOS DISPOSITIVOS Y EL PUERTO
3.1
INTRODUCCIN.
El uso adecuado del graficador depende de las condiciones ambientales y del manejo.
La estacin de trabajo debe tener conectado el cable del puerto serial y/o tener los permisos necesarios asignados por un super-usuario.
3.2
El graficador tiene un tablero que refleja los errores con la combinacin de encendido fijo y/o intermitente de los leds de cuatro membranas principales ( fig. 1) .
Tiene una base de metal en la cual posar el material (papel bond, capa de pelcula limpia, papel escarchado, bond opaco) a ser trazado. Sensores que verifican la existencia y el tamao del material. Rodillos y palancas para presionar y manipular el movimiento del material de graficado. Tablero con botones o membranas que se manipulan dando origen a la ejecucin de funciones propias del equipo. Brazo de metal (esta sobre una barra del mismo material) que sostiene el portaplumas o el cartucho de tinta. Conector de puerto para el cable serial.
Cable para la interfase fsica de la computadora al dispositivo de graficado.
18 a 30 C, 0.2% de movimiento 0.010 pulgadas(0.254 mm), cualquiera es mayor. 1 a 32 pulgadas por segundo mximo 0.5 g , 1g, 2g. 0.001, 0.005, 0.1 mm, 0.025 mm
10
11
Las funciones listadas en el apndice C son completamente soportados por el graficador y operan exactamente tal y como estn escritos en el prrafo 4.5 del captulo 4. Los ejemplos se encuentran en el captulo 5.
3.2.5
La estacin de trabajo es un equipo de cmputo diseado usualmente para que ms de una persona a la vez (multiusuarios), reciba un alto nivel de funcionamiento, especialmente respecto a grficas, poder de procesamiento y habilidad de llevar acabo varias tareas al mismo tiempo (multitareas).
Fig.2 estacin de trabajo SPARCstation 20. La WS en la cul se realiz el trabajo (fig. 2), tiene las siguientes caractersticas: Equipo. Velocidad de reloj. Procesador. SPARCstation 20 32 Mb RAM, monitor Sun de 17. 50 Mega Hertz. RISC.
12
Sistema Operativo.
3.2.5.a
En las palabras del autor es ( A weak pun on Multics) el plural de Unices. Un sistema operativo de tiempo compartido interactivo inventado en 1969 por Ken Thompson antes de que le diera a los Laboratorios Bell el multi-proyecto, originalmente inicio practicando en una PDP-7. Dennis Ritchie, el inventor de C, es considerado como co-autor del sistema. El punto de regreso en la historia de Unix llega cuando fue re-implementado enteramente en C durante los aos 1972-1974, haciendo el primer Sistema Operativo fuente-portable. Unix subsecuentemente tuvo cambios y una expansin al ir de mano en mano por mucha gente tan diferente, resultando nicamente flexible y con un medio ambiente de desarrollo amigable. Para 1991, Unix llego a ser el sistema operativo multi-usuario de propsito general ms ampliamente usado en el mundo. El sistema operativo Unix o Unix-like incluye OSF, Versin 7, BSD, Unix USG, Xenix,Ultrix,Linux, y GNU.
3.2.5.b El proceso.
Tiempo compartido en el sistema UNIX. La nica Unidad Central de Proceso es un recurso que es compartido por todos los usuarios y procesosEl ncleo tambin crea la impresin de que cada proceso individual, dispone de la mquina completa, aun cuando pueda realmente controlar la mquina durante menos de un segundo cada vez. Prioridad. Generalmente los procesos tienen la misma prioridad. La prioridad de tiempo real permite finalmente al sistema UNIX ser utilizado en aplicaciones que demanden una respuesta rgida y rpida.
13
3.2.5.d Seguridad.
Si el administrador y los usuarios del sistema utilizan frecuentemente las rdenes ps, who, ls y otras rdenes de informacin del sistema, se familiarizarn con la actividad normal da a da de la mquina y estarn alerta al estado del sistema en todo momento. La proteccin de los datos frente a los otros usuarios. Los archivos del sistema de archivos tienen tres niveles de permiso: los de usuario individual, los de grupo al que el usuario pertenece y los de todos los dems usuarios de la mquina.
14
En modo asncrono la lnea de dato serial permanece en el estado mark hasta que un carcter es transmitido. Un bit de inicio precede cada carcter y es seguido inmediatamente por cada bit del carcter, un bit opcional de paridad, y uno o ms bits de stop. El bit start es siempre un space indicando a la computadora que un nuevo dato serial esta disponible. Los datos pueden ser enviados o recibidos en cualquier momento, de ah el nombre de asncrono. space High 0 +12V
(1)star bit (2)data bits (3)stop bit(s) Fig. 3.3 El dato no es transmitido.
mark
High 1 -12V
1 lgico
space (1)
s 1 1
0 1 0
(2)
stop
Low 0 +12V (3)
Bit de paridad opcional. Es una simple suma de bits de datos que indican si el dato contiene no un nmero par o impar de bits, con valor 1. Con paridad par. El bit de paridad es 0 si hay un nmero par de 1s en el carcter. Con paridad impar. El bit de paridad es 0 si hay un nmero impar de 1s en el dato. Es posible escuchar los trminos en ingles space parity, mark parity, y no parity.
16
Space parity. Significa que el bit de paridad es siempre 0, mientras que mark parity significa que el bit es siempre 1. no parity. Significa que el bit est presente o transmitido. bits de stop(parada), son los bits restantes. Puede haber 1,1.5, 2 bits de stop entre caracteres y siempre tienen el valor de 1. Los bits de stop tradicionalmente se usaron para dar tiempo a la computadora para procesar el carcter previo, pero ahora nicamente sirven para sincronizar la recepcin de los caracteres de entrada, de la computadora. Los formatos de datos asncronos son usualmente expresados como 8N1, 7E1, etctera. Esto se interpreta como 8 bits de datos, no paridad, 1 bit de parada y 7 bits de datos, paridad par, 1 bit de parada respectivamente.
Existen importantes consideraciones para la comunicacin serial . limite en la distancia aislamiento ptico y sobrecarga de tensin(surge supression) regresa a tierra (ground loops)
Sistema
Solaris/SunOS Linux Digital UNIX
Puerto 1
/dev/ttya /dev/ttys0 /dev/tty01
Puerto2
/dev/ttyb /dev/ttyS1 /dev/tty02
17
Cada puerto serial en un sistema UNIX tiene uno o ms archivos de dispositivo(en el directorio /dev ) asociado a l. El puerto de comunicacin serial de la estacin de trabajo es /dev/ ttya.
18
Miembro
19
Las dos variables (cread y clocal) deben permanecer siempre. Esto asegura que el programa no iniciar con propiedades de un puerto residente que haya controlado un trabajo espordico y suspenda las seales. Las constantes de baud rate (CBAUD, B9600, etc.) son usadas por interfaces que son obsoletas y carecen de los miembros c_ispeed y c_ospeed; considerando que el mximo de baudios es 32 veces mayor en la estacin de trabajo que la del graficador, esto es 115,200 & 9600 baudios. La siguiente funcin coloca las nuevas opciones para el puerto: tcgetattr(fd, &opciones); Y la funcin que establece la recepcin y los pone en modo local es: tcsetattr(fd, TCSANOW, &opciones); La funcin tcgetattr usa la estructura de termios proporcionando la configuracin del puerto serial. Al seleccionar la nueva configuracin esta usando tcsetattr. La constante
20
TCSANOW especifica que todos los cambios deben ocurrir inmediatamente sin esperar por los datos de salida para finalizar enviando o recibiendo datos de entrada para terminar.
Esto es usual para comprobar la calidad de la liga de comunicacin, pero en general no es usado por razones prcticas. Este miembro incluye el control de flujo por software usando IXON, IXOFF e IXANY. IXON. Establece el control de flujo por software(envo). IXOFF. Establece el control de flujo por software (ingreso). IXANY. Permite que cualquier carcter inicie el flujo de cualquier carcter.
22
3.3.5 COMUNICACIN
La programacin de la interfase para establecer la comunicacin se realiz y se hicieron las siguientes pruebas: Primero, de estacin de trabajo a graficador sin obtener resultados. Se utiliz un programa llamado vterm para comprobar si transmita datos utilizando dos PCs, no funciono. Al analizar el cable se comprob que este era el problema, se cambio el cable y se hizo otra prueba de PC a PC obteniendo buenos resultados. Se hicieron pruebas desde la estacin de trabajo a la PC utilizando el comando cat de la siguiente manera: adelita% cat archivo > /dev/ttya Sin mayor dificultad se estableci comunicacin, por lo cul se procedi a hacer la conexin con el graficador(ver apndice B). El problema posterior fue la lejana de la estacin de trabajo del rea donde se encuentra el graficador, en la misma sala; por tal motivo se implemento un nuevo cable serial que cumpla con las caractersticas del RS-232-C especificado en el manual del graficador DMP-61 y est explicado en el apndice B.
23
CAPTULO 4
PROGRAMACIN DE LA BIBLIOTECA LGHP
4.1 INTRODUCCIN
Al crear la biblioteca se pens en aprovechar la interfase fsica y las pruebas bsicas de los comandos de HPGL, para crear una biblioteca que fuera de uso fcil para el usuario. Se describe la manera en que fueron hechos y ejecutados los comandos para as crear una biblioteca llamada LGHP.H (Lenguaje de Graficacin de Hewlett Packard). Se comentan algunas funciones ms elaboradas. As como los pasos para ejecutar un programa de usuario (ver captulo 5).
4.3
Las caractersticas principales para crear la biblioteca fueron las siguientes: Utilizar el mnimo de comandos bsicos (p. ej. pluma arriba, pluma abajo, etc.) Cada comando debe obtener las caractersticas de configuracin del puerto. Cada comando debe ser nico sintcticamente y tener los argumentos que le corresponden.
24
Los comandos deben cumplir con el formato definido por el lenguaje de graficador.
inicio
si
no
Configura l Puerto serial
si
Elimina datos del arreglo Y posiciona el apuntador al principio del mismo arreglo
no fin
25
26
x1 y x2 corresponden a los puntos inicial y final del eje X y1 y y2 corresponden a los puntos inicial y final del eje y El origen corresponde a la coordenada (x1,y1);
Y El tamao de cada eje se debe calcular en milmetros. Con esta funcin y utilizando diferentes tamaos de argumentos, el usuario puede dibujar elipses.
27
tca();
La funcin tca(); sin argumentos indica que deshabilita tal funcin. Lo mismo sucede con las dems funciones que estn duplicadas pero difieren en los argumentos. Tc_a(ancho, alto); El tamao de carcter con respecto a lo alto es proporcional a 1.54 * ancho. Las medidas estn dadas en centmetros. Por ejemplo tc_a(5,5); equivale al tamao real de 5 cm. De alto y 3.246 cm de ancho, Esto es 5/1.54. Para que quede cuadrado sera (5*1.54) y quedara como tc_a(7.7,5); para obtener un carcter cuadrado.
p2 157mm
p1 (0,0) 235mm
28
4.6
Inicia
in();
Comando de hpgl. IN; USO: Inicializa el subsistema, esta instruccin coloca las condiciones iniciales al graficado.
Sintxis:
in();
def();
USO: Coloca ciertos vectores en estados predefinidos que no son pasados a otro programa.
Sintxis:
def(); Instruccin equivalente mva(); dr_r(0,1); d_ln();m evt(); tcr(); smb(); scs(); sca(); cin(0); scl(); --Condiciones Absoluto Horizontal Lnea slida, 4% de distancia diagonal / p1 y p2. Coloca lmites de la hoja Ancho 0.75%(p2x-p1x) y alto 1.5%(p2y-p1y) off coloca 0 coloca 0 coloca el ngulo escala en off ETX (ASCII 3 decimal) 5 grados
Funcin Trazo absoluto Direccin relativa Diseo de lnea Entra ventana Tamao carcter rel. Modo smbolos Selec. carcter estandar Selec. Carcter alterno Carcter inclinado abs. Escala Terminal de texto Tolerancia
29
Escala
Comando de hpgl. SC USO: Instrucciones de escala, sclu establece el sistema de coordenadas en unidades de usuario al mapear valores sobre los puntos de escala p1 y p2. sclx establece el sistema de coordenadas para un mapeo uniforme; obtiene y1, y2 a partir de x1, x2.
Flotantes / mm
Baja pluma
bp();
Comando de hpgl. PD USO: Inicia y para el trazo de vectores, pueden ser usados con parmetros para moverse al punto especificado por los parmetros Sintxis:
Parmetro Posicin
Sintxis:
sp();
Parmetro Posicin
USO: Selecciona Nmero de pluma, para este graficador solo se usa una pluma.
Sintxis: pl();
Parmetro
Nmero de pluma
dln();
USO: Son 7 tipos diferentes (0-6). Cero especifica nicamente los puntos que son trazados. Si no tiene parmetro la lnea es continua Sintxis: dln(); d_ln(tipo); Parmetro Tipo Formato Entero Rango funcional 0-6 Valor comn Sin tipo, es lnea continua
31
Longitud de grosor
Comando de hpgl. TL
ma();
USO: Esto es, el ancho de una lnea por ejemplo Sintxis: ma(positivo); Formato Entero Rango funcional 0-8 Valor comn Lnea slida Parmetro Ancho
Comandos de hpgl. CI USO: Dibuja un circulo de radio r, o un circulo en una posicin absoluta con radio r y una tolerancia de 5 % o menos, o un circulo en una posicin relativa con radio r y tolerancia de 5% o menos.
Sintxis:
Parmetro x, y, r, tol
Sintxis:
Parmetro cc
32
tca();
USO: Especifica el tamao actual de caracteres y smbolos en centmetros. Esto puede ser usado para cambiar el tamao del carcter de su valor comn y establece el tamao del carcter absoluto en centmetros, as que el tamao no depende de los puntos p1 y p2.
Sintxis:
cin();
USO: Especifica la inclinacin con la cual los caracteres son escritos. Esto se entiende como la tangente del ngulo de la vertical (en grados).
Sintxis:
Sintxis: dira();
Parmetro x (o cos ) y (o sin )
33
bda();
llra();
USO: Define y llena un rectngulo usando coordenadas absolutas. Usar llra(); para llenar bordes u orillas rectangulares en el trazo.
Sintxis:
llra(xarrder, yarrder);
Formato Milmetros Rango funcional -Valor comn --
Parmetro Coordenadas x, y
Llena acuacin
Comando de hpgl. WG
34
USO: Define y llena cualquier cua. Dibuja sectores de tipo pastel Sintxis: Radio ngulo Barrido
Parmetro
func();
Comando de hpgl. No existe USO: Crea el ASCII de ESC. Internamente y el usuario escribe la letra mayuscula y parmetros que faltan segn lo requiera la funcin. Sintxis: func( ); Parmetro Formato Letra mayscula y sus argumentos Rango funcional ( ,) , Y, Z, @, H, I, R, M, N, P, Q, T, B, E, I, O, A, S, J, K Valor comn Una letra mayscula del rango funcional (se adicionan arfumentos s existen)
0, 10 a 18 0 a 26, 28 a 31 0 a126
80 bytes 0 0
35
ESC.I Coloca protocolo en modo 2 Sintxis xon-xoff: func(I xoff; omitido; xon:);
Parmetro Formato Rango default
0 A 1024 0 0 A 126
ESC.J dispositivo de control para abortar Sintxis: func(J); ESC.K grfica para abortar Sintxis: func(K); ESC.M Coloca modo de salida Sintxis: func(M delay; salida trigger; terminal echo; terminal salida; inicia salida);
Parmetro Formato Default
0 0 0 13 0
Handshake
Entero
36
ESC.R Reset Sintxis: func(R); ESC.Y o ESC.( Graficador encendido Sintxis: func(Y); o func((); ESC.Z o ESC.) Graficador apagado Sintxis: func(Z); o func());
Parmetro Formato Rango default
Entero
0 A 1024 0 a 31
1024 3
Descripcin
0 1
Desestablece modo monitor Establece modo monitor (solo en RS-232-C, especifica en el bit 2 uno de dos modos de monitor ).
Corregir programa
no
Es correcta la compilacin
si
Encender el graficador Con papel y pluma
fin
Ejecutar el programa
38
sp(); s_p(0);
termina(); }
39
% archivo_salida
40
CAPTULO 5
PRUEBAS Y RESULTADOS
5.1
INTRODUCCIN.
Aplicar la biblioteca para obtener resultados es el fin obtenido y se demuestra en los siguientes ejemplos. Cada una de estas pruebas, utiliza al menos una funcin diferente.
5.2
La siguiente tabla describe el orden de cada figura (cdigo fuente, grfica). Tabla 5.3 lista de figuras y su descripcin breve. Nmero de Figura 1 __Cdigo fuente __ Descripcin de comandos utilizados __ Cdigo ASCII __Grfica correspondiente 2 3 4 5 6 7 8 Crculos concntricos, con d_ln() inversa Crculos con posicin relativa y absoluta Letreros en posiciones inclinadas Relleno de rectngulos c/barrido diferente Cuatro rehiletes y tres lneas de texto Letreros con diferentes posiciones y tamaos Funcin seno 45 46 47 49 50 52 53 Descripcin Pgina del Cdigo Fuente 42 43 43
41
FIGURA 1.
Programa que dibuja crculos concntricos desde el centro de la hoja, utilizando el tipo de lnea 3.
C. FUENTE
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <lghp.h>
main() { int i; sclu(0,221,0,221); sp();mva(0,0);bp(); bda(221,221); sclx(0,221); sp(); d_ln(3); for( i=5; i< 80 ;i+=10 ) cia(113,77,i,5); sp(); mva(180,5); tx("figura 1"); sp(); pl_n(0); termina(); }
42
DESCRIPCIN DE COMANDOS UTILIZADOS Tabla 5.4 Comandos del ejemplo 1. Funcin sclu sp mva bp bda d_ln cia tx pl_n termina Descripcin establece el tamao de la hoja en unidades de usuario, esto es 600 unidades en X, y 600 unidades en Y. pluma arriba posicin absoluta en x,y pluma abajo Hace el marco del tamao mximo que es de x,y Es tipo de lnea Rea liza un circulo de radio i con tolerancia de 5% Grfica los letreros entrecomillados Coloca el soporte en la posicin original Cierra archivo utilizado para el puerto serial
CDIGO ASCII La informacin enviada a travs del puerto /dev/ttya es la siguiente: SC 0.000000,8840.000000,0,8840.000000; PU; PA 0.000000,0.000000; PD; EA 8840.000000,8840.000000; SC 0.000000,8840.000000,0,5893.333333; PU; LT 3; PA 4520.000000,3080.000000; CI 200.000000,5.00; PA 4520.000000,3080.000000; CI 600.000000,5.00;
43
PA 4520.000000,3080.000000; CI 1000.000000,5.00; PA 4520.000000,3080.000000; CI 1400.000000,5.00; PA 4520.000000,3080.000000; CI 1800.000000,5.00; PA 4520.000000,3080.000000; CI 2200.000000,5.00; PA 4520.000000,3080.000000; CI 2600.000000,5.00; PU; PA 7200.000000,200.000000; LB FIGURA 1 PU;SP 0;
44
FIGURA 2
Son crculos concntricos que se encuentran en la esquina inferior izquierda y esquina superior derecha, utilizan tipo de lnea diferente y en sentido inverso.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <lghp.h> main() { int i,j; sclu(0,230,0,230); bda(230,230); sclx(0,235); sp(); mva(0,0); bp(); sp(); mva(60,50); bp(); for(j=1,i=3; j<=6,i< 45; j++,i+=4){ d_ln(j); ci(i); } sp(); mva(165,105); bp(); for( j=6,i=3; j>=4,i< 45; j-=.2,i+=4) { d_ln(j); ci(i); } sp(); mva(180,5); tx("figura 2"); sp(); pl_n(0); termina();
45
FIGURA 3
El graficador dibuja crculos a distancia relativa uno del otro, usa tipo de lnea 6(raya y 5 puntos), 3(raya y un punto), 4(raya y dos puntos).
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <lghp.h> main() { sclu(0,235,0,235); bda(235,235); sclx(0,235); sp(); mva(5,5); d_ln(6); cir(26,26,25,5); cir(25,0,25,5); cir(25,0,25,5); sp(); d_ln(3); cir(23,50,25,5); cir(25,0,25,5); sp(); d_ln(4); cir(20,50,25,5); cir(25,0,25,5); cir(25,0,25,5); sp(); mva(190,5); tx("figura 3"); sp(); pl_n(0); termina(); }
46
FIGURA 4
El graficador coloca los letreros de forma transversal dibujando letreros que forman rombos y medios rombos. El tamao de la letra decrece a medida que se grafcan los letreros de la palabra optica.
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <lghp.h>
main() { int i,j; sclu(0,221,0,221); bda(221,221); sp();mva(0,0); tc_a(.15,.25); cin(0); dir_a(1,1); mva(30,150); tx("I.N.A.O.E."); dir_a(1,-1); tx("I.N.A.O.E."); dir_a(-1,-1); tx("I.N.A.O.E."); dir_a(-1,1); tx("I.N.A.O.E."); sp(); for(i=0; i< 5000; i++) printf(" %i ",i); tc_a(.15,.25); cin(0); dir_a(1,1); mva(90,150); tx("I.N.A.O.E."); dir_a(1,-1); tx("I.N.A.O.E."); dir_a(-1,-1); tx("I.N.A.O.E."); dir_a(-1,1); tx("I.N.A.O.E."); sp(); for(i=0; i<5000; i++) printf(" %i ",i); tc_a(.15,.25); cin(0); dir_a(1,1); mva(150,150); tx("I.N.A.O.E."); dir_a(1,-1); tx("I.N.A.O.E."); dir_a(-1,-1); tx("I.N.A.O.E."); dir_a(-1,1); tx("I.N.A.O.E."); 47
sp(); for(i=0; i< 5000; i++) printf(" %i ",i); tc_a(.45,.25); cin(0); mva(140,90); dir_a(1,-1); tx("optica"); dir_a(-1,-1); tx("optica"); sp(); tc_a(.25,.45); cin(0); mva(115,90); dir_a(1,-1); tx("optica"); dir_a(-1,-1); tx("optica"); sp(); tc_a(.1,.15); cin(0); mva(90,90); dir_a(1,-1); tx("optica"); dir_a(-1,-1); tx("optica"); sp(); tc_a(.1,.06); cin(0); mva(65,90); dir_a(1,-1); tx("optica"); dir_a(-1,-1); tx("optica"); sp(); mva(180,5); tc_a(.25,.45);dir_a(1,0); tx("figura 4"); sp(); pl_n(0); termina(); }
48
FIGURA 5
Programa que traza tres rectngulos con diferente relleno. El primero arriba a la derecha dibuja lneas transversales muy juntas, el segundo es trazado con lneas ms separadas y trazadas en sentido inverso formando una malla, el tercero lo mismo que el primero solo que en diferente posicin y una ligera pero diferente inclinacin de trazado.
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <lghp.h> main() { sp(); mva(62.5,25); llt(2,1.25,5); llra(20,24); sp(); mva(62.5,-25); llt(4,50,30); llra(0.5,0.6); sp(); mva(-75,-12.5); llt(6,1.25,20); llra(0.5,0.6); sp(); mva(50,-75); tc_a(.30,.25);dir_a(1,0);tx("figura 5");sp(); mva(-100,-80);bp(); mva(-100,80); mva(100,80); mva(100,-80);mva(-100,80); sp(); pl_n(0); termina();
49
FIGURA 6
Programa que hace cuatro rehiletes de diferentes en tamao, tres letreros y su marco respectivo.
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <lghp.h>
main() { int i,j; sp();mva(0,0); i=0; for( j=45; i<360; j-=5) { llw(10,i,j); /*radio, inicio angulo, barrido */ i+=j+15; } sp(); mva(-82.5,40); tx(" Ma. del Rosario M. H."); sp(); mva(-70,7.5); for(i=0; i<380; i+=40) llw(15,i,10); sp(); mva(-40.5,-20); llw(10,40,60);/* radio, angulo, barrido */ llw(10,160,60); llw(10,280,60); sp(); mva(60.5,25); llw(30,40,80);/* radio, angulo, barrido */ llw(30,160,80); llw(30,280,80); sp(); mva(-59.5,-50); tx(" instrumentacion - optica - inaoe"); sp(); sclu(0,15,0,10); sp();mva(0,0); bda(15,10); 50
51
FIGURA 7
El programa muestra los tipos de inclinacin (con sus valores respectivos)y tamaos de los textos.
#include #include #include #include #include <stdio.h> <stdlib.h> <string.h> <errno.h> <lghp.h>
main() { float i,j; sclu(0,230,0,230); bda(230,230); sclx(0,235); sp(); mva(0,0); ma(0.2); tc_a(0.3,0.5); mvr(0.5,8); tx("a~o 2001"); mva(19,60); dir_a(-1,0); tx("-1,0"); mva(20,60); dir_a(1,0); tx("1,0"); mva(20,58); dir_a(0,-1); tx("0,-1"); mva(20,61); dir_a(0,1); tx("0,1"); mva(22,115); mva(23,116); mva(22,115); mva(23,115); mva(200,140); mva(150,110); mva(150,120); mva(180,5); mva(115,25); sp(); pl_n(0); termina(); } dir_a(-1,-1); tx("-1,-1"); dir_a(-1,1); tx("-1,1"); dir_a(1,1); tx("1,1"); dir_a(1,-1); tx("1,-1"); dir_a(1,0); dir_a(1,0); dir_a(1,0); dir_a(1,0); dir_a(1,0); tc_a(-1,1); tx("reversa"); tc_a(0.2,0.1); tx("peque~a"); tc_a(0.5,0.5); tx("mediano"); tca(); tx("figura 7"); tc_a(1,3); tx("largo");
52
FIGURA 8 El objetivo de este programa es graficar la funcin seno. La ejecucin del programa solicita al usuario el rango [x1,x2]. Los trazos se realizan a partir del uso de las funciones de la biblioteca lghp
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <lghp.h> #define _POSIX_SOURCE 1 #define coi 1 #define cof 50 #define rei 1 #define ref 50 #define tameval 2500 #define xy 2 double double double double main() { inicializa(); funcion(); } inicializa() { int i,j; for(i=0; i<= tameval; i++) for(j=1; j<=2; j++) { areag[i][j]=0.0; evalua[i][j]=0.0; postrz[i][j]=0.0; } } maximin( int i, int j) { int e; 53 areag[tameval][xy]; evalua[tameval][xy]; postrz[tameval][xy]; ymax, ymin;
ymin= evalua[0][j]; ymax=ymin; for(e=0; e<= i;e++) { areag[e][1] = evalua[e][j]; if(areag[e][1] < ymin) ymin = areag[e][1]; if(areag[e][1] > ymax) ymax = areag[e][1]; } printf("max %lf min%lf ", ymax,ymin); } funcion ( ) { char letrero[15]; int i,j,e,k; double posx,posy,ren; double a,b,dx,p1; a=b=dx=posx=posy=ren=0.0; printf("Proporcione el intervalo "); printf("A: ");scanf("%lf",&a); printf("B: ");scanf("%lf",&b); dx = (b-a)/ref; printf("%f \n",dx); i=0; j=2; evalua[0][1]=a; while(evalua[i][1] < b+dx) { evalua[i][j]= sin(evalua[i][1]); i++; evalua[i][1]= evalua[i-1][1]+dx; } func("R"); sclu(0,157,0,235); bda(235,235);
if((a*b) < 0) { posy = 1-(a/(a-b))*(-(ref-2)); mva(1,posy);bp(); mva(ref,posy);sp(); /* } maximin(i,j); if((ymin*ymax) < 0) { posx =1 -(ymax/(ymax-ymin))*(-(cof-1)); mva(posx,1); bp(); mva(posx,cof); sp(); }
eje y */
/*
eje x */
for(e=0; e<= i-1; e++) postrz[e][1] = evalua[e][j]; for(e=0; e<= i-1;e++) { postrz[e][2]= 1-((ymax-postrz[e][1])/(ymax-ymin))*(-(cof-1)); p1 = postrz[e][2]; for(k=1;k<100;k++); mva(p1,e); bp(); 54
55
CONCLUSIONES
1. 2. 3.
El acceso de la estacin de trabajo al graficador se cumpli teniendo la configuracin del cable y del puerto. El graficador funciona como se haba esperado. Se implement la biblioteca llamada LGHP, para el lenguaje HPGL, en el ambiente UNIX, es de tamao suficiente y ofrece los servicios elementales para el departamento de Instrumentacin-ptica.
4. 5.
La efectividad del lenguaje en la nueva biblioteca se comprob al realizar un conjunto de ejemplos. Se prob la biblioteca en ejemplos particulares, con resultados satisfactorios.
Ventajas
1. 2. 3. 4. 5. La biblioteca de graficado es accesible dentro del lenguaje C del sistema Solaris 2.4 La verificacin de la sintxis de los comandos es correcta, garantizando que el cdigo enviado al graficador es correcto. Es posible graficar Un archivo en lenguaje HPGL redireccionando al graficador con el comando cat. Obtencin de grficas en tamao real bajo el sistema Solaris 2.4 La posibilidad de poder enriquecer esta biblioteca al tener acceso a los fuentes.
56
Limitaciones
1. 2. 3. 4. No se muestra la grfica previamente en pantalla. Slo se obtienen grficas en dos dimensiones Actualmente el graficador, slo se puede accesar, desde la estacin de trabajo donde est conectado fsicamente. Solo se implemento en lenguaje HPGL.
Perspectivas.
1. 2. 3. Implementar el despliegue de las grficas en pantalla. Accesar el graficador desde cualquier estacin de trabajo autorizada en red. Implementar otra biblioteca de graficado para utilizar el lenguaje DM/PL.
57
GLOSARIO
ASCII. Son las siglas en ingles de cdigo estandar americano para intercambio de informacin. Cdigo de 8 bits que usan 7 bits para representar el dato del carcter as como letras, puntuacin, smbolos, y carcteres de control. El bit 8 es usado para la paridad. BAUDIOS (Baud Rate). Representa el nmero de unos y ceros que pueden ser enviados en un segundo entre una computadora y un perifrico. BUFFER. Una parte o partes de memoria de la computadora o dispositivo donde el dato es almacenado hasta que sea procesado. Usualmente se refiere al rea de memoria reservada para operaciones de entrada/salida. COMANDO HPGL. Es el nombre de una funcin del lenguaje de graficacin de HewlettPackard con el siguiente formato: MNEMNICO(parmetros); Donde: MNEMNICO. Son dos letras maysculas( abreviaciones del comando). Y los parmetros pueden ser de tipo entero y/o flotante alfabtico. CONFIGURACIN. Es la manera en que el equipo de computo y el software es conectado y configurado para operar como un sistema. CONTROL DE FLUJO. Es la coleccin de tcnicas usadas en comunicacin serial para detener al que enva enviando un dato hasta que el que recibe pueda aceptarlo. Puede ser mediante el control de flujo por software o por hardware. DCE. Equipo de Comunicacin de Datos (Data Communications Equipment). Se refiere al equipo que va a enviar los datos, en este caso, la estacin de trabajo (WS).
58
DEFAULT. Un valor o condicin que es asumido si no hay otro valor o condicin especificada. DESCRIPTOR DE ARCHIVOS. Es un entero pequeo que identifica un archivo abierto en un proceso. Este nmero es obtenido como un resultado de abrir un archivo. Las operaciones las cuales son lee, escribe o cierra un archivo tomaran el descriptor de archivo como un parmetro de entrada. DISPOSITIVO MANEJADOR(device driver). Desde el punto de vista del sistema operativo:
es el software que controla los componentes del hardware o dispositivos perifricos de una computadora como un disco magntico, cinta magntica, impresora, graficador etctera. Un driver es responsable para accesar los registros del hardware del dispositivo y a menudo incluye un manejador de interrupciones al servicio de interrupciones generadas por el dispositivo. Un driver a menudo forma parte del nivel ms bajo del ncleo del sistema operativo, el cul est ligado cuando el ncleo se construye. Algunos sistemas recientes tienen drivers que pueden ser instalados desde archivos despus de que el sistema operativo este en ejecucin. DIFERENCIA DE POTENCIAL. Es la que causa el movimiento de los electrones. Una corriente de slo un amperio mueve 6.25 x 1018 electrones en un segundo. Cuanto ms alta sea la diferencia de potencial entre los terminales del circuito, mayor ser el flujo de corriente. Tanto el flujo de corriente como los niveles de tensin se pueden emplear para representar datos y seales de comunicacin de datos. DRIVER. Configuracin de datos usado por el software para controlar entrada y salida entre la computadora y el dispositivo perifrico(graficador).
DTE. Equipo Terminal de Datos (Data Terminal Equipment). Es el dispositivo que recibe la informacin, ste, es el graficador (G). ESCALA. Es la divisin del rea del graficador en unidades convenientes para una aplicacin.
59
HANDSHAKING. El hardware predeterminado o la actividad del software diseado establece o mantiene dos maquinas o programas en sincronizacin. El handshaking a menudo concierne el cambio de mensajes o paquetes de datos entre dos sistemas con buffers limitados. Un simple protocolo de handshaking podra complicar, el recibir enviando un mensaje con el significado de recib tu ltimo mensaje y estoy listo para que me enves otro. En protocolo handshaking ms complejo, podra permitir enviar a preguntar al que recibe si esta listo para recibir o para que reciba una rplica con un reconocimiento negativo que signifique no recib tu ltimo mensaje correctamente, por favor reenvalo. El Handshaking por hardware usa niveles de voltaje o pulsos en las lneas que llevan las seales, mientras el handshaking por software usa unidades de datos (p.ej. caracteres ASCII: DC1,DC2,DC3,DC4) HPGL. Lenguaje de graficacin Hewlett-Packard. (Hewlett-Packard Graphics Language) INTERFASE. Cualquier cosa usada para juntar componentes de un sistema de computacin de manera que esas funciones sean compatibles y coordinadas. MODO LOCAL. En una configuracin RS-232-C, un modo en el cul el graficador acepta instrucciones a travs de un cable insertado en el conector de la interfase del graficador llamado TERMINAL. PUERTO. Es el punto fsico en el que un dispositivo perifrico, como una terminal o una red, est conectado a la computadora. En este caso son los conectores del cable serial unido a la salida y entrada, de la estacin de trabajo(WS) y el graficador(G), respectivamente. PROTOCOLO. Grupo de caractersticas formales que describen como se transmiten los datos,especialmente RESOLUCIN. Es la medida de la imagen expresada agudamente como un nmero de lneas por unidad de longitud. Cuando se refiere al graficador, la resolucin direccionable es
60
el medio para el movimiento ms pequeo del graficador que puede hacer en un programa. En este graficador la resolucin es de 1016 unidades por pulgada o 40 unidades por milmetro.
RISC. Grupo de Instrucciones Reducidas de Computadora Reducidas.(Reduced Instruction Set Computer), un procesador donde el diseo esta basado en la ejecucin rpida de una secuencia de instrucciones simples. UNIX. En las palabras de los autores es a weak pun on multics el plural de Unices. Un sistema operativo de tiempo compartido interactivo inventado en 1969 por Ken Thompson despus los Laboratorios Bell retoman el proyecto. Dennis Ritchie, El inventor de C, es considerado co-autor del sistema. VOLTIO. Es una medida de la diferencia de potencial necesaria para conseguir que los electrones se muevan por el circuito. VELOCIDAD DE RELOJ. La velocidad se fundamenta en ciclos por segundo a la cul
una computadora ejecuta sus operaciones ms bsicas, as como sumar dos nmeros o transferir un valor de un registro a otro. La velocidad de reloj de una computadora es determinada normalmente por la frecuencia de un cristal.
61
APNDICE A
GUA PARA EL USO DE COMANDOS HPGL .
Los graficadores son dispositivos de hardware bsicos para dibujar lneas, sta operacin esta controlada por cuatro comandos. PA PR PU PD trazo absoluto trazo relativo pluma arriba pluma abajo
Pluma arriba y abajo tienen movimiento cuando una lnea se comienza a crear, en los comandos de absoluto y relativo definen el tipo de movimiento entre puntos. Por ejemplo dibujar una lnea de (1,0) a (2,0) se puede especificar como sigue: p_u();pa(1,0); p_d();pr(1,0);p_u(); El resultado enviado al graficador es: PU;PA1,0,PD;PR1,0;PU; Hay dos atributos bsicos que pueden ser asignados a una lnea, como esperar que se apliquen a una pluma, y son: SP PT nmero de pluma espesor de pluma
El nmero de pluma acta como un ndice de color, comnmente son 8 colores. Y la otra es la geometra con la que pueden ser especificados y ellos son: AR CI EA arco relativo circulo borde del rectngulo absoluto
62
ER EP EW LB
borde del rectngulo relativo borde del polgono borde unido (wedge) letrero
In(); inicializa: pa(); la pluma se estaciona en el lugar predeterminado (home), limpia el estado interno, reinicia. Le da sentido a la posicin. OI identidad de salida: Nombre, versin, fecha. PA trazo absoluto: Los movimientos son con referencia a home (0,0) PD pluma (z) abajo: si ya esta abajo, no hay movimiento. PR trazo relativo: Los movimientos son con referencia a la posicin corriente PU pluma (z) arriba: solo sube la pluma sin avanzar. SP selecciona una pluma : la misma accin como en IN si n == 0 n!= al n previo. Puede forzar una pausa. SP0 como IN, y debe liberarse. LB El letrero debe estar entre comillas, por ej. hola.
63
APNDICE B
CABLE RS-232.
El RS-232 es una interface elctrica estndar para comunicacin serial definida por Electronic Industries Association (EIA). Actualmente viene en 3 diferentes tipos (A, B y C) cada uno definido con un rango de voltaje diferente para los niveles de on y off. El RS-232C enva los datos por la interfaz mediante cambios de niveles de tensin voltios. De la variedad, lo que ms se usa es RS232C, el cul define un bit de marca (on 1) con un voltaje entre 3V y 12V y un bit de espacio (off 0) con un voltaje entre +3V y +12V. Las especificaciones dicen que estas seales pueden llegar cerca de 8m. (25 pies). RS-232C, la C representa la cuarta versin, aprobada en 1981. RS-232C describe cuatro funciones de interfaz: Definicin de las seales de control de la interfaz. Movimientos de datos de usuario a travs de la interfaz. Transmisin de seales de reloj para sincronizar el flujo de datos: Formacin de las caractersticas elctricas reales de la interfaz.
Pata 7 Tierra de seal(GND): Tierra comn para todos los circuitos. As se establece la tensin de referencia para las otras lneas. Tcnicamente no es una seal, Pero sin ella ninguna de las otras seales funciona. Pata 2 Datos de transmisin(TXD): Seales de datos transmitidas desde la estacin de trabajo(WS) que es el DCE, hacia el graficador(G) que es el DTE. Generalmente representan datos de usuario, una marca de voltaje es interpretada como 1 y un espacio de voltaje es interpretado como 0. Pata 3 Datos de recepcin(RXD): Seales de datos de usuario transmitidas desde un G hacia una WS. Como en TXD, marca y espacio son 1 y 0, respectivamente.
64
Pata 4 Solicitud de envo(RTS): Seal de WS (DCE) a G (DTE). El RTS es una seal que se coloca como un voltaje de espacio por la WS (DCE) para indicar que hay ms datos que estn listos para ser enviados. RTS ayuda a regular el flujo de datos entre la WS (DCE) y G (DTE). Muchas de las WS llevan la seal colocada todo el tiempo. Pata 5 Permiso para transmitir(CTS): La seal CTS es recibida por la otra terminal del cable. Un voltaje de espacio indica esta listo para enviar ms datos seriales de la WS.
Especificacin del cable serial en el manual del graficador. Graficador Conector DB-25S 2 3 4 7 Estacin de trabajo Conector DB-25P
CONECTOR DB25
65
TABLA B-4 CIRCUITO SERIAL DE LA ESTACION DE TRABAJO SPARC, RS-423/RS-232 Pata 1 2 3 4 5 6 7 8 9-14 15 16 17 18-19 20 21-23 24 25 Funcin --TxD RxD RTS CTS DSR Gnd DCD --TRxC --RTxC --DTR --TxC --I --I --I --O --O --I/O --O I O I I Nivel No se conecta Transmite dato Recibe dato Listo para enviar Limpia el envo Equipo de datos preparado Seal de tierra Detecta transmisin de datos No se conectan Transmite reloj No se conecta Terminal de datos preparado No conectado Terminal de datos preparado No conectado Transmite reloj No conectado
66
APNDICE C
FUNCIONES DE LA BIBLIOTECA LHGP.H (COMPLEMENTO).
FUNCIONES DE INSTRUCCIN DE CONFIGURACIN Inicia in();
Comando de hpgl. IN; USO: Inicializa el subsistema, esta instruccin coloca las condiciones iniciales al graficado.
Sintxis:
in();
Mascara de entrada
Comando de hpgl. IM;
no hay
USO: Los parmetros son ignorados, ya que tienen significado nicamente para la interfase de comunicacin GPIB O HP-IB, y no se usa en este graficador.
def();
USO: Coloca ciertos vectores en estados predefinidos que no son pasados a otro programa.
Sintxis:
def(); Instruccin equivalente mva(); dr_r(0,1); d_ln();m evt(); tcr(); smb(); scs(); sca(); cin(0); Condiciones Absoluto Horizontal Lnea slida, 4% de distancia diagonal / p1 y p2. Coloca lmites de la hoja Ancho 0.75%(p2x-p1x) y alto 1.5%(p2y-p1y) off coloca 0 coloca 0 coloca el ngulo
67
Funcin Trazo absoluto Direccin relativa Diseo de lnea Entra ventana Tamao carcter rel. Modo smbolos Selec. carcter estandar Selec. Carcter alterno Carcter inclinado abs.
scl(); ---
Entrada de ventana
Comando de hpgl. IW
evt( );
USO: Provee el medio para restringir el rea de trabajo a la pluma en la superficie del graficador. Esta rea es llamada ventana.
Flotante
Sintxis:
svt();
Entra p1 y p2
Comando hpgl.
pto(); pto2();
IP
USO: Es el medio para localizar los puntos p1 y p2 a travs del control del programa. La instruccin de pto() o pto2() es usada para asegurar que el rea de graficacin es del mismo tamao, especialmente cuando el usuario y el programador no son la misma persona.
Sintxis: pto(x1, y1 );
Parmetro x1, y1, x2, y2
pto2(x1, y1, x2, y2 ); Formato Flotante / mm Valor comn Limites del sujetador de papel
68
Sale p1 y p2 spto();
Comando hpgl . OP; USO: Hace las coordenadas comunes de p1 y p2 disponible a la salida y es usada para determinar la posicin de p1 y p2 en unidades en las que se encuentra la escala.
Sintxis:
Parmetro
Ninguna
Tolerancia
tol();
Comando de hpgl. CT; USO: Si el valor de tolerancia de la cuerda, se especifica como menor o igual a 5, el graficador automticamente usa la rutina de curva para dibujar un circulo(ver 4.4.17 del manual de operacin)
Sintxis:
tol(tipo); Formato Entero Rango funcional 0(ngulo cuerda) 1(distancia de desviacin) Valor comn 0
Parmetro Tipo
No esta listo
Comando hpgl.
nol();
NR;
USO: Al recibir el comando el graficador establece el modo local y se debe presionar local key. (ver 4.4.2 manual de operacin). Sintxis: nol();
rota();
USO: Sistema de coordenadas de rotacin. Rota el trazo por unidades de milmetro por unidades de usuario, ngulo es el valor de rotacin 1 es por default horizontal al texto, 2 rota 90 grados de la posicin original ro(1), 3 rota 180 grados desde ro(1), 4 rota 180 grados de derecha a izquierda, 5
69
cambia la orientacin de ro(1), 6 cambia la orientacin de ro(2), 7 cambia la orientacin de ro(3), 7 cambia la orientacin de ro(4).
Sintxis:
Parmetro ngulo
Almacn de datos
BF
Re-grfica
RP
v(); v_n(rapidez);
Formato Entero Rango funcional 30-800 mm/s Valor comn 800
Parmetro rapidez
Velocidad adaptativa VA
No esta habilitada para este equipo (NOP).
70
Velocidad normal VN
No esta habilitada para este equipo (NOP).
Selecciona aceleracin
Comando de hpgl. AS
ac();
ac(); ac_n(acelerac.);
Formato Flotante Rango funcional 0.5, 1, 2, 3, 4 Valor comn 4
Parmetro Aceleracin
ejx();
Marca de eje y
Comando de hpgl. YT
ejy();
USO: Dibuja una marca horizontal con cierto grosor en la localizacin corriente Sintxis: ejy(); Formato -Rango funcional -Valor comn -Parmetro ninguno
71
Comando de hpgl. AA USO: Dibuja un arco, usando coordenadas absolutas, que inician en la localizacin x,y.
Sintxis:
x, y
ara(x, y, ngulo); arat(x, y, ngulo, arco); Formato Flotante / mm Flotante Flotante Rango funcional Flotante +- 360 0.5 - 180 Valor comn --5
Sintxis:
x, y
arr(x, y, ngulo); arrt(x, y, ngulo, arco); Formato Flotante / mm Flotante Flotante Rango funcional Flotante +- 360 0.5 - 180 Valor comn --5
dc();
72
USO: Puede ser usado para elegir el carcter el grupo de caracteres estandar apropiados para una aplicacin. Esto es de gran ayuda especialmente cuando los letreros estn en otro idioma.(ver prrafo 4.4.8 del manual de operacin).
Sintxis:
dc(); d_c(vector, arco v, arco f); Formato Entero Entero Entero Rango funcional 0-9, 30-39 10-19, 40-49 20-29, 50-59 Valor comn 0 10 20
USO: Es el medio de diseo de caracteres para alternar con otro grupo de caracteres( ver manual de operacin). Sintxis: dca(); dc_a(vector,arco variable,arco fijo); Parmetro Vector Arco variable Arco fijo Formato Entero Entero entero Rango funcional 0-9, 30-39 10-19, 40-49 20-29, 50-59 Valor comn 0 10 20
Sintxis:
scs();
Sintxis:
sca();
Sintxis:
Parmetro Carcter
Sintxis:
Grafica carcter
Comando de hpgl. CP
grc();
USO: Mueve la pluma al nmero especificado de espacios. Esto es usado para mover cualquier nmero de espacios de carcter o lneas de un punto en la superficie de trazo
Sintxis:
grc(); gr_c(espacio a lo ancho, espacio a lo alto); Formato Flotante Flotante Valor comn --74
Sintxis:
dirr(); dir_r(x, y); Formato Flotante Flotante Rango funcional --Valor comn 1 0
txal();
Nota: No se encontr ms informacin de apoyo en los manuales utilizados. Sintxis: txal(c...c); Formato Carcter Rango funcional -Valor comn -Parmetro c....c
CC
CM
Espacio extra
Comando de hpgl. ES
spc();
USO: Espacio que se ajusta entre caracteres y lneas de cadenas sin afectar el tamao del carcter.
75
Sintxis:
C
Parmetro
Origen de la cadena
Comando de hpgl. LO
orx();
Sintxis:
Parmetro Posicin
lg_x();
Sintxis:
lg_x();
im_x();
Escribe a la pantalla
WD EOT
Sintxis:
drv();
dglm();
FUNCIONES DE ESTADO
77
Estado de salida
Comando de hpgl. OS
eds();
USO: Escribe el valor decimal de los bytes de estado. Se usa eds() cuando este depurando un programa. Sintxis: eds(); Respuesta Nmero Formato Entero Rango 0 a 255 Parmetro Ninguno
Lo siguiente describe los valores de estado del byte. Valor Decimal 1 2 4 8 16 32 64 128 Pluma abajo P1 o P2 son establecidas nuevamente No usado Inicializado Listo para vaciar el buffer de datos Error No usado No usado Significado Nmero de Bit 0 1 2 3 4 5 6 7
Factor de salida
Comando de hpgl. OF
fcs();
Error de salida
errs();
78
Comando de hpgl. OE USO: Se escribe en el graficador el nmero correspondiente al tipo de error recibido por el graficador despus de la instruccin in(); ms reciente, restaura el panel de control o la instruccin errs(). Usar errs() para depurar el programa. Sintxis: errs();
pos();
USO: Si la pluma esta estacionada sin actividad, el graficador reporta la localizacin como la posicin actual de esta funcin. Sintxis: pos();
opos();
USO: Ordena posicin de salida al graficador. Nota : no se encontr ms informacin en los manuales de apoyo. Sintxis: opos();
tsc();
79
Comando de hpgl. OT Nota : no se encontr ms informacin en los manuales de apoyo. Sintxis: tsc();
cjs();
Tecla de salida
Comando de hpgl. OK
tcls();
AH
EC EC1
FR
80
bdr();
Borde acuado
Comando de hpgl. EW
bdw();
USO: obtienen lneas de cualquier acuacin. Utiliza bdw() para dibujar sectores de tipo pastel. Sintxis: bdw(radio, ngulo, barrido); Parmetro Radio ngulo barrido Formato Milmetros Flotante / grados Flotante / grados Rango funcional -+-360 +-360
Comando de hpgl. FP USO: llena el polgono del buffer de polgono. Usa llp() para llenar polgonos definidos en modo polgono as como las instrucciones de bda(), bdr() y bdw(). Sintxis: llp();
Modo polgono
Comando de hpgl. PM
USO: entra en modo polgono para definir la forma, as como los bloques de letras o cualquier rea nica, y existe para llenado subsecuente y/o las orillas. Llena polgonos usando la instruccin de llenado de polgono (llp), y/o obteniendo lneas de salida con la instruccin (bdp). Sintxis:mop(); mo_p(x); Parmetro Operacin Formato Entero Rango funcional O(modo polgono) 1(cierra polgono) 2(sale modo polgono) 0 Valor comn
Espesor de la pluma
Comando de hpgl. PT
esp(); es_p();
Sintxis:
esp(); es_p(ancho);
Sintxis:
llrr(xarrder, yarrder);
Formato Milmetros Rango funcional -Valor comn --
Parmetro Incrementos x, y
82
lltu(x);
USO: Crea tipos de lnea especificando el modelo de intervalos. Usar la instruccin d_ln() para seleccionar el modelo. Sintxis: lltu(x); Parmetro Intervalo Formato Flotante Rango funcional -Valor comn --
Ningno
Cadena de caracteres
Hasta 30 caracteres
Ninguna
Entero
0 a 1024 bytes
Ninguno
Nmero de error
Entero
0, 10 a 18
83
ESC.H coloca protocolo en modo 1 Sintxis: func(H tamao de bloque; carcter de indagacin; reconocimiento de cadena); o func(H:);
Parmetro Formato Rango Default
0, 10 a 18 0 a 26, 28 a 31 0 a126
80 bytes 0 0
ESC.I Coloca protocolo en modo 2 Sintxis xon-xoff: func(I xoff; omitido; xon:);
Parmetro Formato Rango default
0 A 1024 0 0 A 126
Sintxis: func(M delay; salida trigger; terminal echo; terminal salida; inicia salida);
Parmetro Formato Default
0 0 0 13 0
ESC.N Coloca salida extendida Sintxis: func(N delay; handshake dependiendo del parmetro);
Parmetro Formato Default
0 0 0
ESC.O Estado extendido de salida Sintxis: func(O); ESC.P Coloca modo de protocolo Sintxis: func(P handshake);
Parmetro Formato Rango default
Handshake
Entero
ESC.R Reset Sintxis: func(R); ESC.S Tamao de memoria configurable de salida Sintxis: func(S n:);
85
Parmetro
Formato
Rango
default
Entero
0A6
ESC.T localiza memoria configurable Sintxis: func(T buffer de e/s fisico; buffer de polgono; buffer de carcter downloadable; buffer de vector; buffer de clase de plumas );
Parmetro Formato Default
buffer de e/s fisico buffer de polgono buffer de carcter downloadable buffer de vector buffer de clase de plumas
ESC.U Modo rpido de termino Sintxis: func(U); ESC.Y o ESC.( Graficador encendido Sintxis: func(Y); ESC.Z o ESC.) Graficador apagado Sintxis: func(Z); o func());
Parmetro Formato Rango default
Entero
0 A 1024 0 a 31
1024 3
Nmero de bit
Estado lgico
Descripcin
0 1
Desestablece modo monitor Establece modo monitor (solo en RS-232-C, especifica en el bit 2 uno de dos modos de monitor ).
APNDICE D
FUNCIONES Y COMANDOS DEL LENGUAJE HPGL
FUNCIONES DE HPGL funciones de seleccin: ESC.Y o ESC.( Graficador encendido. ESC.Z o ESC.) Graficador apagado. Funciones de configuracin: ESC.@ (buffer);(modo): Configuracin del graficador. Coloca el tamao de buffer mximo y establece/desestablece el protocolo hardwire DTR. ESC.H (bloque);(indagacin);(r1; ;r10): Modo 1 Set Handshake define el tamao de bloque de datos para indagar y reconocer el protocolo de comunicacin. El tamao de bloque se mide en bytes, la indagacin; son ASCII equivalentes de 0 a 126 o cero por default, va de uno a diez carcteres (ASCII decimal equivalente de cero a 127) separados por una coma; por default todos son ceros. ESC.I (bloque);(indagacin);(r1; r10): Modo 2 Set Handshake. Cuando el host no requiere parmetros de respuesta. ESC.R Reestablecer. Causa que todos los vectores recibidos antes de que la instruccin sea graficada, entonces el buffer del vector es vaciado. ESC.M (reactivacin); (triare); (eco)(terminador); (terminador); (iniciador): Modo salida. Coloca los parmetros que mandan la respuesta del graficador al host. La reactivacin esta en milisegundos, trigger son decimales ASCII equivalente de 0 a 126 por default es cero, lo mismo en eco, el terminal de salida es uno o dos decimales ASCII equivalentes, el terminal es un retorno de carro.
87
ESC.N (retrazo);(t1; t10): Coloca Salida Extendida y modo Handshake (protocolo). La instruccin define el retardo y dependiendo del protocolo seleccionado, define la cadena de respuesta inmediata, va de uno a diez carcteres (ASCII decimal equivalente de 0 a 127) separados por una coma; por default todos son ceros. ESC.P modo: o ESC.P: Coloca modo Handshake ESC.Q modo: o ESC.Q: Coloca Modo Monitor ESC.T (E/S); (polgono); (descargable): Funciones de salida: ESC.B Espacio del buffer de salida ESC.E Error extendido de salida. ESC.L Tamao del buffer de salida (en bytes). ESC.O Posicin extendida de salida ESC.A Identificacin de salida ESC.S buffer: ESC.S: Tamao de memoria de salida Funciones para abortar: ESC.J Control para abortar el dispositivo. Desde que este es ejecutado cuando lo toma del buffer de entrada, nicamente puede ser reconocido cuando otro comando no esta comenzando a ser procesado. ESC.K Control para abortar el grfico
88
Nombre
Inicializa Mascara de entrada Coloca valores por default Entrada de ventana Salida de ventana Entra p1 y p2 Sale p1 y p2 Escala Tolerancia No esta listo Sist.. Coordenadas de rotacin Almacn de datos (buffer) Re-grafica
Comandos
IN; IM; DF; IW x,y,x2,y2; OW; IPX,Y; OP; SC x,y,x2,y2; CT; NR; RO; BF; RP;
COMANDOS DE LA PLUMA
Nombre
Pluma abajo Sube pluma automtica Pluma arriba Selecciona pluma Trazo absoluto Trazo relativo Selecciona velocidad Velocidad adaptativa Velocidad normal Selecciona aceleracin
Comandos
PD; PU; PU x,y; AP; SP; SP x; PA x,y; PR x,y; VS; VS x; VA; VN; AS; AS x;
89
COMANDOS DE LNEA
Nombre
Diseo de lnea Longitud de marca Seal de eje x Seal de eje y
Comandos
LT; TL; XT; YT;
Comando
CI x,y; AA x,y,z; AR x,y,z;
COMANDOS DE CARCTER
Nombre
Diseo de carcter estandar Diseo alterno de carcter Selecciona carcter estandar Selecciona carcter alterno Define terminal de func.label Modo de smbolos Label Tamao de carcter absoluto Tamao de carcter relativo Carcter inclinado absoluto Grfica carcter Direccin absoluta Direccin relativa Cadena almacenada func. Label
Comando
CS; CA; SS; SA; DT; DT x; SM; SM x; LB cadena SI; SR; SL; CP; DI; DR; CP x,y; DI x,y; DR x,y; SI x,y; SR x,y; CS x,y,z; CA x;
BL cadena
90
ngulo de acuerdo al carcter Modo seleccin de carcter Carcter de sombra Disea carcter en la ranura Espacio extra Invoca carcter Origen de la func. Label Long. de salida de func. Label Imprime lo almac.en label Carcter de entrada Escribe a la pantalla Direccin vertical DIGITALIZACIN DE COMANDOS
CC x; CM x;
DL; DL C; DL x,y,z;
LO x;
WD EOT; DV; DV x;
Nombre
Digitaliza un punto Digitaliza pto de salida Limpia modo digitalizar ESTADO DE COMANDOS
Comando
DP; OD; DC;
Nombre
Identificacin de salida Estado de salida Factor de salida Error de salida Posicin actual de salida Ordenando Posicin de salida Opciones de salida Borde del limite de salida Tipo de salida carousel Dimensin caja carac.salida Tecla de salida
Comando
OI; OS; OF; OE; OA; OC; OO; OH; OT; OB; OK;
91
COMANDOS DE MAPEO
Nombre
Avance pagina completa Avanza la mitad de pgina Establece corte de lnea Avance de marco (advance frame COMANDOS DE POLGONO
Comando
AF; PG; PGL; AH; AC; ECL; FR;
Nombre
Borde absoluto del rectngulo Borde relativo del rectngulo Borde del polgono Borde acuado Llenar polgono Llenar tipo Modo polgono Espesor de la pluma Llenar rectngulo absoluto Llenar rectngulo relativo Llenar tipo definido por el Usuario Llenar acuacin
Comando
EA x,y; ER x,y; EP; EW x,y,z; FP; FT x,y,z; PM; PM x; PT; PT x; RA x,y; RR x, y; UF gap 1; WG(x,y,z);
92
APNDICE E
EL CONJUNTO DE CARACTERES ASCII
Valor ASCII
000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
carcter
Valor ASCII
032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063
carcter
blanco ! # $ % & ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
Valor ASCII
064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095
carcter
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
Valor ASCII
096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 `
carcter
a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL
Nota: Los 32 primeros caracteres y el ltimo son caracteres de control; no se pueden imprimir. 93
BIBLIOGRAFA
1) C. Schirmer. Programming in C for UNIX, (c) 1987 English Language Edition Ellis Harwood Limited. 2) DMP-60 series plotters operation manual. Copyright 1987-1990 Houston Instrument Division of Summagraphics Corp. 3) Evi Nemeth & Gorth Snyder, Scott Seebass. Unix System Administration Handbook.(c) 1989 by PTR Prentice-Hall, inc. A-Simon & Schuster Company Englewood Cliffs, New jersey 07632. 4) 5) Harvey M. Deitel, Operating Systems. Ed. Addison-Wesley Publishing Company 1990. Marc J. Rochkind ed. Prentice-Hall, inc. Advanced Unix Programming, Englewood Cliffs, New Jersey 07632. 6) 7) 8) Pajari George . Writing UNIX Device Drivers. Ed. Addison-Wesley Publishing Company, Inc.1992. Prez Lezama Vernica . Gua de Operacin del Graficador DMP-61, INAOE. Richard Gauthier. Using the Unix System. Ed. Reston Publishing company, Company, inc. A Prentice-Hall Company. Reston, Virginia 1981. 9) Stephen Coffin. UNIX sistema V versin 4. Manual de Referencia. Ed. Osborne/McGraw-Hill
94