320Fermer322
squalylLe 26/11/2004 à 13:19
pencil

et question: est ce plus malin de recoder sendcalc et getcalc en C? cela existe-t-il déjà de manière facilement utilisable? ou est ce plus rapide de faire des chtits progs en C qui prennent des args basic pour envoyer un buffer d'octet?

je pense à ça à cause du protocole rajouté par TI aux fonctions send/get calc, et à leur manque de flexibilité.

c'est assez con de récupérer des nombres venant d'une liste basic en C, d'en faire un char[] et de le passer à la fonction d'envoi brut.

les fonctions link en C sont les suivantes:
OSCheckSilentLink
Checks the link state.
OSLinkClose
Closes a low-level link communication.
OSLinkCmd
Process the command received through the link port.
OSLinkOpen
Opens low-level link communication.
OSLinkReset
Resets the link interface.
OSLinkTxQueueActive
Determines whether the transmit queue is active.
OSLinkTxQueueInquire
Determines the number of free bytes in the transmit buffer.
OSReadLinkBlock
Reads bytes from the link receive buffer.
OSWriteLinkBlock
Inserts bytes into the link transmit buffer.
sendcalc Sends a variable (or program) through the link interface.


Autrement dit, rien n'est prévu pour recevoir une variable basic, ie l'IA d'Ethaniel pourra recevoir les infos sur les coups mais pas envoyer. Donc faut passer en protocole bas niveau. Je vais essayer pondre un prog C utilisable en zicba pour envoyer et recevoir des buffers d'octets sans protocole, puisque c'est ce que font de base les fonctions OSReadLinkBlock et OSWriteLinkBlock.

je sais gérer ça, je pense que ce sera ma seule contribution parce que je n'aurai pas le temps de coder une IA.

edit:
-les piles de ma ti sont mortes
-le link est foutu, je sais pas où j'ai mis mon bricolage de réparation
-j'ai pas de rom 92+ pour vti
-je sais pas où elles sont sur le site de TI
... gni

journée de merde pawaa

re-edit:

vala les fonctions de tigcc qui gèrent la com.
unsigned short LIO_RecvData (void *dest, unsigned long size, unsigned long WaitDelay);
unsigned short LIO_SendData (const void *src, unsigned long size);

ça n'envoie pas une var, juste un buffer.
si on veut utiliser les fonctions équivalentes en basic, faut se taper le handshaking.

autant recoder un utilitaire basic qui refait ces fonctions sans protocole, c'est plus simple, plus flexible (on peut faire le protocole qu'on veut) et plus rapide.