|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 2816 (0xb00)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
with Text_Io;
package body Sensor is
package Time_Io is new Text_Io.Fixed_Io (Num => Sensor.Time);
function Value (A_Sensor : Sensor.Object) return Integer is
begin
return A_Sensor.Current_Value;
end Value;
function Duration (A_Sensor : Sensor.Object) return Time is
begin
case A_Sensor.Class is
when Normal =>
null;
when With_Speed | Calibrating =>
return A_Sensor.Action_Duration;
end case;
end Duration;
procedure Calibrate (A_Sensor : in out Sensor.Object;
Max : Integer := 100;
Min : Integer := 0;
Gain : Integer := 1) is
begin
case A_Sensor.Class is
when Normal | With_Speed =>
null;
when Calibrating =>
A_Sensor.Max := Max;
A_Sensor.Min := Min;
A_Sensor.Gain := Gain;
end case;
end Calibrate;
function Image (A_Time : Time) return String is
Tempo_String : String (1 .. 255);
begin
Time_Io.Put (Tempo_String, A_Time);
return Tempo_String;
end Image;
procedure Print (A_Sensor : Sensor.Object) is
begin
case A_Sensor.Class is
when Normal =>
Text_Io.Put_Line ("The current value = " &
Integer'Image (A_Sensor.Current_Value));
when With_Speed | Calibrating =>
Text_Io.Put_Line ("The action duration = " &
Image (A_Sensor.Action_Duration));
case A_Sensor.Class is
when Normal | With_Speed =>
null;
when Calibrating =>
Text_Io.Put_Line ("The Max value = " &
Integer'Image (A_Sensor.Max));
Text_Io.Put_Line ("The Min value = " &
Integer'Image (A_Sensor.Min));
Text_Io.Put_Line ("The Gain value = " &
Integer'Image (A_Sensor.Gain));
end case;
end case;
end Print;
procedure Set (A_Sensor : in out Sensor.Object; The_Value : Integer) is
begin
A_Sensor.Current_Value := The_Value;
end Set;
procedure Set (A_Sensor : in out Sensor.Object;
The_Value : Integer;
The_Time : Time) is
begin
Set (A_Sensor, The_Value);
case A_Sensor.Class is
when Normal =>
null;
when With_Speed | Calibrating =>
A_Sensor.Action_Duration := The_Time;
end case;
end Set;
end Sensor;