Использование KpProps не для линии а для КП ?

Стартовая страница Форумы Разработка и интеграция Использование KpProps не для линии а для КП ?

Просмотр 7 сообщений - с 16 по 22 (из 22 всего)
  • Автор
    Записи
  • #14786
    Mikhail
    Модератор

    Михаил, если можно, объясните как оперировать bool required и string defaultValue

    Дайте, пожалуйста, ссылку на исходный код интересующего метода на GitHub.

    #14787
    Mikhail
    Модератор

    Custom Params для КП — можно обдумать. А пока заведите для КП XML-файл с настройками. В числе настроек укажите шаблон.

    #14790
    manjey73
    Участник

    Блин. Михаил, и так в качестве шаблона xml файл, несколько раз об этом говорил. Суть в том, что имеем к примеру несколько однотипных приборов на линии, используется один единственный шаблон. Пароли у приборов могут быть разными.

    Сейчас реализовал за счет CustomParametrs линии. по аналогии с Modbus драйвером.

    з.ы. не могу тыкнуть конкретно в реализацию самого механизма.

    Как реализовал, писал выше. Но не пойму как работать с этим

    CustomParams.GetStringParam(Number.ToString(), bool required, string defaultValue)

    GetStringParam

    Суть, если в Параметрах нет записи с номером КП, либо запись есть но поле Значение пусто. Как работать с тем, что выделил жирным ?

    #14793
    manjey73
    Участник

    Я правильно понимаю, что в драйвере Modbus если нет ключа «Наименование», то создается «TransMode» и выставляется значение RTU (это и есть defaultValue).

    Вот и вопрос, можно ли как-то оперировать параметром defaultValue, если ключ «Наименование» создан, но я поле стер или не заполнил ?

    Сейчас реализовал так, что если поле стерто, то используется поле пароля из xml файла. Например мы не меняли пароль и используем его по умолчанию, например для счетчиков Энергомера 777777. Если я поле заполнил, что пароль берется из него.
    В качестве ключа использую Номер КП

    Ну либо для простоты сделать как вы делали с BinStopCondition() типа класс только с Именем и значением или что-то типа того…

    Даже сейчас можно оперировать и лепить свои параметры для КП.
    Не только же номер можно в качестве ключа использовать а еще и расширять. Например
    135_Param1 — пароль
    135_Param2 — еще какая нить нужная вещь и так далее.
    А в коде уже сверять с номером и выполнять какие-то действия.

    #14796
    Mikhail
    Модератор

    public static string GetStringParam(this SortedList paramList, string name, bool required, string defaultValue)

    Если поставить required = true, то при отсутствии параметра будет возникать исключение. Это нужно достаточно редко, у Вас скорее всего будет false.

    defaultValue — значение по умолчанию, которое Вы получите, если параметр отсутствует в списке.

    #14797
    Mikhail
    Модератор

    Если ключ есть, но значение пустое, то метод GetStringParam вернёт пустое значение.

    В драйвере Модбас:
    transMode = CustomParams.GetEnumParam(«TransMode», false, TransMode.RTU);

    Т.к. значение перечислимое, то в случае пустого или некорректного значения GetEnumParam вернёт RTU.

    #14800
    manjey73
    Участник

    Примерно понял, то есть если я оставляю ключ и стираю только Значение надо будет самостоятельно контролировать этот момент…

Просмотр 7 сообщений - с 16 по 22 (из 22 всего)
  • Для ответа в этой теме необходимо авторизоваться.