File : motor_handler.ads
-- -*- Mode: Ada -*-
-- Filename : motor_handler.ads
-- Description : synchronization for the motor
-- Author : Christfried Webers
-- Created On : Mon Nov 8 10:49:07 1999
-- Last Modified By: .
-- Last Modified On: .
-- Update Count : 0
-- Status : Experimental
-------------------------------------------------------------------
with Ada.Real_Time;
with Metrics; use Metrics;
with Flex_Common; use Flex_Common;
with Flex_Driver;
with Motor;
package Motor_Handler is
----------------------------------------------------------------------------
----
--
-- Reader
--
----------------------------------------------------------------------------
----
protected Reader is
procedure RecordPacket (PacketNumber : Raw_8Bit; Data : ByteArray);
entry GetCurrentStatus (MotorStatus : out Motor.Status);
entry WaitForNewData;
procedure NonBlocking;
private
LastStatus : Motor.Status;
NewStatus : Motor.Status;
NewDataArrived : Boolean := False;
FirstDataArrived : Boolean := False;
NonBlockingActive : Boolean := False;
end Reader;
----------------------------------------------------------------------------
----
--
-- Commander
--
----------------------------------------------------------------------------
----
protected Commander is
procedure StartReading;
procedure StopReading;
procedure SetLinearVelocity (Velocity : LinVel);
procedure SetAngularVelocity (Velocity : AngVel);
procedure SetLinearAcceleration (Acceleration : LinAcc);
procedure SetAngularAcceleration (Acceleration : AngAcc);
procedure SetLinearTorque (Torque : LinTorque);
procedure SetAngularTorque (Torque : AngTorque);
private
LinearVelocity : LinVel := 0.0;
AngularVelocity : AngVel := 0.0;
LinearAcceleration : LinAcc := 1.0;
AngularAcceleration : AngAcc := 1.0;
LinearTorque : LinTorque := 1.0;
AngularTorque : AngTorque := 1.0;
end Commander;
end Motor_Handler;