Типы данных

При создании или редактировании свойства блока, сигнала в рамках проекта или пакета проектов (в базе сигналов) доступен выбор типа сигнала из конечного списка типов, покрывающего большинство возможных сценариев использования сигналов. Перечень типов данных с пояснениями представлен ниже.

Вещественное - вещественное число удвоенной точности (8 байт). Соответствует типу Double в языке Delphi. В интерпретаторе скриптового языка данному типу соответствует тип

Целое - целое число размером 4 байта. Соответствует типу Integer в языке Delphi. По-умолчанию задание целого числа происходит в десятичном представлении (x = 15). Также доступен ввод в бинарном (x = 0b1111) и шестнадцатиричном представлении (x = 0xF) с испльзованием префиксов 0b и 0x соответственно.

Двоичное - двоичное число размерностью 1 бит. Может принимать значение Да (True, 1) или Нет (false, 0).

Цвет - сигнал хранящий код цвета в виде целого десятичного числа, размером 4 байта. Формирование числа происходит на основе двоичного числа с последовательно следующими байтами, соответствующими синему, зеленому, красному цвету и прозрачности (BGRA-кодирование).

Строка - динамически формируемый массив данных, хранящий последовательность произвольных символов. Поддерживается операция сложения сигналов данного типа, а также обращение к отдельным элементам строки.

Массив - массив вещественных значений произвольной длины. Разделителями массива могут служить символы "точка с запятой", "запятая" или "пробел" (с осторожностью при наличии отрицательных значений в массиве). Для массивов одинаковой размерности поддерживаются поэлементные арифметические операции.

Растровое изображение - сигнал данного типа содержит путь к внешнему файлу растрового изображения. Используется для присвоения свойствам, имеющим такой же тип. Поддеррживаются файлы изобращений в форматах BMP, JPG, JPEG, PNG.

Шрифт - сигнал данного типа содержит данные о шрифте (тип, кегль, цвет, кодировка и прочие параметры). Используется для присвоения свойствам, имеющим такой же тип.

Текст - динамически формируемый массив данных, хранящий последовательность произвольных символов, в том числе символы переноса строки. Поддерживается операция сложения сигналов данного типа, а также обращение к отдельным элементам строки.

Стиль линии - сигнал данного типа содержит данные о стиле линии (сплошная, штриховая, пунктирная и т.д.). Используется для присвоения свойствам, имеющим такой же тип.

Стиль заливки - сигнал данного типа содержит данные о стиле заливки графического примитива (сплошная, нулевая, горизонтальная и т.д.). Используется для присвоения свойствам имеющим такой же тип.

Формат числа - сигнал данного типа содержит данные о формате числа для текстовых примитивов. Используется для присвоения свойствам имеющим такой же тип.

Целый массив - массив целочисленных значений произвольной длины. Разделителями массива могут служить символы "точка с запятой", "запятая" или "пробел" (с осторожностью при наличии отрицательных значений в массиве). Из нецелых значений элементы массива формируются путем отбрасывания дробной части. Для массивов одинаковой размерности поддерживаются поэлементные арифметические операции.

Матрица - массив одномерных массивов. В случае, когда все одномерные массивы имеют одну размерность, является реализацией матрицы. Данные этого типа поддерживают арифметические операции по правилам матричной математики. Также поддерживается обращение к строкам матрицы (M[i]), так и к отдельным элементам (M[i,j]).

Точка - данные этого типа могут содержать координату точки на плоскости. Используется для присвоения свойствам, имеющим такой же тип.

Перечисление - этот тип данных подразумевает несколько вариантов выбора, из которых должен быть выбрать один. Кодирование возможных вариантов происходит по порядку, целыми числами, начиная с нуля. Сигнал данного типа имеет значение того целого числа, которому соответствует выбранный элемент. Задание списка выбора происходит при создании сигнала в редакторе сигналов или базы данных. В интерпретаторе скриптового языка данному типу соответствует тип tEnum.

Имя файла - сигнал данного типа содержит в текстовом виде имя файла, если файл находится в рабочей директории проекта, либо полный путь к файлу, если он находится в другой директории.

Имя файла базы данных - сигнал данного типа содержит в текстовом виде путь к табличному файлу хорактеристик с расширением TBL. В файлах такого типа может храниться характеристика материала для теплогидравлики, какого либо оборудования и т.д. При редактировании сигнала данного типа указывается директория, из которой почле чего в виде выпадающего списка можно выбрать один из имеющихся в ней файлов с расширением TBL. Используется для присваивания свойствам, имеющим такой же тип.

Произвольные данные - позволяет хранить произвольный бинарный байтовый набор (TStream) загруженный из файла. При редактировании пользователь выбирает файл, данные из файла загружаются в ячейку и затем хранятся вместе с проектом.

Составной тип данных - данный тип является аналогом типа Record (запись) в Delphi и может включать в себя несколько сигналов различных типов. Обращение к сигналу внутри записи происходит с помощью оператора "->", например Record->Signal=1;

Множество - этот тип данных подразумевает наличие конечного множества некоторых элементов, из которых одновременно может быть выбрано несколько. Редактирование и выбор активных элементов.

Комплексное - комплексное число, состоящее из вещественных действительной и мнимой частей. С сигналами данного типа поддерживаются все математические операции по правилам математических операций с комплексными числами.

Комплексный вектор - одномерный массив, состоящий из комплексных чисел. Для массивов одинаковой размерности поддерживаются поэлементные арифметические операции. Также доступно обращение к отдельным элементам вектора (M[i]).

Комплексная матрица - массив одномерных комплексных массивов (комплексных векторов). В случае, когда все одномерные массивы имеют одну размерность, является реализацией матрицы. Данные этого типа поддерживают арифметические операции по правилам матричной математики. Также поддерживается обращение к строкам матрицы (M[i]), так и к отдельным элементам (M[i,j]).

Внешний тип данных - этот типа данных позволяет подключить к свойству внешний плагин из DLL, унаследованный от базового класса IDataInterface (модуль Root\DataTypes.pas). Подключение плагина внешних данных позволяет хранить произвольные нестандартные данные.

Команда управления - команда управления представляет собой ячейку двоичного типа со специфичными правилами записи в неё. При записи в этот сигнал новое значение ячейки будет равным (старое значение) ИЛИ (записываемое значение). При этом при считывании этой ячейки блоком чтения сигналов после считывания её состояние будет сброшено в логический 0.

Каждый сигнал не зависимо от типа данных имеет два способа задания:
Для каждого сигнала не зависимо от типа данных можно выбрать один из трех способов расчета: