85Fermer87
PpHdLe 08/08/2009 à 11:34
Bug: impossible d'envoyer une TIB avec Tilp + tiemu sous PedroM.
PedroM rend une 'tête de mort' pour dire qu'il n'accepte pas ce qu'on lui envoit.

L'erreur vient que TILP envoit un paquet RTS de longeur 7 pour le basecode, alors qu'il devrait envoyer un paquet de longueur 6 (Voir protocole du link).
Bug fix dans libticalc:
--- cmd89.c~    2009-05-29 23:51:50.000000000 +0200
+++ cmd89.c     2009-08-08 11:24:08.000000000 +0200
@@ -227,16 +227,17 @@
   uint8_t buffer[32] = { 0 };
   uint16_t len;
 
+  len = strlen(varname);
   buffer[0] = LSB(LSW(varsize));
   buffer[1] = MSB(LSW(varsize));
   buffer[2] = LSB(MSW(varsize));
   buffer[3] = MSB(MSW(varsize));
   buffer[4] = vartype;
-  buffer[5] = strlen(varname);
-  memcpy(buffer + 6, varname, strlen(varname));
-  buffer[6 + strlen(varname)] = 0x00;
-
-  len = 6 + strlen(varname) + 1;
+  buffer[5] = len;
+  memcpy(buffer + 6, varname, len);
+  buffer[6 + len] = 0x00;
+  // If len=0, we don't have to include the last 0 char in the paquet length.
+  len = 6 + len + (len != 0);
   // used by AMS <= 2.09 ?
   //if ((vartype == TI89_AMS) || (vartype == TI89_APPL)) len--;


Sinon je me suis rendu compte que je me suis complétement trompé pour la réception de TIB pour V200 et titanium pour PedroM ==> A corriger ==> corrigé.