Bonjour,

Je viens vers vous car je suis dans une impasse sur un projet.

Dans le cadre de mon stage, je dois corriger un Windows Service (WS) gérant l’ouverture et la fermeture (à clef d’une porte).
Voici le cheminement des actions : on lance le WS qui va ouvrir une connexion avec notre automate via un port série. Les utilisateurs pourront ensuite entrés leur mot de passe, qui sera recup2r2 par le WS. De l’a, le WS va vérifier le mot de passe via une base de données. SI le mot de passe est bon, il va demander à un automate de déverrouiller la porte. Bien sûr ça ne fonctionne pas.

J’ai tracé mon programme pour voir où il passe et il se bloque à la ligne me permettant de récupérer le mot de passe. Pour cela, j’utilise la classe SerialPort.
Donc je me suis tourné vers mon ami google, la ligne semble juste. De plus, la connexion est bien ouverte avant (vérifié en testant la propriété isOpen).
Les paramètres de mon constructeur sont aussi corrects. Normalement il n’y a pas de problème physique.

Je travail sous Visual Studio 2005 et mon WS s’exécute sous Windows 2000.

Si vous avez besoin d’autres choses..





Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public Keypad()
{
   /// Objet de connexion avec le port serie RS232
   keypad = new SerialPort("COM4", 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
}
 
 
public int InputData()
{
   string charEnregistrement = "";
   /// attends le début de la saisie et récupère le premier caractère saisi
   char c = (char)keypad.ReadChar(); // bloque ici
[...]
}
J'instancie et j'ouvre la connexion dans le "main".

Douhan,