bonjour,
Bonjour à tous,
sur COMPORT Toolkit
si on a coché la case RAW
n'importe quelle valeur (0 à 255) peut etre envoyée SANS interpretation
donc y compris le 00
Pour moi un string est une chaine de caracteres
qui sera donc interpretée principalemet comme de l'ascii
et comporte un 0 (\0) Terminateur de string..
dans ce cas une valeur nulle termine,coupe la chaine
contrairement au RAW.
Or si j'active rajout de CR LF en fin d'envoi
CR et LF sont des caracteres speciaux ,specifiquement utilisé
dans un string (chaine de caractere), et cela doit interferer avec le choix RAW data.
Dans la doc :
HEX data type Unlimited number of messages (depended on system resources), every message < 64Kb
String data type One message < 64Kb < 64K ....mais 115200 bytes en 2 fois avec message d'alerte intermediaire
Send raw data One message < 64Kb < 64K ...
mais 115200b en 1 seule fois (sans le rajout de CR LF à la fin)
le fichier de 115200 bytes passe bien en 1 seule fois,sans message d'alerte
Raw data ABC = binaire pur 01000001,01000010,01000011
HEX data ABC representation du byte en hexadecimal xx (00 à FF) 414243
string "ABC\0" en ascii -> en decimal 65666700 ou en hexa 41h42h43h00h
L'interpretation d'une RAW data est tres subjective,
car depend uniquement de comment le programmeur veut la visualiser sur un ecran
et sous quel format il la traite.
cette notion de raw data ou string est tres piégeuse lorqu'on veut afficher
un texte sur un LCD (ou autre)
ex LCD de 24 car/ligne
on dispose d'un tableau de 24 bytes Message[24]
si on y range 1 par 1 les caracteres ..no problemo
si on veut envoyer une chaine de 24 caracteres, il ne faudra pas oublier
de dimensionner le tableau Message[25] pour y loger le \0 terminateur
Message[25]=0; ..sous peine d'aleas ou plantage programme.

nota : meme en C on peut envoyer un zero -> \0 pour delimiter un string
Remarques :
nota : xc8 est tres ( , trop) rigoureux sur le format specifié pour 1 byte
char
unsigned char
int8_t
uint8_t
sans oublier l'usage dans les structures ou union..
le programmeur ne peut plus faire ce qu'il veut ,sans generer des tonnes de warning
c'est pourtant le programmeur qui sait comment il veut traiter la data 8 bits
et ce n'est pas au compilo d'imposer son format ..
la designation de Byte permettait au moins de laisser un choix libre et universel au programmeur.
On est dans un monde de contrainte et normalisation qui va detruire l'innovation .
En ASM , on fait (ou faisait ! ) effectivement ce que l'on veut ! mais risky sans ceinture de securité !
La derniere version de compilateur MPLAB ASM se barde de normalisation !
..et avec l'IA qui va s'en meler