|
|
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: 1264 (0x4f0)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
separate (Moteur)
task body Station is
The_Role : Role.Object;
Exec_Request : Boolean := False;
Total_Time : My_Time.Object;
Next_Operation_Time : Duration;
use My_Time;
begin
loop
select
accept Set_Info (The_Time : My_Time.Object;
The_Action : Action.Object) do
Role.Put_Action (The_Role, The_Time, The_Action);
end Set_Info;
or
accept Go do
Exec_Request := True;
end Go;
end select;
exit when Exec_Request = True;
end loop;
if Exec_Request = True then
Total_Time := 0.0;
Role.Prepare (The_Role);
while not Role.Is_At_End (The_Role) loop
declare
Local_Time : My_Time.Object;
Local_Action : Action.Object;
begin
Role.Get_Next_Action (The_Role, Local_Time, Local_Action);
Next_Operation_Time :=
Duration (Local_Time) - Duration (Total_Time);
delay Next_Operation_Time;
Serial_Io.Put (Action.Image (Local_Action), "/dev/tty0");
Total_Time := Local_Time;
end;
end loop;
end if;
end Station;