// C Source File
// Created 30/05/02; 17:42:58
#define USE_TI89 // Produce .89z File
#define USE_TI92PLUS // Produce .9xz File
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
#define SAVE_SCREEN // Save/Restore LCD Contents
#include <tigcclib.h> // Include All Header Files
void envoi(const char *var)
{
char longs;
longs=(char)strlen(var);
while(OSWriteLinkBlock(&longs,1)); // Envoie la longueur de la donnée à récuperer
while(OSWriteLinkBlock(var, longs)); // Envoie la donnée
}
void recoi(char *var)
{
char longs;
while(OSReadLinkBlock(&longs,1)!=1); // Récupere la longueur de la donnée
while(OSReadLinkBlock(var, longs)!=(unsigned)longs); // Récupere la donnée
}
// Main Function
void _main(void)
{
short k=0,x;
char buff[128];
unsigned char longs;
OSLinkOpen(); // Ouvre la communication
do
{
clrscr();
memset(buff,0,128); // Efface le buffer
printf("1°/ Envoyern2°/ Reçevoirn");
k=ngetchx(); // Choisi si l'on envoie ou si l'on reçoit
clrscr();
switch (k)
{
case '1':
printf("EnvoinAppuyez sur une touchen");
sprintf(buff,"%hd",(ngetchx())); // Transforme le nombre en chaine de caractères
longs=(unsigned char)strlen(buff);
envoi(buff);
printf("length=%hunEnvoyer: x=%sn",longs,buff);
/*recoi(buff);
printf("Réponse:%s",buff);*/
break;
case '2':
printf("RéceptionnPatientez...n");
recoi(buff);
x=atol(buff); // Transforme la chaîne de caractère en nombre
printf("Reçu: x=%hdn",x);
printf("longueur=%lu n",strlen(buff)); // Affiche la longueur de la variable à récuperer
//strcpy(buff,"bien envoye");
//envoi(buff);
break;
}
ngetchx();
}
while (k!=264);
OSLinkClose(); // Ferme la communication
}
J'obtient un warning à la compilation:
Passing arg 1 of pointer to function discards qualifiers from pointer target type function envoi
Lors de l'exécution la calcultrice envoyante affiche la longueur de la chaîne de carcatère envoyée et le numéro de la touche, mai la calculatrice reçevante ne reçoit rien, ou ets l'erreur dans le prog???
P.S: le ";" qui apparait après le symbole "&" dans les fonctions n'est pas présent dans le vrai code source (ça doit être un bogue du forum)