IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Threads & Processus C++ Discussion :

Besoins de conseils pour un développement


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut Besoins de conseils pour un développement
    Bonjour à tous,

    Je dois faire communiquer un PC et un équipement sur le port série ( en protocole ModBus ).
    Le PC interroge l'équipement pour connaitre les valeurs de certains de ses registres.
    Ensuite le PC enregistre les valeurs dans une base de donnée sur un serveur ( mySQL ou PostgreSQL ) en local.

    Jusque là, rien de compliqué, j'ai pu réaliser toutes ces actions séparées dans divers projets de tests.

    Cependant, je cherche à mettre en place cette communication en permanence.
    C'est à dire que le PC et l'équipement ne serait jamais mis hors tension ( ou le moins possible ) et que la communication entre les 2 serait à intervalle réguliers 24h/24 7j/7 sur le port série.

    C'est là que beaucoup de questions se posent pour moi. Ce programme doit :
    être autonome, se lancer au démarrage de Windows, redémarrer s'il a planté, relancer la communication entre le PC et l'équipement si nécessaire.
    Enfin il doit réagir à tous les problèmes potentiels pour fiabiliser la communication et éviter au maximum les pertes de données éventuelles, débordement de piles, etc ( le 0% de perte serait l'idéal mais bon je ne miserais pas ma main là-dessus sur une telle application surtout développée par moi )

    Je précise que l'application sur le PC doit acquérir des données toutes les 10 minutes. Les données sont récupérées en moins d'une minute.
    Donc la plupart du temps l'application attend et scrute l'heure du PC jusqu'au prochain relevé.

    Comment aborder le développement ?
    Comment définir le type de mon application ( service, dll, Forms, etc ... )
    Comment mettre en place l'application en sachant que j'ai déjà validé les différentes fonctionnalités du logiciel séparément ? La difficulté étant de les faire s'exécuter en permanence.

    Je développe sous C++ Builder 5 et/ou C++Builder 2007.

    Toutes les fonctionnalités ( communication entre PC et équipement + stockage vers base de données ) ont été validées dans divers projets de tests.


    Voilà, tous les conseils sont bons à prendre alors n'hésitez pas à conseiller !

    PS : je ne savais pas dans quel forum poster mon message, désolé si je me suis trompé

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je ne suis pas spécialiste de ce type de problème, mais je développe aussi avec Builder, et ce sujet m'intéresse (je suis en retraite, donc très disponible).
    Mais dans un premier temps, je ne sais pas trop quoi répondre, par exemple pour u lancement automatique au démarrage de Windows, il suffit le le mettre dans la liste de programme au démarrage.
    Par contre, une chose importante, est-ce que ce PC servira à autre-chose qu'à communiquer avec cet équipement.
    Il y a une dizaine d'années, j'ai vu une configuration identique, et ça ne semblait pas avoir posé de problème au développeur.

  3. #3
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    pour un lancement automatique au démarrage de Windows, il suffit le le mettre dans la liste de programme au démarrage.
    Pour cet aspet j'y ai déjà pensé, je pensais mettre un raccourci dans le dossier Démarrage du menu Démarrer.

    Par contre, une chose importante, est-ce que ce PC servira à autre-chose qu'à communiquer avec cet équipement.
    Oui le PC devra être opérationnel pour afficher certains graphiques par le biais d'un logiciel déjà développé. Mais cependant les 99% du temps il ne sera utilisé par personne.

    Merci en tout cas de t'intéresser à mon problème.
    J'espère que ça fera en venir d'autres qui donneront pleins de conseils

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 502
    Par défaut
    Pour cet aspet j'y ai déjà pensé, je pensais mettre un raccourci dans le menu démarrage.
    Non, le menu démarrage est associé à une session utilisateur, il faudrait donc qu'un utilisateur soit connecté. C'est donc hors du scope d'utilisation.

    Sous Windows, je vois deux manières de faire votre projet.
    - un service Windows
    - une tâche planifiée

    Ces "solutions" peuvent s'exécuter sans utilisateur connecté, être automatiquement lancé au démarrage de Windows pour les services, et automatiquement lancé par le scheduleur du système pour les tâches. Les services peuvent être relancés automatiquement en cas de problème, les tâches, elles, sont relancées par définition.

    Le choix de l'un où l'autre doit prendre en compte que :
    - un service prend des ressources en permanence
    - une tâche ne prend pas des ressources en permanence mais le chargement et le déchargement de l'application récurrent peu être couteux.
    - un service est nettement plus complexe à mettre au point (mais vous pouvez transformer votre projet en service à la fin du développement).

  5. #5
    Membre confirmé Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Par défaut
    Bonjour bacelar,

    - un service est nettement plus complexe à mettre au point (mais vous pouvez transformer votre projet en service à la fin du développement).
    En quoi un service est nettement plus complexe à mettre au point si on peut transformer son projet à la fin ? Y'a t'il des précautions à prendre si je sais déjà que je vais le transformer ?

    En tout cas merci d'avoir donner votre avis, je pensais m'orienter vers une application service. Je crois que ça sera bien le cas.

    Je ne connais rien dans le développement de tâches planifiées. Je sais juste que l'on peut en réaliser dans Windows ( programmer l'arrêt du PC par exemple ) mais c'est tout, je ne connais rien de complexe qui serait de planifier l'ouverture du port COM et l'envoi du requete SQL au serveur de BDD.

    D'autres idées ou remarques ?

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par bfespi69 Voir le message
    En quoi un service est nettement plus complexe à mettre au point si on peut transformer son projet à la fin ?
    C'est moins facile de déboguer un service qu'un programme simple.

    Citation Envoyé par bfespi69 Voir le message
    Y'a t'il des précautions à prendre si je sais déjà que je vais le transformer ?
    Un service n'est pas réellement connecté à la machine, il y a donc une branche de la base de registres, HKEY_CURRENT_USER, qui n'existe pas dans l'environnement de ce service.

    L'identité sous laquelle s'exécute un service est souvent "LocalSystem". C'est un compte système privilégié mais local seulement. Il aura peu/aucun privilège au travers du réseau pour par exemple monter un disque d'une machine distante ou parcourir un disque réseau.

    Si on décide que le service doit être lancé sous une identité réelle, il y a la possibilité de le spécifier un utilisateur et un mot de passe dans les propriétés du service. Par contre il ne faudra pas oublier de revenir dans les propriétés du service et modifier le mot de passe s'il y a une politique de vieillissement des mots de passes appliquée sur ce compte.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL] Besoin de conseils pour un développement
    Par ben23 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 10/07/2006, 21h31
  2. Besoin de conseils pour une application
    Par peredodu dans le forum Access
    Réponses: 9
    Dernier message: 05/03/2006, 11h18
  3. Réponses: 13
    Dernier message: 13/09/2005, 09h41
  4. Réponses: 4
    Dernier message: 20/05/2005, 13h30
  5. Réponses: 3
    Dernier message: 24/12/2004, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo