Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Формулы контроля вводимого значения
- В этой теме 6 ответов, 3 участника, последнее обновление 1 месяц назад сделано
manjey73.
-
АвторСообщения
-
26.03.2025 в 11:54 #37492
manjey73
УчастникЧтобы не писать на каждый чих сделал такие формулы, с множителем и без
public double CheckComm(double min, double max, double mult, string str = "" ) { if (Cmd < min || Cmd > max) throw new Exception(string.Concat("Значение должно быть в пределах ", min.ToString(), " - ", max.ToString()," ", str)); return Cmd*mult; } public double CheckComm1(double min, double max, string str = "" ) { if (Cmd < min || Cmd > max) throw new Exception(string.Concat("Значение должно быть в пределах ", min.ToString(), " - ", max.ToString()," ", str)); return Cmd; }
Например во входной формуле у нас Cnl/10 — деление на 10, а при передаче надо умножить соответственно на 10.
В выходной формуле пишем —CheckComm(16, 32, 10, "градусов")
«Значение должно быть в пределах» — строка по умолчанию. В выходной формуле можно либо не указывать окончание фразы «градусов» и написать простоCheckComm(16, 32, 10)
либо указать как выше с кавычками то, что вам нужно.
Здесь 16 — минимально допустимое, 32 максимально допустимое, 10 — множитель, фраза чего.Либо использовать
CheckComm1(16, 32, "градусов")
в таком виде, где множитель 1.
Если надо будет делить, то указываем соответственно 0.1, 0.01 и так далее26.03.2025 в 14:56 #3749426.03.2025 в 15:47 #37496manjey73
УчастникЯ пробовал $» » — но была какая-то ошибка. Возможно что-то неправильно написал
Кажется связано с { } — компилятор формул ругается. А мне надо было вставить значения min, max в строку26.03.2025 в 21:40 #37497manjey73
Участникif (Cmd < min || Cmd > max) throw new Exception($"Значение должно быть в пределах {min} - {max} {str}");
Работает, видимо в первый раз допустил синтаксическую ошибку где-то.
27.03.2025 в 01:25 #37498JurasskPark
УчастникРаботает, видимо в первый раз допустил синтаксическую ошибку где-то.
И ExtScriptCompilerJP промолчал или вы им не пользуетесь?:)
27.03.2025 в 06:13 #37503manjey73
УчастникПрактически не пользуюсь, по старинке.
Недавно пользовался, для синтаксических ошибок, ибо опять забыл, как там компилировать и что подключать 🥺27.03.2025 в 08:42 #37504manjey73
УчастникПросто у меня формулы, которые вызывают другие формулы, которые в свою очередь могут быть привязаны к каналам. Протестировать их в рамках расширения не особо представляется возможным.
Например TON — формула таймера общая, для любого канала, а не набор таймеров под каждый канал, где мне нужен таймер типа Ton1029, Ton945 и так далее, полностью по сути повторяющие код.
Пытаюсь делать формулы так, чтобы они не были зависимы от каналов, но при этом их можно было использовать в любом канале.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.