Bonjour,
Juste pour confirmation, en fait le nombre de déclenchement, c'est une fonction qui est non réferencée par Canon?
merci
Version imprimable
Bonjour,
Juste pour confirmation, en fait le nombre de déclenchement, c'est une fonction qui est non réferencée par Canon?
merci
je ne suis pas un spécialiste de SDK, mais je crois plutôt que le nombre de déclenchement est une donnée écrite par le boitier dans le raw.
Pour un certain nombres de boitiers, on connait l'adresse tag de ces données et on peut donc les extraire...pour d'autres boitiers, cette adresse est inconnue....sauf par Canon....
Merci, je vais regarder de ce cote
qu'il utilisait cette fonction sur le canon edsdk obtenir la taille de la propriété et de la valeurkEdsPropID_ShutterCounter
mais dans EDSDK 2.12 utiliser ce code en C
Citation:
#include <stdio.h>
#include "EDSDK.h"
#include "EDSDKTypes.h"
#include "EDSDKErrors.h"
typedef enum { false, true } bool;
void main()
{
EdsError err = EDS_ERR_OK;
EdsCameraListRef cameraList = NULL;
EdsCameraRef camera = NULL;
EdsUInt32 count = 0;
int v3,v5,v7,v8,v9,v10,v11,v12,v13;
int *v6;
int *p;
int a3 = 0x22;
int Flag;
bool isSDKLoaded = false;
printf("Canon EOS ShutterCounter lecteur\n");
err = EdsInitializeSDK();
if(err == EDS_ERR_OK)
{
isSDKLoaded = true;
}
if(err == EDS_ERR_OK)
{
err = EdsGetCameraList(&cameraList);
}
if(err == EDS_ERR_OK)
{
err = EdsGetChildCount(cameraList, &count);
if(count == 0)
{
err = EDS_ERR_DEVICE_NOT_FOUND;
}
}
if(err == EDS_ERR_OK)
{
err = EdsGetChildAtIndex(cameraList , 0 , &camera);
}
if(err == EDS_ERR_OK)
{
err = EdsOpenSession(camera);
}else{
printf("S'il vous plaît Power On appareil et le connecter au port USB...");
}
///////////////////////////////////////////////////////////////////////////////////
if(err == EDS_ERR_OK)
{
v3 = (int)camera+20;
*p = (int *)v3;
if(*p)
{
v5 = *p & 0x80000000;
v6 = *(int **)(*p + 4);
v7 = *v6;
Flag = v7;
if ( (v7 & 0x80000000) == v5 )
{
if ( v7 )
{
while ( 1 )
{
v8 = *(DWORD *)v7;
if ( (*(DWORD *)v7 & 0x80000000) == v5 )
{
v9 = v7 + 8;
v7 = v9;
if ( (v9 & 0x80000000) == v5 )
{
if ( v9 )
{
v10 = *(DWORD *)v9;
if ( (v10 & 0x80000000) == v5 )
{
if ( (v10 & 0x80000000) == v5 )
{
if ( v10 )
{
if ( a3 == *(WORD *)v10 )
{
v11 = v10 + 12;
if ( v11 )
{
break;
}
}
}
}
}
}
}
}
v7 = v8;
Flag = v8;
if ( !v8 || (v8 & 0x80000000) != v5 || (int *)v8 == v6 )
printf("erreur!");
}
v12 = *(DWORD *)v11;
if ( (v12 & 0x80000000) == v5 && v12 )
{
v13 = *(DWORD *)v12;
printf("Shutter Count : %d",v13);
}
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////
if(err == EDS_ERR_OK)
{
err = EdsCloseSession(camera);
}
if(camera != NULL)
{
EdsRelease(camera);
}
if(isSDKLoaded)
{
EdsTerminateSDK();
}
getch();
}