|
|
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: T V
Length: 9478 (0x2506)
Types: TextFile
Names: »V«
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
package Frame is
-- Constants
Stations_Last : constant := 30;
Tasks_Last : constant := 7;
-- Definition of a Request element
type Command is (Reset, Autotest, Single_Shot, Flash, Free_Running,
Int_Value, Int_Positive, Int_Negative);
for Command use (Reset => 2#000#,
Autotest => 2#001#,
Single_Shot => 2#010#,
Flash => 2#011#,
Free_Running => 2#100#,
Int_Value => 2#101#,
Int_Positive => 2#110#,
Int_Negative => 2#111#);
type Sensor_Addr_Mode is
(Port_A_Numeric, Port_A_Analogic, Port_B_Numeric, Slice);
for Sensor_Addr_Mode use (Port_A_Numeric => 2#00#,
Port_A_Analogic => 2#01#,
Port_B_Numeric => 2#10#,
Slice => 2#11#);
type Sensor_Addr_Selection is range 2#000# .. 2#111#;
subtype Sensor_Bit_Selection is Sensor_Addr_Selection;
subtype Sensor_Slice_Selection is Sensor_Addr_Selection;
Bit1_Bit0_B_Slice : constant Sensor_Slice_Selection := 2#000#;
Bit3_Bit2_B_Slice : constant Sensor_Slice_Selection := 2#001#;
Bit5_Bit4_B_Slice : constant Sensor_Slice_Selection := 2#010#;
Bit7_Bit6_B_Slice : constant Sensor_Slice_Selection := 2#011#;
Bit3_Bit0_B_Slice : constant Sensor_Slice_Selection := 2#100#;
Bit7_Bit4_B_Slice : constant Sensor_Slice_Selection := 2#101#;
Bit7_Bit0_B_Slice : constant Sensor_Slice_Selection := 2#110#;
Bit7_Bit0_A_Slice : constant Sensor_Slice_Selection := 2#111#;
type Request is private;
function Create_Request
(The_Command : Command;
Addressing_Mode : Sensor_Addr_Mode;
Bit_Selection : Sensor_Bit_Selection) return Request;
function Create_Request
(The_Command : Command;
Slice_Selection : Sensor_Slice_Selection) return Request;
-- Definition of Mode element
type Sample_Count is (N_1, N_2, N_4, N_8, N_16, N_32, N_64, N_128);
for Sample_Count use (N_1 => 2#000#,
N_2 => 2#001#,
N_4 => 2#010#,
N_8 => 2#011#,
N_16 => 2#100#,
N_32 => 2#101#,
N_64 => 2#110#,
N_128 => 2#111#);
type Format is (Eight_Bits, Sixteen_Bits);
for Format use (Eight_Bits => 0, Sixteen_Bits => 1);
type Mean is (Arithmetic, Slippery);
for Mean use (Arithmetic => 0, Slippery => 1);
type Measure is (Analogic, Numeric, Frequence, Period, Period_Up,
Period_Down, Detection_Up, Detection_Down);
for Measure use (Analogic => 2#000#,
Numeric => 2#001#,
Frequence => 2#010#,
Period => 2#011#,
Period_Up => 2#100#,
Period_Down => 2#101#,
Detection_Up => 2#110#,
Detection_Down => 2#111#);
type Mode is private;
function Create_Mode (Mean_Value : Mean;
Number_Of_Samples : Sample_Count;
Data_Format : Format;
Measure_Type : Measure) return Mode;
-- Definition of Number and Periodicity of Transmissions element
type Transmission_Count is (Infinity, N_1, N_2, N_5, N_10, N_20, N_50,
N_100, N_200, N_500, N_1000, N_2000,
N_5000, N_10000, N_20000, N_50000);
for Transmission_Count use (Infinity => 2#0000#,
N_1 => 2#0001#,
N_2 => 2#0010#,
N_5 => 2#0011#,
N_10 => 2#0100#,
N_20 => 2#0101#,
N_50 => 2#0110#,
N_100 => 2#0111#,
N_200 => 2#1000#,
N_500 => 2#1001#,
N_1000 => 2#1010#,
N_2000 => 2#1011#,
N_5000 => 2#1100#,
N_10000 => 2#1101#,
N_20000 => 2#1110#,
N_50000 => 2#1111#);
type Transmission_Period is (Maximal_Speed, P_1ms, P_2ms, P_5ms, P_10ms,
P_20ms, P_50ms, P_100ms, P_200ms, P_500ms,
P_1s, P_2s, P_5s, P_10s, P_20s, P_60s);
for Transmission_Period use (Maximal_Speed => 2#0000#,
P_1ms => 2#0001#,
P_2ms => 2#0010#,
P_5ms => 2#0011#,
P_10ms => 2#0100#,
P_20ms => 2#0101#,
P_50ms => 2#0110#,
P_100ms => 2#0111#,
P_200ms => 2#1000#,
P_500ms => 2#1001#,
P_1s => 2#1010#,
P_2s => 2#1011#,
P_5s => 2#1100#,
P_10s => 2#1101#,
P_20s => 2#1110#,
P_60s => 2#1111#);
type N_Delta_T is private;
function Create_N_Delta_T (Number_Of_Transmissions : Transmission_Count;
Period_Of_Transmissions : Transmission_Period)
return N_Delta_T;
-- Definition of threshold element
type Threshold is range 0 .. 255;
-- Definition of task element
type Task_Selection is private;
type Task_Identification is range 0 .. Tasks_Last;
function Create_Task_Selection return Task_Selection;
procedure Action_On_Task (T : in out Task_Selection;
Which_One : Task_Identification);
procedure No_Action_On_Task (T : in out Task_Selection;
Which_One : Task_Identification);
-- Definition of address element
type Station_Identification is range 0 .. Stations_Last;
type Address is private;
function Create_Address (Station : Station_Identification;
Station_Task : Task_Identification) return Address;
function Get_Station (A : Address) return Station_Identification;
function Get_Task (A : Address) return Task_Identification;
-- Definition of message element
type Message is private;
type Message_Array is array (Natural range <>) of Message;
pragma Pack (Message_Array);
function Is_Acknowledge (M : Message) return Boolean;
function As_Address (M : Message) return Address;
function As_Natural (M : Message) return Natural;
private
type Request is
record
Master_Command : Command;
Addressing_Mode : Sensor_Addr_Mode;
Addressing_Selection : Sensor_Addr_Selection;
end record;
for Request use
record
Master_Command at 0 range 0 .. 2;
Addressing_Mode at 0 range 3 .. 4;
Addressing_Selection at 0 range 5 .. 7;
end record;
for Request'Size use 8;
type Mode is
record
Mean_Value : Mean;
Number_Of_Samples : Sample_Count;
Data_Format : Format;
Measure_Type : Measure;
end record;
for Mode use
record
Mean_Value at 0 range 0 .. 0;
Number_Of_Samples at 0 range 1 .. 3;
Data_Format at 0 range 4 .. 4;
Measure_Type at 0 range 5 .. 7;
end record;
for Mode'Size use 8;
type N_Delta_T is
record
Number_Of_Transmissions : Transmission_Count;
Period_Of_Transmissions : Transmission_Period;
end record;
for N_Delta_T use
record
Number_Of_Transmissions at 0 range 0 .. 3;
Period_Of_Transmissions at 0 range 4 .. 7;
end record;
for Threshold'Size use 8;
type Task_Selection is
record
Task7_Active : Boolean;
Task6_Active : Boolean;
Task5_Active : Boolean;
Task4_Active : Boolean;
Task3_Active : Boolean;
Task2_Active : Boolean;
Task1_Active : Boolean;
Task0_Active : Boolean;
end record;
for Task_Selection use
record
Task7_Active at 0 range 0 .. 0;
Task6_Active at 0 range 1 .. 1;
Task5_Active at 0 range 2 .. 2;
Task4_Active at 0 range 3 .. 3;
Task3_Active at 0 range 4 .. 4;
Task2_Active at 0 range 5 .. 5;
Task1_Active at 0 range 6 .. 6;
Task0_Active at 0 range 7 .. 7;
end record;
for Task_Selection'Size use 8;
type Address is
record
Station : Station_Identification;
Task_Number : Task_Identification;
end record;
for Address use
record
Station at 0 range 0 .. 4;
Task_Number at 0 range 5 .. 7;
end record;
for Address'Size use 8;
type Message is range 0 .. 255;
for Message'Size use 8;
end Frame;