begin process at 2012 05 29 21:11:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

System

 > 

Problème Liaison RS232


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

Problème Liaison RS232

vendredi 10 juillet 2009 à 12:04:41 | Problème Liaison RS232

maximus4

Bonjour,

j'utilise un code que j'ai trouvé sur le site pour lister les ports RS232.
J'ai 4 ports com le résultat m'affiche 4 com1

code :

void SonarFrm::listeRS232()
{
        HKEY Retour;
        char * NomVal;            //variable nécessaire pour l'ouverture des clés de la base de registre
        NomVal = new char[25];
        char * Valeur;
        Valeur = new char[25];
        unsigned long NNom=25;
        unsigned long NVal=25;
        unsigned long Ty=0;
        wxString PortCom;        //stock les infos sur les ports COM
        wxString temp;
        HANDLE hSer;    //creation objet com
        int n=1; //incrementation du registre
        long Ret;//valeur de retour d'erreur

        RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\SERIALCOMM", 1, KEY_READ, &Retour);

        do
        {
            //Valeur = NULL;
            Ret = RegEnumValue( Retour,n,(char *)NomVal,&NNom,0,&Ty,(unsigned char *)Valeur,&NVal );
            temp="";
            if (Ret != ERROR_NO_MORE_ITEMS)
            {
                    PortCom="";
                    //1)---> valeur : com1 , com2...
                    PortCom = Valeur;

                     temp=NomVal;
                if (temp.Find("VSerial")!=-1)
                    PortCom=PortCom+"  | Emu";
                else if (temp.Find("USB")!=-1)
                    PortCom=PortCom+"  |  USB";
                else if (temp.Find("Serial") !=-1)
                    PortCom=PortCom+"  |  RS232";
                else
                    PortCom=PortCom+"  | Inconue";
                    /*temp=Valeur; //Recupe numero de port
                temp=temp.Right(temp.Length()-3);
                PortCom =PortCom+"  | "+temp;*/
                //ouverture du port
                hSer = CreateFile(Valeur,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);

                    //vérifie que le port série est bien ouvert!
                if(hSer == INVALID_HANDLE_VALUE)
                {   // systeme ocuuper
                    PortCom=PortCom+"  | Occuper";
                }
                else
                {  // system libre
                    PortCom=PortCom+"  | Libre";

                    //c)- fermeture du port com
                    if(hSer!=NULL)
                        CloseHandle(hSer);
                }
                    portcom->Insert(PortCom,n);//ecrit dans la liste
            }
        n++;
        }while(Ret != ERROR_NO_MORE_ITEMS);
}

Merci d'avance
vendredi 10 juillet 2009 à 14:40:27 | Re : Problème Liaison RS232

maximus4

Programme minimal :

#include <iostream>
#include <windows.h>
#include <string>
using namespace std;

int main()
{

    HKEY Retour;
        char * NomVal;            //variable nécessaire pour l'ouverture des clés de la base de registre
        NomVal = new char[25];
        char * Valeur = NULL;
        Valeur = new char[25];
        unsigned long NNom=25;
        unsigned long NVal=25;
        unsigned long Ty=0;
        string PortCom;        //stock les infos sur les ports COM
        string temp;
        int n=1; //incrementation du registre
        long Ret;//valeur de retour d'erreur

        RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DEVICEMAP\\SERIALCOMM", 0, KEY_READ, &Retour);

        do
        {
            Ret = RegEnumValue( Retour,n,(char *)NomVal,&NNom,0,&Ty,(unsigned char *)Valeur,&NVal );
            temp="";
            if (Ret != ERROR_NO_MORE_ITEMS)
            {

                    cout<<Valeur<< " "<<n<<endl;;//ecrit dans la liste
            }
        n++;
        }while(Ret != ERROR_NO_MORE_ITEMS);

    cout << "Hello world!" << endl;
    return 0;
}

même problème
vendredi 10 juillet 2009 à 17:22:51 | Re : Problème Liaison RS232

maximus4

j'ai trouvé ^^


Cette discussion est classée dans : valeur, temp, char, portcom, if


Répondre à ce message

Sujets en rapport avec ce message

erreur bizzare [ par lektrosonic ] Bonjour, je code un programe en C sous Visual Studio.La chose qui est tres surprenante c est que quand je lance mon programe a partir de windows, il p Je ne sais plus bien caster des pointeurs 'universels' [ par LiBe444 ] Bonjour, dans l'en tête tads.h, j'utilise une fonction en préprocession de la forme   #define VAL(a)(a.type==EK_ENTIER ? *(int*)a.valeur : (a.type==E Probleme de concatenuation [ par romainbisson ] Bonjour,j'ai ce probleme avec dev c++invalid conversion from `char' to `const char*'   -- ligne 24   #include #include     int main(int argc, char votre avis sur une fonction de split... [ par Matt67 ] Bonsoir,Je dois faire une fonction de "splitage" de chaine. J'ai realisé ce bout de code et j'aimerais votre avis. La fonction n'est pas tout a fait f lire un fichier ligne par ligne [ par jOlcoWboY ] Bien le bonjour, je me suis fait un 'tit bou de code afin de lire un fichier texte ligne par ligne. Je voulais juste savoir si il avait des améliorati Probleme avec HeapAlloc() [ par lektrosonic ] Bonjour,char** split_data(char* cache,int bounds<span style="color: rg Parametres de compilation VC2008 pour exe petit et fonctionnant sur tout PC [ par Galmiza ] Salut,J'ai un programme con comme tout qui se compile parfaitement mais dont la taille me gene.Quand j'etais sous Visual 2006, l'exe faisait 6.5ko.Mai Assosier 2 chaine de caractere PB :s [ par Booster ] Bonjour,Alors voila je veux tout simplement assosier 2 chaines de caractere mais jaimerais le faire sans passer par une variables intermediaire je m'e pointeur structure & héritage [ par Kurpeus1 ] Bonjour et joyeuses fêtes a tous ^^J'ai un problème. J'ai une fonction qui vient lire des paramètres dans un fichier de configuration. Celle ci vient je ne comprend pas [ par lektrosonic ] Pourquoi a la fin du for, run_config ne vaut pas 1 mais 951742 ??void load_lang(){              auto int i;       auto char temp_buffer[MAX_PATH];    


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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

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