Skip to content

Показ схемы кодом

Кнопка «Показать код» в штампе (графа «ВЫЗОВ») показывает ту же схему на C#. Панель подписана прямо:

Так эта схема выглядела бы в GAP: строка кода на фигуру, в том же порядке. Это показ для сверки при переносе, а не то, что уходит в сборку.

Одна строка кода на одну фигуру, в том же порядке, в каком читается нить

Одна строка кода на одну фигуру, в том же порядке, в каком читается нить. Кнопка «Скопировать код» рядом.

Ради переноса. Блоки заменяют собой рукописный метод, и пока перенос идёт, инженеру и разработчику надо видеть одно и то же с двух сторон: фигуру и её эквивалент на C#. По этому показу и сверяют, что схема повторяет функцию GAP.

Как читаются отдельные шаги

Section titled “Как читаются отдельные шаги”

Каждое действие само знает, как оно выглядит в коде, и повторяет запись живого GAP, а не общий вид «нашего» перехода. Несколько примеров.

ШагКак показан
Найти объектыParser.GetUpdatedInstances().Where(model => …).ToList()
Взять N-й.FirstOrDefault(model => …), а при заданном номере — с пропуском.
Взять поле у спискаfound.Select(model => model.Field("TAG")).ToList()
Взять поле у одногоpicked?.Field("TAG")
Взять поле из строки ячейкиData.Select(row => row.GetValueOrDefault("Units")).FirstOrDefault(value => !string.IsNullOrEmpty(value))
Взять поле из опций ПЛКCurrentPlcOptions?.PlcOptions?.FirstOrDefault()?.GetValueOrDefault("SplitRegex")
Перейти по связи «устройство Modbus»picked?.ModbusDevice
Перейти по связи «лист»Parser.GetUpdatedInstances().Where(model => model.SheetName == picked.SheetName).ToList()
Перейти по связи «обжтайп»Parser.ObjectTypesInstances.FirstOrDefault(model => model.InstanceName == picked.InstanceName)?.Data
Перейти по связи «пороги»SensorThresholdRule.Of(picked) — правило имён порогов выражением не записывается, и честнее показать вызов, чем сочинить строку, которой в GAP нет.
Прочитать файлFile.ReadAllText(path) либо path.Select(File.ReadAllText).ToList()
Часть путиPath.GetFileNameWithoutExtension(path) и т. п.
Собрать текстИнтерполированная строка: $"{tag}_ALM"
Свой кодСвоё тело как есть, с объявленными входами.

Переменные в показе называются по виду шага, а не по имени фигуры: фигуры называют по-русски, и «найтиПервый» посреди FirstOrDefault читалось бы как случайная вставка. Имя говорит, что в переменной лежит: found, picked, field, linked, text, part.

Подпись метода в показе учитывает форму того, чем схема заканчивается, — включая разобранный «Свой код». Без этого схема, кончающаяся кодом, всегда объявлялась строкой.

ФормаТип в подписи
один объектIProjectObject
список объектовIReadOnlyList<IProjectObject>
одно значениеstring
список значенийIReadOnlyList<string>
  • Постоянной панели показа кодом больше нет — что реально произойдёт, отвечает ведомость прогона, а не код.
  • Показ не компилируется и не запускается. Проверить код можно только у шага «Свой код», кнопкой «Проверить» в окне кода.