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

C Discussion :

? Need lvalue ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Par défaut ? Need lvalue ?
    Bonjour à tous,
    je suis en train de faire une fonction qui me permet d'envoyer une trame de type série d'un boitier électronique, à un PC.
    j'ai fait la réception, et je fais l'émission.
    Ma trame est décomposée comme suivi : ( en hexa)
    80 00 80 00 AA AA 00 02 AA BB 45 1D 00 00
    explication :
    80 00 80 00 : marqueur de début de trame
    AA AA : identifiant de la trame
    00 02 : longueur des données
    AA BB : les données
    45 ID : le checksum
    00 00 : marqueur de fin de trame.
    jusque là tout est ok ?

    Pour ma réception, je fais :
    id = (UINT16)(str[ 4 ] << 8) + str[ 5 ];
    pour que j'obitenne 0xAAAA dans mon id.
    tout fonctionne.

    mais pour l'émission, il faut que ça fonctionne dans l'autre sens, je veux mettre AAAA dans la trame.

    (UINT16)(str[ 4 ] << 8) + str[ 5 ] = id ;
    ne foncitonne pas et me renvoie "invalid expression, need lvalue"

    l'ID sera encore de type 0xAAAA. codé sur 2 octets. mon str est sur 8 bits.
    Je suis un peu coincé...
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (UINT16)(str[ 4 ] << 8) + str[ 5 ] = id ;
    L'expression à gauche du signe = est une valeur et ne désigne pas un objet.
    Pour assigner une valeur (située à droite du signe =), il faut qu'à gauche de ce signe figure une expression qui désigne un objet, comme dans id = (UINT16)(str[ 4 ] << 8) + str[ 5 ]. La valeur à droite sera stockée dans l'objet désigné à gauche.

    Il faut décomposer ta valeur en éléments qui peuvent être émis individuellement. Ces éléments peuvent être envoyé au fur et à mesure qu'ils sont calculés ou ils peuvent être stockés dans un tableau, et le contenu du tableau émis ensuite.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Par défaut
    Merci pour ta réponse.
    Comment puis-je faire pour décomposer justement cette valeur simplement ?
    pour les identifiants ça ne pose pas de probleme, mais pour par exemple la longueur des données, et le checksum, c'est plus embétant...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 36
    Par défaut
    J'ai réussi à me débrouiller en faisant : *(unsigned short *)&str[4] = 0xAAAA;
    et un htons pour passer de little a big endian.
    Merci pour ton conseil.

    Arnaud

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/11/2005, 09h08
  2. Requete sélection, Jointure (coup de pouce needed)
    Par Odilon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h48
  3. [tapi] explication needed
    Par zedine dans le forum MFC
    Réponses: 6
    Dernier message: 29/09/2005, 16h51
  4. need help pour : boucle & expression régulière
    Par Fabouney dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2005, 02h22
  5. Erreur : Needs Finalization
    Par blaiseac dans le forum Langage
    Réponses: 2
    Dernier message: 03/08/2005, 17h29

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