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 :

String : Caractères non imprimable


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut String : Caractères non imprimable
    Bonjour à tous.

    Je suis en train de développer un application qui communique avec des équipements réseaux via le port série. Afin de communiquer avec le celui ci j'utilise un classe prévue à cette effet. Mais la méthode d'envois de cette classe ne prend en paramètre qu'un string.
    Donc je souhaitais savoir si il était possible d'utiliser des caractère non imprimable dans un string ( du genre ctrl-y ect...) et si oui comment le faire.

    Je vous remercie d'avance pour votre aide.

    Edit : Voici la partie de mon code qui utilise cette classe. Je souhaiterais envoyer ctrl-y à la place de bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LSerie port_rs;
    string test;
    test="bonjour";
    port_rs.open(1, 9600);
    port_rs.sendData(&test);
    port_rs.closeCom();

  2. #2
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    Je ne suis pas sur de ce que je vais dire mais il me semble qu'avec les termcap tu peux recuperer des code de touche associative, le probleme est que c'est propre a chaque archi exemple:

    ctrl+Y vaudra "^Y" dans un cas
    et "[^Y" dans un autre, tu peux pas passer par des code:
    100 pour ctrl+Y
    200 pour ctrl+Z
    etc...

    Je pense que sa sera un peu plus propre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    Je te remercie de ta réponse.
    Mais comme je connais le code ascii de ctrl-y ne serait il pas plus simple que j'envoie directement le code ascii de la combinaison de touche au port serie et l'équipement le convertira?
    Le problème c'est que je ne sais pas comment envoyer le code ascii en passant par un string.

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string commande = "AT+\xd";
    port_rs.sendData(&string);
    Ceci dit, bizarre que sendData prenne une string par pointeur. Pas terrible terrible

  5. #5
    Membre Expert
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Billets dans le blog
    1
    Par défaut
    hum si tu peux envoyé le code ascii directement.

    Mais d'habitude tu fais comment pour controler ton equipement, je veux dire par la, sans passer par un programme, comment tu le controle? en tapant ctrl+Y dans un terminal?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    Je viens de tester la la méthode de 3DArchi elle marche nickel mais je ne comprend pas à quoi servent "AT+" et le "d".
    J'ai essayé sans et sa marche aussi bien pourriez vous m'expliquer l'utilité de les mettre?
    skeud : Ma méthode actuelle pour contrôler l'équipement est de passer par l'hyperterminal.

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    "AT+" c'était un exemple de chaîne de caractère (en général, c'est pour envoyer une commande AT à un modem).
    d est la valeur ascii en hexa du caractère. Cela pourrait être "\x31" pour afficher "1" (code ascii 0x31 == 49 décimal =="1" )par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string commande = "\x31";
    port_rs.sendData(&string);

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    Merci de ton explication.
    Moi je l'ai utilisé de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LSerie port_rs;
    port_rs.open(1, 9600);
    string emission = "\x19";
    port_rs.sendData(&emission);
    port_rs.closeCom();
    Je vous remercie de votre aide.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/06/2008, 15h27
  2. type de donnée qui accepte des caractères non imprimables
    Par tasnim86 dans le forum Général Python
    Réponses: 1
    Dernier message: 11/03/2008, 13h37
  3. Gestion des caractères non-imprimables
    Par azr dans le forum Langage
    Réponses: 2
    Dernier message: 17/12/2007, 22h37
  4. caractères non imprimables
    Par floflo_2006 dans le forum C
    Réponses: 6
    Dernier message: 11/09/2006, 10h17
  5. [CR] envoyer un caractère non imprimable
    Par nnj dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/07/2004, 08h56

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