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;