Forum Programmation.shell Port parrallèle

Posté par  .
Étiquettes : aucune
0
14
jan.
2008
Bonjour :)

Je cherche une commande simple en bash pour lire un bit d'un port parrallèle. Est-ce que y'en une, ou bien j'ai mal cherché ?
Est ce que le port parrallèle peut pas etre un truc du genre /dev/foobar dans linux?

D'ailleurs, le bash est il adapté pour lire (simplement lire, pas écrire) un port parrallèle ? C'est peut etre mieux le C ?

Merci d'avance :)
  • # parashell

    Posté par  . Évalué à 1.

    Je viens de trouver parashell ( http://parashell.sourceforge.net )
    Est-ce que quelqu'un l'a déjà utiliser ? Est-ce wqque c'est pas trop usine a gaz pour simplement lire un bit ?
  • # /dev/lp

    Posté par  . Évalué à 2.

    Le fichier spécial du port parallèle, c'est soit /dev/lp, soit /dev/parport, suivis à chaque fois du numéro du port (0, 1, 2, 3 ...).

    En principe, pour lire un bit du port parallèle, il suffit de le lire comme un fichier ordinaire, avec cat ou xxd, par exemple. Mais, ce n'est possible que si ton port parallèle a déjà été configuré proprement.

    Il faut déjà qu'il fonctionne en EPP (parce que les ports parallèles initiaux ne fonctionnaient qu'en sortie), et peut-être que ce que tu lis envoie un signal type strobe, mais ce n'est pas obligatoire.

    Regarde /usr/src/linux/Documentation/parport.txt et /usr/src/linux/Documentation/parport-lowlevel.txt pour voir comment le noyau le gère.

    Bref : pas fondamentalement difficile, mais tu auras peut-être quand même besoin de quelques lignes de C pour faire les inits, à moins qu'un outil du style de stty existe pour le port parallèle, mais je ne le connaît pas.
  • # en C

    Posté par  (site web personnel) . Évalué à 2.

    Pour bash je sais pas, mais sinon la programmation du port parallèle en C est vraiment très simple. Tu as trois registres à tout casser : data, status, contrôle (qui te permet de contrôler 4 lignes supplémentaires). Ensuite, avec inb()/outb() ça se fait tout seul.
    • [^] # Re: en C

      Posté par  . Évalué à 2.

      Ca c'était surtout vrai à l'époque bénie où l'on pouvait faire de l'assembleur et toucher aux registres sans risquer de tout casser. Dans un environnement multitâche (et multiuser) comme Linux, il vaut mieux demander au module du noyau de faire le choses en bonne et dûe forme.

      Il a un /dev qui sert à çà, et c'est à peine plus compliqué : quelques ioctl().

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.