File : laser_driver.ads
---------------------------------------------------------------------------
--
-- -*- Mode: Ada -*-
-- Filename : laser_driver.ads
-- Description : low level routines, including interrupt handler
--
----------------------------------------------------------------------------
with Ada.Real_Time; use Ada.Real_Time;
with Laser; use Laser;
package Laser_driver is
----------------------------------------------------------------------------
--
-- LaserDriverInterface
--
----------------------------------------------------------------------------
protected LaserDriverInterface is
entry InitLaserDriver;
entry ShutdownLaserDriver;
entry SuspendLaserDriver;
entry ResumeLaserDriver;
entry GetMostRecentLaserScan (LaserScan : out LaserStatus);
entry GetMostRecentLaserTimeStamp (LaserTimeStamp : out Time);
entry GetAllAvailableLaserScans (LaserScans : out LaserStatusArray);
end LaserDriverInterface;
----------------------------------------------------------------------------
--
-- Syncronization Monitor
--
----------------------------------------------------------------------------
protected LaserMonitor is
entry BlockTask;
entry BlockedTasksQueue;
procedure FreeTasks;
private
NewScanArrived : Boolean := False;
TasksWaitingForData : Natural := 0;
end LaserMonitor;
end Laser_driver;