Aide - Recherche - Membres - Calendrier
Version complète : Probleme de SrmReceiveCheck
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Selmak7
Bonjour tous le monde,
J'ai un probleme en utilisant la fonction SrmReceiveCheck, celle-ci me renvoie toujours 0 (dans la variable passée en paramètre). Pourtant si je lance la fonction SrmReceive, je recois bien ce que j'ai envoyé à partir d'un terminal quelconque.

voici mon code :
CODE
    err = SrmOpen( 'ircm', 115200, &Port );
    if( err == errNone )
    {
 SrmSendFlush( Port );
 SrmReceiveFlush( Port, SysTicksPerSecond() );
    }
    else
 return;
    
    do
    {
 EvtGetEvent( &event, /*evtWaitForever*/10 );

 SrmReceiveCheck( Port, &size );
 StrPrintF( buffer, "%d", size );
 WinDrawChars( buffer, StrLen( buffer ), 70, 15 );
 if( size > 0 ) Test( size );  

 SysHandleEvent( &event );
 MenuHandleEvent( NULL, &event, &err );
 
 FrmDispatchEvent( &event );
    }while( event.eType != appStopEvent );


Pour conclure je passe jamais dans la fonction Test() car size est toujour = à 0 ....
Patrice
Tu pourrais toujours tester le retour de la fonction (tu as peut-être une erreur ?). Ou alors ta variable size n'est pas un UInt32 (ça ferait une excellente raison de récupérer 0) ?
Selmak7
sisi mon size est un UInt32
je vais tester mon retour de fonction pour effectivement voir si il y a une erreur...

je vous tiend au courant...
Selmak7
la fonction renvoie errNone, il n'y a donc pas d'erreur...
Si quelqu'un sait d'ou vient se probleme ???
Patrice
As-tu bien lu la doc concernant le deuxième paramètre passé à SrmReceiveFlush ? Avec le code que tu as, si le Palm reçoit des données en permanence (sans "pause" de plus d'une seconde), elles seront vidées systématiquement...
Selmak7
OK donc si je comprend bien, tous les SYSTICKSPERSECOND, le buffer de reception serat vidé automatiquement .... Je pensais que cette tempo représenté un timeout limitant la durée de vie de la fonction...

Je vais voir, merci ++
Patrice
Si je comprend bien, tu n'as pas lu la doc rolleyes.gif Ce n'est pas ça : s'il arrive un octet avant le délai fixé, le buffer est vidé et le décompte recommence à 0...
Selmak7
re

Si j'ai lus la doc, cependant, elle est en anglais, et je suis nul en anglais...
Bon bref, revenant à mon probleme, j'ai donc viré les fonctions flush, et la variable 'size' m'indique toujours 0 meme quand j'envoie des données...

J'ai donc toujours le meme probleme en ayant enlevé les fonctions (SrmReceiveFlush, SrmSendFlush)...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.