Генерация паспорта устройства

Часто в комплекте с устройствами поставляются их паспорта, которые содержат техническую спецификацию. На производстве выпускается несколько модификаций одного и того же устройства. Как сейчас - паспорта создаются путём копирования похожего и внесения в него изменений, что приводит к человеческим ошибкам.

Требования

Основные параметры шаблона зависят от маркировки. Маркировка - это строка вида DSA XXXX DS XX XX XX, где каждый символ - выбор характеристики из словаря.

Кроме маркировки нужно указать точные характеристики, не вынесенные в маркировку (в том числе серийный номер).

Пользователи

Поддержка двух групп пользователей:

  • оператор - доступ для генерации паспорта;
  • редактор - внесение изменений в шаблон паспорта или список параметров.

C4 диаграммы

Решение

Для каждого типа оборудования создать xml-спецификацию

<?xml

<head>
    <title>
        Спецификация для паспорта DSA
    </title>
</head>

<template path="templates/dsa.latex">
</template>

<form>
    <mark>
        <static>DSA-<static>
        <select name="1">
            <label>Количество входов</label>
            <option value="1">1</option>
            <option value="2">2</option>
        </select>
        <select name="2">
            <label>Измеряемая величина</label>
            <option value="1">Измерение зазора в плоскости</option>
            <option value="2">Максимальное значение в области зазора</option>
        </select>
        <select name="3">
            <label>Температурный диапазон</name>
            <option value="1">4-10 С</option>
            <option value="2">-20 +50 С</option>
        </select>
    </mark>

    <modification>
        <select name="4">
            <label>Диапазон измерений</label>
            <option value="5-20 mA">5-20 mA</option>
            <option value="1-18 mA">1-18 mA</option>
        </select>
        <select name="7">
            <label>Температурный диапазон</label>
            <option value="1">4-10 С</option>
            <option value="2">-20 +50 С</option>
        </select>
    </modification>


    <label form="8">Серийный номер</label>
    <input name="8"></input>
</form>

?>

Здесь id - наименование параметра, передаваемого в шаблон.