Документация по разработке и внедрению новых заданий для проверки знаний студентов о логических схемах.

Разработка нового задания является достаточно большим процессом и включает в себя несколько этапов. Рекомендуется выполнение последующего этапа только после завершения предыдущего. Итак,

  1. Создание проекта в Hlccad:

    1. Создается проект обязательно под названием "1.prd".
    2. Создается главное устройство обязательно под названием "le".
    3. Для устройства le прописывается название тестового файла обязательно такое: "le.tst".
    4. Для главного устройства, создаваемого в Hlccad, входные контакты обязательно должны называться in_0, in_1, in_2 и т.д. Отсчет с нуля. На вложенные устройства данное правило не распространяется.
    5. Аналогично все выходные контакты должны называться out_0, out_1 и т.д. На вложенные устройства данное правило не распостраняется.

      Общий вид задания в Hlccad:

    6. Поддержка шин. Шины в Hlccad описываются обычным образом, но с учетом требований по названию, смотри предыдущий пункт. Однако, есть свои особенности при описании в файле с входными параметрами. Для этого в тестовом файле пишутся 2 числа    1-е число - координата, 2-е - размерность. При изменении значений на шине, надо кликнуть по ней, появится окошко с просьбой ввести значение. См пример тестового файла с шинами.
    7. Пример готового проекта: 1.prd.

      Общий вид задания в Hlccad:

    8. Есть возможность использования микросхем памяти. Ограничений нет никаких. Есть только особенности описания этих микросхем памяти в файле с входными параметрами. См пример тестового файла с использованием ОЗУ и файла с ПЗУ.

  2. Создание изображений схем:

    1. Изображения создаются для того, чтобы отображать пользователю на экран одну или несколько схем устройств. Сколько существует схем, столько и должно быть изображений.
    2. После того, как была составлена схема устройства, необходимо не сохраняя проект удалить входные и выходные контакты, сместить всю схему максимально возможно в верхний левый угол, сохранить схему как рисунок (кликнуть правой кнопкой мыши на схеме, пункт "сохранить как рисунок"). Название задается любое. Схема будет сохранена в формате .bmp. После этого необходимо преобразовать этот файл в формат gif. Я рекомендую использовать ACDSee для преобразования, хотя можно использовать и другие программы. Проект необходимо вернуть в первоначальное состояние, т.е. с входными и выходными контактами. Быстро это сделать - нажать несколько раз Сtrl-Z.

      Сохранение рисунка:


  3. Создание файла с исходными данными к задаче:

      Есть 2 способа создания: писать самому вручную или с использованием редактора. Редактор можно загрузить здесь.

      Данный файл используется при загрузке задания на экран. Все, что касается расположения входных или выходных контактов, ссылок, комментариев прописывается в этом файле. Он представляет собой обычный текстовый файл. Название его обязательно 1.txt. Он в себе содержит:

    1. 1-я строчка:
      первое слово - название главного устройства, указанное в hlccad;
      второе слово - true или false, в зависимости от того, разрешено ли пользователю изменять входые данные.
    2. 2-я строчка - название файла с рисунком, отображающим главное устройство.
    3. 3-я строчка - количество входных контактов. После этого в каждой последующей строчке прописываются координаты (в пикселах) контактов. В пикселах потому, что компьютер не знает, где на рисунке будут контакты, и ему все равно, что там нарисовано. Лучше всего придерживаться координат, указанных в примере(т.е. с шагом в 18 пикселов)
    4. Аналогично прописывается количество выходных контактов и сами координаты выходных контактов.
    5. После описания выходных контактов описываются ссылки на вложенные устройства(если есть таковые). Описание производится с новой строчки. В строчке 2 числа через пробел - приблизительные координаты X Y вложенного устройства на схеме. Потом идет слово - название вложенного устройства. Это название никак не связано с названием устройства в Hlccad, а используется только внутри этого файла, когда происходит разбор.
    6. С новой строки пишется значок #, показывающий, что описание одного устройства закончилось.
    7. Аналогично описать все остальные вложенные устройства. В первой строчке, в названии устройства, прописывается имя, указанное в ссылке. Для более подробного уяснения смотрите пример.
    8. После описания всех устройств, если есть необходимость, можно между 2-мя значками & описать комментарии к задаче(они будут видны в процессе решения задачи при нажатии на кнопку "Дополнительно"). Также, если необходимо, можно между 2-мя значками ^ описать некоторые данные, которые сразу же будут занесены в тестовый файл при решении. (Например, прошивка памяти, если есть) Если устройство не имеет вложений, то ссылки не надо прописывать. Прописанное в файле 1.txt название рисунка(.gif) должно совпадать с учетом регистра с названием самого файла с рисунком.

  4. Создание архива и отправка на дельту:

    Скопировать все созданные файлы(1.prd, 1.txt, *.gif) в папку с названием 1, или 2:, символизирующем номер задачи. В эту же папку добавить файлы task.cfg, taskeng.htm, taskrus.htm, task.xml, их можно взять из приведенных здесь примеров заданий. В файле task.xml необходимо прописать русское и английское название задачи и автора. Не менять количество баллов на задачу(100) и тип задания(16). Потом все сжать в архив и отправить его в дельту.

    Пример готового файла 1.txt:

    Пример готового файла 1.txt

    Разбор текста:

    Главное устройство называется le, пользователь не может редактировать входные данные. Рисунок называется main.gif. Входных 3 контакта, на выходе 1 контакт. Есть вложенное устройство, координаты его 70 30, называется оно first. Далее описывается вложенное устройство first. Его рисунок first.gif. Во вложенном устройстве 2 входных контакта, 1 выходной. В конце описания всех устройств - комментарий.

    Некоторые пояснения к разработке задания:

    Особенности подержки памяти:

    Если используется ПЗУ, то нужна прошивка памяти. Прошивка памяти представляет собой файл с содержимым памяти. Он должен лежать в одной папке с проектным файлом(*.prd). hlccad поддерживает разные форматы прошивок, я занимался только с форматом mem. В файле с параметрами между значками ^ указывается часть теста, который будет вставлен в начало будущего тестового файла. Т.е, в тестовом файле, который вместе с самим проектом будет отправлен в hlccad на проверку, в начале файла прописывается все что между ^, а потом добавляются ответы пользователя. Это сделано для возможности задания начальных значений на микросхемы памяти. Значения на контактах ПЗУ можно описать в комментариях(между &), их же там можно и просмотреть. Начальные значения ОЗУ - между ^ . Просмотреть содержимое ОЗУ в момент решения задания невозможно, так как нельзя предугадать, когда будет происходить запись в ОЗУ.

Внимание:

Может возникнуть проблема такого рода: видны входные и выходные контакты, но не отображается рисунок. Для исправления необходимо убедиться, что в архиве название файла с рисунком совпадает с прописанным именем этого рисунка в файле 1.txt. Некоторые архиваторы самовольно переименовывают файлы к верхнему регистру.