Стартовая страница › Форумы › Разработка и интеграция › Использование KpProps не для линии а для КП ?
- В этой теме 21 ответ, 3 участника, последнее обновление 6 лет, 6 месяцев назад сделано
manjey73.
-
АвторЗаписи
-
12.02.2020 в 18:38 #14786
MikhailМодераторМихаил, если можно, объясните как оперировать bool required и string defaultValue
Дайте, пожалуйста, ссылку на исходный код интересующего метода на GitHub.
12.02.2020 в 18:41 #14787
MikhailМодераторCustom Params для КП — можно обдумать. А пока заведите для КП XML-файл с настройками. В числе настроек укажите шаблон.
12.02.2020 в 21:12 #14790
manjey73УчастникБлин. Михаил, и так в качестве шаблона xml файл, несколько раз об этом говорил. Суть в том, что имеем к примеру несколько однотипных приборов на линии, используется один единственный шаблон. Пароли у приборов могут быть разными.
Сейчас реализовал за счет CustomParametrs линии. по аналогии с Modbus драйвером.
з.ы. не могу тыкнуть конкретно в реализацию самого механизма.
Как реализовал, писал выше. Но не пойму как работать с этим
CustomParams.GetStringParam(Number.ToString(), bool required, string defaultValue)
Суть, если в Параметрах нет записи с номером КП, либо запись есть но поле Значение пусто. Как работать с тем, что выделил жирным ?
12.02.2020 в 21:47 #14793
manjey73УчастникЯ правильно понимаю, что в драйвере Modbus если нет ключа «Наименование», то создается «TransMode» и выставляется значение RTU (это и есть defaultValue).
Вот и вопрос, можно ли как-то оперировать параметром defaultValue, если ключ «Наименование» создан, но я поле стер или не заполнил ?
Сейчас реализовал так, что если поле стерто, то используется поле пароля из xml файла. Например мы не меняли пароль и используем его по умолчанию, например для счетчиков Энергомера 777777. Если я поле заполнил, что пароль берется из него.
В качестве ключа использую Номер КПНу либо для простоты сделать как вы делали с BinStopCondition() типа класс только с Именем и значением или что-то типа того…
Даже сейчас можно оперировать и лепить свои параметры для КП.
Не только же номер можно в качестве ключа использовать а еще и расширять. Например
135_Param1 — пароль
135_Param2 — еще какая нить нужная вещь и так далее.
А в коде уже сверять с номером и выполнять какие-то действия.13.02.2020 в 18:27 #14796
MikhailМодераторpublic static string GetStringParam(this SortedList
paramList, string name, bool required, string defaultValue) Если поставить required = true, то при отсутствии параметра будет возникать исключение. Это нужно достаточно редко, у Вас скорее всего будет false.
defaultValue — значение по умолчанию, которое Вы получите, если параметр отсутствует в списке.
13.02.2020 в 18:30 #14797
MikhailМодераторЕсли ключ есть, но значение пустое, то метод GetStringParam вернёт пустое значение.
В драйвере Модбас:
transMode = CustomParams.GetEnumParam(«TransMode», false, TransMode.RTU);Т.к. значение перечислимое, то в случае пустого или некорректного значения GetEnumParam вернёт RTU.
13.02.2020 в 20:29 #14800
manjey73УчастникПримерно понял, то есть если я оставляю ключ и стираю только Значение надо будет самостоятельно контролировать этот момент…
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.