TSerialConnection - Exemples

TSerialConnection = class (TObject)Interface de TSerialConnectionExemples de TSerialConnection

Exemple de connexion à une balance KERN 440

uses SerialConnections, System.Info;

var connParams := new TStrings;

// Définition des paramètres de connexion
connParams.Values['Machine']:='127.0.0.1:1341'; // Adresse IP + port du QubesRouter
connParams.Values['COMPort']:='6';
connParams.Values['BaudRate']:='9600';
connParams.Values['DataBits']:='8';
connParams.Values['StopBits']:='1';
connParams.Values['Parity']:='None';

var timeout := SystemMilliseconds + 5000; // connection timeout = 5s

// Connexion
var serial := TSerialConnection.Create(connParams.CommaText);

// il faut laisser à la connexion le temps de s'établir
while True do begin
   Sleep(10);
   if serial.ConnectedAndIdentified then
      break;
   if SystemMilliseconds > timeout then
      raise Exception.Create('La connexion avec le Router ou la balance n''a pu être établie!');
end;

// On purge le buffer de réception
serial.Flush;

// On demande à la balance de nous envoyer le poids stabilisé
serial.Send('s');

PrintLn('Demande envoyée');

// On attend jusqu'à réception des données
timeout := SystemMilliseconds + 5000; // receiving timeout = 5s
while (serial.InBytes<18) do begin
   Sleep(100);
   if SystemMilliseconds > timeout then
      raise Exception.Create('Temps d''attente de la réponse dépassé');
end;

// Affichage des données réceptionnées
PrintLn(serial.Receive(18));