begin process at 2012 05 28 21:31:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Réseau & Internet

 > 

Envoie et reception de données avec un modem (Port COM)


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

Envoie et reception de données avec un modem (Port COM)

jeudi 24 février 2011 à 11:54:46 | Envoie et reception de données avec un modem (Port COM)

S1rK

Bonjour à toute la communauté!

Je fais mumuse avec un modem 56k afin de pouvoir entièrement interagir avec.

Après les différents test de COM avec les commandes Hayes notamment, j'ai pu dans un premier temps faire la connexion a celui-ci via le port COM (ttyS0), dans un second temps lui envoyer des commandes AT, et a présent je souhaite écrire sur le port COM afin d'envoyer et réceptionner des données.

Voila sur quoi je suis partie (il y a juste la partie pour l'envoie d'octets)

Code C/C++ :
char buffer[100]
int fd1;

/* Boucle tant que l'on ne quitte pas */
    do
        {

/* Menu */
    printf("\r\n");
    printf("1 : Envoyer des donnees.\r\n");
    printf("2 : Recevoir des donnees.\r\n");
    printf("3 : Quitter.\r\n");
    printf("Choix : ");
    scanf("%d", &nChoice);

/* Envoyer des données */
    if(nChoice == 1)
        {
            printf("\r\n");
            printf("\r\n");
            printf("Donnees a envoyer\r\n");

            wr=write(fd1, buffer, 'A');
            fflush(stdin);
            gets(buffer);
            printf("\r\n");
            printf("Envoie des donnees...\r\n");
    
    if(write(buffer, strlen(buffer), &nBytesWritten))
            //printf("%d octet(s) envoye(s).\r\n",nBytesWritten);
            printf("%d octets(s)", wr);

    else
            printf("Erreur lors de l'envoi.\r\n");
        }

/* Recevoir des données */
    if(nChoice == 2)
        {
            printf("\r\n");
            printf("Reception de donnees...\r\n");

            printf("%d octet(s) recu(s) ==> %c\r\n", wr,wr);//nBytesRead, nBytesRead, buffer);

        }
        }
 
    while(nChoice != 3);


Oui c'est le bordel dans mon code :) Dans cette partie j'envoie le caractère "A" pour réceptionner sur mon modem 65 octets, ensuite je lis le nombre d'octets présent sur mon modem qui me retourne bien 65 octets correspondant bien a "A"

Voila ou je bloque: Je souhaite tout simplement envoyer une chaine de caractère et non plus un simple caractère seul, problème mon programme me permet pour un caractère (enfin la fonction write), mais pas pour plus, comment doit-je m'y prendre?

En parallèle lorsque j'exécute mes commandes AT (du genre un appel téléphonique) j'aimerais savoir si c'est possible de prendre l'info dans l'hyperterminal (si c'est "OK" ou "BUSY" par exemple) et d'effectuer une action en fonction de la réponse.

Voila désolé pour le monologue, et un grand merci a ceux qui me donneront un coup de main (ou simplement ceux qui me liront sans me comprendre xD)

En espérant avoir été le plus clair possible ^^ merci!!
vendredi 25 février 2011 à 20:21:26 | Re : Envoie et reception de données avec un modem (Port COM)

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

Tu as le nombre d'octets écrits en retour dans nBytesWritten.
erreur = nbWritten = 0
Tant que (!erreur && (nbWritten != strlen(buffer)))
erreur = ecrit()
nbWritten += nBytesWritten;
lire le status du port COM afin de determiner si la fifo est pleine.
fin
si erreur afficher infos.

Tu dois pouvoir avoir le status du port com avec la fonction ioctl(). A voir, il doit être possible de mettre la lecture du status sous forme d' évenement associé à un select().

@++


Cette discussion est classée dans : buffer, données, printf, envoyer, envoie


Répondre à ce message

Sujets en rapport avec ce message

Buffer avec WriteFile ??????????? [ par nanalye ] Bonjour tout le monde !J'ai regardé sur le forum ce qui était mis sur ce sujet mais je n'ai pas tout compris.Je dois envoyer des entiers par le biais Envoie de caractere [ par Thaeron ] il me faut l'api pour envoyer des caracteres a un programme par expemple envoyer la lettre 't' a wordpad (wordpad deja ouvert) si vous pigez et que vo envoyer une commande à l'intérieure du programme sous forme de string [ par oudkaramla ] bonjour tout le monde j'ai un programme qui demande à l'utilisateur d'entrer une commande sur la fenêtre consolesauf que moi je veux le faire à l'inté lire un octet [ par th62d ] Bonjour,Je dois lire la valeur se trouvant dans buffer. char buffer[10]; printf("%x\r\n",buffer[1]); La comment envoyer des données sur un port série sous xp [ par tchen01 ] je voudrais envoyer des commandes hexadecimales sur un port série en c++ sous xp et les commandes outp et inp ne sont pas valables.merci d'avance Envoyer des données à l'imprimante [ par bethany ] J'ai besoin de votre aide! Je dois pour mon travail envoyer des données à l'imprimante. Et je n'ai aucune idée de comment faire. A ce niveau là je su Aide pour un programme,création variable [ par pirana ] bonjour à vous tous ... Voila je suis un débutant en C... j'ai récupéré ce code sur le site et j'aimerai me simplifié la vie...mais je n'y arrive pas [visual C++] problème (très bizarre) avec un CString [ par drinkmilk ] Bonjour, je fait une requête sur une base access. Je récupère les données ainsi: <T Comment envoyer des données d'1 vue à 1 autre vue? [ par gwada_youth ] Bonjour à tous! Voila je débute dans les MFC sous visual et je vousdrais transmettre des valeurs du'une CFormeView1 à une autre CFormeView2. Car https (SSL) et CPP [ par abdoulax ] Bonjours je débute dans la sécurité de transfert de données. Pour sécuriser mes données j'ai choisie le protocole HTTPS (paraît-il que FTPS n'est pas


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,796 sec (3)

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