Resultados 1 al 4 de 4

Tema: Puerto serie en Linux

  1. #1 Puerto serie en Linux 
    Avanzado
    Fecha de ingreso
    Jun 2006
    Ubicación
    Valhala
    Mensajes
    1.167
    Descargas
    4
    Uploads
    0
    Hola chicos, a ver, tengo una pequeña duda. Se puede acceder a la vez a un puerto serie? Os explico, tengo un lector de codigos de barra y necesito que dos programas lean a la vez el codigo que se pase. He hecho un pequeño programita de prueba, y lo ejecuto, funciona a la perfeccion, pero al ejecutarlo en otro terminal, no lee. Tengase en cuenta que estoy ejecutando los dos a la vez. Asi que mi pregunta es, si estoy haciendo algo mal ala hora de acceder al puerto serie o dos procesos no pueden acceder a la vez al puerto serie. Si es el segundo caso, como podria interceptar lo que ocurra con el lector?

    El codigo del programa es el siguiente:
    Código:
    //zona de includes
    
    #define RESTART "\x45" //Señal de activacion del lector
    #define PUERTO  "/dev/ttyS1"  // Puerto serie
    
    main(){
    int scand; //descriptor
    if((scand=open(PUERTO,O_RDWR))==-1){
    printf("No se pudo abrir el puerto");
    exit(-1);
    }
    while(1){
    read(scand
    }
    
    }
    No me da tiempo a terminar el codigo, luego os lo pego.
    http://www.project-longinus.es
    Citar  
     

  2. #2  
    Moderador HH
    Fecha de ingreso
    Feb 2002
    Ubicación
    México
    Mensajes
    1.155
    Descargas
    4
    Uploads
    0
    Cita Iniciado por smaug_ Ver mensaje
    No me da tiempo a terminar el codigo, luego os lo pego.
    Ya decía yo que tu porgrama no hacía muchas cosas

    Lo más probable es que no se pueda acceder al puerto con 2 programas al mismo tiempo, creo que debido a que es un puerto de entrada/salida, habría mucha corrupción de datos y se mezclaría la información. Lo cual generaría un caos en el puerto.

    Mi recomendación es que programes una especie de demonio que se conecte al puerto serie y tenga el control de éste. Y así los programas ya no tendrían que comunicarse con el puerto sino con el demonio.

    Saludos
    Mientras el mundo permanezca no acabarán la fama y la gloria de México-Tenochtitlan
    Citar  
     

  3. #3  
    Moderador Global
    Fecha de ingreso
    Aug 2005
    Mensajes
    6.279
    Descargas
    7
    Uploads
    0
    Cita Iniciado por man setserial
    │ Setserial contains the ability to save your current serial ↑
    │ configurations, but you have to decide the method which setserial is to ▮
    │ use. ▒
    │ ▒
    │ autosave once - this saves your serial configuration the first time you ▒
    │ select this option, using kernel information. From this point on this ▒
    │ information is never changed automatically again. If you want the ▒
    │ configuration to change you have to edit serial.conf by hand. This is ▒
    │ the default and is good in almost all cases. ▒
    │ ▒
    │ manual - control serial.conf yourself right from the start. Good for ▒
    │ experts who like to get their hands dirty, but autosave-once is probably ▒
    │ still better. ▒
    │ autosave always - save the serial configuration on every system ▒
    │ shutdown, and reload the saved state when you reboot. Good if you change ▒
    │ your serial configuration a lot, but DANGEROUS as rebooting a system ▒
    │ with "errors" can result in the complete loss of your serial ▒
    │ configuration! ▒
    │ ▒
    │ kernel - blank the serial.conf file and use the kernel settings on ▒
    │ bootup. This may be useful for standard situations or where setserial ▮
    │ has become confused. ↓


    │ <Aceptar>
    Quizá ese programita te venga bien.

    El siguiente código terminado puede ayudarte a ver más claro cómo manejar los puertos serie bajo GNU/linux:

    http://www.ontrak.net/linux.htm

    Salu2


    Keep on Rollin'
    Última edición por j8k6f4v9j; 08-06-2007 a las 13:18

    . . . . . . . . . . . . . . . . . . . .
    [[ NORMAS DEL FORO ]]
    . . . . . . . . . . . . . . . . . . . .
    __________
    Citar  
     

  4. #4  
    Avanzado
    Fecha de ingreso
    Jun 2006
    Ubicación
    Valhala
    Mensajes
    1.167
    Descargas
    4
    Uploads
    0
    Aun sigo con el tema del puerto serie. Tal como decia Giskard no he podido hacer que los dos programas lean a la vez del puerto serie. No hace falta siquiera el codigo en c, ya que haciendo dos cat, uno captura lo que entra pero el otro se queda a la espera.
    Pense en hacerlo mediante tuberias, renombre el dispositivo /dev/ttyS1 a /dev/ttyS100 y cree una tuberia con el nombre /dev/ttyS1 para engañar al programa. Luego mediante un :
    Código:
    # cat /dev/ttyS100 > /dev/ttyS1
    Para redirigir la salida , el cat seria sustituido si funciona, mas tarde por un programa que se encargara de enviarlo a los dos programs finales. Pero no funciono tampoco, ya que el programa no conseguia leer la informacion de la tuberia. Aparte, necesitaria una tuberia de doble sentido, ya que tendria que ser de escritura y lectura, y por lo que se, no se puede (corregidme si me equivoco).
    Por ultimo, alguien me comento sobre pseudoterminales, las pty, pero llevo un dia buscando info y no encuentro mucho al respecto de como hacerlo. Asi que se que no es habitual, pero alguien me pasa un howto de como conectar un pseudoterminal con un dispositivo serie?? Y si se podria asi que los dos programas leyeran los mismos datos, uno del dispositivo y otro del pseudoterminal??

    Un saludo y gracias!
    http://www.project-longinus.es
    Citar  
     

Temas similares

  1. puerto serie en windows 7
    Por suso2 en el foro WINDOWS
    Respuestas: 2
    Último mensaje: 18-01-2012, 09:43
  2. BIOS puerto serie
    Por tamaroque en el foro HARDWARE
    Respuestas: 3
    Último mensaje: 16-01-2009, 18:31
  3. Adaptador de USB a puerto serie.
    Por juanma.m.d en el foro HARDWARE
    Respuestas: 5
    Último mensaje: 16-05-2005, 14:05
  4. Problemas con cable USB a puerto serie
    Por Jose Enrique en el foro HARDWARE
    Respuestas: 2
    Último mensaje: 22-01-2005, 22:13
  5. cardinal68 y Puerto serie???
    Por MARSHALL en el foro TELEFONÍA MOVIL
    Respuestas: 0
    Último mensaje: 23-11-2001, 19:11

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •