Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 18/01/2010, 19h37   #1
Invité de passage
 
Inscription : avril 2007
Messages : 21
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 21
Points : 2
Points : 2
Par défaut Bloquage acces périphérique USB

Bonjour,

Je travaille actuellement sur une application avec une interface "arduino" pour ceux qui ne connaissent pas, il s'agit d'une interface entrée/sortie sur port USB. Je m'en sert ici dans un contexte de domotique ( gestion de temperature, électrovannes, ... ). Mon application tourne en C sous Debian avec une DB Mysql.
En gros mon application lit les informations fournient en continu par la carte arduino via /dev/ttyUSB*. J'ouvre l'USB, j'initialise, je lis et je ferme. Mais voilà si plusieurs applications lisent la carte en même temps, cela pose des problèmes, je recois pas mal de messages incomplets, ... je voudrais pouvoir bloquer tous les accès en lecture ET en écriture vers /dev/ttyUSB* pendant qu'un autre processus / application l'utilise déja. J'ai essayé naivement un pipe avec un chmod 0 après l'ouverture de /dev/ttyUSB* mais ca ne marche pas si je lance une deuxième fois mon application, elle a toujours accès.
L'utilité que je pourrais en avoir c'est qu'à l'avenir je vais devoir utiliser plusieurs cartes sur un même pc et je ne souhaite pas avoir de configuration statique dans un soucis de flexibilité, de rapidité. de plus cela me préserverai des mauvais manipulations.
Si quelqu'un à une idée, elle est la bienvenue, merci.
olipopotam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2010, 20h54   #2
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
Bonsoir,

Voici ce que je ferais:
  • Créer un service d'accès à ta carte (voire même tes cartes). Ce programme tournant de manière unique sur la machine.
  • Créer des clients qui se connectent au serveur et qui lui font des demandes et récupèrent les réponses.
Le serveur peut alors centraliser et même factoriser les requêtes vers le matériel. Il répond ensuite aux clients... sans s'emmêler les pinceaux. Cela permet de programmer l'interface graphique dans n'importe quel langage qui supporte les sockets comme C++ avec Qt, Java, Ruby et même Bash!

Heu... Cela a peu de rapport avec la programmation shell, non? Une erreur dans le choix du forum?
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 21h11.


 
 
 
 
Partenaires

Hébergement Web