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 :

problème pour instancier une class


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut problème pour instancier une class
    Bonjour,

    Je cherche a programmer un codeur/decodeur de Reed Solomon, j'ai déjà bien avancé sauf que j'ai un problème que je n'arrive pas à résoudre...
    Du coup je me suis baladé sur le net et j'ai trouvé ceci:
    http://www.partow.net/projects/galois/index.html

    Je pense que pratiquement tout les ingrédients sont réunis pour faire un décodeur (j'ai déjà programmmé le codeur) mais je suis complétement novice en c++ alors j'ai un peu de mal à embriquer toutes les méthodes qui sont proposées.

    j'ai l'impression que pour faire le décodeur je dois d'abord générer un champs de Galois avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	unsigned int prim_poly[9] = {1,0,0,1,0,1,1,0,1};
    	galois::GaloisField gf(256,prim_poly);
    puis de créer un block!!
    reedsolomon::ReedSolomonBlock(phrase, error, 8, false);
    et enfin d'appliquer le decodage:
    ReedSolomonDecoder

    Toute aide serait vraiment la bienvenue!!
    parce que je comprends pas trop comment agencer tout ça.

  2. #2
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    C'est quoi un codeur/decodeur de Reed Solomon ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    Je me suis pas très bien exprimé, en faite les codes de reed solomon font parti de la famille des CRC codes cycliques redondants.
    Tu transmets une information qui tiens sur xx symboles. Les codes de reed solomon te permette de construire un polynome redondants sur yy symboles.
    et gâce a cette "information" supplémentaire, tu peux corriger yy/2 erreurs...

  4. #4
    Fry
    Fry est déconnecté
    Membre confirmé Avatar de Fry
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 150
    Par défaut
    ca a l'air assez compliquer comme controle d'erreur... pk utiliser celui la?
    sinon est ce que tu a compiler la librairie?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    je veux faire un lecteur de Datamatrix (http://grandzebu.net/informatique/codbar/datamatrix.htm) qui utilise ce mode de correction là, donc j'ai pas le choix...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    peux tu me dire si c'est juste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	unsigned int prim_poly[9] = {1,0,0,1,0,1,1,0,1};
    	galois::GaloisField gf(8,prim_poly);
    ces instructions créent un champs de Galois gf, et en même temps calcul alpha_to[].
    Dans le debuggueur je peux accéder à gf.alpha_to[4] donc la place est allouée.

    après je tente de faire comme sur le site:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    galois::GaloisFieldElement element1(&gf, 1);
    galois::GaloisFieldElement element2(&gf, 2);
    Mais mon compilateur me sort ça:
    dec.obj : error LNK2001: unresolved external symbol "public: __thiscall galois::GaloisFieldElement::GaloisFieldElement(class galois::GaloisField *,int)" (??0GaloisFieldElement@galois@@QAE@PAVGaloisField@1@H@Z)

    Pourtant si j'ai bien compris &gf c'est l'adresse de "galois::GaloisField "donc c'est bien "class galois::GaloisField *" et 1 ou 2 sont des int donc je comprends pas ce msg d'erreur.

    de plus j'ai fait des petits tests:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    unsigned int prim_poly[9] = {1,0,0,1,0,1,1,0,1};
    	galois::GaloisField gf(8,prim_poly);
     
    	galois::GaloisField *GF;
    	galois::GaloisFieldElement *element;
    	reedsolomon::ReedSolomonBlock *bl;
    //GaloisFieldElement element(&GF, 1);
    Je peux accèder a chaque class, mais je n'arrive pas à m'en servir?? j'ai l'impression que c'est le &gf qui passe mal

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    OOOoooups

    je n'avais pas lié les fichiers GaloisFieldElement au projet.......

    mais bon je n'arrive toujours pas a faire marcher ce satané decodeur

  8. #8
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ou est le problème maintenant

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    Bon en fait j'ai repris son fichier intitulé ReedSolomonProto.cpp et j'essaye de comprendre comment le programme fonctionne. Mon but est de construire un décodeur de Datamatrix donc la norme impose certaine choses, tel que le polynôme irréductible, le rapport entre le nombre de données et le nombre de mots de code de dorrection....

    Mais mon soucis plus immédiat est de séparer le décodeur du codeur, c'est à dire que je reçois un msg corrompu sans connaître autre choses, à part les informations:
    on travail dans GF(256)
    notre polynome primitif s'exprime en binaire par 100101101
    et en fonction de la taille du msg corrompu on connait le nombre de données (CODE_LENGTH) et le nombre de mot de code de correction (FEC_LENGTH) de plus on peut connaitre le nombre d'erreurs qui peuvent être corrigées

    Voila comme je connais pas du tout le C++ j'ai du mal à avoir une vision d'ensemble (qui dépend de qui ou quoi).
    j'ai quand même l'impression que si je veux utiliser le decodeur de manière séparée, il va falloir que je calcul un
    galois::GaloisField gf(FIELD_DESCRIPTOR,poly);
    en prenant le poly 100101101

    puis il va falloir que j'indique à la class decode où est le message que je souhaite "décoder"

    ce sont ces quelques étapes qui me posent problème.

    Si l'un d'entre vous à le courage de m'aider, je le remercie beaucoup

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

Discussions similaires

  1. Problème pour instancier une classe
    Par Armulis dans le forum C++
    Réponses: 4
    Dernier message: 29/06/2014, 16h06
  2. Problème pour retrouver une class
    Par As2piK dans le forum iReport
    Réponses: 1
    Dernier message: 11/11/2007, 15h24
  3. [Débutant] Problèmes pour créer une classe
    Par Hokage dans le forum Débuter
    Réponses: 3
    Dernier message: 27/09/2007, 17h48
  4. Réponses: 7
    Dernier message: 22/02/2007, 17h57
  5. Réponses: 3
    Dernier message: 13/08/2005, 16h18

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