Affichage des résultats 1 à 10 sur 10
-
01/03/2010, 13h55 #1
- Inscription
- March 2010
- Localisation
- Aubenas
- Messages
- 4
- Boîtier
- 350D
- Objectif(s)
- 28-80mm
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
-
01/03/2010, 14h29 #2
- Inscription
- July 2009
- Localisation
- .
- Messages
- 3 703
- Boîtier
- .
- Objectif(s)
- .
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.
-
01/03/2010, 14h36 #3
- Inscription
- March 2010
- Localisation
- Aubenas
- Messages
- 4
- Boîtier
- 350D
- Objectif(s)
- 28-80mm
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
-
01/03/2010, 15h43 #4
- Inscription
- July 2009
- Localisation
- .
- Messages
- 3 703
- Boîtier
- .
- Objectif(s)
- .
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
-
02/03/2010, 12h59 #5
- Inscription
- August 2007
- Localisation
- Villers-Cotterêts, Aisne, France
- Âge
- 48
- 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
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
-
02/03/2010, 13h04 #6
- Inscription
- February 2010
- Localisation
- Rennes
- Âge
- 43
- Messages
- 3
- Boîtier
- 1000D
- Objectif(s)
- 18-55, 50 1.8
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,
OlivierDernière modification par chanqueo ; 02/03/2010 à 13h07.
-
02/03/2010, 13h17 #7
- Inscription
- August 2007
- Localisation
- Villers-Cotterêts, Aisne, France
- Âge
- 48
- 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
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;
}
-
02/03/2010, 13h24 #8
- Inscription
- February 2010
- Localisation
- Rennes
- Âge
- 43
- Messages
- 3
- Boîtier
- 1000D
- Objectif(s)
- 18-55, 50 1.8
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
-
02/03/2010, 13h57 #9
- Inscription
- March 2010
- Localisation
- Aubenas
- Messages
- 4
- Boîtier
- 350D
- Objectif(s)
- 28-80mm
-
05/04/2010, 21h28 #10
- Inscription
- September 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
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
-
Un petit coup de main ?
Par ludovigier dans le forum Atelier RetoucheRéponses: 7Dernier message: 07/03/2008, 10h52 -
un petit coup de main
Par CHIRON dans le forum Discussions généralesRéponses: 2Dernier message: 06/06/2007, 09h23 -
coup de main
Par yoyo92 dans le forum Discussions généralesRéponses: 3Dernier message: 18/02/2007, 21h38 -
Besoin d'un petit coup de main
Par FZeder dans le forum Discussions techniquesRéponses: 23Dernier message: 01/12/2006, 06h06