Stockage dans XML d'un protocole de communication
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Stockage dans XML d'un protocole de communication



  1. #1
    ffb.boy.30

    Question Stockage dans XML d'un protocole de communication


    ------

    Bonsoir,
    Je suis à la recherche d'une idée pour stocker mon protocole de communication dans un fichier XML.
    Ainsi l'ajout ou la modification du protocole ne nécessite plus la re-compilation à chaque modification.
    Mon protocole est basé sur un identifiant de trame et je voudrais stocker dans le fichier XML la structure de chaque paquet en fonction de l'ID de trame.
    Je pensais au système XML mais je ne comprends pas comment le mettre en forme
    Par exemple
    <0x01>
    <NOM>"Trame de lecture des informations"</NOM>
    <INFORMATIONS>
    <VAL1>
    <NOM>"TEMPERATURE"</NOM>
    <TYPE>UINT16</TYPE>
    <UNITE>"°C"</UNITE>
    </VAL1>
    <VAL2>
    <NOM>"NUMERO SERIE"</NOM>
    <TYPE>STRING 8</TYPE>
    </VAL2>
    <VAL3>
    <NOM>"POIDS"</NOM>
    <TYPE>FLOAT</TYPE>
    <UNITE>"Kg"</UNITE>
    </VAL3>
    </INFORMATIONS>

    </0x01>
    Donc au final ma trame avec l'ID 0x01 est composé
    D'un UINT16 pour la température, d'une string de 8 caractère et d'un float de 4 octets.

    Ce système d'encodage existe-t-il ?
    Avez-vous d'autres idées ?
    Je vais coder ça en c#

    Merci pour votre aide.

    -----

  2. #2
    Tryss2

    Re : Stockage dans XML d'un protocole de communication

    Oui, xml me parrait adapté pour ce genre de choses. Surtout qu'en C#, tu as tout les outils necessaires pour manipuler du XML

    Maintenant, je coderai plutôt ton exemple comme ceci :

    Code:
    <trame id="0x01">
        <name>Trame type 1</name>
        <data>
            <value id="1">
                <name>Temperature</name>
                <type>UINT16</type>
                <unit>°C</unit>
            </value>
            <value id="2">
                <name>Numéro de série</name>
                <type>STRING</type>
                <size>8</size>
            </value>
            <value id="3">
                <name>Poids</name>
                <type>FLOAT</type>
                <unit>kg</unit>
            </value>
        </data>
    </trame>
    Après, vu que je ne sais pas du tout ce que tu comptes transmettre, difficile d'avoir un truc parfaitement adapté.

  3. #3
    ffb.boy.30

    Re : Stockage dans XML d'un protocole de communication

    Cool merci pour ce petit up.
    Je vais voir comment je peux lire ça en c#

  4. #4
    Fustigator

    Re : Stockage dans XML d'un protocole de communication

    Bonjour

    Citation Envoyé par ffb.boy.30 Voir le message
    Cool merci pour ce petit up.
    Je vais voir comment je peux lire ça en c#
    Il y a au moins deux façons d'attaquer du XML en C#:
    - XMLDom
    - LinqToXml


    on choisira l'une ou l'autre en fonction de ce qu'on veut faire.

  5. A voir en vidéo sur Futura
  6. #5
    Tryss2

    Re : Stockage dans XML d'un protocole de communication

    L'approche DOM classique utilise la classe XmlDocument, tandis que l'approche LINQ utilise la classe XDocument.

    Et je dirai que l'approche LINQ est plus naturelle en C#, mais vu ce que tu semble vouloir faire n'est pas très compliqué, ça n'a pas vraiment d'importance. DOnc choisi, cherche sur internet des exemples d'utilisation de la classe XmlDocument ou de XDocument, et c'est parti !

  7. #6
    bobflux

    Re : Stockage dans XML d'un protocole de communication

    Là tu es en train de développer un langage de programmation ad-hoc basé sur du XML. C'est possible, mais si tu as des champs optionnels dans tes paquets, ou que la structure peut varier, eh bien tu vas te retrouver en train de réinventer un langage complet avec tests, switch/case, etc. Déjà si tu as un champ qui indique la longueur du champ suivant, ou une structure en chunks, ce sera prise de tête. Greenspun's 10th rule. Développer des langages ad-hoc est un des pires trucs à faire quand on n'en a pas réellement besoin, c'est vraiment à éviter.

    Perso, puisque tu utilises C#, je ferais la description du paquet en utilisant un langage .NET comme par exemple C# ou CSScript avec compilation JIT, ce qui évite de devoir recompiler tout le programme.

    D'ailleurs tu peux aussi le faire avec protocol buffers, c'est fait pour.

Discussions similaires

  1. Protocole de communication 2 fils ?
    Par SabArt dans le forum Électronique
    Réponses: 13
    Dernier message: 16/07/2015, 10h14
  2. Communication et protocole d'interphone
    Par SabArt dans le forum Électronique
    Réponses: 0
    Dernier message: 15/04/2015, 12h36
  3. Communication USART avec PIC et stockage dans I2c
    Par invitead8d66d4 dans le forum Électronique
    Réponses: 0
    Dernier message: 23/12/2007, 16h51
  4. Protocole de communication Modem 56K PCI
    Par DavidDB dans le forum Électronique
    Réponses: 6
    Dernier message: 23/11/2007, 15h34
  5. Reconnaitre un protocole de communication
    Par invitebd2f2b08 dans le forum Matériel - Hardware
    Réponses: 4
    Dernier message: 02/11/2006, 12h14