Toutes mes excuses pour cette question, mais je suis un peu un expert avec Delphi. J'utilise le composant Dejan TComport pour obtenir des données à partir d'un port série. Une boîte d'équipement connectée au port envoie environ 100 octets de données binaires au port série. Ce que je veux faire est d'extraire les octets comme des valeurs numériques dans un tableau afin que je puisse effectuer des calculs sur eux. TComport a une méthode Read (buffer, Count) qui lit DATA à partir du buffer d'entrée.Lecture de données binaires à partir du port série à l'aide de Dejan TComport Composant Delphi
function Read(var Buffer; Count: Integer): Integer;
L'aide indique la variable tampon doit être suffisamment grand pour contenir Count octets mais ne fournit aucun exemple de la façon d'utiliser cette fonction. Je peux voir que la variable Count contient le nombre d'octets reçus mais je ne trouve pas un moyen d'accéder aux octets dans Buffer. TComport dispose également d'une méthode ReadM qui lit les données du tampon d'entrée dans une variable STRING.
function ReadStr(var Str: String; Count: Integer): Integer;
Encore une fois la variable Count indique le nombre d'octets reçus et je peux utiliser Memo1.Text: = str pour afficher des informations, mais de toute évidence Memo1 a des problèmes pour afficher les caractères de contrôle. J'ai essayé plusieurs manières d'essayer d'extraire les données d'octets de Str mais jusqu'ici sans succès.
Je suis sûr que ça doit être facile. En espérant.
Si les données sont lues dans une boucle, le paramètre 'Buffer' ne doit pas être le tableau complet, mais l'élément suivant du tableau dans lequel écrire. – mghie
le tampon devrait être un "tampon de travail" ajouter son contenu à la variable finale –
Vous devriez étoffer votre réponse afin que cela devienne plus clair. – mghie