begin process at 2012 02 09 11:35:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Réseau / Internet

 > 

Enum || mise en place d'une classe protocole


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

Enum || mise en place d'une classe protocole

mardi 10 mai 2005 à 09:56:03 | Enum || mise en place d'une classe protocole

YOOP

Bonjour,

je cherche à metre en place un protocole de communication sur RS232 pour une application embarqué.
Soit g deja la connexion, une partie de l'interface... Maintenant je regarde à créé une classe pour les entêtes de la trame que je veux envoyer.
exemeple  :

| < 1 > "Data"
|                  | [ Identifiant Commande ]    [ Identifiant donnés ]    [ Identifiant élément ]
|                  | < 0 > "Write OK"                   < 000 > "reservé"             < xxx > (indiférent)
|                  |
|                   | < 1 > "Error Transmit"          < 000 > "reservé"             < xxx > (indiférent)


Donc l'idee était de creer une classe entete qui contient des flags en énum. Style :

[Flags]
public enum Entete
{
Data = 128 ,
WriteOK =128,
ERR=192
}

Mais forcément ce bout de code ne va pas car dans type enum, il ne peut y avoir deux falg ayant la même valeure. Or c'est ce que je veux : Quand c'est une ent^te data ca peut etre aussi "WriteOK"....
Et dans le m^me ordre d'idée, comment fair pour qu'un énum puisse prendre plusieur valeure (une plage)?
car comme dans l'exemple : les trois derniers bits peuvent avoir plusieur valeures. Et comme cette classe est valable a la reception et a l'émission, il faut que si on m'envoie une trame avec les trois derniers bist fluctuant , il reconnaisse que c'est bien "Write ok"???


Merci pour les idées et sugestion

mardi 2 août 2005 à 11:35:33 | Re : Enum || mise en place d'une classe protocole

el_teedee

Membre Club
| < 01 > "Data"
|                  | [ Identifiant Commande ]    [ Identifiant donnés ]    [ Identifiant élément ]
|                  | < 0 > "Write OK"                   < 000 > "reservé"             < xxx > (indiférent)
|                  |
|                   | < 1 > "Error Transmit"          < 000 > "reservé"             < xxx > (indiférent)


| < 10 > "Commande"
|                  | [ Identifiant Commande ]    [ Identifiant donnés ]    [ Identifiant élément ]
|                  | < 0 > "Write OK"                   < 000 > "reservé"             < xxx > (indiférent)
|                  |
|                   | < 1 > "Error Transmit"          < 000 > "reservé"             < xxx > (indiférent)

Ainsi, tu n'auras pas les mêmes ENTET même si la suite des bits est identique puisque les 2 bits de poids faible sont différents.

DATA : de 01 0 000 000 à 01 1 111 111, c'est-à-dire de 128 à 255
COMMANDE : de 10 0 000 000 à 10 1 111 111
, c'est-à-dire de 256 à 383

Le problème c'est que cela ne tient plus sur 1 octet, mais sur 9 bits.
mardi 2 août 2005 à 11:36:33 | Re : Enum || mise en place d'une classe protocole

el_teedee

Membre Club
Ainsi, tu n'auras pas les mêmes ENTET même si la suite des bits est identique puisque les 2 bits de poids FORT sont différents.

bien entendu

mardi 9 août 2005 à 10:48:15 | Re : Enum || mise en place d'une classe protocole

YOOP

yep, Ce serait en effet la solution la plus facile. Mais comme tu l'as souligné, elle nécessite l'utilisation de 9 bits. Or sur le micro controleur que j'utilise (PIC 18F2420) cela allourdi la programation lorque l'on cherche a travailler sur 9 bits. En effet, le module de communication du micro controleur est prévu pour travailler sur 8 bits. Il y a bien une possibilité de travailler sur 9 bits en passant par le bit de parité (si mes souvenir sont correctes). Mais bon, c'est lourd a la mise en place (de plus je suis limité en espace code donc la solution doit venir si possoble du coté PC (interface)) Voila pour la précision. Merci pour tes suggestions... cordialement. JOOP @ GREENPROPULSION :d
lundi 24 octobre 2005 à 12:42:28 | Re : Enum || mise en place d'une classe protocole

Nono8379

Slt, je ne sais pas ou tu en es, mais pour ton enumération tu peux faire : enum Test {Zero = 256, Un = 255, One = Un, Deux = 254, Two = Deux, Trois = 3} c'est à dire que tu peux donc bien réutiliser le même nom (litéral d'énumération) dans une énumération... bon courage Arnaud


Cette discussion est classée dans : data, classe, place, enum, protocole


Répondre à ce message

Sujets en rapport avec ce message

Lister les membres d'une classe [ par April_Seb4 ] BonjourJ'explique mon problèmeJ'utilise une API pour gérer une carte d'affichage qui demande des uint en entréeJ'ai voulu utiliser une enum qui se car Les exceptions notamment le "data" [ par gregoire2008 ] Bonjour, j'ai un big probleme sur c#. J'ai créer un classe héritée de la classe exception du framework et je voudrai faire un parcour sur la propriété mise en place event/delegate [ par dodo7263 ] Bonjour a tous, Voila il faut un début a tout. En général le parcours de votre forum me suffit car j'ai toutes les réponses ou pistes a mes questions Envoi de data >15ko [ par olivier201174 ] Bonjour, il me semble que j'ai déjà vu des traces du meme probleme sur ces forums, mais je ne suis pas parvenu à régler le probleme... j'ai une appl array ou dictionnary of deleguate [ par l0r3nz1 ] Bonjour, j'ai vu quelques bout de code concernant des tableaux de delegate: dans la classe 1 public delegate void task(); public stat Class et héritage [ par foucauld ] bonjour à tous. Je bute sur un problème qui doit être hyper simple... Je manipule des objets, par exemple des livres. Ces livres peuvent être des mag serialization d'objets [unserializable], Form [ par l0r3nz1 ] Bonjour, pour moi, après quelques recherches, la meilleure solution est d'avoir une classe controleserializable construit a partir d'un controle et q Problème avec C# [ par sarisar ] Bonjour, J'ai un problème avec mon code, j'essaie d'afficher les données de ma table Société dans un dataGridView. mais rien ne s'affiche le code ne problème avec datagridview [ par sarisar ] Bonjour, J'ai un problème avec mon code, j'essaie d'afficher les données de ma table Société dans un dataGridView. mais rien ne s'affiche le code ne


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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,827 sec (4)

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