Bonjour & Bienvenue sur EOS-Numerique
Réseaux Sociaux : Follow us on Facebook Follow us on Twitter


Sign Up






Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre
    Inscription
    mars 2010
    Localisation
    Aubenas
    Messages
    4
    Boîtier
    350D
    Objectif(s)
    28-80mm

    Question Un petit coup de main pour un projet de fin d'études

    Bonjour à tous,

    Comme je l'ai dis dans ma présentation, je suis actuellement étudiante en BTS Iris et je travail en ce moment sur mon projet de fin d'études. Ce projet consiste à développer un logiciel pour contrôler un APN Canon de puis en PC (en mode local ou via un réseau). Pour vous donner une idée, c 'est le même genre de logiciel que EOS Utility ou ZoomBrowser (en un peu moins avancé).
    Je travail donc avec l'EDSDK Canon en C++ et, comme mon projet doit être réalisé en C#, j'utilise un "wrapper". J'avoue que j'ai un peu de mal à bien prendre en main la librairie, et la présence du wrapper n'est pas pour me simplifier les choses !
    J'espère donc pouvoir trouver un peu d'aide sur ce forum et je vous pose de ce pas ma première question :

    De nombreuses fonctions du EDSDK retourne une variable de type EdsError, par exemple pour la prise de vue :


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IntPtr;
    using EDSDKLib;

    /* Déclencher la prise de vue */
    public bool PrendreLaPhoto()
    {
    EdsError valeurDeRetour;
    EDSDK.EdsSendCommand(kEdsCameraCommand_TakePicture , 0);

    if (valeurDeRetour == EDS_ERR_OK)
    {
    photoPrise = true;
    }else (valeurDeRetour != EDS_ERR_OK)
    {
    photoPrise = false;
    }

    return photoPrise;
    }


    Le problème c'est que visual studio m'envoie ballader car il ne reconnait ni "EdsError" ni "EDS_ERR_OK" ni "kEdsCameraCommand_TakePicture", j'ai essayé de rajouté, comme pour les fonction, 'EDSDK.' devant chacun d'entre eux, mais visual studio ne les reconnait toujours pas. Je pense qu'il doit falloir appelé chacun de ces types d'une manière particulière ou peut être rajouté des using, mais je ne trouve pas la solution.

    Merci par avance à vous de prendre le temps de lire ma question,

    Amicalement,
    Cécile


  2. #2
    Membre
    Inscription
    juillet 2009
    Localisation
    .
    Messages
    3 703
    Boîtier
    .
    Objectif(s)
    .

    Par défaut

    As tu essayé de chercher sur Your Page Title ? Je n'ai pas parcouru le site mais sait-on jamais...


    Sinon autre piste : as-tu bien importé dans VS toutes les lib et dll du SDK ? Tu sais dans les options du projet en demandant qu'ils prennent en compte ces répertoires lorsqu'il ne reconnait pas le type d'une variable non standard.

  3. #3
    Membre
    Inscription
    mars 2010
    Localisation
    Aubenas
    Messages
    4
    Boîtier
    350D
    Objectif(s)
    28-80mm

    Par défaut

    Merci pour le site je ne connaissais pas je vais y faire un tour ! Normalement j'ai bien importé tout ce qu'il faut, je ne pense pas que le soucis vienne de là. :s

  4. #4
    Membre
    Inscription
    juillet 2009
    Localisation
    .
    Messages
    3 703
    Boîtier
    .
    Objectif(s)
    .

    Par défaut

    Désolé je ne saurais pas t'aider plus ne connaissant pas le SDK Canon... J'ai trouvé quelques sites qui en parlent, le mieux est à mon avis de fouiller google dans tous les sens avec tous les mots clé possibles pour trouver dans quel fichier est déclaré ce type ^^


    Par contre ton projet est assez sympa, moi en fin de BTS IRIS j'avais eu un truc carrément moins intéressant :p

  5. #5
    Membre Avatar de sebmafate
    Inscription
    août 2007
    Localisation
    Villers-Cotterêts, Aisne, France
    Âge
    47
    Messages
    219
    Boîtier
    Canon EOS 7D+40D & SpeedLite 430EX
    Objectif(s)
    Canon 10-22 f/4-5,6 | Canon 24-70 f/2.8L | Canon 70-200 f/4L | Canon 35-350 f4-5.6L

    Par défaut

    sinon... je peux te proposer de poster ton problème sur le forum CSharpFR.com (dont je suis admin)

    tu auras plus de réponses "techniques".

    Séb

  6. #6
    Membre
    Inscription
    février 2010
    Localisation
    Rennes
    Âge
    42
    Messages
    3
    Boîtier
    1000D
    Objectif(s)
    18-55, 50 1.8

    Par défaut

    Bonjour,

    Le type de données EdsError doit être décrit dans un fichier .h du sdk.
    Tu ne peux pas importer ce fichier puisque tu développes en C# et non pas en C++.

    Il s'agit probablement d'une énumération, très utilisées pour décrire les codes d'erreur de fonctions.
    Tu dois donc créer ce type de données dans ton wrapper, par exemple :

    Enum EdsError
    {
    EDS_ERR_OK = 0, // Pas d'errur.
    EDS_ERR_ARG, // Argument non correct.
    ...
    }

    Bien entendu, tes constantes EDS_ERR_OK, ... doivent avoir les mêmes valeurs que dans le SDK.

    Bon courage,

    Olivier
    Dernière modification par chanqueo ; 02/03/2010 à 14h07.

  7. #7
    Membre Avatar de sebmafate
    Inscription
    août 2007
    Localisation
    Villers-Cotterêts, Aisne, France
    Âge
    47
    Messages
    219
    Boîtier
    Canon EOS 7D+40D & SpeedLite 430EX
    Objectif(s)
    Canon 10-22 f/4-5,6 | Canon 24-70 f/2.8L | Canon 70-200 f/4L | Canon 35-350 f4-5.6L

    Par défaut

    oui...

    sauf qu'en C#, c'est enum et non Enum

    public enum EdsError
    {
    EDS_ERR_OK = 0, // Pas d'erreur.
    EDS_ERR_ARG, // Argument non correct.
    ...
    }

    à l'utilisation :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IntPtr;
    using EDSDKLib;

    /* Déclencher la prise de vue */
    public bool PrendreLaPhoto()
    {
    EdsError valeurDeRetour = EDSDK.EdsSendCommand(kEdsCameraCommand_TakePicture , 0);

    if (valeurDeRetour == EdsError.EDS_ERR_OK)
    {
    photoPrise = true;
    }else (valeurDeRetour != EdsError.EDS_ERR_OK)
    {
    photoPrise = false;
    }

    return photoPrise;
    }

  8. #8
    Membre
    Inscription
    février 2010
    Localisation
    Rennes
    Âge
    42
    Messages
    3
    Boîtier
    1000D
    Objectif(s)
    18-55, 50 1.8

    Par défaut

    Ne t'arrêtes pas la dessus.
    Ça ne change rien.
    Quoi qu'il arrive le type de donnée EdsError est probablement une valeur entière.
    Tu peux donc la remplacer pas "int".
    Il suffit juste après de connaître la valeur des constantes EDS_ERR_OK,...

    Si je peux me permettre, ton code serait plus léger comme suivant :


    public bool PrendreLaPhoto()
    {
    EdsError valeurDeRetour = EDSDK.EdsSendCommand(kEdsCameraCommand_TakePicture , 0);

    return EdsError.EDS_ERR_OK == valeurDeRetour;
    }

    Olivier

  9. #9
    Membre
    Inscription
    mars 2010
    Localisation
    Aubenas
    Messages
    4
    Boîtier
    350D
    Objectif(s)
    28-80mm

    Par défaut

    Merci à tous pour vos conseils, je pense m'inspirer un peu de tout ça.

    Citation Envoyé par sebmafate Voir le message
    sinon... je peux te proposer de poster ton problème sur le forum CSharpFR.com (dont je suis admin)

    tu auras plus de réponses "techniques".

    Séb
    Je connais le forum mais comme il s'agit d'une Library Canon je me suis dis que ce forum serait peut être plus approprié. :p
    Dernière modification par Zulfeiye ; 02/03/2010 à 17h38.

  10. #10
    Membre
    Inscription
    septembre 2009
    Localisation
    Suisse
    Messages
    27
    Boîtier
    5D III, 7D II
    Objectif(s)
    EF-S 10-22, EF-S 15-85, EF 70-200 f/4

    Par défaut

    Les erreurs sont définies comme constantes dans le wrapper C#, il te suffit de faire :

    Code:
    if (EDSDK.EDS_ERR_OK != valeurDeRetour)
    {
            //...
    }

 

 

Informations de la discussion

Utilisateur(s) sur cette discussion

Il y a actuellement 1 utilisateur(s) naviguant sur cette discussion. (0 utilisateur(s) et 1 invité(s))

Discussions similaires

  1. Un petit coup de main ?
    Par ludovigier dans le forum Atelier Retouche
    Réponses: 7
    Dernier message: 07/03/2008, 11h52
  2. un petit coup de main
    Par CHIRON dans le forum Discussions générales
    Réponses: 2
    Dernier message: 06/06/2007, 10h23
  3. coup de main
    Par yoyo92 dans le forum Discussions générales
    Réponses: 3
    Dernier message: 18/02/2007, 22h38
  4. Besoin d'un petit coup de main
    Par FZeder dans le forum Discussions techniques
    Réponses: 23
    Dernier message: 01/12/2006, 07h06

Les tags pour cette discussion

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Fuseau horaire GMT +2. Il est actuellement 22h14.
Powered by vBulletin® Version 4.2.5
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Auto Closing Of Threads provided by Threads Auto Close (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Copyright © Eos-numerique 2004-2023
vBulletin Skin By: PurevB.com