File : sonar_handler.ads


--                              -*- Mode: Ada -*-
-- Filename        : sonar_handler.ads
-- Description     : synchronization for the sonar readings
-- Author          : Christfried Webers
-- Created On      : Mon Nov  8 20:47:28 1999
-- Last Modified By: .
-- Last Modified On: .
-- Update Count    : 0
-- Status          : Experimental
-------------------------------------------------------------------
with Ada.Real_Time;

with Flex_Common; use Flex_Common;
with Flex_Driver;
with Sonar;

package Sonar_Handler is

   ----------------------------------------------------------------------------
   ---
   --
   -- Reader
   --
   ----------------------------------------------------------------------------
   ----

   type SonarFlags is array (Sonar.Index) of Boolean;

   protected Reader is
      procedure RecordPacket (PacketNumber : Raw_8Bit; Data : ByteArray);
      entry GetCurrentStatus (SonarStatus : out Sonar.Status);
      entry WaitForNewData;
      procedure NonBlocking;

   private
      LastStatus        : Sonar.Status;
      NewReadings       : Sonar.Readings;
      NewValueFlag      : SonarFlags := (others => False);
      NewDataArrived    : Boolean    := False;
      FirstDataArrived  : Boolean    := False;
      NonBlockingActive : Boolean    := False;
   end Reader;

   protected Commander is
      procedure StartReading;
      procedure StopReading;
   end Commander;

end Sonar_Handler;