Незаконное декларирование в определении задачи - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть следующая спецификация задачи:

with Ada.Real_Time; use Ada.Real_Time;

package pkg_task is
    task type task_t is
        activationTime : constant Integer := 1;
        period : constant Integer := 2;
        computingTime : constant Integer := 1;
        startingTime : Time;
    end task_t;
end pkg_task;

Когда я компилирую, я получаю ошибку, упомянутую в заголовке во всех строках спецификации задачи, где я объявляю переменные, и я не знаю, в чем проблема.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Как писал Джейкоб, вы не можете экспортировать ничего, что не является записью в заданиях. В этом случае ваша задача действительно проста

package pkg_task is
   task type task_t;
end pkg_task;

В теле вы можете использовать свои переменные.

package body pkg_task is

   task body task_t is
      Activation_Time : constant Integer := 1;
      Period          : constant Integer := 2;
      Computing_Time  : constant Integer := 1;
      -- Starting_Time   : Time;
   begin
      null;
   end task_t;
end pkg_task;

В любом случае, было бы проще, если бы вы объяснили нам, что вы пытаетесь сделать.

0 голосов
/ 30 апреля 2018

Интерфейс к задаче - это ее записи, поэтому вы объявляете записи только в спецификации задачи. Любые локальные переменные в задаче объявляются в декларативной части тела задачи.

Задача без записей просто объявляется:

task Something;
...