Model (
   Model_Name          => rmt,
   Model_Date          => 2000-01-01,
   System_Pip_Behaviour=> STRICT);

Processing_Resource (
   Type                   => Regular_Processor,
   Name                   => teleoperation_station,
   Max_Interrupt_Priority => 512,
   Min_Interrupt_Priority => 501,
   Worst_ISR_Switch       => 0.00,
   Avg_ISR_Switch         => 0.00,
   Best_ISR_Switch        => 0.00,
   System_Timer           => 
      ( Type           => Alarm_Clock,
        Worst_Overhead => 50.00,
        Avg_Overhead   => 0.00,
        Best_Overhead  => 0.00),
   Speed_Factor           => 1.00);

Processing_Resource (
   Type                   => Regular_Processor,
   Name                   => local_controller,
   Max_Interrupt_Priority => 512,
   Min_Interrupt_Priority => 501,
   Worst_ISR_Switch       => 0.00,
   Avg_ISR_Switch         => 0.00,
   Best_ISR_Switch        => 0.00,
   System_Timer           => 
      ( Type           => Alarm_Clock,
        Worst_Overhead => 10.00,
        Avg_Overhead   => 0.00,
        Best_Overhead  => 0.00),
   Speed_Factor           => 1.00);

Processing_Resource (
   Type                          => Packet_Based_Network,
   Name                          => ethernet,
   Transmission                  => HALF_DUPLEX,
   Throughput                    => 1.00,
   Max_Blocking                  => 0.00,
   Max_Packet_Size               => 1000.0,
   Min_Packet_Size               => 10.00,
   Speed_Factor                  => 1.00);

Scheduler (
   Type            => Primary_Scheduler,
   Name            => teleoperation_station,
   Host            => teleoperation_station,
   Policy          => 
      ( Type                 => Fixed_Priority,
        Worst_Context_Switch => 10.25,
        Avg_Context_Switch   => 0.00,
        Best_Context_Switch  => 0.00,
        Max_Priority         => 500,
        Min_Priority         => 1));

Scheduler (
   Type            => Primary_Scheduler,
   Name            => local_controller,
   Host            => local_controller,
   Policy          => 
      ( Type                 => Fixed_Priority,
        Worst_Context_Switch => 15.00,
        Avg_Context_Switch   => 0.00,
        Best_Context_Switch  => 0.00,
        Max_Priority         => 500,
        Min_Priority         => 1));

Scheduler (
   Type            => Primary_Scheduler,
   Name            => ethernet,
   Host            => ethernet,
   Policy          => 
      ( Type                     => FP_Packet_Based,
        Packet_Worst_Overhead    => 0.00,
        Packet_Avg_Overhead      => 0.00,
        Packet_Best_Overhead     => 0.00,
        Max_Priority             => 32767,
        Min_Priority             => 1));

Scheduling_Server (
   Type                       => Regular,
   Name                       => servo_control,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 415,
        Preassigned  => NO),
   Scheduler                  => local_controller);

Scheduling_Server (
   Type                       => Regular,
   Name                       => command_manager,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 412,
        Preassigned  => NO),
   Scheduler                  => local_controller);

Scheduling_Server (
   Type                       => Regular,
   Name                       => data_sender,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 410,
        Preassigned  => NO),
   Scheduler                  => local_controller);

Scheduling_Server (
   Type                       => Regular,
   Name                       => trajectory_planner,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 80,
        Preassigned  => NO),
   Scheduler                  => teleoperation_station);

Scheduling_Server (
   Type                       => Regular,
   Name                       => reporter,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 79,
        Preassigned  => NO),
   Scheduler                  => teleoperation_station);

Scheduling_Server (
   Type                       => Regular,
   Name                       => gui,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 60,
        Preassigned  => NO),
   Scheduler                  => teleoperation_station);

Scheduling_Server (
   Type                       => Regular,
   Name                       => message_scheduler,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 1,
        Preassigned  => NO),
   Scheduler                  => ethernet);

Scheduling_Server (
   Type                       => Regular,
   Name                       => forked_sevrer,
   Server_Sched_Parameters    => 
      ( Type         => Fixed_Priority_Policy,
        The_Priority => 3,
        Preassigned  => NO),
   Scheduler                  => teleoperation_station);

Shared_Resource (
   Type        => Immediate_Ceiling_Resource,
   Name        => status,
   Ceiling     => 32767,
   Preassigned => NO);

Shared_Resource (
   Type        => Immediate_Ceiling_Resource,
   Name        => commands,
   Ceiling     => 32767,
   Preassigned => NO);

Shared_Resource (
   Type        => Immediate_Ceiling_Resource,
   Name        => servo_data,
   Ceiling     => 32767,
   Preassigned => NO);

Operation (
   Type                       => Simple,
   Name                       => read_status,
   Worst_Case_Execution_Time  => 87.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00,
   Shared_Resources_To_Lock   => 
      ( status),
   Shared_Resources_To_Unlock => 
      ( status));

Operation (
   Type                       => Simple,
   Name                       => write_status,
   Worst_Case_Execution_Time  => 54.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00,
   Shared_Resources_To_Lock   => 
      ( status),
   Shared_Resources_To_Unlock => 
      ( status));

Operation (
   Type                       => Simple,
   Name                       => set_command,
   Worst_Case_Execution_Time  => 135.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00,
   Shared_Resources_To_Lock   => 
      ( commands),
   Shared_Resources_To_Unlock => 
      ( commands));

Operation (
   Type                       => Simple,
   Name                       => get_command,
   Worst_Case_Execution_Time  => 99.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00,
   Shared_Resources_To_Lock   => 
      ( commands),
   Shared_Resources_To_Unlock => 
      ( commands));

Operation (
   Type                       => Simple,
   Name                       => read_servos,
   Worst_Case_Execution_Time  => 74.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00,
   Shared_Resources_To_Lock   => 
      ( servo_data),
   Shared_Resources_To_Unlock => 
      ( servo_data));

Operation (
   Type                       => Simple,
   Name                       => write_servos,
   Worst_Case_Execution_Time  => 71.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00,
   Shared_Resources_To_Lock   => 
      ( servo_data),
   Shared_Resources_To_Unlock => 
      ( servo_data));

Operation (
   Type                     => Enclosing,
   Name                     => command_manager,
   Worst_Case_Execution_Time=> 9045.0,
   Avg_Case_Execution_Time  => 1.000E+100,
   Best_Case_Execution_Time => 0.00,
   Composite_Operation_List => 
      ( write_servos));

Operation (
   Type                     => Enclosing,
   Name                     => data_sender,
   Worst_Case_Execution_Time=> 1220.0,
   Avg_Case_Execution_Time  => 1.000E+100,
   Best_Case_Execution_Time => 0.00,
   Composite_Operation_List => 
      ( read_servos));

Operation (
   Type                     => Enclosing,
   Name                     => servo_control,
   Worst_Case_Execution_Time=> 1019.0,
   Avg_Case_Execution_Time  => 1.000E+100,
   Best_Case_Execution_Time => 0.00,
   Composite_Operation_List => 
      ( read_servos,
        write_servos));

Operation (
   Type                     => Enclosing,
   Name                     => trajectory_planner,
   Worst_Case_Execution_Time=> 7952.0,
   Avg_Case_Execution_Time  => 1.000E+100,
   Best_Case_Execution_Time => 0.00,
   Composite_Operation_List => 
      ( get_command));

Operation (
   Type                     => Enclosing,
   Name                     => reporter,
   Worst_Case_Execution_Time=> 2086.0,
   Avg_Case_Execution_Time  => 1.000E+100,
   Best_Case_Execution_Time => 0.00,
   Composite_Operation_List => 
      ( write_status));

Operation (
   Type                     => Enclosing,
   Name                     => gui,
   Worst_Case_Execution_Time=> 146820.0,
   Avg_Case_Execution_Time  => 1.000E+100,
   Best_Case_Execution_Time => 0.00,
   Composite_Operation_List => 
      ( read_status,
        set_command));

Operation (
   Type                       => Simple,
   Name                       => command_message,
   Worst_Case_Execution_Time  => 4850.0,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00);

Operation (
   Type                       => Simple,
   Name                       => status_message,
   Worst_Case_Execution_Time  => 5080.0,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00);

Operation (
   Type                       => Simple,
   Name                       => forked_op,
   Worst_Case_Execution_Time  => 10.00,
   Avg_Case_Execution_Time    => 1.000E+100,
   Best_Case_Execution_Time   => 0.00);

Transaction (
   Type            => regular,
   Name            => servo_control,
   External_Events => 
      ( ( Type       => Periodic,
          Name       => e1,
          Period     => 5000.00,
          Max_Jitter => 0.000,
          Phase      => 0.000)),
   Internal_Events => 
      ( ( Type => Regular,
          Name => o1,
          Timing_Requirements => 
            ( Type             => Hard_Global_Deadline,
              Deadline         => 5000.00,
              Referenced_Event => e1))),
   Event_Handlers  => 
      ( (Type               => System_Timed_Activity,
         Input_Event        => e1,
         Output_Event       => o1,
         Activity_Operation => servo_control,
         Activity_Server    => servo_control)));

Transaction (
   Type            => regular,
   Name            => main_control_loop,
   External_Events => 
      ( ( Type       => Periodic,
          Name       => e2,
          Period     => 50000.00,
          Max_Jitter => 0.000,
          Phase      => 0.000)),
   Internal_Events => 
      ( ( Type => Regular,
          Name => o2),
        ( Type => Regular,
          Name => o3),
        ( Type => Regular,
          Name => o4),
        ( Type => Regular,
          Name => o5),
        ( Type => Regular,
          Name => o6),
        ( Type => Regular,
          Name => o7,
          Timing_Requirements => 
            ( Type             => Hard_Global_Deadline,
              Deadline         => 50000.00,
              Referenced_Event => e2)),
        ( Type => Regular,
          Name => of1),
        ( Type => Regular,
          Name => of2),
        ( Type => Regular,
          Name => of3,
          Timing_Requirements => 
            ( Type             => Hard_Global_Deadline,
              Deadline         => 500000.000,
              Referenced_Event => e2))),
   Event_Handlers  => 
      ( (Type               => System_Timed_Activity,
         Input_Event        => e2,
         Output_Event       => o2,
         Activity_Operation => trajectory_planner,
         Activity_Server    => trajectory_planner),
        (Type               => Activity,
         Input_Event        => of1,
         Output_Event       => o3,
         Activity_Operation => command_message,
         Activity_Server    => message_scheduler),
        (Type               => Activity,
         Input_Event        => o3,
         Output_Event       => o4,
         Activity_Operation => command_manager,
         Activity_Server    => command_manager),
        (Type               => Activity,
         Input_Event        => o4,
         Output_Event       => o5,
         Activity_Operation => data_sender,
         Activity_Server    => data_sender),
        (Type               => Activity,
         Input_Event        => o5,
         Output_Event       => o6,
         Activity_Operation => status_message,
         Activity_Server    => message_scheduler),
        (Type               => Activity,
         Input_Event        => o6,
         Output_Event       => o7,
         Activity_Operation => reporter,
         Activity_Server    => reporter),
        (Type              => Multicast,
         Input_Event       => o2,
         Output_Events_List=> 
            ( of1,
              of2)),
        (Type               => Activity,
         Input_Event        => of2,
         Output_Event       => of3,
         Activity_Operation => forked_op,
         Activity_Server    => forked_sevrer)));

Transaction (
   Type            => regular,
   Name            => gui,
   External_Events => 
      ( ( Type       => Periodic,
          Name       => e3,
          Period     => 1000000.00,
          Max_Jitter => 0.000,
          Phase      => 0.000)),
   Internal_Events => 
      ( ( Type => Regular,
          Name => o8,
          Timing_Requirements => 
            ( Type             => Hard_Global_Deadline,
              Deadline         => 1000000.00,
              Referenced_Event => e3))),
   Event_Handlers  => 
      ( (Type               => System_Timed_Activity,
         Input_Event        => e3,
         Output_Event       => o8,
         Activity_Operation => gui,
         Activity_Server    => gui)));

