⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c391002.a

📁 linux下编程用 编译软件
💻 A
📖 第 1 页 / 共 2 页
字号:
    return It.TC_VC;  end Selector;  function  Selector( It : Private_Comm ) return Integer is  begin    return It.TC_PC;  end Selector;  function  Selector( It : Mil_Comm )     return Integer is  begin    return It.TC_MC;  end Selector;end C391002_4; -- Communications------------------------------------------------------------------- C391002with Report;with TCTouch;with C391002_1;with C391002_2;with C391002_3;with C391002_4;procedure C391002 is  package Plaque  renames C391002_1;  package Boards  renames C391002_2;  package Modules renames C391002_3;  package Communications renames C391002_4;  procedure Assert( Condition: Boolean; Message: String )    renames TCTouch.Assert;  use type Boards.Modes;  use type Boards.Data_Formats;  use type Modules.Command_Formats;  type Azimuth is range 0..359;  type Ground_Antenna(The_Band    : Boards.Data_Formats;                      The_Command : Modules.Command_Formats) is    record      ID          : Plaque.Object;      Electronics : Modules.Electronics_Module(The_Band,The_Command);      Pointing    : Azimuth;    end record;  type Space_Antenna(The_Band    : Boards.Data_Formats    := Boards.KU_Band;                     The_Command : Modules.Command_Formats                                   := Modules.Set_Power_State)  is    record      ID          : Plaque.Object;      Electronics : Modules.Electronics_Module(The_Band,The_Command);    end record;  The_Ground_Antenna     : Ground_Antenna (Boards.S_Band,                                           Modules.Set_Data_Rate);  The_Space_Antenna      : Space_Antenna;  Space_Station_Antenna  : Space_Antenna  (Boards.UHF,                                           Modules.Set_Compression_Code);  Gossip : Communications.Public_Comm  (Boards.UHF,                                        Modules.Set_Compression_Code);  Usenet : Communications.Private_Comm (Boards.KU_Band,                                        Modules.Set_Data_Rate);  Milnet : Communications.Mil_Comm     (Boards.S_Band,                                        Modules.Set_Power_State);begin  Report.Test("C391002", "Check nested tagged discriminated"                       & " record structures");  Plaque.Create( The_Ground_Antenna.ID );               -- 1  Plaque.Create( The_Ground_Antenna.Electronics.ID );   -- 2  Plaque.Create( The_Space_Antenna.ID );                -- 3  Plaque.Create( The_Space_Antenna.Electronics.ID );    -- 4  Plaque.Create( Space_Station_Antenna.ID );            -- 5  Plaque.Create( Space_Station_Antenna.Electronics.ID );-- 6  The_Ground_Antenna := ( The_Band    => Boards.S_Band,                          The_Command => Modules.Set_Data_Rate,                          ID          => The_Ground_Antenna.ID,                          Electronics =>                          ( Boards.Transceiver'(                              Band     => Boards.S_Band,                              ID       => The_Ground_Antenna.Electronics.ID,                              The_Link => ( Mode => Boards.Transmitting,                                            TC_T => 222 ),                              TC_S_Band_Data => 8 )                            with   EBand       => Boards.S_Band,                                   The_Command => Modules.Set_Data_Rate,                                   TC_SDR      => 11 ),                          Pointing    => 270 );  The_Space_Antenna := ( The_Band    => Boards.S_Band,                         The_Command => Modules.Set_Data_Rate,                         ID          => The_Space_Antenna.ID,                         Electronics =>                         ( Boards.Transceiver'(                             Band     => Boards.S_Band,                             ID       => The_Space_Antenna.Electronics.ID,                             The_Link => ( Mode => Boards.Transmitting,                                           TC_T => 456 ),                             TC_S_Band_Data => 88 )                           with                               EBand       => Boards.S_Band,                               The_Command => Modules.Set_Data_Rate,                               TC_SDR      => 42                        ) );  Space_Station_Antenna := ( Boards.UHF, Modules.Set_Compression_Code,                             Space_Station_Antenna.ID,                             ( Boards.Transceiver'(                                 Boards.UHF,                                 Space_Station_Antenna.Electronics.ID,                                 ( Boards.Transmitting, 202 ),                                 42 )                                 with Boards.UHF,                                       Modules.Set_Compression_Code,                                      TC_SCC => 101                           ) );  Assert( The_Ground_Antenna.The_Band = Boards.S_Band, "TGA disc 1" );  Assert( The_Ground_Antenna.The_Command = Modules.Set_Data_Rate,            "TGA disc 2" );  Assert( Plaque.TC_Match(The_Ground_Antenna.ID,1), "TGA comp 3" );  Assert( The_Ground_Antenna.Electronics.EBand = Boards.S_Band,            "TGA comp 2.disc 1" );  Assert( The_Ground_Antenna.Electronics.The_Command             = Modules.Set_Data_Rate,            "TGA comp 2.disc 2" );  Assert( The_Ground_Antenna.Electronics.TC_SDR = 11,            "TGA comp 2.1" );  Assert( Plaque.TC_Match( The_Ground_Antenna.Electronics.ID, 2 ),            "TGA comp 2.inher.1" );  Assert( The_Ground_Antenna.Electronics.The_Link.Mode = Boards.Transmitting,            "TGA comp 2.inher.2.disc" );  Assert( The_Ground_Antenna.Electronics.The_Link.TC_T = 222,            "TGA comp 2.inher.2.1" );  Assert( The_Ground_Antenna.Electronics.TC_S_Band_Data = 8,            "TGA comp 2.inher.3" );  Assert( The_Ground_Antenna.Pointing = 270, "TGA comp 3" );  Assert( The_Space_Antenna.The_Band = Boards.S_Band, "TSA disc 1");  Assert( The_Space_Antenna.The_Command = Modules.Set_Data_Rate,            "TSA disc 2");  Assert( Plaque.TC_Match(The_Space_Antenna.ID,3),            "TSA comp 1");  Assert( The_Space_Antenna.Electronics.EBand = Boards.S_Band,            "TSA comp 2.disc 1");  Assert( The_Space_Antenna.Electronics.The_Command = Modules.Set_Data_Rate,            "TSA comp 2.disc 2");  Assert( The_Space_Antenna.Electronics.TC_SDR = 42,            "TSA comp 2.1");  Assert( Plaque.TC_Match(The_Space_Antenna.Electronics.ID,4),            "TSA comp 2.inher.1");  Assert( The_Space_Antenna.Electronics.The_Link.Mode = Boards.Transmitting,            "TSA comp 2.inher.2.disc");  Assert( The_Space_Antenna.Electronics.The_Link.TC_T = 456,            "TSA comp 2.inher.2.1");  Assert( The_Space_Antenna.Electronics.TC_S_Band_Data = 88,            "TSA comp 2.inher.3");  Assert( Space_Station_Antenna.The_Band = Boards.UHF, "SSA disc 1");  Assert( Space_Station_Antenna.The_Command = Modules.Set_Compression_Code,            "SSA disc 2");  Assert( Plaque.TC_Match(Space_Station_Antenna.ID,5),            "SSA comp 1");  Assert( Space_Station_Antenna.Electronics.EBand = Boards.UHF,            "SSA comp 2.disc 1");  Assert( Space_Station_Antenna.Electronics.The_Command             = Modules.Set_Compression_Code,            "SSA comp 2.disc 2");  Assert( Space_Station_Antenna.Electronics.TC_SCC = 101,            "SSA comp 2.1");  Assert( Plaque.TC_Match(Space_Station_Antenna.Electronics.ID,6),            "SSA comp 2.inher.1");  Assert( Space_Station_Antenna.Electronics.The_Link.Mode            = Boards.Transmitting,            "SSA comp 2.inher.2.disc");  Assert( Space_Station_Antenna.Electronics.The_Link.TC_T = 202,            "SSA comp 2.inher.2.1");  Assert( Space_Station_Antenna.Electronics.TC_UHF_Data = 42,            "SSA comp 2.inher.3");  The_Space_Antenna := ( The_Band    => Boards.S_Band,                         The_Command => Modules.Set_Power_State,                         ID          => The_Space_Antenna.ID,                         Electronics =>                         ( Boards.Transceiver'(                             Band     => Boards.S_Band,                             ID       => The_Space_Antenna.Electronics.ID,                             The_Link => ( Mode => Boards.Transmitting,                                           TC_T => 1 ),                             TC_S_Band_Data => 5 )                           with                               EBand       => Boards.S_Band,                               The_Command => Modules.Set_Power_State,                               TC_SPS      => 101                        ) );  Communications.Creator( The_Space_Antenna.Electronics, Milnet );  Assert( Communications.Selector( Milnet ) = -1, "Milnet creator" );  Usenet := Communications.Creator( -2,                      ( Boards.Transceiver'(                         Band        => Boards.KU_Band,                         ID          => The_Space_Antenna.Electronics.ID,                         The_Link    => ( Boards.Transmitting, TC_T => 101 ),                         TC_KU_Band_Data => 395 )                    with Boards.KU_Band, Modules.Set_Data_Rate, 66 ) );  Assert( Communications.Selector( Usenet ) = -2, "Usenet creator" );  Gossip := (     Modules.Electronics_Module'(      Boards.Transceiver'(         Band        => Boards.UHF,         ID          => The_Space_Antenna.Electronics.ID,         The_Link    => ( Boards.Transmitting, TC_T => 101 ),         TC_UHF_Data => 395 )       with          Boards.UHF, Modules.Set_Compression_Code, 66 )     with       TC_VC => -3 );   Assert( Gossip.TC_VC = -3, "Gossip Aggregate" );  Communications.Setup( Gossip, 1 ); -- (Boards.UHF,                                     -- Modules.Set_Compression_Code)  Communications.Setup( Usenet, 2 ); -- (Boards.KU_Band,                                     -- Modules.Set_Data_Rate)  Communications.Setup( Milnet, 3 ); -- (Boards.S_Band,                                     -- Modules.Set_Power_State)  Assert( Communications.Selector( Gossip ) = 1, "Gossip Setup" );  Assert( Communications.Selector( Usenet ) = 2, "Usenet Setup" );  Assert( Communications.Selector( Milnet ) = 3, "Milnet Setup" );  Report.Result;end C391002;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -