begin process at 2010 02 09 22:17:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Process

 > 

IHM + RS232


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

IHM + RS232

jeudi 4 septembre 2008 à 17:53:12 | IHM + RS232

sebome

Bonjour à tous,

J'ai une petite question concernant l'architecture d'un logiciel.

Dans mon logiciel, je lis des trames sur le port RS232 et j'affiche les données sur une IHM (sous forme de LED pour des etats binaires, ou dans un tableau et possible aussi d'afficher des courbes).
La lecture sur le port série se fait dans un thread lancer par la partie IHM.
Mon problème et que lorsque je reçois des trames trop regulierement (toutes les 10 ms environ), l'affichage des données sur l'IHM fait ramer le logiciel.

Je cherche une idée pour séparer la partie lecture et decodage des trames rs232 de la partie IHM.

Auriez vous une idée à me proposer (je suis developpeur amateur)?

Sébome
jeudi 4 septembre 2008 à 18:13:05 | Re : IHM + RS232

leprov

Réponse acceptée !
Plusieurs choses :
1 - Pas besoin de lancer un thread. Juste besoin de t'abonner a SeriaPort.DataReceived (si ca correspond a ton besoin). Cette méthode s'execute dans le threadpool sans que tu aies besoin d'intervenir a ce niveau.
2 - toutes les 10ms, si tu rame, cest pas une question de threading ou d'IHM, cest juste que ton traitement est trop long/lent (surtout si tu es déjà dans un thread à part)
jeudi 4 septembre 2008 à 18:36:50 | Re : IHM + RS232

sebome

Je pensai essayer d'avoir la partie IHM asynchrone à la partie RS232.
Mon problème est que c'est  la partie rafraichissement de l'IHM qui prend du temps.

Il faudrait que je trouve un moyen d'appeler une fonction (pour modifier des champs de l'IHM) et de ne pas attendre la fin de celle-ci pour continuer la suite.

Je vous remercie pour votre aide.


Sébome
vendredi 5 septembre 2008 à 00:08:37 | Re : IHM + RS232

leprov

Réponse acceptée !
déjà tu devrais commencer par voir si tu peux pas mieux faire tes traitements IHM (utilises-tu des fonctions longues? as tu codé override des méthodes OnPaint dans tes controles d'affichages et si oui ne peux tu pas optimiser?).
Sinon si cest vraiment un problème entre tes deux threads, tu peux utiliser TaForm.BeginInvoke(TaMethodDeMiseAJourDesDonnees) pour que tes deux thread ne s'attendent pas mutuellement
vendredi 5 septembre 2008 à 12:06:50 | Re : IHM + RS232

sebome

J'ai améliorer les traitement IHM et aussi le decodage des trames.

La seul choses que je ne sais pas améliorer c'est les courbes. J'utilise le composant zedgraph pour tracer mais courbes. Je voudrai voir l'evolution des courbes en temps réel. Le problème est qu'a chaque ajout d'un point dans la courbe, j'ai l'impressions qu'il retrace la courbe entierement . J'utilise peut être mal le composant ou ce n'est pas un composant pour tracer des courbes en temps réel.


Sébome
vendredi 5 septembre 2008 à 13:05:38 | Re : IHM + RS232

leprov

Réponse acceptée !
et tu ne peux pas rafraichir le graphe sur un timer? genre toutes les 200ms? tu met les data de tes trames dans un buffer, et au bout de 200ms tu les envoies au graphe, ce qui te permettrait de ne pas ramer (et la différence visuelle serait totalement imperceptible)
vendredi 5 septembre 2008 à 13:43:26 | Re : IHM + RS232

sebome

Oui c'est une bonne idée.
Je vais essayer merci.

Sébome


Cette discussion est classée dans : logiciel, rs232, partie, trames, ihm


Répondre à ce message

Sujets en rapport avec ce message

Obtenir des infos sur un logiciel en cours d'execution [ par torak ] Salut à tous!Je cherche en fait un moyen d'avoir des infos sur un logiciel qui s'exécute et avec lequel on a ouvert plusieurs documents.Prenons par ex Avec quel logiciel on fait du C# ? [ par Cdcyrille ] Voila en fait j'aimerai juste savoir avec quoi on fait du C#.Je sais que le C++ c avec Visual Studio C (++ je croit) mais je pense pas qu'il puisse fa Databinding et validation [ par Miltiades ] J'ai un 'petit' formulaire (juste quelques dizaines de champs dont la pluparts sont gérés par databinding,le probleme, c'est qu'une petite partie des .ocx sous .net [ par marshallmatter ] MarshallMatterBonjour à tous,Je vous écris parce que j'ai crée une IHM sous visual c# .net et on me demande aujourd'hui d'en faire un activeX.J'ai "ré Pour Nix -> MA CSBar [ par stailer ] Salut,Je viens à peine de voir que tu proposes un petit logiciel qui s'appelle CSBar et qui donne les infos importantes de ce site.Ok, ca c'est cool.E Installer c# [ par stiley1 ] Bjr à tous,Je voudrais installer mon logiciel sur plusieurs autres postes qui sont en réseaux mais qui n'ont pas c# (du fait que leurs utilisateurs ne Integration de fenetre [ par Adrianmartin ] HelloJ'aimerais pouvoir integrer une partie de la fenètre de Systen.Windows.Fomrs.ColorDialogdans mon appli.En fait ce que Sauvegarde d'un variable [ par liliemumue ] BonjourJe suis entrain de creer un petit logiciel qui imprime des recu , seulement chaque recu doit avoir un numéro différent.Donc je dois avoir un fi Probleme avec la base de données [ par giorgio08 ] Bonjour à tous, j 'ai un énorme problème qui m'mpeche davancer dans mon applicatopn.J ai une base de données qui est composée d'un vingtaine de tables Probleme entre 2 tables Important [ par giorgio08 ] Re bonjour a tous, j'ai enfin trouver une solution par rapport a mon probleme. mais j ai qd meme un gros problemej ai 2 tables une PARTIES et une RESU


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales