-
Gérer des Capteurs en C#
Bonjour,
Voila je doit gérer de entrée et des sortie d'un parking, je galaire à mort, et je voulais savoir si quelqu'un pouvait m'aider, merci.
Exemple de résultat du programme un messagebox qui dise si il y a une entrée ou un autre messagebox pour une sortie.
Le parking ce compose de deux capteur,
j'ai ma petit idée sur le sujet mais je ne c pas trop comment faire, mais bon merci d'avance a tout ce qui on des idée....
-
Développe un peu ton architecture, comme ça on pourra t'aider
-
salut
déjà, galère sans "ai"... ça aidera à la compréhension du problème.
Je ne vois pas trop où est le problème...
Tu vas avoir un capteur qui va te lever un évènement. alors, bien sûr,
il est conseillé d'avoir une liaison avec ce capteur, donc, un peu d'électronique
(liaison RS323 ou USB ensuite vers le PC)
Et après, tu as le nombre de place dans ton parking... T'as une fonction
pour le capteur Entrant, une fonction pour le capteur sortant et "grosso modo"
ces fonctions vont "juste" jouer sur le côté, je décrémente ou j'incrémente le nombre de places disponibles :)
(évidemment, il est conseillé de mettre un % quand le nombre de place diminue et est proche de 0 car, avec les personnes qui ne savent pas se garer, ca te "nique" toujours quelques places valides...
voilà... maintenant, si tu veux en savoir plus, il va te falloir être un peu plus éloquent sur les différents problèmes inhérents à ton application.
The Monz, Toulouse
-
Le souci et que le parking et composer d'une seul entrée qui joue aussi le rôle de sortie, c'est a dire que les personnes qui entre dans le parking ressorte par la même voie.
En résumer, si le Capteur extérieur et activer avant le capteur Intérieur on enregistre une entrée.
Mais au contraire si le Capteur Intérieur et activer avant le capteur extérieur on enregistre une sortie.
Si il y avais une entrée différent de la sortie la sa aurait était simple, mais ici l'entrée sert aussi de sortie...
En fais, je ne reçois que des int 1 si le capteur et activer et 0 si il est désactiver.
j'ai penser a une fifo, je pense que c la bonne solution je vais me penché dessus en attendent vos idée.
-
salut
Au vue de tes infos, je verrais les choses ainsi :
Un module qui dialogue avec les capteurs et qui est capable de fournir 2 evenements : 1 event ==> Enter, 1 event ==> Exit
Evidemment, pour que l'event Enter se déclencher, il faut que la séquence capteur Externe + capteur Interne soit effectuer...
Idem (dans l'ordre inverse) pour l'event Sortie...
Un tel module me semble "trivial" à réaliser :)
Une fois ce module fait, il ne restera plus qu'à gérer la logique métier du parking !
The Monz, Toulouse
-
Bonjour,
tes capteurs sont-ils connectés directement au PC ? Si oui comment ? Utilises-tu une carte d'acquisition ?
Tu as deux possibilités.
- Soit tu définies par programme si le véhicule entre ou si le véhicule sort. Je ne trouve pas cette solution très interessante (enfin tout dépend de ton architecture). Quelle est la distance entre les capteurs ? Est-ce qu'un même véhicule peut déclencher simultanément les deux capteurs ? Autre problème, que se passe-t-il si un véhicule se présente à l'entrée (et donc déclenche le capteur d'entrée) et un deuxième véhicule qui sort déclenche le capteur de sortie.
Utilises-tu un OS temps réel ? Pour deux capteurs ca me semble un peu luxueux mais si tu veux les gérer par programme, l'information reçue ne sera pas garantie à 100% et tu risques d'avoir des erreurs.
- Autre solution tu utilises un petit module externe (pas un module informatique, mais un module électronique) sur lesquels sont câblés les capteurs. Lui gère les capteurs et signale à l'application selon l'ordre de déclenchement des capteurs si le véhicule entre ou sort. Je préfère cette solution.
Mais il faudrait que tu en dises plus long sur ton architecture.
A bientôt
-
En fais, sa n'est pas moi qui m'occupe des capteur dans le parking mais une autre personne de mon groupe.
En ce qui me concerne je reçois la valeur 1 lorsque qu'un capteur et activer et la valeur 0 quand elle et désactiver. Mais bien entendu, j'ai déjà mis en place de programme qui stocke la valeur selon le capteur activer... soit interne soit externe.
exemple d'état des capteur pour une entrée.
Par défaut le capteur sont a 0.. logique.
CaptExt = 0 desactiver
CaptExt = 1 activer
CaptExt = 0 desactiver
CaptInt = 0 desactiver
CaptInt = 1 activer
CaptInt = 0 desactiver
C'est égale a une entrée..
Exemple d'état de capteur pour un sortie
CaptInt = 0 desactiver
CaptInt = 1 activer
CaptInt = 0 desactiver
CaptExt = 0 desactiver
CaptExt = 1 activer
CaptExt = 0 desactiver
Rappel, l'entrée et la sortie sont la même.
Je pense donc a envoyer lorsque le premier capteur activer un indice dans un tube puis par la suite la même chose pour le second, et de là essayer de voir le quel est entré le premier dans le tube pour déterminer si il y a une entrée ou une sortie, je pourrais aussi utiliser un tableau...
mon petit soucis et ici...
j'ai un peut de mal envoyer c'est info dans un tub ou un tableau pour ensuite que je définisse si il y a eu une entrée ou une sortie...
Sinon en ce qui concerne les exceptions, dans ce cas là on ce dit que tout marche normalement puis je gérerez plus tard ces exception...