Jump to content

mischir

Members
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von mischir

  1. Vielen Dank, ich habe es geschafft und es funktioniert stabil.

    Ich dachte, man müsste mit Threads arbeiten, die synchronisiert werden, damit es nicht bei der Abfrage der einzelnen Sensoren kracht.

     

    Procedure Tform1.OpenMasterBrick;
    begin
    { Create IP connection }
      ipcon := TIPConnection.Create;
    
      { Create device object }
      c1 := TBrickletColor.Create(UID1, ipcon);
      c2 := TBrickletColor.Create(UID2, ipcon);
      c3 := TBrickletColor.Create(UID3, ipcon);
    
    
      { Connect to brickd }
      ipcon.Connect(HOST, PORT);
      { Don't use device before ipcon is connected }
    
      { Register color callback to procedure ColorCB }
      c1.OnColor := {$ifdef FPC}@{$endif}ColorCB1;
      c2.OnColor := {$ifdef FPC}@{$endif}ColorCB2;
      c3.OnColor := {$ifdef FPC}@{$endif}ColorCB3;
    
        { Register enumerate callback to "EnumerateCB" }
      ipcon.OnEnumerate := {$ifdef FPC}@{$endif}EnumerateCB;
      ipcon.Enumerate;
    
      { Set period for color callback to 1s (1000ms)
        Note: The color callback is only called every second
              if the color has changed since the last call! }
      c1.SetColorCallbackPeriod(0);
      c2.SetColorCallbackPeriod(0);
      c3.SetColorCallbackPeriod(0);
      end;

     

    Die drei Sensoren werden durch separate Callbacks abgerufen und den Start der Messung lege ich mit der SetColorCallBackPeriode > 0 fest.

     

    Das ganze funktioniert gut und es gibt keine Abstürze über Stunden :D

     

     

     

     

×
×
  • Neu erstellen...