Pilotage d'un générateur de signaux TV par USB à travers un programme en C++
Bonjour à tous, et merci à ceux qui pourront m'aider.
Dans le cadre d'un stage, je dois reprendre un ancien programme de pilotage d'un générateur de signaux TV DTU-215 de la marque DECTEK. Quand j'envoie des informations au générateur, le programme plante et quitte. Tout me porte a croire que leurs fichiers sources et leurs fichiers de ressources sont obsolètes.
Quelqu'un a t'il déja eu le même probleme que moi ? Si quelqu'un connais les dessous d'envoi de données en USB en C++, je voudrais bien qu'il m’explique. Mon probleme pourrait-il venir des fichiers constructeurs ? ou alors je n'envoie pas mes données correctement ?
Merci de votre aide !
Voici la boucle d'envoi des données
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
void Envoi_Donnees()
{
int RetValue(0);
Player ThePlayer;
static char argv[32][32];
char* pargv[32];
char* cmd= _commande;
char* pt = cmd;
int i=0;
while (true)
{
pt = strstr(cmd, " "); // find space
if (pt == 0) // space not find
{
strcpy(argv[i++], cmd); // last command
break; // end of cmd
}
*pt = 0; // end of string
strcpy(argv[i++], cmd); // one command
pargv[i] = &argv[i][0]; // init pointer
*pt++; // next command
strcpy(cmd, pt); // erase previous command
}
if (RetValue==0)
{
try
{
RetValue = ThePlayer.Play(i-1, pargv);// Tout me porte a croire que c'est dans cette methode que le programme plante et donc renvoie RetValue=-1
if (RetValue==-1)
exit(2); //RetValue vaut toujours -1 ce qui me ferme automatiquement mon programme.
}
catch(...)
{
RetValue = -1;
}
}
else
return;
}
}; |
Voici le code de la méthode Play (disponible dans les fichiers du DTU-215)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| int Player::Play(int argc, char* argv[])
{
int RetValue=0;
try
{
try
{
// Parse command line options
m_CmdLineParams.Init();
m_CmdLineParams.ParseCommandLine(argc, argv);
}
catch ( Exc e ) {
Log(e, true);
Log("", true);
Log("Use -? option for help", true);
return -1;
}
catch ( ... ) {
return -1;
}
if ( m_CmdLineParams.m_ShowHelp )
{
// Disable silent mode
m_CmdLineParams.m_SilentMode = false;
ShowHelp();
return RetValue;
} |
Merci !
Au revoir.